┌─ NIX ──────────────────────────────────────────────────────────────────────┐
│ {config, ...}: let │
│ inherit (config.ooknet) binds; │
│ in { │
│ wayland.windowManager.hyprland.settings = { │
│ # TODO: build better binds interface │
│ bind = [ │
│ # Program Launch │
│ "SUPER, b, exec, ${binds.browser}" │
│ "SUPER, return, exec, ${binds.terminal}" │
│ "SUPERSHIFT, return, exec, ${binds.terminal} --title=dropdown │
│ " │
│ "SUPER, e, exec, ${binds.terminalLaunch} $EDITOR" │
│ "SUPERSHIFT, P, exec, ${binds.password}" │
│ "SUPERCTRL, P, exec, ${binds.quickpass}" │
│ "SUPER, d, exec, ${binds.discord}" │
│ "SUPERSHIFT, e, exec, ${binds.fileManager}" │
│ "SUPERSHIFT, S, exec, ${binds.steam}" │
│ "SUPERSHIFT, n, exec, ${binds.notes}" │
│ "SUPER, escape, exec, ${binds.btop}" │
│ "SUPER CTRL, return, exec, ${binds.zellijMenu}" │
│ "SUPER, delete, exec, ${binds.powerMenu}" │
│ "SUPERSHIFT, F, exec, ${binds.factorio}" │
│ │
│ # Spotify PLayer Controls │
│ "SUPER, M, exec, ${binds.spotify.launch}" │
│ "SUPER, bracketright, exec, ${binds.spotify.next}" │
│ "SUPER, bracketleft, exec, ${binds.spotify.previous}" │
│ "SUPER, backslash, exec, ${binds.spotify.play}" │
│ │
│ # Brightness │
│ ",XF86MonBrightnessUp, exec, ${binds.brightness.up}" │
│ ",XF86MonBrightnessDown, exec, ${binds.brightness.down}" │
│ │
│ # Volume │
│ ",XF86AudioRaiseVolume, exec, ${binds.volume.up}" │
│ ",XF86AudioLowerVolume, exec, ${binds.volume.down}" │
│ ",XF86AudioMute, exec, ${binds.volume.mute}" │
│ │
│ # Window Management │
│ "SUPER, Q, killactive" │
│ "SUPER CTRL, backspace, killactive" │
│ "SUPERSHIFT ALT, delete, exec, hyprkillsession" │
│ "SUPER, F, fullscreen" │
│ "SUPER CTRL, F, fullscreenstate" │
│ "SUPER, Space, togglefloating" │
│ "SUPER, P, pseudo" # dwindle │
│ "SUPER, S, layoutmsg,togglesplit" # dwindle │
│ │
│ # Focus Arrows │
│ "SUPER, left, movefocus,l" │
│ "SUPER, right, movefocus,r" │
│ "SUPER, up, movefocus,u" │
│ "SUPER, down, movefocus,d" │
│ │
│ # Focus Vim │
│ "SUPER, h, movefocus,l" │
│ "SUPER, l, movefocus,r" │
│ "SUPER, k, movefocus,u" │
│ "SUPER, j, movefocus,d" │
│ │
│ # Move Arrows │
│ "SUPERSHIFT, left, movewindow,l" │
│ "SUPERSHIFT, right, movewindow,r" │
│ "SUPERSHIFT, up, movewindow,u" │
│ "SUPERSHIFT, down, movewindow,d" │
│ │
│ # Move Vim │
│ "SUPERSHIFT, h, movewindow,l" │
│ "SUPERSHIFT, l, movewindow,r" │
│ "SUPERSHIFT, k, movewindow,u" │
│ "SUPERSHIFT, j, 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, period, workspace,e+1" │
│ "SUPER, comma, 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, ${binds.lock}" │
│ ''SUPERSHIFT, mouse_down, exec, hyprctl keyword cursor:zoom_factor "$(hyprct │
│ l getoption cursor:zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor │
│ = 1}; print factor * 1.25}')"'' │
│ ''SUPERSHIFT, mouse_up, exec, hyprctl keyword cursor:zoom_factor "$(hyprctl │
│ getoption cursor:zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = │
│ 1}; print factor / 1.25}')"'' │
│ ]; │
│ # Mouse │
│ bindm = [ │
│ "SUPER, mouse:272, movewindow" │
│ "SUPER, mouse:273, resizewindow" │
│ ]; │
│ # bindr = [ │
│ # "SUPER, SUPER_L, exec, killall rofi || rofi -show drun" │
│ # ]; │
│ }; │
│ } │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ NIX ────────────────────────────────┐
│ {config, ...}: let │
│ inherit (config.ooknet) binds; │
│ in { │
│ wayland.windowManager.hyprland.settings = │
│ { │
│ # TODO: build better binds interface │
│ bind = [ │
│ # Program Launch │
│ "SUPER, b, exec, │
│ ${binds.browser}" │
│ "SUPER, return, exec, │
│ ${binds.terminal}" │
│ "SUPERSHIFT, return, exec, │
│ ${binds.terminal} --title=dropdown" │
│ "SUPER, e, exec, │
│ ${binds.terminalLaunch} $EDITOR" │
│ "SUPERSHIFT, P, exec, │
│ ${binds.password}" │
│ "SUPERCTRL, P, exec, │
│ ${binds.quickpass}" │
│ "SUPER, d, exec, │
│ ${binds.discord}" │
│ "SUPERSHIFT, e, exec, │
│ ${binds.fileManager}" │
│ "SUPERSHIFT, S, exec, │
│ ${binds.steam}" │
│ "SUPERSHIFT, n, exec, │
│ ${binds.notes}" │
│ "SUPER, escape, exec, │
│ ${binds.btop}" │
│ "SUPER CTRL, return, exec, │
│ ${binds.zellijMenu}" │
│ "SUPER, delete, exec, │
│ ${binds.powerMenu}" │
│ "SUPERSHIFT, F, exec, │
│ ${binds.factorio}" │
│ │
│ # Spotify PLayer Controls │
│ "SUPER, M, exec, │
│ ${binds.spotify.launch}" │
│ "SUPER, bracketright, exec, │
│ ${binds.spotify.next}" │
│ "SUPER, bracketleft, exec, │
│ ${binds.spotify.previous}" │
│ "SUPER, backslash, exec, │
│ ${binds.spotify.play}" │
│ │
│ # Brightness │
│ ",XF86MonBrightnessUp, exec, │
│ ${binds.brightness.up}" │
│ ",XF86MonBrightnessDown, exec, │
│ ${binds.brightness.down}" │
│ │
│ # Volume │
│ ",XF86AudioRaiseVolume, exec, │
│ ${binds.volume.up}" │
│ ",XF86AudioLowerVolume, exec, │
│ ${binds.volume.down}" │
│ ",XF86AudioMute, exec, │
│ ${binds.volume.mute}" │
│ │
│ # Window Management │
│ "SUPER, Q, killac │
│ tive" │
│ "SUPER CTRL, backspace, killac │
│ tive" │
│ "SUPERSHIFT ALT, delete, exec, │
│ hyprkillsession" │
│ "SUPER, F, fullsc │
│ reen" │
│ "SUPER CTRL, F, fullsc │
│ reenstate" │
│ "SUPER, Space, toggle │
│ floating" │
│ "SUPER, P, pseudo │
│ " # dwindle │
│ "SUPER, S, layout │
│ msg,togglesplit" # dwindle │
│ │
│ # Focus Arrows │
│ "SUPER, left, movefo │
│ cus,l" │
│ "SUPER, right, movefo │
│ cus,r" │
│ "SUPER, up, movefo │
│ cus,u" │
│ "SUPER, down, movefo │
│ cus,d" │
│ │
│ # Focus Vim │
│ "SUPER, h, movefo │
│ cus,l" │
│ "SUPER, l, movefo │
│ cus,r" │
│ "SUPER, k, movefo │
│ cus,u" │
│ "SUPER, j, movefo │
│ cus,d" │
│ │
│ # Move Arrows │
│ "SUPERSHIFT, left, movewi │
│ ndow,l" │
│ "SUPERSHIFT, right, movewi │
│ ndow,r" │
│ "SUPERSHIFT, up, movewi │
│ ndow,u" │
│ "SUPERSHIFT, down, movewi │
│ ndow,d" │
│ │
│ # Move Vim │
│ "SUPERSHIFT, h, movewi │
│ ndow,l" │
│ "SUPERSHIFT, l, movewi │
│ ndow,r" │
│ "SUPERSHIFT, k, movewi │
│ ndow,u" │
│ "SUPERSHIFT, j, movewi │
│ ndow,d" │
│ │
│ #Resize │
│ "SUPER CTRL, left, resize │
│ active,-20 0" │
│ "SUPERCTRL, right, resize │
│ active,20 0" │
│ "SUPER CTRL, up, resize │
│ active,0 -20" │
│ "SUPERCTRL, down, resize │
│ active,0 20" │
│ │
│ # Switch workspace │
│ "SUPER, 1, worksp │
│ ace,1" │
│ "SUPER, 2, worksp │
│ ace,2" │
│ "SUPER, 3, worksp │
│ ace,3" │
│ "SUPER, 4, worksp │
│ ace,4" │
│ "SUPER, 5, worksp │
│ ace,5" │
│ "SUPER, 6, worksp │
│ ace,6" │
│ "SUPER, 7, worksp │
│ ace,7" │
│ "SUPER, 8, worksp │
│ ace,8" │
│ "SUPER, 9, worksp │
│ ace,9" │
│ "SUPER, 0, worksp │
│ ace,10" │
│ "SUPER, period, worksp │
│ ace,e+1" │
│ "SUPER, comma, worksp │
│ ace,e-1" │
│ "SUPER, tab, focusC │
│ urrentOrLast" │
│ │
│ # Move workspace │
│ "SUPERSHIFT, 1, moveto │
│ workspace,1" │
│ "SUPERSHIFT, 2, moveto │
│ workspace,2" │
│ "SUPERSHIFT, 3, moveto │
│ workspace,3" │
│ "SUPERSHIFT, 4, moveto │
│ workspace,4" │
│ "SUPERSHIFT, 5, moveto │
│ workspace,5" │
│ "SUPERSHIFT, 6, moveto │
│ workspace,6" │
│ "SUPERSHIFT, 7, moveto │
│ workspace,7" │
│ "SUPERSHIFT, 8, moveto │
│ workspace,8" │
│ "SUPERSHIFT, 9, moveto │
│ workspace,9" │
│ "SUPERSHIFT, 0, moveto │
│ workspace,10" │
│ │
│ # Lock Screen │
│ "SUPER, Backspace, exec, │
│ ${binds.lock}" │
│ ''SUPERSHIFT, mouse_down, exec, hyprct │
│ l keyword cursor:zoom_factor "$(hyprctl geto │
│ ption cursor:zoom_factor | awk 'NR==1 {facto │
│ r = $2; if (factor < 1) {factor = 1}; print │
│ factor * 1.25}')"'' │
│ ''SUPERSHIFT, mouse_up, exec, hyprctl │
│ keyword cursor:zoom_factor "$(hyprctl getopt │
│ ion cursor:zoom_factor | awk 'NR==1 {factor │
│ = $2; if (factor < 1) {factor = 1}; print fa │
│ ctor / 1.25}')"'' │
│ ]; │
│ # Mouse │
│ bindm = [ │
│ "SUPER, mouse:272, movewi │
│ ndow" │
│ "SUPER, mouse:273, resize │
│ window" │
│ ]; │
│ # bindr = [ │
│ # "SUPER, SUPER_L, exec, killall rofi │
│ || rofi -show drun" │
│ # ]; │
│ }; │
│ } │
└──────────────────────────────────────────────┘