My Nix Configuration
1{ lib, shell }: 2{ 3 "$mod" = "SUPER"; 4 "$satty" = "satty -f -"; 5 6 binde = [ 7 # Media binds that can be held and repeated 8 ", XF86MonBrightnessDown, exec, brightnessctl set 5%-" 9 ", XF86MonBrightnessUp, exec, brightnessctl set +5%" 10 ", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+" 11 ", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-" 12 ]; 13 14 bind = [ 15 "SUPER_SHIFT, F, exec, MOZ_DISABLE_RDD_SANDBOX=1 firefox" 16 "$mod, Return, exec, ghostty" 17 "SUPER_SHIFT, E, exit" 18 19 # Media Binds 20 ", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" 21 ", XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle" 22 ", XF86AudioPlay, exec, playerctl play-pause" 23 ", XF86AudioNext, exec, playerctl next" 24 ", XF86AudioPrev, exec, playerctl previous" 25 26 # Workspace binds 27 "$mod, 1, workspace, 01" 28 "SUPER_SHIFT, 1, hy3:movetoworkspace, 01" 29 "$mod, 2, workspace, 02" 30 "SUPER_SHIFT, 2, hy3:movetoworkspace, 02" 31 "$mod, 3, workspace, 03" 32 "SUPER_SHIFT, 3, hy3:movetoworkspace, 03" 33 "$mod, 4, workspace, 04" 34 "SUPER_SHIFT, 4, hy3:movetoworkspace, 04" 35 "$mod, 5, workspace, 05" 36 "SUPER_SHIFT, 5, hy3:movetoworkspace, 05" 37 "$mod, 6, workspace, 06" 38 "SUPER_SHIFT, 6, hy3:movetoworkspace, 06" 39 "$mod, 7, workspace, 07" 40 "SUPER_SHIFT, 7, hy3:movetoworkspace, 07" 41 "$mod, 8, workspace, 08" 42 "SUPER_SHIFT, 8, hy3:movetoworkspace, 08" 43 "$mod, 9, workspace, 09" 44 "SUPER_SHIFT, 9, hy3:movetoworkspace, 09" 45 "$mod, 0, workspace, 10" 46 "SUPER_SHIFT, 0, hy3:movetoworkspace, 10" 47 # Scratchpad 48 "SUPER_SHIFT, -, hy3:movetoworkspace, special:default" 49 "$mod, -, togglespecialworkspace, default" 50 51 # Window Management 52 "SUPER_SHIFT, Up, hy3:movewindow, up, once, visible" 53 "SUPER_SHIFT, K, hy3:movewindow, up, once, visible" 54 "$mod, Up, hy3:movefocus, up, visible, warp" 55 "$mod, K, hy3:movefocus, up, visible, warp" 56 57 "SUPER_SHIFT, Right, hy3:movewindow, right, once, visible" 58 "SUPER_SHIFT, L, hy3:movewindow, right, once, visible" 59 "$mod, Right, hy3:movefocus, right, visible, warp" 60 "$mod, L, hy3:movefocus, right, visible, warp" 61 62 "SUPER_SHIFT, Left, hy3:movewindow, left, once, visible" 63 "SUPER_SHIFT, H, hy3:movewindow, left, once, visible" 64 "$mod, Left, hy3:movefocus, left, visible, warp" 65 "$mod, H, hy3:movefocus, left, visible, warp" 66 67 "SUPER_SHIFT, Down, hy3:movewindow, down, once, visible" 68 "SUPER_SHIFT, J, hy3:movewindow, down, once, visible" 69 "$mod, Down, hy3:movefocus, down, visible, warp" 70 "$mod, J, hy3:movefocus, down, visible, warp" 71 72 "SUPER_SHIFT, Q, killactive" 73 "$mod, F, fullscreen, 0" 74 # Super-(literal equals) 75 "$mod, code:21, hy3:togglefocuslayer" 76 # Super-(literal plus) 77 "SUPER_SHIFT, code:21, togglefloating, active" 78 79 # Screenshots 80 "SHIFT, F3, exec, hyprshot -m output --raw -z -s | $satty" 81 "SHIFT, F4, exec, hyprshot -m region --raw -z -s | $satty" 82 ] 83 ++ lib.optionals (shell == "caelestia") [ 84 "$mod, X, global, caelestia:session" 85 ", XF86PowerOff , global, caelestia:session" 86 "$mod, Space, global, caelestia:launcher" 87 ] 88 ++ lib.optionals (shell == "dms") [ 89 "$mod, X, exec, dms ipc call powermenu toggle" 90 ", XF86PowerOff ,exec, dms ipc call powermenu toggle" 91 "SUPER_SHIFT, X, exec, dms ipc call lock lock" 92 "$mod, Space, exec, dms ipc call spotlight toggle" 93 ]; 94 95 bindm = [ 96 "$mod, mouse:272, movewindow" 97 ]; 98 99 # Unbind a bunch of default keybinds 100 unbind = [ 101 "$mod, C" 102 "$mod, E" 103 "$mod, J" 104 "$mod, M" 105 "$mod, P" 106 "$mod, Q" 107 "$mod, R" 108 "$mod, V" 109 ]; 110}