Add Hyprland, attempt generalization

This commit is contained in:
Jimbo 2024-12-08 06:41:06 -05:00
parent 590430f296
commit a0cc623c4b
57 changed files with 634 additions and 385 deletions

View file

@ -0,0 +1,84 @@
# Sway Window Manager Hotkeys
## Application Launchers
| Key Combination | Action |
|----------------------|-------------------------------------------|
| Win + F1 | Launch **LibreWolf** (Jim profile) |
| Win + F2 | Launch **LibreWolf** (Alt profile) |
| Win + F3 | Launch **LibreWolf** (Misc profile) |
| Win + F4 | Launch **Discord** |
| Win + F5 | Launch **Steam** |
| Win + F6 | Launch **Heroic Games** |
| Win + F7 | Launch **Looking Glass** VM Client |
| Win + F10 | Launch **Virt-Manager** |
| Win + F11 | Open **Rofi Scratchpads** |
| Win + F12 | Open **NixOS Configuration Files** |
## Window Management
| Key Combination | Action |
|----------------------|-------------------------------------------|
| Win + Arrows | Focus in the specified direction |
| Win + Shift + Arrows | Move window in the specified direction |
| Win + Shift + Space | Toggle window floating |
| Win + Space | Switch focus between floating/tiled |
| Win + Shift + {1-9} | Move window to a workspace and focus |
| Win + {1-9} | Switch to specified workspace |
| Win + 0 | Pin window and toggle border |
| Win + F | Toggle fullscreen |
| Win + Shift + R | Reload configuration |
| Win + Q | Close the current window |
## Layout Management
| Key Combination | Action |
|----------------------|-------------------------------------------|
| Win + W | Toggle split layout |
| Win + E | Toggle tabbed/stacking layout |
| Win + H/V | Split window horizontally/vertically |
| Win + A/D | Focus parent/child container |
## Volume and Media Controls
| Key Combination | Action |
|----------------------|-------------------------------------------|
| XF86AudioRaiseVolume | Raise system volume |
| XF86AudioLowerVolume | Lower system volume |
| XF86AudioMute | Mute/unmute audio |
| XF86AudioPlay | Toggle media playback |
| XF86AudioNext | Skip to the next track |
| XF86AudioPrev | Go to the previous track |
## Screenshot and Brightness Controls
| Key Combination | Action |
|----------------------|-------------------------------------------|
| Print | Take a screenshot |
| Shift + Print | Screenshot of the current window |
| Brightness Up + Down | Change screen brightness |
## Scratchpads
| Key Combination | Action |
|----------------------|-------------------------------------------|
| Ctrl + Shift + Escape | Open **Gotop** (monitoring) |
| Win + Shift + M | Open **Music** scratchpad |
| Win + Shift + V | Open **Sound Settings** scratchpad |
| Win + Shift + Backslash | Open **EasyEffects** scratchpad |
## Special Sway Tools
| Key Combination | Action |
|----------------------|-------------------------------------------|
| Win + Escape | **Kill** selected window |
| Win + Ctrl + X | **Inspect** window properties |
| Win + Ctrl + Prior/Next | Switch OBS scene to **Main**/**Guest** |
## Miscellaneous
| Key Combination | Action |
|----------------------|-------------------------------------------|
| Win + Return | Open **Foot terminal** |
| Win + S | Open **Rofi (run commands)** |
| Win + C | Open **Clipman (clipboard manager)** |
| Win + X | Open **Power Menu** |
| Win + B | Show/Hide **Waybar** |
## Workspaces (Alternate)
| Key Combination | Action |
|----------------------|-------------------------------------------|
| Alt + F1-F9 | Switch to alternate workspace |
| Alt + Shift + F1-F9 | Move window to alt workspace and focus |

View file

@ -0,0 +1,166 @@
{ pkgs, config, ... }:
{
wayland.windowManager.hyprland.settings = let
# Set default modifier and variables
primeMod = "Super";
secMod = "Alt";
resizeAmount = "55";
in {
bind = [
## Launchers
# Browser
''${primeMod}, F1, exec, librewolf -p Main --name MainBrowser | notify-send "Main Browser"''
''${primeMod}, F2, exec, librewolf -p Alt --name AltBrowser | notify-send "Alternate Browser"''
''${primeMod}, F3, exec, librewolf -p Misc --name MiscBrowser | notify-send "Miscellaneous Browser"''
# Virtual machines
''${primeMod}, F4, exec, virt-manager | notify-send "Virtual Machines"''
''${primeMod}, F5, exec, looking-glass-client input:rawMouse=yes | notify-send "Looking Glass"''
# Prime + key
"${primeMod}, s, exec, rofi -show run -p Command"
"${primeMod}, c, exec, clipman pick -t rofi"
"${primeMod}, x, exec, rofiscripts --power"
"${primeMod}, b, exec, pkill -USR1 waybar"
"${primeMod}, Return, exec, foot"
# Prime + shift + key
"${primeMod} Shift, s, exec, rofi -show drun -modi drun -drun-display-format {name} -show-icons -disable-history"
"${primeMod} Shift, t, exec, pcmanfm"
"${primeMod} Shift, e, exec, bemoji -n -P 0"
"${primeMod} Shift, b, exec, rofi-bluetooth"
"${primeMod} Shift, Return, exec, foot ranger"
# Prime + ctrl + key
"${primeMod} Ctrl, s, exec, rofiscripts --scratchpads"
''${primeMod} Ctrl, c, exec, wlpicker && notify-send "Color copied to clipboard"''
## Media
# Volume
"${secMod}, j, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
"${secMod}, k, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
# MPD
"${primeMod}, Backslash, exec, mpc toggle"
"${secMod} Shift, h, exec, mpc prev"
"${secMod} Shift, j, exec, mpc volume -3"
"${secMod} Shift, k, exec, mpc volume +3"
"${secMod} Shift, l, exec, mpc next"
## Miscellaneous
# Notifications
"${primeMod}, n, exec, makotoggle"
"${primeMod} Shift, n, exec, makoctl restore"
"${primeMod} Ctrl, n, exec, makoctl dismiss -a"
# Screenshots
''${secMod}, f, exec, XDG_SCREENSHOTS_DIR="$HOME/Pictures/Screenshots" SLURP_ARGS="-w 3 -c 3823C4 -B 00000066 -b 00000099" grimblast --freeze --notify copysave area''
"${secMod} Shift, f, exec, grimblast --notify copysave output"
"${secMod} Ctrl, f, exec, grimblast --notify copysave active"
# Screenshots
# Display and keyboard brightness
"${primeMod}, equal, exec, light -A 5"
"${primeMod}, minus, exec, light -U 5"
"${primeMod} Shift, equal, exec, light -A 1"
"${primeMod} Shift, minus, exec, light -U 1"
",XF86KbdBrightnessUp, exec, light -s sysfs/leds/smc::kbd_backlight -A 5"
",XF86KbdBrightnessDown, exec, light -s sysfs/leds/smc::kbd_backlight -U 5"
## Window manager
"${primeMod}, q, killactive,"
# Switch to workspaces
"${primeMod}, grave, workspace, name:0"
"${primeMod}, 1, workspace, name:${config.ws.w1}"
"${primeMod}, 2, workspace, name:${config.ws.w2}"
"${primeMod}, 3, workspace, name:${config.ws.w3}"
"${primeMod}, 4, workspace, name:${config.ws.w4}"
"${primeMod}, 5, workspace, name:${config.ws.w5}"
"${primeMod}, 6, workspace, name:${config.ws.w6}"
"${primeMod}, 7, workspace, name:${config.ws.w7}"
"${primeMod}, 8, workspace, name:${config.ws.w8}"
"${primeMod}, 9, workspace, name:${config.ws.w9}"
# Switch to alternate workspaces
"${secMod}, F1, workspace, name:${config.ws.w1a}"
"${secMod}, F2, workspace, name:${config.ws.w2a}"
"${secMod}, F3, workspace, name:${config.ws.w3a}"
"${secMod}, F4, workspace, name:${config.ws.w4a}"
"${secMod}, F5, workspace, name:${config.ws.w5a}"
"${secMod}, F6, workspace, name:${config.ws.w6a}"
"${secMod}, F7, workspace, name:${config.ws.w7a}"
"${secMod}, F8, workspace, name:${config.ws.w8a}"
"${secMod}, F9, workspace, name:${config.ws.w9a}"
# Move window to and focus workspace
"${primeMod} Shift, grave, movetoworkspace, name:${config.ws.w0}"
"${primeMod} Shift, 1, movetoworkspace, name:${config.ws.w1}"
"${primeMod} Shift, 2, movetoworkspace, name:${config.ws.w2}"
"${primeMod} Shift, 3, movetoworkspace, name:${config.ws.w3}"
"${primeMod} Shift, 4, movetoworkspace, name:${config.ws.w4}"
"${primeMod} Shift, 5, movetoworkspace, name:${config.ws.w5}"
"${primeMod} Shift, 6, movetoworkspace, name:${config.ws.w6}"
"${primeMod} Shift, 7, movetoworkspace, name:${config.ws.w7}"
"${primeMod} Shift, 8, movetoworkspace, name:${config.ws.w8}"
"${primeMod} Shift, 9, movetoworkspace, name:${config.ws.w9}"
# Move window to and focus alternate workspace
"${secMod} Shift, F1, movetoworkspace, name:${config.ws.w1a}"
"${secMod} Shift, F2, movetoworkspace, name:${config.ws.w2a}"
"${secMod} Shift, F3, movetoworkspace, name:${config.ws.w3a}"
"${secMod} Shift, F4, movetoworkspace, name:${config.ws.w4a}"
"${secMod} Shift, F5, movetoworkspace, name:${config.ws.w5a}"
"${secMod} Shift, F6, movetoworkspace, name:${config.ws.w6a}"
"${secMod} Shift, F7, movetoworkspace, name:${config.ws.w7a}"
"${secMod} Shift, F8, movetoworkspace, name:${config.ws.w8a}"
"${secMod} Shift, F9, movetoworkspace, name:${config.ws.w9a}"
# Change focused window
"${primeMod}, h, hy3:movefocus, l"
"${primeMod}, j, hy3:movefocus, d"
"${primeMod}, k, hy3:movefocus, u"
"${primeMod}, l, hy3:movefocus, r"
# Move focused window
"${primeMod} Shift, h, hy3:movewindow, l"
"${primeMod} Shift, j, hy3:movewindow, d"
"${primeMod} Shift, k, hy3:movewindow, u"
"${primeMod} Shift, l, hy3:movewindow, r"
# Resize window
"${primeMod} ${secMod}, h, resizeactive, -${resizeAmount} 0"
"${primeMod} ${secMod}, j, resizeactive, 0 -${resizeAmount}"
"${primeMod} ${secMod}, k, resizeactive, 0 ${resizeAmount}"
"${primeMod} ${secMod}, l, resizeactive, ${resizeAmount} 0"
# Floating
"${primeMod}, Space, hy3:togglefocuslayer"
"${primeMod} Shift, Space, togglefloating"
# Change layout
"${primeMod}, f, fullscreen"
"${primeMod}, w, hy3:changegroup, opposite"
"${primeMod}, v, hy3:makegroup, v"
"${primeMod}, e, hy3:changegroup, toggletab"
## Scratchpads
"${primeMod} Shift, Backslash, togglespecialworkspace, btop"
"${primeMod} Shift, m, togglespecialworkspace, music"
"${primeMod} Shift, v, togglespecialworkspace, sound"
];
# Mouse
bindm = [
"${primeMod}, mouse:272, movewindow"
"${primeMod}, mouse:273, resizewindow"
];
bindn = [
",mouse:272, hy3:focustab, mouse"
];
};
}