{ lib, config, pkgs, ... }: let cfg = config.homeModules.desktop.wayland.windowManager.hyprland; in { wayland.windowManager.hyprland.settings = lib.mkIf cfg.enable { bind = let terminal = config.home.sessionVariables.TERMINAL; browser = config.home.sessionVariables.BROWSER; editor = config.home.sessionVariables.EDITOR; locker = config.home.sessionVariables.LOCKER; spotifyctl = "${pkgs.spotify-player}/bin/spotify_player"; discord = "${pkgs.vesktop}/bin/vesktop"; explorer = "${pkgs.cinnamon.nemo-with-extensions}/bin/nemo"; password = "${pkgs._1password-gui}/bin/1password"; in [ # Program Launch "SUPER, b, exec, ${browser}" "SUPER, return, exec, ${terminal}" "SUPER, e, exec, ${terminal} ${editor}" "SUPERSHIFT, P, exec, ${password}" "SUPER, d, exec, ${discord}" "SUPERSHIFT, e, exec, ${explorer}" "SUPERSHIFT, S, exec, steam" # Spotify PLayer Controls "SUPER, bracketright, exec, ${spotifyctl} playback next" "SUPER, bracketleft, exec, ${spotifyctl} playback previous" "SUPER, backslash, exec, ${spotifyctl} playback play-pause" # Screenshot ", Print, exec, grimblast --notify --cursor copysave area" "SUPER, Print, exec, grimblast --notify --cursor copysave screen" # Brightness ",XF86MonBrightnessUp, exec, hyprbrightness up" ",XF86MonBrightnessDown, exec, hyprbrightness down" # Volume ",XF86AudioRaiseVolume, exec, hyprvolume up" ",XF86AudioLowerVolume, exec, hyprvolume down" ",XF86AudioMute, exec, hyprvolume mute" # Window Management "SUPER, Q, killactive" "SUPER CTRL, backspace, killactive" "SUPERSHIFT ALT, delete, exec, hyprkillsession" "SUPER, F, fullscreen" "SUPER, Space, togglefloating" "SUPER, P, pseudo" # dwindle "SUPER, S, togglesplit" # dwindle # Focus "SUPER, left, movefocus,l" "SUPER, right, movefocus,r" "SUPER, up, movefocus,u" "SUPER, down, movefocus,d" # Move "SUPERSHIFT, left, movewindow,l" "SUPERSHIFT, right, movewindow,r" "SUPERSHIFT, up, movewindow,u" "SUPERSHIFT, down, movewindow,d" #Resize "SUPER CTRL, left, resizeactive,-20 0" "SUPERCTRL, right, resizeactive,20 0" "SUPER CTRL, up, resizeactive,0 -20" "SUPERCTRL, down, resizeactive,0 20" # Switch workspace "SUPER, 1, workspace,1" "SUPER, 2, workspace,2" "SUPER, 3, workspace,3" "SUPER, 4, workspace,4" "SUPER, 5, workspace,5" "SUPER, 6, workspace,6" "SUPER, 7, workspace,7" "SUPER, 8, workspace,8" "SUPER, 9, workspace,9" "SUPER, 0, workspace,10" "SUPER, comma, workspace,e+1" "SUPER, period, workspace,e-1" "SUPER, tab, focusCurrentOrLast" # Move workspace "SUPERSHIFT, 1, movetoworkspace,1" "SUPERSHIFT, 2, movetoworkspace,2" "SUPERSHIFT, 3, movetoworkspace,3" "SUPERSHIFT, 4, movetoworkspace,4" "SUPERSHIFT, 5, movetoworkspace,5" "SUPERSHIFT, 6, movetoworkspace,6" "SUPERSHIFT, 7, movetoworkspace,7" "SUPERSHIFT, 8, movetoworkspace,8" "SUPERSHIFT, 9, movetoworkspace,9" "SUPERSHIFT, 0, movetoworkspace,10" # Lock Screen "SUPER, Backspace, exec, ${locker}" ]; # Mouse bindm = [ "SUPER, mouse:272, movewindow" "SUPER, mouse:273, resizewindow" ]; bindr = [ "SUPER, SUPER_L, exec, killall anyrun | anyrun" ]; }; }