aboutsummaryrefslogtreecommitdiff
path: root/.config/hypr/hyprland.conf
blob: e769f2aea59f9ebccf048979b8996bc56b244df9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
# This is an example Hyprland config file.
#
# Refer to the wiki for more information.

#
# Please note not all available settings / options are set here.
# For a full list, see the wiki
#

# See https://wiki.hyprland.org/Configuring/Monitors/
# monitor=,preferred,auto,1
monitor=eDP-1,1920x1080,1920x0,1
monitor=HDMI-A-1,1920x1080,0x0,1
workspace=HDMI-A-1,1

 See https://wiki.hyprland.org/Configuring/Keywords/ for more

# Execute your favorite apps at launch
exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=$XDG_CURRENT_DESKTOP
exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
exec-once = dunst
exec-once = wlsunset -l 57.4 -L -1.9
exec = ~/.config/hypr/scripts/wallpaper.sh 
exec-once = ~/.config/eww/scripts/monitor.sh
exec = ~/.config/eww/scripts/start.sh
exec-once = swayidle timeout 300 'swaylock -F -i ~/.cache/wallpaper --effect-blur 10x5 --clock --indicator' timeout 600 'hyprctl dispatch dpms off' resume 'hyprctl dispatch dpms on'

exec-once = hyprctl dispatcher focusmonitor 1

# source a file (multi-file configs)
# source = ~/.config/hypr/myColors.conf

# Blur Eww Bar
layerrule = blur, gtk-layer-shell

# Blur Fuzzel background
layerrule = blur, launcher

# Blur notifications background
layerrule = blur, notifications

# Blur Wayprompt background
layerrule = blur, wayprompt

# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
input {
    kb_layout = us,gb
    kb_variant =
    kb_model =
    kb_options =
    kb_rules =

    follow_mouse = 1

    touchpad {
        natural_scroll = no
    }

    sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
}

general {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more

    gaps_in = 5
    gaps_out = 10
    border_size = 2
    col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
    col.inactive_border = rgba(595959aa)
    cursor_inactive_timeout = 4
    layout = dwindle
}

decoration {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more

    rounding = 3
    blur {
       # blur = enabled
       size = 3
       passes = 1
       new_optimizations = on
       }

    drop_shadow = yes
    shadow_range = 8
    shadow_render_power = 3
    col.shadow = rgba(00000080)
    shadow_offset=4 4
}

animations {
    enabled = yes

    # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more

    bezier = myBezier, 0.05, 0.9, 0.1, 1.05

    animation = windows, 1, 7, myBezier
    animation = windowsOut, 1, 7, default, popin 80%
    animation = border, 1, 10, default
    # animation = borderangle, 1, 30, default, loop
    animation = fade, 1, 7, default
    animation = workspaces, 1, 6, default 
}

dwindle {
    # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
    pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
    preserve_split = yes # you probably want this
}

master {
    # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
    new_is_master = true
}

gestures {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more
    workspace_swipe = off
}

# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more
device:epic mouse V1 {
    sensitivity = -0.5
}

misc {
   disable_hyprland_logo = true
}

# Example windowrule v1
# windowrule = float, ^(kitty)$
# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
windowrulev2 = float,class:^(mpv)$
windowrulev2 = size 640 360,class:^(mpv)$
windowrulev2 = move 1200 600,class:^(mpv)$
windowrulev2 = tile, class:^(Spotify)$
windowrulev2 = workspace 6, class:^(Spotify)$
windowrulev2 = workspace 5, class:^(gimp-2.99)$
windowrulev2 = workspace 2, class:^(foot)$
windowrulev2 = workspace 4, class:^(org.telegram.desktop)$
windowrulev2 = workspace 9, class:^(aerc)$

# windowrulev2 = float, splash
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
$mainMod = SUPER

# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, RETURN, exec, foot
bind = $mainMod, W, killactive, 
bind = $mainMod SHIFT, Q, exit,
bind = $mainMod CONTROL, P, exec, ~/.local/bin/powermenu
bind = $mainMod, F, fullscreen,
bind = $mainMod SHIFT, P, pin,
bind = $mainMod SHIFT, F, togglefloating, 
bind = $mainMod, SPACE, exec, fuzzel
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, S, togglesplit, # dwindl

# Move focus with mainMod + arrow keys
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d

# Move focus with mainMod + arrow keys
bind = $mainMod, H, movefocus, l
bind = $mainMod, L, movefocus, r
bind = $mainMod, K, movefocus, u
bind = $mainMod, J, movefocus, d

# Move window with mainMod + SHIFT + arrow keys
bind = $mainMod SHIFT, left, movewindow, l
bind = $mainMod SHIFT, right, movewindow, r
bind = $mainMod SHIFT, up, movewindow, u
bind = $mainMod SHIFT, down, movewindow, d

# Move window with mainMod + SHIFT + arrow keys
bind = $mainMod SHIFT, H, movewindow, l
bind = $mainMod SHIFT, L, movewindow, r
bind = $mainMod SHIFT, K, movewindow, u
bind = $mainMod SHIFT, J, movewindow, d

# Resize window with mainMod + ALT + arrow keys
binde = $mainMod ALT, left, resizeactive, -10 0
binde = $mainMod ALT, right, resizeactive, 10 0
binde = $mainMod ALT, up, resizeactive, 0 -10
binde = $mainMod ALT, down, resizeactive, 0 10

# Resize window with mainMod + ALT + arrow keys
binde = $mainMod ALT, H, resizeactive, -10 0
binde = $mainMod ALT, L, resizeactive, 10 0
binde = $mainMod ALT, K, resizeactive, 0 -10
binde = $mainMod ALT, J, resizeactive, 0 10

# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, focusworkspaceoncurrentmonitor, 1
bind = $mainMod, 2, focusworkspaceoncurrentmonitor, 2
bind = $mainMod, 3, focusworkspaceoncurrentmonitor, 3
bind = $mainMod, 4, focusworkspaceoncurrentmonitor, 4
bind = $mainMod, 5, focusworkspaceoncurrentmonitor, 5
bind = $mainMod, 6, focusworkspaceoncurrentmonitor, 6
bind = $mainMod, 7, focusworkspaceoncurrentmonitor, 7
bind = $mainMod, 8, focusworkspaceoncurrentmonitor, 8
bind = $mainMod, 9, focusworkspaceoncurrentmonitor, 9
# bind = $mainMod, 0, workspace, 10
bind = $mainMod, a, togglespecialworkspace

# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10
bind = $mainMod SHIFT, a, movetoworkspacesilent, special

# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1

# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow

# Audio
bind = , xf86audiomute, exec, ~/.local/bin/statusbar/volumecontrol mute
bind = , xf86audiolowervolume, exec, ~/.local/bin/statusbar/volumecontrol down
bind = , xf86audioraisevolume, exec, ~/.local/bin/statusbar/volumecontrol up

# Brightness
bind = , xf86monbrightnessdown, exec, ~/.local/bin/statusbar/brightnesscontrol down
bind = , xf86monbrightnessup, exec, ~/.local/bin/statusbar/brightnesscontrol up

# Take a screenshot of the focused output and save it into screenshots
bind = , PRINT, exec, grim -o $(hyprctl monitors | grep -B 12 'focused: yes' | grep 'Monitor' | awk '{ print $2 }') -t jpeg ~/Pictures/Screenshots/$(date +%Y-%m-%d_%H-%m-%s).jpg

# Take a screenshot of the selected region
bind = $mainMod, PRINT, exec, grim -t jpeg -g "$(slurp)" ~/Pictures/Screenshots/$(date +%Y-%m-%d_%H-%m-%s).jpg

# Take a screenshot and save it to the clipboard
bind = $mainMod SHIFT, PRINT, exec, grim -g "$(slurp -d)" - | wl-copy

# Swaps the active workspaces between two monitors
bind = $mainMod, Z, swapactiveworkspaces, HDMI-A-1 eDP-1

# Toggle Eww Bar
bind = $mainMod, B, exec, eww kill || ~/.config/eww/scripts/start.sh

# Toggle keyboard layout
bind = $mainMod SHIFT, Y, exec, hyprctl switchxkblayout at-translated-set-2-keyboard next; hyprctl switchxkblayout justine-smithies-jmspicotkl next

# Run Paru update
bind = $mainMod CONTROL, U, exec, foot bash -c 'paru; ~/.config/eww/scripts/arch-updates.sh Refresh'&

# Move focus to the next monitor
bind = $mainMod CONTROL, period, focusmonitor, +1

# trigger when the lid is up
bindl=,switch:off:Lid Switch,exec,hyprctl dispatch dpms on eDP-1
# trigger when the lid is down
bindl=,switch:on:Lid Switch,exec,hyprctl dispatch dpms off eDP-1 && swaylock -F -i ~/.cache/wallpaper --effect-blur 10x5 --clock --indicator