99 lines
3.9 KiB
Nix
99 lines
3.9 KiB
Nix
{pkgs, ...}: {
|
|
# TODO: implement a way to show binds, preferably use vicinae.
|
|
wayland.windowManager.hyprland.settings = {
|
|
bindel = [
|
|
", XF86MonBrightnessUp, exec, ddcutil setvcp 10 + 10"
|
|
", XF86MonBrightnessDown, exec, ddcutil setvcp 10 - 10"
|
|
];
|
|
bindm = [
|
|
"SUPER, mouse:272, movewindow"
|
|
"SUPER, mouse:273, resizewindow"
|
|
];
|
|
|
|
bindd =
|
|
[
|
|
# essential
|
|
"SUPER, Return, Open Terminal, exec, uwsm app -- xdg-terminal-exec"
|
|
"SUPER, Q, Kill active, killactive"
|
|
"SUPER, SPACE, Open Vicinae, exec, vicinae toggle"
|
|
|
|
# resize
|
|
"SUPER CTRL, H, Resize Left, resizeactive, -40 0"
|
|
"SUPER CTRL, J, Resize Down, resizeactive, 0 40"
|
|
"SUPER CTRL, K, Resize Up, resizeactive, 0 -40"
|
|
"SUPER CTRL, L, Resize Right, resizeactive, 40 0"
|
|
|
|
# move focus
|
|
"SUPER, J, Move focus down, movefocus, d"
|
|
"SUPER, K, Move focus up, movefocus, u"
|
|
"SUPER, H, Move focus left, movefocus, l"
|
|
"SUPER, L, Move focus right, movefocus, r"
|
|
|
|
# move window
|
|
"SUPER SHIFT, h, Move window left, movewindow, l"
|
|
"SUPER SHIFT, j, Move window down, movewindow, d"
|
|
"SUPER SHIFT, k, Move window up, movewindow, u"
|
|
"SUPER SHIFT, l, Move window right, movewindow, r"
|
|
|
|
# fullscreen
|
|
"SUPER, F, Toggle Fullscreen, fullscreen, 0"
|
|
"SUPER SHIFT, F, Toggle Maximized Fullscreen, fullscreen, 1"
|
|
|
|
# layout
|
|
"SUPER, O, Toggle Split, layoutmsg, togglesplit"
|
|
|
|
# apps
|
|
"SUPER, W, Open Browser, exec, uwsm app -- firefox" # TODO: must be modular
|
|
# "SUPER, SPACE, Open App Launcher, exec, nc -U $XDG_RUNTIME_DIR/walker/walker.sock"
|
|
"SUPER, T, Toggle Steam, togglespecialworkspace, steam"
|
|
"SUPER SHIFT, T, Move to Steam Special Workspace, movetoworkspace, special:steam"
|
|
|
|
"SUPER, M, Toggle Music, togglespecialworkspace, music"
|
|
"SUPER SHIFT, M, Move to Music Special Workspace, movetoworkspace, special:music"
|
|
|
|
"SUPER, Y, Toggle YouTube, togglespecialworkspace, youtube"
|
|
"SUPER SHIFT, Y, Move to YouTube Special Workspace, movetoworkspace, special:youtube"
|
|
|
|
"SUPER, P, Toggle Preload, togglespecialworkspace, preload"
|
|
"SUPER SHIFT, P, Move to Preload Special Workspace, movetoworkspace, special:preload"
|
|
|
|
"SUPER SHIFT, T, Move to Steam Special Workspace, movetoworkspace, special:steam"
|
|
"SUPER CTRL, I, Switch Wallpaper, exec, hakase-wallpaper-switch"
|
|
|
|
# Screenshots
|
|
"SUPER, S, Screenshot Region (with edit), exec, screenshot region"
|
|
"SUPER SHIFT, S, Screenshot Active Window, exec, screenshot window"
|
|
"SUPER ALT, S, Quick Screenshot (no edit), exec, screenshot region-save"
|
|
"SUPER ALT SHIFT, S, Screenshot Current Monitor, exec, screenshot screen"
|
|
|
|
# TODO:
|
|
# add text clipping from pictures
|
|
# add screen recording
|
|
|
|
# Special workspace
|
|
"SUPER, U, Toggle Special Workspace, togglespecialworkspace, custom"
|
|
"SUPER SHIFT, U, Move to Special Workspace, movetoworkspace, special:custom"
|
|
|
|
# [Workspaces] Toggle between most recent workspaces
|
|
"SUPER, Tab, Cycle workspaces, workspace, previous"
|
|
|
|
# hyprspace - workspace overview
|
|
"SUPER, E, Toggle Workspace Overview, overview:toggle"
|
|
]
|
|
++ (
|
|
# Generate binds for Super + [1-5] to switch workspaces on current monitor
|
|
# and Super + Shift + [1-5] to move window to workspace on current monitor
|
|
builtins.concatLists (builtins.genList (
|
|
i: let
|
|
ws = i + 1;
|
|
key = toString ws;
|
|
in [
|
|
"SUPER, ${key}, Switch to workspace ${toString ws}, split:workspace, ${toString ws}"
|
|
"SUPER SHIFT, ${key}, Move window to workspace ${toString ws}, split:movetoworkspace, ${toString ws}"
|
|
]
|
|
)
|
|
5)
|
|
);
|
|
};
|
|
}
|