{ ... }: { flake.lib.hyprlandBinds = { lib, dmsEnabled ? false, dmsIpcBinds }: let workspaceBinds = (builtins.map (i: "Super, ${toString i}, workspace, ${toString i}") (builtins.genList (n: n + 1) 9)) ++ (builtins.map ( i: "ControlSuper, ${toString i}, focusworkspaceoncurrentmonitor, ${toString i}" ) (builtins.genList (n: n + 1) 9)) ++ (builtins.map (i: "ShiftSuper, ${toString i}, movetoworkspacesilent, ${toString i}") ( builtins.genList (n: n + 1) 9 )); in { bind = [ "SUPER,T,exec,kitty" "ControlSuper,T,exec,konsole" "SUPER,D,exec,rofi -show drun" "ControlSuper,D,exec,rofi -show window" "SUPER,E,exec,nemo" "Super, Q, killactive" "ControlSuper, Q, exec, hyprctl kill" "Super, F, fullscreen, 0" "Super, G, fullscreen, 1" "ShiftSuper, F, fullscreenstate, 0 3" "Super, Minus, splitratio, -0.1" "Super, Equal, splitratio, 0.1" "AltSuper, Space, togglefloating" "Super, P, pin" ] ++ lib.optionals dmsEnabled [ "Super, Space, exec, ${dmsIpcBinds.spotlight}" "Super, I, exec, ${dmsIpcBinds.settingsFocus}" "Super, N, exec, ${dmsIpcBinds.notepad}" "ShiftSuper, N, exec, ${dmsIpcBinds.notifications}" "Super, M, exec, ${dmsIpcBinds.processlistFocus}" "Super, L, exec, ${dmsIpcBinds.lock}" "ShiftSuper, V, exec, ${dmsIpcBinds.clipboard}" ] ++ [ "Super, Tab, cyclenext" "Super, Tab, bringactivetotop" "Super, left, movefocus, l" "Super, right, movefocus, r" "Super, up, movefocus, u" "Super, down, movefocus, d" "ShiftSuper, left, movewindow, l" "ShiftSuper, right, movewindow, r" "ShiftSuper, up, movewindow, u" "ShiftSuper, down, movewindow, d" ] ++ workspaceBinds; bindm = [ " , mouse:282, movewindow" "Super, mouse:272, movewindow" "Super, mouse:273, resizewindow" ]; bindl = [ "Super, mouse_up, splitratio, -0.1" "Super, mouse_down, splitratio, 0.1" " , XF86AudioPlay, exec, playerctl play-pause" " , XF86AudioPrev, exec, playerctl previous" " , XF86AudioNext, exec, playerctl next" " , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" " , XF86MonBrightnessDown, exec, brightnessctl s 10%-" " , XF86MonBrightnessUp, exec, brightnessctl s +10%" ]; bindel = [ " , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+" " , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-" ]; }; }