From 65583b9494fdf3232fc972602d5c615f10f67d27 Mon Sep 17 00:00:00 2001 From: Daniel Patterson Date: Tue, 16 May 2023 22:33:54 +0100 Subject: [PATCH] Add steam and special closer --- hosts/common/graphical/default.nix | 6 + .../configs/desktop/hyprland/default.nix | 181 +++++++++++++++++- .../configs/desktop/hyprland/hyprland.conf | 159 --------------- 3 files changed, 185 insertions(+), 161 deletions(-) delete mode 100644 users/daniel/configs/desktop/hyprland/hyprland.conf diff --git a/hosts/common/graphical/default.nix b/hosts/common/graphical/default.nix index e8bb7f8..4b9d431 100644 --- a/hosts/common/graphical/default.nix +++ b/hosts/common/graphical/default.nix @@ -35,6 +35,12 @@ ubuntu_font_family ]; + programs = { + steam = { + enable = true; + }; + }; + services = { gnome.gnome-keyring.enable = true; diff --git a/users/daniel/configs/desktop/hyprland/default.nix b/users/daniel/configs/desktop/hyprland/default.nix index f811e94..0d80ab2 100644 --- a/users/daniel/configs/desktop/hyprland/default.nix +++ b/users/daniel/configs/desktop/hyprland/default.nix @@ -4,7 +4,21 @@ pkgs, hostname, ... -}: { +}: let + closer = pkgs.writeShellApplication { + name = "closer"; + + runtimeInputs = with pkgs; [jq xdotool]; + + text = '' + if [ "$(hyprctl activewindow -j | jq -r ".class")" = "Steam" ]; then + xdotool getactivewindow windowunmap + else + hyprctl dispatch killactive "" + fi + ''; + }; +in { home.packages = with pkgs; [ swaybg ]; @@ -23,7 +37,170 @@ hidpi = true; }; nvidiaPatches = true; - extraConfig = (builtins.readFile ./${hostname}.conf) + (builtins.readFile ./hyprland.conf); + extraConfig = + (builtins.readFile ./${hostname}.conf) + + '' + # See https://wiki.hyprland.org/Configuring/Keywords/ for more + + # Execute your favorite apps at launch + exec-once = waybar + exec-once = swaybg -i ~/wallpapers/wallpaper.jpg + + # Source a file (multi-file configs) + # source = ~/.config/hypr/myColors.conf + source = ./macchiato.conf + + # For all categories, see https://wiki.hyprland.org/Configuring/Variables/ + input { + kb_layout = gb + kb_variant = + kb_model = + kb_options = caps:escape + kb_rules = + + follow_mouse = 2 + + touchpad { + natural_scroll = yes + middle_button_emulation = yes + scroll_factor = 0.5 + } + + accel_profile = flat + sensitivity = 0.5 # -1.0 - 1.0, 0 means no modification. + } + + general { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + gaps_in = 5 + gaps_out = 10 + border_size = 2 + col.active_border = $green + col.inactive_border = rgba(595959aa) + + layout = dwindle + } + + decoration { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + rounding = 10 + blur = yes + blur_size = 3 + blur_passes = 1 + blur_new_optimizations = on + + drop_shadow = yes + shadow_range = 4 + shadow_render_power = 3 + col.shadow = rgba(1a1a1aee) + } + + animations { + enabled = yes + + # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + + bezier = myBezier, 0.05, 0.9, 0.1, 1.05 + + animation = windows, 1, 3, myBezier + animation = windowsOut, 1, 3, default, popin 80% + animation = border, 1, 3, default + animation = borderangle, 1, 3, default + animation = fade, 1, 3, default + animation = workspaces, 1, 3, default + } + + dwindle { + # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more + pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = yes # you probably want this + } + + master { + # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more + new_is_master = true + } + + gestures { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + workspace_swipe = off + } + + # Example per-device config + # See https://wiki.hyprland.org/Configuring/Keywords/#executing for more + device:epic mouse V1 { + sensitivity = -0.5 + } + + # Example windowrule v1 + # windowrule = float, ^(kitty)$ + # Example windowrule v2 + # windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ + # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more + + # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more + bind = $mainMod, return, exec, kitty + # bind = $mainMod, Q, killactive, + bind = $mainMod, Q, exec, ${closer}/bin/closer + bind = $mainMod, D, exec, wofi --show drun + bind = $mainMod SHIFT, S, exec, grim -g $(slurp) + + # Move focus with mainMod + vim keys + bind = $mainMod, H, movefocus, l + bind = $mainMod, L, movefocus, r + bind = $mainMod, K, movefocus, u + bind = $mainMod, J, movefocus, d + + # Move focus with mainMod + vim keys + bind = $mainMod, left, movewindow, l + bind = $mainMod, right, movewindow, r + bind = $mainMod, up, movewindow, u + bind = $mainMod, down, movewindow, d + + # Switch workspaces with mainMod + [0-9] + bind = $mainMod, 1, workspace, 1 + bind = $mainMod, 2, workspace, 2 + bind = $mainMod, 3, workspace, 3 + bind = $mainMod, 4, workspace, 4 + bind = $mainMod, 5, workspace, 5 + bind = $mainMod, 6, workspace, 6 + bind = $mainMod, 7, workspace, 7 + bind = $mainMod, 8, workspace, 8 + bind = $mainMod, 9, workspace, 9 + bind = $mainMod, 0, workspace, 10 + + # Move active window to a workspace with mainMod + SHIFT + [0-9] + bind = $mainMod SHIFT, 1, movetoworkspace, 1 + bind = $mainMod SHIFT, 2, movetoworkspace, 2 + bind = $mainMod SHIFT, 3, movetoworkspace, 3 + bind = $mainMod SHIFT, 4, movetoworkspace, 4 + bind = $mainMod SHIFT, 5, movetoworkspace, 5 + bind = $mainMod SHIFT, 6, movetoworkspace, 6 + bind = $mainMod SHIFT, 7, movetoworkspace, 7 + bind = $mainMod SHIFT, 8, movetoworkspace, 8 + bind = $mainMod SHIFT, 9, movetoworkspace, 9 + bind = $mainMod SHIFT, 0, movetoworkspace, 10 + + bind = $mainMod, U, movetoworkspace, -1 + bind = $mainMod, I, movetoworkspace, +1 + + bind = $mainMod SHIFT, space, togglefloating, + + bind=$mainMod, escape, exec, swaylock -i ~/wallpapers/lock.png + + binde=, XF86AudioLowerVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%- + bind=, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle + binde=, XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%+ + + binde=, XF86MonBrightnessUp, exec, xbacklight -inc 10 + binde=, XF86MonBrightnessDown, exec, xbacklight -dec 10 + + # Move/resize windows with mainMod + LMB/RMB and dragging + bindm = $mainMod, mouse:272, movewindow + bindm = $mainMod, mouse:273, resizewindow + ''; }; services.mako = { diff --git a/users/daniel/configs/desktop/hyprland/hyprland.conf b/users/daniel/configs/desktop/hyprland/hyprland.conf deleted file mode 100644 index b497e26..0000000 --- a/users/daniel/configs/desktop/hyprland/hyprland.conf +++ /dev/null @@ -1,159 +0,0 @@ -# See https://wiki.hyprland.org/Configuring/Keywords/ for more - -# Execute your favorite apps at launch -exec-once = waybar -exec-once = swaybg -i ~/wallpapers/wallpaper.jpg - -# Source a file (multi-file configs) -# source = ~/.config/hypr/myColors.conf -source = ./macchiato.conf - -# For all categories, see https://wiki.hyprland.org/Configuring/Variables/ -input { - kb_layout = gb - kb_variant = - kb_model = - kb_options = caps:escape - kb_rules = - - follow_mouse = 2 - - touchpad { - natural_scroll = yes - middle_button_emulation = yes - scroll_factor = 0.5 - } - - accel_profile = flat - sensitivity = 0.5 # -1.0 - 1.0, 0 means no modification. -} - -general { - # See https://wiki.hyprland.org/Configuring/Variables/ for more - - gaps_in = 5 - gaps_out = 10 - border_size = 2 - col.active_border = $green - col.inactive_border = rgba(595959aa) - - layout = dwindle -} - -decoration { - # See https://wiki.hyprland.org/Configuring/Variables/ for more - - rounding = 10 - blur = yes - blur_size = 3 - blur_passes = 1 - blur_new_optimizations = on - - drop_shadow = yes - shadow_range = 4 - shadow_render_power = 3 - col.shadow = rgba(1a1a1aee) -} - -animations { - enabled = yes - - # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more - - bezier = myBezier, 0.05, 0.9, 0.1, 1.05 - - animation = windows, 1, 3, myBezier - animation = windowsOut, 1, 3, default, popin 80% - animation = border, 1, 3, default - animation = borderangle, 1, 3, default - animation = fade, 1, 3, default - animation = workspaces, 1, 3, default -} - -dwindle { - # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more - pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below - preserve_split = yes # you probably want this -} - -master { - # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more - new_is_master = true -} - -gestures { - # See https://wiki.hyprland.org/Configuring/Variables/ for more - workspace_swipe = off -} - -# Example per-device config -# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more -device:epic mouse V1 { - sensitivity = -0.5 -} - -# Example windowrule v1 -# windowrule = float, ^(kitty)$ -# Example windowrule v2 -# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ -# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more - -# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more -bind = $mainMod, return, exec, kitty -bind = $mainMod, Q, killactive, -bind = $mainMod, D, exec, wofi --show drun -bind = $mainMod SHIFT, S, exec, grim -g $(slurp) - -# Move focus with mainMod + vim keys -bind = $mainMod, H, movefocus, l -bind = $mainMod, L, movefocus, r -bind = $mainMod, K, movefocus, u -bind = $mainMod, J, movefocus, d - -# Move focus with mainMod + vim keys -bind = $mainMod, left, movewindow, l -bind = $mainMod, right, movewindow, r -bind = $mainMod, up, movewindow, u -bind = $mainMod, down, movewindow, d - -# Switch workspaces with mainMod + [0-9] -bind = $mainMod, 1, workspace, 1 -bind = $mainMod, 2, workspace, 2 -bind = $mainMod, 3, workspace, 3 -bind = $mainMod, 4, workspace, 4 -bind = $mainMod, 5, workspace, 5 -bind = $mainMod, 6, workspace, 6 -bind = $mainMod, 7, workspace, 7 -bind = $mainMod, 8, workspace, 8 -bind = $mainMod, 9, workspace, 9 -bind = $mainMod, 0, workspace, 10 - -# Move active window to a workspace with mainMod + SHIFT + [0-9] -bind = $mainMod SHIFT, 1, movetoworkspace, 1 -bind = $mainMod SHIFT, 2, movetoworkspace, 2 -bind = $mainMod SHIFT, 3, movetoworkspace, 3 -bind = $mainMod SHIFT, 4, movetoworkspace, 4 -bind = $mainMod SHIFT, 5, movetoworkspace, 5 -bind = $mainMod SHIFT, 6, movetoworkspace, 6 -bind = $mainMod SHIFT, 7, movetoworkspace, 7 -bind = $mainMod SHIFT, 8, movetoworkspace, 8 -bind = $mainMod SHIFT, 9, movetoworkspace, 9 -bind = $mainMod SHIFT, 0, movetoworkspace, 10 - -bind = $mainMod, U, movetoworkspace, -1 -bind = $mainMod, I, movetoworkspace, +1 - -bind = $mainMod SHIFT, space, togglefloating, - -bind=$mainMod, escape, exec, swaylock -i ~/wallpapers/lock.png - -binde=, XF86AudioLowerVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%- -bind=, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle -binde=, XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%+ - -binde=, XF86MonBrightnessUp, exec, xbacklight -inc 10 -binde=, XF86MonBrightnessDown, exec, xbacklight -dec 10 - -# Move/resize windows with mainMod + LMB/RMB and dragging -bindm = $mainMod, mouse:272, movewindow -bindm = $mainMod, mouse:273, resizewindow