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
|
# Main
monitor=eDP-1,preferred,auto,1.25
# Mirror with hdmi
monitor=HDMI-A-1,1920x1080,auto,1.25,mirror,eDP-1
# Mirror through type-c
# monitor=DP-1,1920x1080,auto,1.25,mirror,eDP-1
# # Main
# monitor=eDP-1,800x600,auto,1
# # Mirror with hdmi
# monitor=HDMI-A-1,800x600,auto,1,mirror,eDP-1
# monitor=HDMI-A-1,preferred,auto-left,1
# monitor=HDMI-A-1,1920x1080,auto,1
$terminal = alacritty
# $terminal = wezterm
$menu = wofi --show run
$locker = gtklock
exec-once = hyprpaper & waybar & telegram
exec-once = xss-lock $locker
exec-once = hyprctl setcursor 'rose-pine' 30
exec-once = gsettings set org.gnome.desktop.interface cursor-theme 'rose-pine'
# Source a file (multi-file configs)
# source = ~/.config/hypr/myColors.conf
# Some default env vars.
# env = XCURSOR_SIZE,24
env = QT_QPA_PLATFORMTHEME,qt5ct # change to qt6ct if you have that
input {
kb_layout = us,ru
kb_options = grp:caps_toggle
follow_mouse = 1
scroll_factor = 0.8
touchpad {
natural_scroll = yes
scroll_factor = 0.1
}
}
general {
gaps_in = 5
gaps_out = 10
border_size = 2
col.active_border = rgba(00ff99ee) rgba(33ccffee) 45deg
col.inactive_border = rgba(595959aa)
layout = master
allow_tearing = false
}
decoration {
rounding = 0
shadow {
enabled = false
}
blur {
enabled = false
}
}
animations {
enabled = true
animation = windows, 1, 7, default, popin 80%
animation = windowsOut, 1, 7, default, popin 80%
animation = border, 1, 10, default
animation = borderangle, 1, 8, default
animation = fade, 1, 7, default
animation = workspaces, 1, 6, default
}
dwindle {
preserve_split = yes # you probably want this
}
master {
mfact = 0.5
}
gesture = 3, horizontal, workspace
# gestures {
# workspace_swipe = yes
# workspace_swipe_distance = 1200
# workspace_swipe_min_speed_to_force = 7
# }
misc {
force_default_wallpaper = 0
}
xwayland {
force_zero_scaling = true
}
$LAPTOP_KB_ENABLED = true
device {
name = at-translated-set-2-keyboard
enabled = $LAPTOP_KB_ENABLED
}
windowrulev2 = workspace special:telegram, class:(org.telegram.desktop)
windowrulev2 = float, class:(org.telegram.desktop)
windowrulev2 = workspace special:mattermost, class:(Mattermost)
windowrulev2 = float, class:(Mattermost)
$mainMod = SUPER
bind = $mainMod, Return, exec, $terminal
bind = $mainMod, Q, killactive,
bind = $mainMod Shift, E, exit,
bind = $mainMod, V, togglefloating,
bind = $mainMod, p, exec, $menu
bind = $mainMod, f, fullscreen
# Move focus with mainMod + arrow keys
bind = $mainMod, comma, movefocus, l
bind = $mainMod, period, movefocus, r
bind = $mainMod SHIFT, comma, movewindow, l
bind = $mainMod SHIFT, period, movewindow, r
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d
bind = $mainMod, j, cyclenext
bind = $mainMod, k, cyclenext, prev
bind = $mainMod Shift, j, swapnext
bind = $mainMod Shift, k, swapnext, prev
# 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, focusworkspaceoncurrentmonitor, 10
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspacesilent, 1
bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2
bind = $mainMod SHIFT, 3, movetoworkspacesilent, 3
bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4
bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5
bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6
bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7
bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8
bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9
bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10
# Example special workspace (scratchpad)
bind = $mainMod, T, togglespecialworkspace, telegram
bind = $mainMod, M, togglespecialworkspace, mattermost
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
bind = $mainMod, Next, workspace, e+1
bind = $mainMod, Prior, workspace, e-1
bind = $mainMod, L, exec, loginctl lock-session
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
bind = , mouse_right, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
bind = , mouse_left, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%-
binde = , XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
binde = , XF86AudioLowerVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%-
binde = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
binde = , XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
binde = , XF86MonBrightnessDown, exec, brightnessctl set 5%-
binde = , XF86MonBrightnessUp, exec, brightnessctl set 5%+
binde = $mainMod, O, exec, switch-theme
binde = $mainMod, I, exec, toggle-laptop-keyboard
binde = , Print, exec, grim -g "$(slurp)" - | wl-copy
# On Logitech Mechanical Mini the screenshot-looking key is emitting exactly
# this event keychord (likely for compatibility with Windows)
binde = SUPER SHIFT, S, exec, grim -g "$(slurp)" - | wl-copy
binde = SUPER ALT SHIFT, S, exec, grim -g "$(slurp)"
|