From e97057cd6652a9b2c331ae6d3dbd07c4aa8ee003 Mon Sep 17 00:00:00 2001 From: willifan Date: Sun, 12 May 2024 17:57:47 +0200 Subject: [PATCH] add hyprland config --- hosts/common/default.nix | 1 - users/willifan/applications.nix | 3 - users/willifan/graphical/hyprland/default.nix | 2 +- .../willifan/graphical/hyprland/hyprland.nix | 261 +++++++++++++++++- 4 files changed, 261 insertions(+), 6 deletions(-) diff --git a/hosts/common/default.nix b/hosts/common/default.nix index 9fcca98..2a473f0 100644 --- a/hosts/common/default.nix +++ b/hosts/common/default.nix @@ -11,7 +11,6 @@ nixpkgs.config.allowUnfree = true; services.hardware.bolt.enable = true; services.fprintd.enable = true; - programs.hyprland.enable = true; nix.settings.experimental-features = [ "nix-command" "flakes" ]; system.stateVersion = "23.11"; } \ No newline at end of file diff --git a/users/willifan/applications.nix b/users/willifan/applications.nix index e74ccaa..2c0ff12 100644 --- a/users/willifan/applications.nix +++ b/users/willifan/applications.nix @@ -2,9 +2,6 @@ { environment.systemPackages = with pkgs; [ - hyprlock - hypridle - hyprpaper hyprcursor grim slurp diff --git a/users/willifan/graphical/hyprland/default.nix b/users/willifan/graphical/hyprland/default.nix index 1ef9dc8..56ef9a5 100644 --- a/users/willifan/graphical/hyprland/default.nix +++ b/users/willifan/graphical/hyprland/default.nix @@ -3,7 +3,7 @@ { imports = [ ./hypridle.nix - #./hyprland.nix + ./hyprland.nix ./hyprlock.nix ./hyprpaper.nix #./kanshi.nix diff --git a/users/willifan/graphical/hyprland/hyprland.nix b/users/willifan/graphical/hyprland/hyprland.nix index e8ce3aa..0a766de 100644 --- a/users/willifan/graphical/hyprland/hyprland.nix +++ b/users/willifan/graphical/hyprland/hyprland.nix @@ -5,7 +5,266 @@ enable = true; settings = { + misc = { + disable_hyprland_logo=true; + }; + + monitor = [ + ", preffered, auto, 1" + "eDP-1, preferred, 0x0, 1.6" + ]; + # Execute your favorite apps at launch + exec-once = [ + ''kanshi & hyprpaper & hypridle &"'' + + ''hyprctl dispatch exec "[workspace 1 silent] kitty"'' + ''hyprctl dispatch exec "[workspace 2 silent] firefox"'' + #''hyprctl dispatch exec "[workspace 3 silent] "'' + #''hyprctl dispatch exec "[workspace 4 silent] "'' + #''hyprctl dispatch exec "[workspace 8 silent] "'' + ''hyprctl dispatch exec "[workspace 9 silent] webcord"'' + ''hyprctl dispatch exec "[workspace special:ctrl silent] dolphin"'' + ''hyprctl dispatch exec "[workspace special:alt silent] obsidian"'' + ''hyprctl dispatch exec "[workspace special:altgr silent] thunderbird"'' + #''exec-once = hyprctl dispatch exec "[workspace special:strg silent] "'' + ]; + + xwayland.force_zero_scaling = true; + + env = [ + "XCURSOR_SIZE, 24" + "HYPRCURSOR_SIZE,48" + ]; + + input = { + kb_layout = "de"; + kb_variant = ""; + kb_model = ""; + kb_options = ""; + kb_rules = ""; + + follow_mouse = 1; + + touchpad.natural_scroll = "yes"; + + sensitivity = -0.8; # -1.0 - 1.0, 0 means no modification. + numlock_by_default = 1; + special_fallthrough = true; + }; + + + + general = { + + gaps_in = 2; + gaps_out = 5; + border_size = 2; + "col.active_border" = "rgba(ffa44bee)"; + "col.inactive_border" = "rgba(595959aa)"; + + layout = "dwindle"; + + resize_on_border = true; + }; + + decoration = { + + rounding = 10; + + blur = { + enabled = false; + size = 3; + passes = 1; + new_optimizations = 1; + }; + + drop_shadow = "yes"; + shadow_range = 4; + shadow_render_power = 3; + "col.shadow" = "rgba(1a1a1aee)"; + }; + + misc = { + vfr = true; + mouse_move_enables_dpms = true; + }; + + animations = { + enabled = "yes"; + + bezier = "myBezier, 0.05, 0.9, 0.1, 1.05"; + + animation = [ + "windows, 1, 7, myBezier" + "windowsOut, 1, 7, default, popin 80%" + "border, 1, 10, default" + "borderangle, 1, 8, default" + "fade, 1, 7, default" + "workspaces, 1, 6, default" + "specialWorkspace, 1, 8, default, slidefadevert 20%" + ]; + }; + + dwindle = { + 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 = { + new_is_master = true; + }; + + gestures = { + workspace_swipe = "on"; + workspace_swipe_create_new = "false"; + }; + + device = { + name = "pixa3854:00-093a:0274-touchpad"; + sensitivity = 0; + natural_scroll = "yes"; + }; + + windowrule = [ + "idleinhibit fullscreen, ^(firefox)$" + "float, ^(org.kde.dolphin)$" + "float, ^(org.gnome.FileRoller)$" + "stayfocused, title:^(Enpass Assistant)$" + "pin, title:^(Enpass Assistant)$" + "center, title:^(Enpass Assistant)$" + "float, ^(Enpass)$" + "center, ^(Enpass)$" + "float, ^(blueman-manager)$" + "move -0% 0%, ^(blueman-manager)$" + "float, ^(org.gnome.Calendar)$" + "move 20% 5%, ^(org.gnome.Calendar)$" + "size 60% 60%, ^(org.gnome.Calendar)$" + "float, ^(org.gnome.Calculator)$" + ]; + + windowrulev2 = [ + "center, xwayland:(1)" + "nofocus,class:^jetbrains-(?!toolbox),floating:1,title:^win\d+$" + ''workspace +0, workspace:name:special:ctrl, floating:0'' + ''float, workspace:name:special:altgr, onworkspace:w[2]'' + ''float, workspace:name:special:strg, onworkspace:w[1]'' + ''workspace +0, workspace:name:special:strg, floating:0'' + ]; + + "$mainMod" = "SUPER"; + + bind = [ + ''$mainMod, Q, exec, kitty'' + ''$mainMod, C, killactive, '' + ''$mainMod, M, exit, '' + ''$mainMod, E, exec, dolphin'' + ''$mainMod, V, togglefloating, '' + ''$mainMod, R, exec, wofi --show drun'' + ''$mainMod, J, togglesplit, # dwindle'' + ''$mainMod, P, exec, enpass'' + ''$mainMod, T, exec, hyprctl dispatch exec "[float; pin; size 40% 40%; move 100%-41% 40] kitty bpytop -b proc"'' + ''$mainMod, W, exec, networkmanager_dmenu'' + ''$mainMod, F, fullscreen'' + + # Move focus with mainMod + arrow keys + ''$mainMod, left, movefocus, l'' + ''$mainMod, right, movefocus, r'' + ''$mainMod, up, movefocus, u'' + ''$mainMod, down, movefocus, d'' + + '', XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle'' + '', XF86AudioPrev, exec, playerctl previous'' + '', XF86AudioPlay, exec, playerctl play-pause'' + '', XF86AudioNext, exec, playerctl next'' + '', print, exec, grim -g "$(slurp)" - | wl-copy -t image/png'' + + # Switch workspaces with mainMod + [0-9] + ''$mainMod, 1, exec, $SCRIPTS/workspaces.sh 1'' + ''$mainMod, 2, exec, $SCRIPTS/workspaces.sh 2'' + ''$mainMod, 3, exec, $SCRIPTS/workspaces.sh 3'' + ''$mainMod, 4, exec, $SCRIPTS/workspaces.sh 4'' + ''$mainMod, 5, exec, $SCRIPTS/workspaces.sh 5'' + ''$mainMod, 6, exec, $SCRIPTS/workspaces.sh 6'' + ''$mainMod, 7, exec, $SCRIPTS/workspaces.sh 7'' + ''$mainMod, 8, exec, $SCRIPTS/workspaces.sh 8'' + ''$mainMod, 9, exec, $SCRIPTS/workspaces.sh 9'' + + # Move active window to a workspace with mainMod + SHIFT + [0-9] + ''$mainMod SHIFT, 1, movetoworkspace, 1'' + ''$mainMod SHIFT, 2, movetoworkspace, 2'' + ''$mainMod SHIFT, 3, movetoworkspace, 3'' + ''$mainMod SHIFT, 4, movetoworkspace, 4'' + ''$mainMod SHIFT, 5, movetoworkspace, 5'' + ''$mainMod SHIFT, 6, movetoworkspace, 6'' + ''$mainMod SHIFT, 7, movetoworkspace, 7'' + ''$mainMod SHIFT, 8, movetoworkspace, 8'' + ''$mainMod SHIFT, 9, movetoworkspace, 9'' + + # Monitor focus + ''$mainMod ALT, 1, focusmonitor, 0'' + ''$mainMod ALT, 2, focusmonitor, 1'' + ''$mainMod ALT, 3, focusmonitor, 2'' + ''$mainMod ALT, 4, focusmonitor, 3'' + ''$mainMod ALT, 5, focusmonitor, 4'' + ''$mainMod ALT, 6, focusmonitor, 5'' + ''$mainMod ALT, 7, focusmonitor, 6'' + ''$mainMod ALT, 8, focusmonitor, 7'' + ''$mainMod ALT, 9, focusmonitor, 8'' + ''$mainMod ALT, 0, focusmonitor, 9'' + + # Scroll through existing workspaces with mainMod + scroll + ''$mainMod, mouse_down, workspace, e+1'' + ''$mainMod, mouse_up, workspace, e-1'' + ]; + + binde = [ + '', XF86AudioLowerVolume, exec, $SCRIPTS/volume.sh -5'' + '', XF86AudioRaiseVolume, exec, $SCRIPTS/volume.sh 5'' + ]; + + bindel = [ + '', XF86MonBrightnessDown, exec, $SCRIPTS/brightness.sh -4800'' + '', XF86MonBrightnessUp, exec, $SCRIPTS/brightness.sh 4800'' + ]; + + bindr = [ + ''SUPERCTRL, Control_L, togglespecialworkspace, ctrl'' + ''SUPERALT, Alt_L, togglespecialworkspace, alt'' + ''SUPERMOD5, ISO_Level3_Shift, togglespecialworkspace, altgr'' + ''SUPERCTRL, Control_R, togglespecialworkspace, strg'' + ]; + + bindm = [ + # Move/resize windows with mainMod + LMB/RMB and dragging + ''$mainMod, mouse:272, movewindow'' + ''$mainMod, mouse:273, resizewindow'' + ]; + + # ------------------------------------------ + # ######################################## + # ####### Workspaces ########### + # ######################################## + # ------------------------------------------ + + workspace = [ + "1, persistent:true" + "2, persistent:true" + "3, persistent:true" + "4, persistent:true" + "5, persistent:true" + "6, persistent:true" + "7, persistent:true" + "8, persistent:true" + "8, persistent:true" + "9, persistent:true" + + "name:special:ctrl, persistent:true" + "name:special:alt, persistent:true" + "name:special:altgr, persistent:true" + "name:special:strg, persistent:true" + ]; + }; }; }; -} \ No newline at end of file +}