let common = import ../../common.nix; app = common.default; in { # TODO binds to move focused window wayland.windowManager.hyprland.settings = { "$mainMod" = "SUPER"; "$shiftMod" = "$mainMod SHIFT"; "$menu" = "rofi -show drun"; bind = [ "$mainMod, Q, exec, ${app.terminal}" "$mainMod, C, killactive," "$shiftMod, M, exit," "$mainMod, E, exec, ${app.fileManager}" "$mainMod, V, togglefloating," "$mainMod, R, exec, $menu" "$mainMod, P, pseudo," # dwindle "$mainMod, J, togglesplit," # dwindle "$mainMod, B, exec, ${app.browser}" "$mainMod, L, exec, ${app.lockScreen}" "$mainMod, K, exec, [float] ${app.calculator}" "$mainMod, ESC, exec, wlogout" # Move focus with mainMod + arrow keys "$mainMod, left, movefocus, l" "$mainMod, right, movefocus, r" "$mainMod, up, movefocus, u" "$mainMod, down, movefocus, d" # Switch workspaces with mainMod + [0-9] "$mainMod, 1, workspace, 1" "$mainMod, 2, workspace, 2" "$mainMod, 3, workspace, 3" "$mainMod, 4, workspace, 4" "$mainMod, 5, workspace, 5" "$mainMod, 6, workspace, 6" "$mainMod, 7, workspace, 7" "$mainMod, 8, workspace, 8" "$mainMod, 9, workspace, 9" "$mainMod, 0, workspace, 10" # Move active window to a workspace with mainMod + SHIFT + [0-9] "$shiftMod, 1, movetoworkspace, 1" "$shiftMod, 2, movetoworkspace, 2" "$shiftMod, 3, movetoworkspace, 3" "$shiftMod, 4, movetoworkspace, 4" "$shiftMod, 5, movetoworkspace, 5" "$shiftMod, 6, movetoworkspace, 6" "$shiftMod, 7, movetoworkspace, 7" "$shiftMod, 8, movetoworkspace, 8" "$shiftMod, 9, movetoworkspace, 9" "$shiftMod, 0, movetoworkspace, 10" # Example special workspace (scratchpad) "$mainMod, S, togglespecialworkspace, magic" "$shiftMod, S, movetoworkspace, special:magic" # Scroll through existing workspaces with mainMod + scroll "$mainMod, mouse_down, workspace, e+1" "$mainMod, mouse_up, workspace, e-1" ]; binde = [ # Resize the focused window "$shiftMod, right, resizeactive, 20 0" "$shiftMod, left, resizeactive, -20 0" "$shiftMod, up, resizeactive, 0 -20" "$shiftMod, down, resizeactive, 0 20" ]; bindm = [ # Move/resize windows with mainMod + LMB/RMB and dragging "$mainMod, mouse:272, movewindow" "$mainMod, mouse:273, resizewindow" ]; bindl = [ ", XF86AudioNext, exec, playerctl next" ", XF86AudioPause, exec, playerctl play-pause" ", XF86AudioPlay, exec, playerctl play-pause" ", XF86AudioPrev, exec, playerctl previous" ]; bindel = [ # Laptop multimedia keys for volume and LCD brightness ",XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+" ",XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-" ",XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" ",XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle" ",XF86MonBrightnessUp, exec, brightnessctl s 10%+" ",XF86MonBrightnessDown, exec, brightnessctl s 10%-" ]; }; }