{ pkgs, lib, config, ...}: lib.mkIf config.desktop.hyprland.enable { home-manager.users.willifan = { wayland.windowManager.hyprland = { enable = true; systemd.variables = ["--all"]; package = pkgs.hyprland; settings = { "$SCRIPTS" = "$XDG_CONFIG_HOME/desktop-utils/scripts"; misc = { disable_hyprland_logo=true; }; monitor = [ ", preffered, auto, 1" ] ++ lib.optionals config.desktop.hyprland.hardware.Lenni.enable [ "eDP-1, preferred, 0x0, 1.6" ] ++ lib.optionals config.desktop.hyprland.hardware.Puenktchen.enable [ "desc:ViewSonic Corporation VX2705-2KP W6Z205100250, 2560x1440@144Hz, 0x384, 1.25" "desc:ViewSonic Corporation VX2705-2KP W6Z210400766, 2560x1440@144Hz, 2048x384, 1.25" "desc:BNQ BenQ BL2283 CAM01567019, 1920x1080@60Hz, 4096x0, 1.0, transform, 3" ]; # Execute your favorite apps at launch exec-once = [ ''hyprctl dispatch exec "[workspace 1 silent] zen"'' ''hyprctl dispatch exec "[workspace 2 silent] kitty"'' #''hyprctl dispatch exec "[workspace 3 silent] "'' #''hyprctl dispatch exec "[workspace 4 silent] "'' #''hyprctl dispatch exec "[workspace 8 silent] "'' ''hyprctl dispatch exec "[workspace 9 silent] vesktop"'' ''hyprctl dispatch exec "[workspace special:ctrl silent] thunar"'' ''hyprctl dispatch exec "[workspace special:alt silent] obsidian"'' #''hyprctl dispatch exec "[workspace special:altgr silent]"'' #''hyprctl dispatch exec "[workspace special:strg silent] "'' ]; xwayland.force_zero_scaling = true; input = { kb_layout = "eu"; kb_variant = ""; kb_model = ""; kb_options = ""; kb_rules = ""; follow_mouse = 1; touchdevice.transform = lib.mkIf config.desktop.hyprland.hardware.Lillie.enable 3; 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; }; shadow.enabled = true; 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 }; gestures = { workspace_swipe = "on"; workspace_swipe_create_new = "false"; workspace_swipe_touch = lib.mkIf config.desktop.hyprland.hardware.Lillie.enable "true"; }; device = lib.mkIf config.desktop.hyprland.hardware.Lenni.enable { name = "pixa3854:00-093a:0274-touchpad"; sensitivity = 0; natural_scroll = "yes"; }; windowrule = [ "idleinhibit fullscreen, ^(firefox)$" "float, ^(thunar)$" "stayfocused, title:^(Enpass Assistant)$" "pin, title:^(Enpass Assistant)$" "center, title:^(Enpass Assistant)$" "float, ^(Enpass)$" "center, ^(Enpass)$" ]; 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, thunar'' ''$mainMod, V, togglefloating, '' ''$mainMod, R, exec, fuzzel'' ''$mainMod, P, exec, Enpass'' ''$mainMod, F, fullscreen'' # Move focus with mainMod + arrow keys ''$mainMod, h, movefocus, l'' ''$mainMod, l, movefocus, r'' ''$mainMod, k, movefocus, u'' ''$mainMod, j, 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'' ''SUPERALT, ALT_R, 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" ]; }; }; }; }