{ lib, config, pkgs, ... }: let cfg = config.ooknet.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" "SUPER, escape, exec, ${terminal} --title=BTOP btop" "SUPER CTRL, return, exec, zellijmenu -n" "SUPER, delete, exec, powermenu -c dmenu" # Spotify PLayer Controls "SUPER, bracketright, exec, ${spotifyctl} playback next" "SUPER, bracketleft, exec, ${spotifyctl} playback previous" "SUPER, backslash, exec, ${spotifyctl} playback play-pause" # 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 CTRL, F, fakefullscreen" "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 rofi || rofi -show drun" # ]; }; }