home-config/hypr/hyprland.conf

a3bb1315f922dc106fc027ba7ed8f935e6864750 · 10.0 KB · 335 lines raw

1 exec-once = dbus-update-activation-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP=Hyprland
2
3 #
4 # Please note not all available settings / options are set here.
5 # For a full list, see the wiki
6 #
7
8 # See https://wiki.hyprland.org/Configuring/Monitors/
9 monitor=,preferred,auto,1
10
11 # Set cursor theme
12 env = HYPRCURSOR_THEME,Bibata-Modern-Classic-Hyprland
13 env = HYPRCURSOR_SIZE,24
14 env = XCURSOR_THEME,Bibata-Modern-daed9-v1.0.2-x11
15 env = XCURSOR_SIZE,24
16
17 env = AQ_NO_MODIFIERS,1
18
19 render {
20 explicit_sync = false
21 expand_undersized_textures = false
22 }
23
24 ecosystem {
25 no_update_news = true
26 }
27
28
29 # See https://wiki.hyprland.org/Configuring/Keywords/ for more
30
31 # Execute your favorite apps at launch
32 # exec-once = waybar & hyprpaper & firefox
33
34 # Source a file (multi-file configs)
35 source = ~/.config/hypr/monitors.conf
36
37 # Some default env vars.
38 env = XCURSOR_SIZE,24
39
40 debug {
41 disable_logs = false
42 enable_stdout_logs = true
43 }
44
45 # For all categories, see https://wiki.hyprland.org/Configuring/Variables/
46 input {
47 kb_layout = us
48 kb_variant =
49 kb_model =
50 kb_options =
51 kb_rules =
52 numlock_by_default = true
53
54 follow_mouse = 1
55
56 touchpad {
57 natural_scroll = no
58 middle_button_emulation = true
59 clickfinger_behavior = true
60 }
61
62 sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
63 }
64
65 general {
66 # See https://wiki.hyprland.org/Configuring/Variables/ for more
67
68 gaps_in = 5
69 gaps_out = 10
70 border_size = 2
71 col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
72 col.inactive_border = rgba(595959aa)
73
74 layout = dwindle
75 }
76
77 decoration {
78 # See https://wiki.hyprland.org/Configuring/Variables/ for more
79
80 rounding = 5
81 blur {
82 enabled = yes
83 size = 3
84 passes = 1
85 new_optimizations = on
86 }
87
88 shadow {
89 enabled = true
90 range = 4
91 render_power = 3
92 color = rgba(1a1a1aee)
93 }
94 }
95
96 animations {
97 enabled = yes
98
99 # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
100
101 bezier = myBezier, 0.05, 0.9, 0.1, 1.05
102
103 animation = windows, 1, 7, myBezier
104 animation = windowsOut, 1, 7, default, popin 80%
105 animation = border, 1, 10, default
106 animation = borderangle, 1, 8, default
107 animation = fade, 1, 7, default
108 animation = workspaces, 1, 6, default
109 }
110
111 dwindle {
112 # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
113 pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
114 preserve_split = yes # you probably want this
115 }
116
117 #master {
118 # # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
119 # new_is_master = true
120 #}
121
122 gestures {
123 # See https://wiki.hyprland.org/Configuring/Variables/ for more
124 workspace_swipe = off
125 }
126
127 # Example per-device config
128 # See https://wiki.hyprland.org/Configuring/Keywords/#executing for more
129 device {
130 name = epic-mouse-v1
131 sensitivity = -0.5
132 }
133
134 # Example windowrule v1
135 # windowrule = float, ^(kitty)$
136 # Example windowrule v2
137 # windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
138 # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
139
140
141 # See https://wiki.hyprland.org/Configuring/Keywords/ for more
142 $mainMod = SUPER
143
144 # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
145 bind = $mainMod, Return, exec, foot
146 bind = $mainMod CTRL, Return, exec, foot -a float-foot
147 bind = $mainMod SHIFT, Q, killactive
148 bind = $mainMod SHIFT, E, exit
149 bind = $mainMod SHIFT, Space, togglefloating
150 bind = $mainMod SHIFT, Return, pin, active
151 bind = $mainMod, D, exec, fuzzel --width=35 --font='Hack:weight=bold:size=12' --background-color='282a36fa' --selection-color='3d4460fa' --line-height=20 --border-radius=20
152 bind = $mainMod, P, pseudo, # dwindle
153 bind = $mainMod, J, togglesplit, # dwindle
154 bind = $mainMod, F, fullscreen, 1
155 bind = $mainMod SHIFT, F, fullscreen
156 bind = ,XF86MonBrightnessUp, exec, light -A 10
157 bind = ,XF86MonBrightnessDown, exec, light -U 10
158 bind = ,XF86AudioRaiseVolume, exec, pamixer -i 5
159 bind = ,XF86AudioLowerVolume, exec, pamixer -d 5
160 bind = ,XF86AudioMute, exec, pamixer -t
161 bind = ,XF86AudioPlay, exec, playerctl play-pause
162 bind = ,XF86AudioPause, exec, playerctl play-pause
163 bind = ,XF86AudioNext, exec, playerctl next
164 bind = ,XF86AudioPrev, exec, playerctl previous
165 bind = ,XF86AudioStop, exec, playerctl stop
166
167 # "Auto-connect headphones"
168 bind = $mainMod, H, exec, bluetoothctl connect AC:80:0A:1C:D6:C7
169
170 # Move workspace between monitors
171 bind = $mainMod CTRL SHIFT, left, movecurrentworkspacetomonitor, l
172 bind = $mainMod CTRL SHIFT, right, movecurrentworkspacetomonitor, r
173 bind = $mainMod CTRL SHIFT, up, movecurrentworkspacetomonitor, u
174 bind = $mainMod CTRL SHIFT, down, movecurrentworkspacetomonitor, d
175
176 # Move focus with mainMod + arrow keys
177 bind = $mainMod, left, movefocus, l
178 bind = $mainMod, right, movefocus, r
179 bind = $mainMod, up, movefocus, u
180 bind = $mainMod, down, movefocus, d
181
182 # Move window with mainMod + SHIFT + arrow keys
183 bind = $mainMod SHIFT, left, movewindow, l
184 bind = $mainMod SHIFT, right, movewindow, r
185 bind = $mainMod SHIFT, up, movewindow, u
186 bind = $mainMod SHIFT, down, movewindow, d
187
188 # Switch workspaces with mainMod + [0-9]
189 bind = $mainMod, 1, workspace, 1
190 bind = $mainMod, 2, workspace, 2
191 bind = $mainMod, 3, workspace, 3
192 bind = $mainMod, 4, workspace, 4
193 bind = $mainMod, 5, workspace, 5
194 bind = $mainMod, 6, workspace, 6
195 bind = $mainMod, 7, workspace, 7
196 bind = $mainMod, 8, workspace, 8
197 bind = $mainMod, 9, workspace, 9
198 bind = $mainMod, 0, workspace, 10
199
200 # Move active window to a workspace with mainMod + SHIFT + [0-9]
201 bind = $mainMod SHIFT, 1, movetoworkspace, 1
202 bind = $mainMod SHIFT, 2, movetoworkspace, 2
203 bind = $mainMod SHIFT, 3, movetoworkspace, 3
204 bind = $mainMod SHIFT, 4, movetoworkspace, 4
205 bind = $mainMod SHIFT, 5, movetoworkspace, 5
206 bind = $mainMod SHIFT, 6, movetoworkspace, 6
207 bind = $mainMod SHIFT, 7, movetoworkspace, 7
208 bind = $mainMod SHIFT, 8, movetoworkspace, 8
209 bind = $mainMod SHIFT, 9, movetoworkspace, 9
210 bind = $mainMod SHIFT, 0, movetoworkspace, 10
211
212 # Scroll through existing workspaces with mainMod + scroll
213 bind = $mainMod, mouse_down, workspace, e+1
214 bind = $mainMod, mouse_up, workspace, e-1
215
216 # Move/resize windows with mainMod + LMB/RMB and dragging
217 bindm = $mainMod, mouse:272, movewindow
218 bindm = $mainMod, mouse:273, resizewindow
219
220 # Bind mainMod + L to screenlocker
221 bind = $mainMod, L, exec, hyprlock
222 bind = $mainMod SHIFT, L, exec, loginctl suspend
223
224 # Keybind to toggle "performance mode" (toggles GPU intensive things)
225 bind = $mainMod, F1, exec, ~/.config/hypr/scripts/perf_mode.sh
226
227 bind = $mainMod SHIFT, Z, exec, pypr zoom
228
229 # Keybind for screenshot (satty)
230 bind = $mainMod SHIFT, S, exec, grimblast save output - | satty --fullscreen --copy-command 'wl-copy' --filename -
231 bind = $mainMod, S, exec, grimblast copy area
232 bind = $mainMod, Print, exec, export TEMP=$(mktemp) && grimblast copy area && wl-paste > $TEMP && imv $TEMP && rm $TEMP
233
234 # Keybind for screenshot (old)
235 # bind = $mainMod SHIFT, S, exec, grimblast copy area
236 # bind = $mainMod SHIFT, Print, exec, grimblast edit area
237 # bind = $mainMod, S, exec, imv <(grimblast save area -)
238
239 # Keybind for screenshot (flameshot)
240 #bind = $mainMod SHIFT, S, exec, flameshot gui --raw | wl-copy
241 #bind = $mainMod SHIFT CTRL, S, exec, flameshot gui --raw -d $(( 1000 * $(fuzzel -l0 --dmenu -p"Delay> ") )) | wl-copy
242 #bind = $mainMod, S, exec, flameshot gui
243
244 # Notifications keybinds
245 bind = $mainMod, N, exec, makoctl dismiss
246 bind = $mainMod SHIFT, N, exec, makoctl dismiss -a
247
248 # Color picker
249 bind = $mainMod SHIFT, C, exec, hyprpicker -a
250
251 # LinkedIn Joke (very serious)
252 bind = $mainMod SHIFT CTRL ALT, L, exec, xdg-open https://linkedin.com
253
254 # Window Rules
255
256 # Firefox PiP
257 windowrulev2 = float, class:^(zen-beta)$, title:^(Picture-in-Picture)$
258 windowrulev2 = pin, class:^(zen-beta)$, title:^(Picture-in-Picture)$
259 windowrulev2 = size 22% 22%, class:^(zen-beta)$, title:^(Picture-in-Picture)$
260 windowrulev2 = move 76% 8%, class:^(zen-beta)$, title:^(Picture-in-Picture)$
261
262 # Firefox Sharing Indicator
263 windowrulev2 = float, class:^(firefox)$, title:^(Firefox — Sharing Indicator)$
264 windowrulev2 = size 56 31, class:^(firefox)$, title:^(Firefox — Sharing Indicator)$
265 windowrulev2 = move 50% 0, class:^(firefox)$, title:^(Firefox — Sharing Indicator)$
266 windowrulev2 = suppressevent fullscreen maximize, class:^(firefox)$, title:^(Firefox — Sharing Indicator)$
267
268 # Weather
269 windowrulev2 = float,class:^(ala-wttr)$
270 windowrulev2 = size 822 1026, class:^(ala-wttr)$
271
272 # Floating terminal
273 windowrulev2 = float,class:^(float-foot)$
274 windowrulev2 = size 930 680,class:^(float-foot)$
275 windowrulev2 = center,class:^(float-foot)$
276
277 # Change color of pinned windows
278 windowrulev2 = bordercolor rgba(bf0000ee) rgba(ab00adee) 45deg,pinned:1
279
280 # Fun Keybinds
281 # Subway surfer
282 bind = $mainMod CTRL SHIFT, S, exec, mpv ~/.config/hypr/subwaysurfer.webm
283 windowrulev2 = float,class:^(mpv)$, title:^(subwaysurfer.webm - mpv)$
284 windowrulev2 = size 310 554,class:^(mpv)$, title:^(subwaysurfer.webm - mpv)$
285 windowrulev2 = move 81% 46% ,class:^(mpv)$, title:^(subwaysurfer.webm - mpv)$
286 windowrulev2 = pin,class:^(mpv)$, title:^(subwaysurfer.webm - mpv)$
287
288 # Family guy funny moments
289 bind = $mainMod CTRL SHIFT, F, exec, mpv ~/.config/hypr/family_guy.mp4
290 windowrulev2 = float,class:^(mpv)$, title:^(family_guy.mp4 - mpv)$
291 windowrulev2 = size 595 336,class:^(mpv)$, title:^(family_guy.mp4 - mpv)$
292 windowrulev2 = move 67% 5% ,class:^(mpv)$, title:^(family_guy.mp4 - mpv)$
293 windowrulev2 = pin,class:^(mpv)$, title:^(family_guy.mp4 - mpv)$
294
295 exec-once = ~/.config/hypr/scripts/autostart.sh
296
297 misc {
298 disable_hyprland_logo = true
299 force_default_wallpaper = 0
300 }
301
302 # Cursors!
303 plugin:dynamic-cursors {
304 enabled = true
305 mode = tilt
306 threshold = 2
307 tilt {
308 limit = 5000
309 function = negative_quadratic
310 }
311
312 shake {
313 enabled = true
314 nearest = true
315 threshold = 6.0
316 base = 4.0
317 speed = 4.0
318 influence = 0.0
319
320 limit = 0.0
321
322 timeout = 2000
323
324 effects = true
325
326 ipc = false
327 }
328
329 hyprcursor {
330 nearest = true
331 enabled = true
332 resolution = -1
333 fallback = clientside
334 }
335 }