hyprland
Authored by
mfwolffe <wolffemf@dukes.jmu.edu>
- SHA
94bba4c04d6f80e415376086f0cb0e4211db8e75- Parents
-
1cf54b2 - Tree
7aa024e
94bba4c
94bba4c04d6f80e415376086f0cb0e4211db8e751cf54b2
7aa024e| Status | File | + | - |
|---|---|---|---|
| A |
hypr/config/animations.conf
|
15 | 0 |
| A |
hypr/config/autostart.conf
|
26 | 0 |
| A |
hypr/config/colors.conf
|
13 | 0 |
| A |
hypr/config/decorations.conf
|
24 | 0 |
| A |
hypr/config/defaults.conf
|
15 | 0 |
| A |
hypr/config/environment.conf
|
7 | 0 |
| A |
hypr/config/input.conf
|
10 | 0 |
| A |
hypr/config/keybinds.conf
|
202 | 0 |
| A |
hypr/config/monitor.conf
|
17 | 0 |
| A |
hypr/config/variables.conf
|
84 | 0 |
| A |
hypr/config/windowrules.conf
|
95 | 0 |
| A |
hypr/hyprland.conf
|
22 | 0 |
| A |
hypr/scripts/toggle-flow.sh
|
19 | 0 |
hypr/config/animations.confadded@@ -0,0 +1,15 @@ | |||
| 1 | +# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ | ||
| 2 | +# ┃ (Default) Animations Configuration ┃ | ||
| 3 | +# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ | ||
| 4 | + | ||
| 5 | +# https://wiki.hyprland.org/Configuring/Animations/ | ||
| 6 | + | ||
| 7 | +animations { | ||
| 8 | + enabled = yes | ||
| 9 | + bezier = overshot, 0.13, 0.99, 0.29, 1.1 | ||
| 10 | + animation = windowsIn, 1, 4, overshot, slide | ||
| 11 | + animation = windowsOut, 1, 5, default, popin 80% | ||
| 12 | + animation = border, 1, 5, default | ||
| 13 | + animation = workspacesIn, 1, 6, overshot, slide | ||
| 14 | + animation = workspacesOut, 1, 6, overshot, slidefade 80% | ||
| 15 | +} | ||
hypr/config/autostart.confadded@@ -0,0 +1,26 @@ | |||
| 1 | +# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ | ||
| 2 | +# ┃ Autostart Configuration ┃ | ||
| 3 | +# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ | ||
| 4 | + | ||
| 5 | +source = ~/.config/hypr/config/defaults.conf | ||
| 6 | + | ||
| 7 | +# Autostart wiki https://wiki.hyprland.org/Configuring/Keywords/#executing | ||
| 8 | + | ||
| 9 | +exec-once = swaybg -o \* -i /usr/share/wallpapers/cachyos-wallpapers/limine-splash.png -m fill | ||
| 10 | +exec-once = waybar & | ||
| 11 | +exec-once = fcitx5 -d & | ||
| 12 | +exec-once = mako & | ||
| 13 | +exec-once = nm-applet --indicator & | ||
| 14 | +exec-once = bash -c "mkfifo /tmp/$HYPRLAND_INSTANCE_SIGNATURE.wob && tail -f /tmp/$HYPRLAND_INSTANCE_SIGNATURE.wob | wob & disown" & | ||
| 15 | +exec-once = /usr/lib/polkit-kde-authentication-agent-1 & | ||
| 16 | + | ||
| 17 | +# ## Slow app launch fix | ||
| 18 | +exec-once = systemctl --user import-environment & | ||
| 19 | +exec-once = hash dbus-update-activation-environment 2>/dev/null & | ||
| 20 | +exec-once = dbus-update-activation-environment --systemd & | ||
| 21 | + | ||
| 22 | +# ## file chooser integration and auth prompts | ||
| 23 | +exec-once = /usr/bin/lxqt-policykit & | ||
| 24 | + | ||
| 25 | +# ## Idle configuration | ||
| 26 | +exec-once = $idlehandler | ||
hypr/config/colors.confadded@@ -0,0 +1,13 @@ | |||
| 1 | +# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ | ||
| 2 | +# ┃ Colors Configuration ┃ | ||
| 3 | +# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ | ||
| 4 | + | ||
| 5 | +$cachylgreen = rgba(82dcccff) | ||
| 6 | +$cachymgreen = rgba(00aa84ff) | ||
| 7 | +$cachydgreen = rgba(007d6fff) | ||
| 8 | +$cachylblue = rgba(01ccffff) | ||
| 9 | +$cachymblue = rgba(182545ff) | ||
| 10 | +$cachydblue = rgba(111826ff) | ||
| 11 | +$cachywhite = rgba(ffffffff) | ||
| 12 | +$cachygrey = rgba(ddddddff) | ||
| 13 | +$cachygray = rgba(798bb2ff) | ||
hypr/config/decorations.confadded@@ -0,0 +1,24 @@ | |||
| 1 | +# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ | ||
| 2 | +# ┃ Decorations Configuration ┃ | ||
| 3 | +# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ | ||
| 4 | + | ||
| 5 | +source = ~/.config/hypr/config/colors.conf | ||
| 6 | + | ||
| 7 | +# https://wiki.hyprland.org/Configuring/Variables/#decoration | ||
| 8 | + | ||
| 9 | +decoration { | ||
| 10 | + active_opacity = 1 | ||
| 11 | + rounding = 4 | ||
| 12 | + | ||
| 13 | + # https://wiki.hyprland.org/Configuring/Variables/#blur | ||
| 14 | + blur { | ||
| 15 | + size = 15 | ||
| 16 | + passes = 2 # more passes = more resource intensive. | ||
| 17 | + xray = true | ||
| 18 | + } | ||
| 19 | + | ||
| 20 | + # https://wiki.hyprland.org/Configuring/Variables/#shadow | ||
| 21 | + shadow { | ||
| 22 | + enabled = false | ||
| 23 | + } | ||
| 24 | +} | ||
hypr/config/defaults.confadded@@ -0,0 +1,15 @@ | |||
| 1 | +# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ | ||
| 2 | +# ┃ Defaults Configuration ┃ | ||
| 3 | +# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ | ||
| 4 | + | ||
| 5 | + | ||
| 6 | +# General | ||
| 7 | +$filemanager = dolphin | ||
| 8 | +$applauncher = wofi | ||
| 9 | +$terminal = alacritty | ||
| 10 | +$idlehandler = swayidle -w timeout 300 'swaylock -f -c 000000' before-sleep 'swaylock -f -c 000000' | ||
| 11 | + | ||
| 12 | +# Screenshots | ||
| 13 | +$shot-region = grimblast copy area | ||
| 14 | +$shot-window = grimblast copy active | ||
| 15 | +$shot-screen = grimblast copy output | ||
hypr/config/environment.confadded@@ -0,0 +1,7 @@ | |||
| 1 | +# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ | ||
| 2 | +# ┃ Enviroment Configuration ┃ | ||
| 3 | +# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ | ||
| 4 | + | ||
| 5 | +envd = HYPRCURSOR_SIZE,24 | ||
| 6 | +envd = XCURSOR_SIZE,24 | ||
| 7 | +envd = QT_CURSOR_SIZE,24 | ||
hypr/config/input.confadded@@ -0,0 +1,10 @@ | |||
| 1 | +# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ | ||
| 2 | +# ┃ Input Configuration ┃ | ||
| 3 | +# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ | ||
| 4 | + | ||
| 5 | +# Input wiki https://wiki.hyprland.org/Configuring/Variables/#input | ||
| 6 | + | ||
| 7 | +input { | ||
| 8 | + follow_mouse = 2 # 0|1|2|3 | ||
| 9 | + float_switch_override_focus = 2 | ||
| 10 | +} | ||
hypr/config/keybinds.confadded@@ -0,0 +1,202 @@ | |||
| 1 | + | ||
| 2 | +# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ | ||
| 3 | +# ┃ Keybinds ┃ | ||
| 4 | +# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ | ||
| 5 | + | ||
| 6 | +source = ~/.config/hypr/config/defaults.conf | ||
| 7 | + | ||
| 8 | +# https://wiki.hyprland.org/Configuring/Binds/ | ||
| 9 | +bindd = $mainMod, Q, Closes (not kill) current window, killactive, | ||
| 10 | +bindd = $mainMod, Y, Pin current window (shows on all workspaces), pin | ||
| 11 | +bindd = $mainMod, F, Toggles current window fullscreen mode, fullscreen | ||
| 12 | +bindd = $mainMod, SPACE, Runs your application launcher, exec, $applauncher | ||
| 13 | +bindd = $mainMod, J, Toggles current window split mode, togglesplit, # dwindle | ||
| 14 | +bindd = $mainMod, RETURN, Opens your preferred terminal emulator ($terminal), exec, $terminal | ||
| 15 | +bindd = $mainMod SHIFT, RETURN, Open terminal & attach/create tmux:main, exec, $terminal -e bash -lc 'tmux new -As main' | ||
| 16 | +bindd = $mainMod, E, Opens your preferred filemanager ($filemanager), exec, $filemanager | ||
| 17 | +bindd = $mainMod, V, Switches current window between floating and tiling mode, togglefloating, | ||
| 18 | +bindd = $mainMod SHIFT, M, Exits Hyprland by terminating the user sessions, exec, loginctl terminate-user "" | ||
| 19 | + | ||
| 20 | +bindd = $mainMod, X, Toggles flow (disables flashy animations), exec, ~/.config/hypr/scripts/toggle-flow.sh | ||
| 21 | + | ||
| 22 | +## Layouts | ||
| 23 | +bindd = $mainMod, F10, Toggle master layout, exec, hyprctl keyword general:layout masterq | ||
| 24 | +bindd = $mainMod, F11, Toggle dwindle layout, exec, hyprctl keyword general:layout dwindle | ||
| 25 | + | ||
| 26 | +bindd = , Print, Creates a screenshot of an area, exec, $shot-region$ | ||
| 27 | +bindd = ALT, Print, Creates a screenshot of the active display, exec, $shot-screen | ||
| 28 | +bindd = CTRL, Print, Creates a screenshot of the active window, exec, $shot-window | ||
| 29 | + | ||
| 30 | +# ======= Grouping Windows ======= | ||
| 31 | + | ||
| 32 | +bindd = $mainMod, K, Toggles current window group mode (ungroup all related), togglegroup, | ||
| 33 | +bindd = $mainMod, Tab, Switches to the next window in the group, changegroupactive, f | ||
| 34 | + | ||
| 35 | +# ======= Toggle Gaps ======= | ||
| 36 | + | ||
| 37 | +bindd = $mainMod, G, Remove gaps between window, exec, hyprctl --batch "keyword general:gaps_out 0;keyword general:gaps_in 0" | ||
| 38 | +bindd = $mainMod SHIFT, G, Set CachyOS default gaps, exec, hyprctl --batch "keyword general:gaps_out 5;keyword general:gaps_in 3" | ||
| 39 | + | ||
| 40 | +# ======= Volume Control ======= | ||
| 41 | + | ||
| 42 | +bindel = , XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +5% && pactl get-sink-volume @DEFAULT_SINK@ | grep -oP '\d+(?=%)' | awk '{if($1>100) system("pactl set-sink-volume @DEFAULT_SINK@ 100%")}' && pactl get-sink-volume @DEFAULT_SINK@ | grep -oP '\d+(?=%)' | awk '{print $1}' | head -1 > /tmp/$HYPRLAND_INSTANCE_SIGNATURE.wob # Raise Volume | ||
| 43 | +bindel = , XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -5% && pactl get-sink-volume @DEFAULT_SINK@ | grep -oP '\d+(?=%)' | awk '{print $1}' | head -1 > /tmp/$HYPRLAND_INSTANCE_SIGNATURE.wob # Lower Volume | ||
| 44 | +bindel = , XF86AudioMute, exec, amixer sset Master toggle | sed -En '/\[on\]/ s/.*\[([0-9]+)%\].*/\1/ p; /\[off\]/ s/.*/0/p' | head -1 > /tmp/$HYPRLAND_INSTANCE_SIGNATURE.wob #Mutes player audio | ||
| 45 | + | ||
| 46 | +# ======= Playback Control ======= | ||
| 47 | + | ||
| 48 | +bindd = , XF86AudioPlay, Toggles play/pause, exec, playerctl play-pause | ||
| 49 | +bindd = , XF86AudioNext, Next track, exec, playerctl next | ||
| 50 | +bindd = , XF86AudioPrev, Previous track, exec, playerctl previous | ||
| 51 | + | ||
| 52 | +# ======= Screen Brightness ======= | ||
| 53 | + | ||
| 54 | +bindd = $mainMod, W, Reload/restarts Waybar, exec, killall -SIGUSR2 waybar | ||
| 55 | +bindd = $mainMod, L, Lock the screen, exec, swaylock-fancy -e -K -p 10 -f Hack-Regular | ||
| 56 | + | ||
| 57 | +bindel = , XF86MonBrightnessUp, exec, brightnessctl s +5% #Increases brightness 5% | ||
| 58 | +bindel = , XF86MonBrightnessDown, exec, brightnessctl s 5%- #Decreases brightness 5% | ||
| 59 | + | ||
| 60 | +# ======= Window Actions ======= | ||
| 61 | + | ||
| 62 | +## Move window with mainMod + LMB/RMB and dragging | ||
| 63 | +bindd = $mainMod, mouse:272, Move the window towards a direction, movewindow | ||
| 64 | + | ||
| 65 | +## Move window towards a direction | ||
| 66 | +bindd = $mainMod SHIFT, up, Move active window upwards, movewindow, u | ||
| 67 | +bindd = $mainMod SHIFT, down, Move active window downwards, movewindow, d | ||
| 68 | +bindd = $mainMod SHIFT, left, Move active window to the left, movewindow, l | ||
| 69 | +bindd = $mainMod SHIFT, right, Move active window to the right, movewindow, r | ||
| 70 | + | ||
| 71 | +## Move focus with mainMod + arrow keys | ||
| 72 | +bindd = $mainMod, up, Move focus upwards, movefocus, u | ||
| 73 | +bindd = $mainMod, down, Move focus downwards, movefocus, d | ||
| 74 | +bindd = $mainMod, left, Move focus to the left, movefocus, l | ||
| 75 | +bindd = $mainMod, right, Move focus to the right, movefocus, r | ||
| 76 | + | ||
| 77 | +## Resizing windows | ||
| 78 | +# Activate keyboard window resize mode | ||
| 79 | +# https://wiki.hyprland.org/Configuring/Binds/#submaps | ||
| 80 | +bindd = $mainMod, R, Activates window resizing mode, submap, resize | ||
| 81 | +submap = resize | ||
| 82 | +bindd = , right, Resize to the right (resizing mode), resizeactive, 15 0 | ||
| 83 | +bindd = , left, Resize to the left (resizing mode), resizeactive, -15 0 | ||
| 84 | +bindd = , up, Resize upwards (resizing mode), resizeactive, 0 -15 | ||
| 85 | +bindd = , down, Resize downwards (resizing mode), resizeactive, 0 15 | ||
| 86 | +bindd = , l, Resize to the right (resizing mode), resizeactive, 15 0 | ||
| 87 | +bindd = , h, Resize to the left (resizing mode), resizeactive, -15 0 | ||
| 88 | +bindd = , k, Resize upwards (resizing mode), resizeactive, 0 -15 | ||
| 89 | +bindd = , j, Resize downwards (resizing mode), resizeactive, 0 15 | ||
| 90 | +bindd = , escape, Ends window resizing mode, submap, reset | ||
| 91 | +submap = reset | ||
| 92 | + | ||
| 93 | +# Quick resize window with keyboard | ||
| 94 | +# !!! added $mainMod here because CTRL + SHIFT is used for word selection in various text editors | ||
| 95 | +bindd = $mainMod CTRL, up, Resize upwards, resizeactive, 0 -25 | ||
| 96 | +bindd = $mainMod CTRL, down, Resize downwards, resizeactive, 0 25 | ||
| 97 | +bindd = $mainMod CTRL, left, Resize to the left, resizeactive, -25 0 | ||
| 98 | +bindd = $mainMod CTRL, right, Resize to the right, resizeactive, 25 0 | ||
| 99 | + | ||
| 100 | +bindd = $mainMod CTRL SHIFT, up, Resize upwards, resizeactive, 0 -55 | ||
| 101 | +bindd = $mainMod CTRL SHIFT, down, Resize downwards, resizeactive, 0 55 | ||
| 102 | +bindd = $mainMod CTRL SHIFT, left, Resize to the left, resizeactive, -55 0 | ||
| 103 | +bindd = $mainMod CTRL SHIFT, right, Resize to the right, resizeactive, 55 0 | ||
| 104 | + | ||
| 105 | +bindd = $mainMod ALT CTRL, up, Resize upwards, resizeactive, 0 -85 | ||
| 106 | +bindd = $mainMod ALT CTRL, down, Resize downwards, resizeactive, 0 85 | ||
| 107 | +bindd = $mainMod ALT CTRL, left, Resize to the left, resizeactive, -85 0 | ||
| 108 | +bindd = $mainMod ALT CTRL, right, Resize to the right, resizeactive, 85 0 | ||
| 109 | + | ||
| 110 | +bindd = $mainMod ALT CTRL SHIFT, up, Resize upwards, resizeactive, 0 -115 | ||
| 111 | +bindd = $mainMod ALT CTRL SHIFT, down, Resize downwards, resizeactive, 0 115 | ||
| 112 | +bindd = $mainMod ALT CTRL SHIFT, left, Resize to the left, resizeactive, -115 0 | ||
| 113 | +bindd = $mainMod ALT CTRL SHIFT, right, Resize to the right, resizeactive, 115 0 | ||
| 114 | + | ||
| 115 | +# Resize window with mainMod + LMB/RMB and dragging | ||
| 116 | +bindm = $mainMod, mouse:273, resizewindow #Resize the window towards a direction | ||
| 117 | +bindm = $mainMod, mouse:272, movewindow #Drag window | ||
| 118 | +## Resizing Windows End # | ||
| 119 | + | ||
| 120 | +## Move active window to a workspace with $mainMod + CTRL + [0-9] | ||
| 121 | +bindd = $mainMod CTRL, 1, Move window and switch to workspace 1, movetoworkspace, 1 | ||
| 122 | +bindd = $mainMod CTRL, 2, Move window and switch to workspace 2, movetoworkspace, 2 | ||
| 123 | +bindd = $mainMod CTRL, 3, Move window and switch to workspace 3, movetoworkspace, 3 | ||
| 124 | +bindd = $mainMod CTRL, 4, Move window and switch to workspace 4, movetoworkspace, 4 | ||
| 125 | +bindd = $mainMod CTRL, 5, Move window and switch to workspace 5, movetoworkspace, 5 | ||
| 126 | +bindd = $mainMod CTRL, 6, Move window and switch to workspace 6, movetoworkspace, 6 | ||
| 127 | +bindd = $mainMod CTRL, 7, Move window and switch to workspace 7, movetoworkspace, 7 | ||
| 128 | +bindd = $mainMod CTRL, 8, Move window and switch to workspace 8, movetoworkspace, 8 | ||
| 129 | +bindd = $mainMod CTRL, 9, Move window and switch to workspace 9, movetoworkspace, 9 | ||
| 130 | +bindd = $mainMod CTRL, 0, Move window and switch to workspace 10, movetoworkspace, 10 | ||
| 131 | + | ||
| 132 | +bindd = $mainMod CTRL, left, Move window and switch to the next workspace, movetoworkspace, -1 | ||
| 133 | +bindd = $mainMod CTRL, right, Move window and switch to the previous workspace, movetoworkspace, +1 | ||
| 134 | + | ||
| 135 | +## Same as above, but doesn't switch to the workspace | ||
| 136 | +bindd = $mainMod SHIFT, 1, Move window silently to workspace 1, movetoworkspacesilent, 1 | ||
| 137 | +bindd = $mainMod SHIFT, 2, Move window silently to workspace 2, movetoworkspacesilent, 2 | ||
| 138 | +bindd = $mainMod SHIFT, 3, Move window silently to workspace 3, movetoworkspacesilent, 3 | ||
| 139 | +bindd = $mainMod SHIFT, 4, Move window silently to workspace 4, movetoworkspacesilent, 4 | ||
| 140 | +bindd = $mainMod SHIFT, 5, Move window silently to workspace 5, movetoworkspacesilent, 5 | ||
| 141 | +bindd = $mainMod SHIFT, 6, Move window silently to workspace 6, movetoworkspacesilent, 6 | ||
| 142 | +bindd = $mainMod SHIFT, 7, Move window silently to workspace 7, movetoworkspacesilent, 7 | ||
| 143 | +bindd = $mainMod SHIFT, 8, Move window silently to workspace 8, movetoworkspacesilent, 8 | ||
| 144 | +bindd = $mainMod SHIFT, 9, Move window silently to workspace 9, movetoworkspacesilent, 9 | ||
| 145 | +bindd = $mainMod SHIFT, 0, Move window silently to workspace 10, movetoworkspacesilent, 10 | ||
| 146 | +# Window actions End # | ||
| 147 | + | ||
| 148 | +# ======= Workspace Actions ======= | ||
| 149 | + | ||
| 150 | +# Switch workspaces with mainMod + [0-9] | ||
| 151 | +bindd = $mainMod, 1, Switch to workspace 1, workspace, 1 | ||
| 152 | +bindd = $mainMod, 2, Switch to workspace 2, workspace, 2 | ||
| 153 | +bindd = $mainMod, 3, Switch to workspace 3, workspace, 3 | ||
| 154 | +bindd = $mainMod, 4, Switch to workspace 4, workspace, 4 | ||
| 155 | +bindd = $mainMod, 5, Switch to workspace 5, workspace, 5 | ||
| 156 | +bindd = $mainMod, 6, Switch to workspace 6, workspace, 6 | ||
| 157 | +bindd = $mainMod, 7, Switch to workspace 7, workspace, 7 | ||
| 158 | +bindd = $mainMod, 8, Switch to workspace 8, workspace, 8 | ||
| 159 | +bindd = $mainMod, 9, Switch to workspace 9, workspace, 9 | ||
| 160 | +bindd = $mainMod, 0, Switch to workspace 10, workspace, 10 | ||
| 161 | + | ||
| 162 | +# Scroll through existing workspaces with mainMod + , or . | ||
| 163 | +bindd = $mainMod, COMMA, Scroll through workspaces decrementally, workspace, e-1 | ||
| 164 | +bindd = $mainMod, PERIOD, Scroll through workspaces incrementally, workspace, e+1 | ||
| 165 | + | ||
| 166 | +# With $mainMod + scroll | ||
| 167 | +bindd = $mainMod, slash, Switch to the previous workspace, workspace, previous | ||
| 168 | +bindd = $mainMod, mouse_up, Scroll through workspaces decrementally, workspace, e-1 | ||
| 169 | +bindd = $mainMod, mouse_down, Scroll through workspaces incrementally, workspace, e+1 | ||
| 170 | + | ||
| 171 | +# Special workspaces (scratchpads) | ||
| 172 | +## App-specific workspaces | ||
| 173 | +bindd = $mainMod, Z, toggle zenn scratchpad, togglespecialworkspace, zenn | ||
| 174 | +bindd = $mainMod, T, toggle scratch terminal, togglespecialworkspace, term | ||
| 175 | +bindd = $mainMod, H, toggle guides scratchpad, togglespecialworkspace, guid | ||
| 176 | +bindd = $mainMod, D, toggle discord scratchpad, togglespecialworkspace, disc | ||
| 177 | +bindd = $mainMod, A, toggle audacity scratchpad, togglespecialworkspace, adct | ||
| 178 | +bindd = $mainMod, O, toggle ticktick scratchpad, togglespecialworkspace, tick | ||
| 179 | +bindd = $mainMod, B, toggle bitwarden scratchpad, togglespecialworkspace, bitt | ||
| 180 | +bindd = $mainMod, M, toggle music player scratchpad, togglespecialworkspace, spot | ||
| 181 | +bind = $mainMod, N, exec, hyprctl dispatch workspace special:notes; \ | ||
| 182 | + hyprctl dispatch exec "$terminal -e fish -c 'viewnotes'" | ||
| 183 | + | ||
| 184 | +## Scratchpad | ||
| 185 | +bindd = $mainMod, minus, toggle default scratchpad, togglespecialworkspace, special | ||
| 186 | +bindd = $mainMod SHIFT, minus, send window to scratchpad, movetoworkspacesilent, special | ||
| 187 | + | ||
| 188 | +# ======= Custom Scenes ======= | ||
| 189 | +bindd = $mainMod ALT, 1, toggle scene 1, exec, ~/.config/hypr/scripts/scenes/scene-1.sh | ||
| 190 | +bindd = $mainMod ALT, 2, toggle scene 2, exec, ~/.config/hypr/scripts/scenes/scene-2.sh | ||
| 191 | + | ||
| 192 | + | ||
| 193 | +# ======= Additional Settings ======= | ||
| 194 | + | ||
| 195 | +# https://wiki.hyprland.org/Configuring/Binds | ||
| 196 | +binds { | ||
| 197 | + allow_workspace_cycles = 1 | ||
| 198 | + workspace_back_and_forth = 1 | ||
| 199 | + workspace_center_on = 1 | ||
| 200 | + movefocus_cycles_fullscreen = true | ||
| 201 | + window_direction_monitor_fallback = true | ||
| 202 | +} | ||
hypr/config/monitor.confadded@@ -0,0 +1,17 @@ | |||
| 1 | +# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ | ||
| 2 | +# ┃ Monitor Configuration ┃ | ||
| 3 | +# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ | ||
| 4 | + | ||
| 5 | +# Monitor wiki https://wiki.hyprland.org/Configuring/Monitors/ | ||
| 6 | + | ||
| 7 | +# monitor = , preferred, auto, 1 | ||
| 8 | +monitor = DP-1, 3840x2160@60, 2560x0, 1 | ||
| 9 | +monitor = HDMI-A-1, 2560x1440@60, 0x0, 1 | ||
| 10 | + | ||
| 11 | +# If you need to scale things like steam etc, please uncomment these lines. | ||
| 12 | +#xwayland { | ||
| 13 | +# force_zero_scaling = true # Unscale XWayland | ||
| 14 | +#} | ||
| 15 | + | ||
| 16 | +# Adjust GDK_SCALE accordingly to your liking. | ||
| 17 | +#env = GDK_SCALE, 1.25 # GDK Scaling Factor | ||
hypr/config/variables.confadded@@ -0,0 +1,84 @@ | |||
| 1 | +# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ | ||
| 2 | +# ┃ Variables Configuration ┃ | ||
| 3 | +# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ | ||
| 4 | + | ||
| 5 | +source = ~/.config/hypr/config/colors.conf | ||
| 6 | + | ||
| 7 | +# Monitor globals | ||
| 8 | +$priMon = DP-1 | ||
| 9 | +$secMon = HDMI-A-1 | ||
| 10 | + | ||
| 11 | +# https://wiki.hyprland.org/Configuring/Variables/#general | ||
| 12 | +general { | ||
| 13 | + | ||
| 14 | + gaps_in = 3 | ||
| 15 | + gaps_out = 5 | ||
| 16 | + border_size = 3 | ||
| 17 | + col.active_border = $cachylgreen | ||
| 18 | + col.inactive_border = $cachymblue | ||
| 19 | + layout = dwindle # master|dwindle | ||
| 20 | + | ||
| 21 | + # https://wiki.hyprland.org/Configuring/Variables/#snap | ||
| 22 | + snap { | ||
| 23 | + enabled = true | ||
| 24 | + } | ||
| 25 | + | ||
| 26 | +} | ||
| 27 | + | ||
| 28 | +# https://wiki.hyprland.org/Configuring/Variables/#gestures | ||
| 29 | +gestures { | ||
| 30 | + workspace_swipe = true | ||
| 31 | + workspace_swipe_fingers = 4 | ||
| 32 | + workspace_swipe_distance = 250 | ||
| 33 | + workspace_swipe_min_speed_to_force = 15 | ||
| 34 | + workspace_swipe_create_new = false | ||
| 35 | +} | ||
| 36 | + | ||
| 37 | +# https://wiki.hyprland.org/Configuring/Variables/#group | ||
| 38 | +group { | ||
| 39 | + col.border_active = $cachydgreen | ||
| 40 | + col.border_inactive = $cachylgreen | ||
| 41 | + col.border_locked_active = $cachymgreen | ||
| 42 | + col.border_locked_inactive = $cachydblue | ||
| 43 | + | ||
| 44 | + # https://wiki.hyprland.org/Configuring/Variables/#groupbar | ||
| 45 | + groupbar { | ||
| 46 | + font_family = "Fira Sans" | ||
| 47 | + text_color = $cachydblue | ||
| 48 | + col.active = $cachydgreen | ||
| 49 | + col.inactive = $cachylgreen | ||
| 50 | + col.locked_active = $cachymgreen | ||
| 51 | + col.locked_inactive = $cachydblue | ||
| 52 | + } | ||
| 53 | +} | ||
| 54 | + | ||
| 55 | +# https://wiki.hyprland.org/Configuring/Variables/#misc | ||
| 56 | +misc { | ||
| 57 | + font_family = "Fira Sans" | ||
| 58 | + splash_font_family = "Fira Sans" | ||
| 59 | + disable_hyprland_logo = true | ||
| 60 | + col.splash = $cachylgreen | ||
| 61 | + background_color = $cachydblue | ||
| 62 | + enable_swallow = true | ||
| 63 | + swallow_regex = ^(firefox|nautilus|nemo|thunar|btrfs-assistant.)$ | ||
| 64 | + focus_on_activate = true | ||
| 65 | + vrr = 2 | ||
| 66 | +} | ||
| 67 | + | ||
| 68 | +# https://wiki.hyprland.org/Configuring/Variables/#render | ||
| 69 | +render { | ||
| 70 | + direct_scanout = true | ||
| 71 | +} | ||
| 72 | + | ||
| 73 | +# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more | ||
| 74 | +dwindle { | ||
| 75 | + special_scale_factor = 0.8 | ||
| 76 | + pseudotile = true # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below | ||
| 77 | + preserve_split = true | ||
| 78 | +} | ||
| 79 | + | ||
| 80 | +# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more | ||
| 81 | +master { | ||
| 82 | + new_status = master | ||
| 83 | + special_scale_factor = 0.8 | ||
| 84 | +} | ||
hypr/config/windowrules.confadded@@ -0,0 +1,95 @@ | |||
| 1 | +# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ | ||
| 2 | +# ┃ Windowrules Configuration ┃ | ||
| 3 | +# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ | ||
| 4 | + | ||
| 5 | +# Windows Rules https://wiki.hyprland.org/Configuring/Window-Rules/ # | ||
| 6 | + | ||
| 7 | +# Float Necessary Windows | ||
| 8 | +windowrule = float, class:^(org.pulseaudio.pavucontrol) | ||
| 9 | +windowrule = float, class:^()$,title:^(Picture in picture)$ | ||
| 10 | +windowrule = float, class:^()$,title:^(Save File)$ | ||
| 11 | +windowrule = float, class:^()$,title:^(Open File)$ | ||
| 12 | +windowrule = float, class:^(LibreWolf)$,title:^(Picture-in-Picture)$ | ||
| 13 | +windowrule = float, class:^(blueman-manager)$ | ||
| 14 | +windowrule = float, class:^(xdg-desktop-portal-gtk|xdg-desktop-portal-kde|xdg-desktop-portal-hyprland)(.*)$ | ||
| 15 | +windowrule = float, class:^(polkit-gnome-authentication-agent-1|hyprpolkitagent|org.org.kde.polkit-kde-authentication-agent-1)(.*)$ | ||
| 16 | +windowrule = float, class:^(CachyOSHello)$ | ||
| 17 | +windowrule = float, class:^(zenity)$ | ||
| 18 | +windowrule = float, class:^()$,title:^(Steam - Self Updater)$ | ||
| 19 | + | ||
| 20 | +# Increase the opacity | ||
| 21 | +windowrule = opacity 0.92, class:^(thunar|nemo|dolphin)$ | ||
| 22 | +windowrule = opacity 0.96, class:^(discord)$ | ||
| 23 | + | ||
| 24 | +# General window rules | ||
| 25 | +windowrule = float, title:^(Picture-in-Picture)$ | ||
| 26 | +windowrule = size 960 540, title:^(Picture-in-Picture)$ | ||
| 27 | +windowrule = move 25%-, title:^(Picture-in-Picture)$ | ||
| 28 | +windowrule = float, title:^(imv|mpv|danmufloat|termfloat|nemo|ncmpcpp)$ | ||
| 29 | +windowrule = move 25%-, title:^(imv|mpv|danmufloat|termfloat|nemo|ncmpcpp)$ | ||
| 30 | +windowrule = size 960 540, title:^(imv|mpv|danmufloat|termfloat|nemo|ncmpcpp)$ | ||
| 31 | +windowrule = pin, title:^(danmufloat)$ | ||
| 32 | +windowrule = rounding 5, title:^(danmufloat|termfloat)$ | ||
| 33 | +windowrule = animation slide right, class:^(kitty|Alacritty|ghostty)$ | ||
| 34 | +windowrule = noblur, class:^(org.mozilla.firefox)$ | ||
| 35 | + | ||
| 36 | +# Decorations related to floating windows on workspaces 1 to 10 | ||
| 37 | +windowrule = bordersize 2, floating:1, onworkspace:w[fv1-10] | ||
| 38 | +windowrule = bordercolor $cachylblue, floating:1, onworkspace:w[fv1-10] | ||
| 39 | +windowrule = rounding 8, floating:1, onworkspace:w[fv1-10] | ||
| 40 | + | ||
| 41 | +# Decorations related to tiling windows on workspaces 1 to 10 | ||
| 42 | +windowrule = bordersize 3, floating:0, onworkspace:f[1-10] | ||
| 43 | +windowrule = rounding 4, floating:0, onworkspace:f[1-10] | ||
| 44 | +# Windows Rules End # | ||
| 45 | + | ||
| 46 | +# Workspaces Rules https://wiki.hyprland.org/Configuring/Workspace-Rules/ # | ||
| 47 | +workspace = 1, default:true, monitor:$priMon | ||
| 48 | +workspace = 6, default:true, monitor:$secMon | ||
| 49 | + | ||
| 50 | +# Workspace selectors https://wiki.hyprland.org/Configuring/Workspace-Rules/#workspace-selectors | ||
| 51 | +workspace = r[1-5], monitor:$priMon | ||
| 52 | +workspace = r[6-10], monitor:$secMon | ||
| 53 | +# workspace = special:scratchpad, on-created-empty:$applauncher | ||
| 54 | +# no_gaps_when_only deprecated instead workspaces rules with selectors can do the same | ||
| 55 | + | ||
| 56 | +# Smart gaps from 0.45.0 https://wiki.hyprland.org/Configuring/Workspace-Rules/#smart-gaps | ||
| 57 | +workspace = w[tv1-10], gapsout:5, gapsin:3 | ||
| 58 | +workspace = f[1], gapsout:5, gapsin:3 | ||
| 59 | + | ||
| 60 | +# App -> Workspace Rules | ||
| 61 | +windowrule = workspace 9, class:^(REAPER) | ||
| 62 | +windowrule = workspace 10, class:^(LibreWolf) | ||
| 63 | + | ||
| 64 | +## Empty Workspace -> App Rules | ||
| 65 | +workspace = 8, monitor:@secMon | ||
| 66 | +workspace = 9, on-created-empty:reaper | ||
| 67 | +workspace = 10, on-created-empty:librewolf | ||
| 68 | + | ||
| 69 | +## Empty Special -> App Rules | ||
| 70 | +workspace = special:disc, on-created-empty:discord | ||
| 71 | +workspace = special:term, on-created-empty:ghostty | ||
| 72 | +workspace = special:spot, on-created-empty:spotify | ||
| 73 | +workspace = special:adct, on-created-empty:audacity | ||
| 74 | +workspace = special:tick, on-created-empty:ticktick | ||
| 75 | +workspace = special:zenn, on-created-empty:zen-browser | ||
| 76 | +workspace = special:bitt, on-created-empty:bitwarden-desktop | ||
| 77 | + | ||
| 78 | +# Named special workspaces | ||
| 79 | +windowrule = workspace special:disc, class:^(Discord)$ | ||
| 80 | +windowrule = workspace special:term, class:^(Ghostty)$ | ||
| 81 | +windowrule = workspace special:spot, class:^(Spotify)$ | ||
| 82 | +windowrule = workspace special:adct, class:^(Audacity)$ | ||
| 83 | +windowrule = workspace special:tick, class:^(TickTick)$ | ||
| 84 | +windowrule = workspace special:bitt, class:^(Bitwarden)$ | ||
| 85 | +windowrule = workspace special:zenn, class:^(Zen Browser)$ | ||
| 86 | + | ||
| 87 | + | ||
| 88 | +# Workspaces Rules End # | ||
| 89 | + | ||
| 90 | +# Layers Rules # | ||
| 91 | +layerrule = animation slide top, logout_dialog | ||
| 92 | +# layerrule = animation popin 50%, waybar | ||
| 93 | +layerrule = animation slide down, waybar | ||
| 94 | +layerrule = animation fade 50%, wallpaper | ||
| 95 | +# Layers Rules End # | ||
hypr/hyprland.confadded@@ -0,0 +1,22 @@ | |||
| 1 | +# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ | ||
| 2 | +# ┃ CachyOS Hyprland Configuration ┃ | ||
| 3 | +# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ | ||
| 4 | + | ||
| 5 | +$mainMod = SUPER | ||
| 6 | + | ||
| 7 | +# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ | ||
| 8 | +# ┃ Source Files ┃ | ||
| 9 | +# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ | ||
| 10 | +source = ~/.config/hypr/config/animations.conf | ||
| 11 | +source = ~/.config/hypr/config/autostart.conf | ||
| 12 | +source = ~/.config/hypr/config/decorations.conf | ||
| 13 | +source = ~/.config/hypr/config/environment.conf | ||
| 14 | +source = ~/.config/hypr/config/input.conf | ||
| 15 | +source = ~/.config/hypr/config/keybinds.conf | ||
| 16 | +source = ~/.config/hypr/config/monitor.conf | ||
| 17 | +source = ~/.config/hypr/config/variables.conf | ||
| 18 | +source = ~/.config/hypr/config/windowrules.conf | ||
| 19 | + | ||
| 20 | +# Modifying these configs can be done by creating a user defined config in the home directory, e.g. | ||
| 21 | +## ~/.config/hypr/config/user-config.conf | ||
| 22 | +# source = ~/.config/hypr/config/user-config.conf | ||
hypr/scripts/toggle-flow.shadded@@ -0,0 +1,19 @@ | |||
| 1 | +#!/usr/bin/env bash | ||
| 2 | +# Toggle Hyprland animations on/off at runtime. | ||
| 3 | + | ||
| 4 | +# Read current value (0/1) of animations:enabled | ||
| 5 | +STATE="$(hyprctl -j getoption animations:enabled 2>/dev/null | sed -n 's/.*"int":\s*\([01]\).*/\1/p')" | ||
| 6 | + | ||
| 7 | +if [ "$STATE" = "1" ]; then | ||
| 8 | + # Turn OFF (instant mode) | ||
| 9 | + hyprctl keyword animations:enabled 0 | ||
| 10 | + # (Optional) kill any lingering “special” anim feel by forcing short workspace anims | ||
| 11 | + hyprctl keyword animations:workspacesIn "1 1 default slide" | ||
| 12 | + hyprctl keyword animations:workspacesOut "1 1 default slide" | ||
| 13 | + notify-send "hyprland flow" "animations OFF" | ||
| 14 | +else | ||
| 15 | + # Turn ON (back to your config-defined animations) | ||
| 16 | + hyprctl keyword animations:enabled 1 | ||
| 17 | + hyprctl reload | ||
| 18 | + notify-send "hyprland flow" "animations ON" | ||
| 19 | +fi | ||