emacs: shorten company’s :delight
[~bandali/configs] / .config / sway / config
1 ### Variables
2 # super
3 set $mod Mod4
4 # alt
5 set $mod2 Mod1
6 set $left h
7 set $down j
8 set $up k
9 set $right l
10 set $term urxvt
11 set $menu rofi -show run -display-run '> ' -display-window ' 🗔 '
12
13 ### Output configuration
14 #
15 # Default wallpaper (more resolutions are available in __DATADIR__/backgrounds/sway/)
16 output * bg /usr/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill
17 #
18 # Example configuration:
19 #
20 # output HDMI-A-1 resolution 1920x1080 position 1920,0
21 #
22 # You can get the names of your outputs by running: swaymsg -t get_outputs
23
24 # output DP-1 res 2560x1440 pos 1366,0
25 # # 672 = 1440 - 768
26 # output LVDS-1 pos 0,760
27
28 output DP-1 res 2560x1440 pos 0,0
29 # 672 = 1440 - 768
30 output LVDS-1 pos 2560,760
31
32 ### Idle configuration
33
34 exec swayidle \
35 timeout 120 '[ -f ~/.nosleep ] || swaymsg "output * dpms off"' \
36 resume '[ -f ~/.nosleep ] || swaymsg "output * dpms on"' \
37
38
39 ### Key bindings
40 #
41 # Basics:
42 #
43
44 set $floating_term $term -name floating
45 for_window [class="URxvt" instance="floating"] floating enable
46
47 set $mode_launch (⏎)urxvt | (e)macs | iceweasel (a)minb (c)hr (p)riv | ice(C)at
48 mode "$mode_launch" {
49 bindsym Return exec $floating_term, mode "default"
50 bindsym e exec emacs, mode "default"
51 bindsym a exec iceweasel -P aminb, mode "default"
52 bindsym c exec iceweasel -P chr, mode "default"
53 bindsym p exec iceweasel -P chr -private, mode "default"
54 bindsym Shift+c exec icecat, mode "default"
55
56 # back to normal: Escape, or q
57 bindsym Escape mode "default"
58 bindsym q mode "default"
59 }
60 bindsym XF86Launch1 mode "$mode_launch"
61
62 # start a terminal
63 bindsym $mod+Return exec $term
64 bindsym $mod+Shift+Return exec $floating_term
65
66 # kill focused window
67 bindsym $mod+Shift+q kill
68
69 # start your launcher
70 bindsym $mod+d exec $menu
71
72 # password manager
73 bindsym $mod2+space exec rofi-pass
74
75 # Drag floating windows by holding down $mod and left mouse button.
76 # Resize them with right mouse button + $mod.
77 # Despite the name, also works for non-floating windows.
78 # Change normal to inverse to use left mouse button for resizing and right
79 # mouse button for dragging.
80 floating_modifier $mod normal
81
82 # reload the configuration file
83 bindsym $mod+Shift+c reload
84
85 # exit sway (logs you out of your wayland session)
86 # bindsym $mod+Shift+e exit
87
88 bindsym $mod+apostrophe exec rofi-light # rofi-based brightness chooser
89 bindsym XF86MonBrightnessUp exec light -A 5 # increase screen brightness
90 bindsym XF86MonBrightnessDown exec light -U 5 # decrease screen brightness
91
92 bindsym XF86AudioRaiseVolume exec pamixer --allow-boost --increase 5
93 bindsym XF86AudioLowerVolume exec pamixer --allow-boost --decrease 5
94 bindsym XF86AudioMute exec pamixer --toggle-mute
95 bindsym XF86AudioMicMute exec pactl set-source-mute 1 toggle
96
97 bindsym $mod+Shift+apostrophe exec rofi-remmina.py # choose remmina connection
98
99 # original sway workspace switch and window move
100 bindsym $mod+bracketleft workspace prev
101 bindsym $mod+bracketright workspace next
102 bindsym $mod+braceleft move container to workspace prev
103 bindsym $mod+braceright move container to workspace next
104
105 # bspwm-esque workspace switch and window move
106 bindsym $mod2+bracketleft exec sway-ws-util switch prev
107 bindsym $mod2+bracketright exec sway-ws-util switch next
108 bindsym $mod2+braceleft exec sway-ws-util move prev follow
109 bindsym $mod2+braceright exec sway-ws-util move next follow
110 #
111 # Moving around:
112 #
113 # Move your focus around
114 bindsym $mod+$left focus left
115 bindsym $mod+$down focus down
116 bindsym $mod+$up focus up
117 bindsym $mod+$right focus right
118 # or use $mod+[up|down|left|right]
119 bindsym $mod+Left focus left
120 bindsym $mod+Down focus down
121 bindsym $mod+Up focus up
122 bindsym $mod+Right focus right
123
124 # _move_ the focused window with the same, but add Shift
125 bindsym $mod+Shift+$left move left
126 bindsym $mod+Shift+$down move down
127 bindsym $mod+Shift+$up move up
128 bindsym $mod+Shift+$right move right
129 # ditto, with arrow keys
130 bindsym $mod+Shift+Left move left
131 bindsym $mod+Shift+Down move down
132 bindsym $mod+Shift+Up move up
133 bindsym $mod+Shift+Right move right
134 #
135 # Workspaces:
136 #
137 # switch to workspace
138 bindsym $mod+1 workspace 1
139 bindsym $mod+2 workspace 2
140 bindsym $mod+3 workspace 3
141 bindsym $mod+4 workspace 4
142 bindsym $mod+5 workspace 5
143 bindsym $mod+6 workspace 6
144 bindsym $mod+7 workspace 7
145 bindsym $mod+8 workspace 8
146 bindsym $mod+9 workspace 9
147 bindsym $mod+0 workspace 10
148 # move focused container to workspace
149 bindsym $mod+Shift+1 move container to workspace 1
150 bindsym $mod+Shift+2 move container to workspace 2
151 bindsym $mod+Shift+3 move container to workspace 3
152 bindsym $mod+Shift+4 move container to workspace 4
153 bindsym $mod+Shift+5 move container to workspace 5
154 bindsym $mod+Shift+6 move container to workspace 6
155 bindsym $mod+Shift+7 move container to workspace 7
156 bindsym $mod+Shift+8 move container to workspace 8
157 bindsym $mod+Shift+9 move container to workspace 9
158 bindsym $mod+Shift+0 move container to workspace 10
159 # Note: workspaces can have any name you want, not just numbers.
160 # We just use 1-10 as the default.
161 #
162 # Layout stuff:
163 #
164 # You can "split" the current object of your focus with
165 # $mod+b or $mod+v, for horizontal and vertical splits
166 # respectively.
167 bindsym $mod+b splith
168 bindsym $mod+v splitv
169
170 # Switch the current container between different layout styles
171 bindsym $mod+s layout stacking
172 bindsym $mod+w layout tabbed
173 bindsym $mod+e layout toggle split
174
175 # Make the current focus fullscreen
176 bindsym $mod+f fullscreen
177
178 # Toggle sticky-ness of the current (floating) window
179 bindsym $mod+$mod2+space sticky toggle
180
181 # Toggle the current focus between tiling and floating mode
182 bindsym $mod+Shift+space floating toggle
183
184 # Swap focus between the tiling area and the floating area
185 bindsym $mod+space focus mode_toggle
186
187 # move focus to the parent container
188 bindsym $mod+a focus parent
189 bindsym $mod+Shift+a focus child
190 #
191 # Scratchpad:
192 #
193 # Sway has a "scratchpad", which is a bag of holding for windows.
194 # You can send windows there and get them back later.
195
196 # Move the currently focused window to the scratchpad
197 bindsym $mod+Shift+minus move scratchpad
198
199 # Show the next scratchpad window or hide the focused scratchpad window.
200 # If there are multiple scratchpad windows, this command cycles through them.
201 bindsym $mod+minus scratchpad show
202 #
203 # Resizing containers:
204 #
205 mode "resize" {
206 # left will shrink the containers width
207 # right will grow the containers width
208 # up will shrink the containers height
209 # down will grow the containers height
210 bindsym $left resize shrink width 10px
211 bindsym $down resize grow height 10px
212 bindsym $up resize shrink height 10px
213 bindsym $right resize grow width 10px
214
215 # ditto, with arrow keys
216 bindsym Left resize shrink width 10px
217 bindsym Down resize grow height 10px
218 bindsym Up resize shrink height 10px
219 bindsym Right resize grow width 10px
220
221 # return to default mode
222 bindsym Return mode "default"
223 bindsym Escape mode "default"
224 }
225 bindsym $mod+Shift+r mode "resize"
226
227 #
228 # Power button
229 #
230
231 set $mode_system System (l)ock | (e)xit sway | (s)uspend | (h)ibernate | (r)eboot | (S)hutdown
232 mode "$mode_system" {
233 bindsym l exec swaylock, mode "default"
234 bindsym e exec swaymsg exit, mode "default"
235 bindsym s exec systemctl suspend, mode "default"
236 bindsym h exec systemctl hibernate, mode "default"
237 bindsym r exec systemctl reboot, mode "default"
238 bindsym Shift+s exec systemctl poweroff -i, mode "default"
239
240 # back to normal: Enter, Escape, or q
241 bindsym Return mode "default"
242 bindsym Escape mode "default"
243 bindsym q mode "default"
244 }
245 # bindsym XF86PowerOff mode "$mode_system"
246 bindsym $mod+Shift+e mode "$mode_system"
247 bindsym XF86ScreenSaver exec swaylock
248
249 #
250 # Presentation mode
251 #
252
253 bindsym $mod+$mod2+p exec ([ ! -e ~/.nosleep ] && touch ~/.nosleep || rm ~/.nosleep) && killall -USR1 i3status
254
255 #
256 # Notifications
257 #
258
259 bindsym $mod+Shift+n mode notifications
260 mode notifications {
261 bindsym Return exec makoctl invoke; exec makoctl dismiss; mode default
262 bindsym d exec makoctl dismiss; mode default
263 bindsym Shift+d exec makoctl dismiss -a; mode default
264
265 bindsym Escape mode default
266 bindsym q mode default
267 }
268
269 #
270 # Screenshotting
271 #
272
273 set $mode_screenshot (a)ll | (r)egion
274 mode "$mode_screenshot" {
275 bindsym a exec grim $(xdg-user-dir PICTURES)/shots/$(date +'%Y-%m-%d-%H%M%S.png'); mode default
276 bindsym r exec grim -g "$(slurp)" $(xdg-user-dir PICTURES)/shots/$(date +'%Y-%m-%d-%H%M%S.png'); mode default
277
278 bindsym Escape mode default
279 bindsym q mode default
280 }
281 bindsym Print mode "$mode_screenshot"
282
283 #
284 # Window configurations
285 #
286 for_window [class="mpv"] floating enable
287 for_window [class="TelegramDesktop"] floating enable
288 for_window [app_id="pavucontrol"] floating enable
289 for_window [app_id="meld"] floating enable
290 for_window [app_id="nm-connection-editor"] floating enable
291
292 set $blue #285577
293 set $gray #1e1f21
294 set $red #900000
295
296 #
297 # Status Bar:
298 #
299 # Read `man 5 sway-bar` for more information about this section.
300 bar {
301 position bottom
302 colors {
303 background $gray
304 inactive_workspace $gray $gray #888888
305 active_workspace $gray $gray #ffffff
306 urgent_workspace $red $red #ffffff
307 focused_workspace $blue $blue #ffffff
308 }
309 status_command i3status | my-i3status.py
310 }
311
312 client.focused $blue $blue #ffffff $blue $blue
313 client.unfocused $gray $gray #ffffff $gray $gray
314 client.focused_inactive $gray $gray #ffffff $gray $gray
315
316 # font pango: benis uushi 9
317 # font pango: Ubuntu Mono 11
318 # font pango: Inconsolata 11
319 font pango: DejaVu Sans Mono 9
320 # font pango: Liberation Mono 9
321
322 # get rid of title bars
323 default_border pixel 4
324
325 exec xrdb .Xresources
326 # exec pgrep -x "systemd-inhibit" || \
327 # systemd-inhibit --what=handle-power-key --who=aminb \
328 # --why="Handle power button in sway" sleep infinity
329 exec mako 2>&1 >/tmp/mako.log
330 exec /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
331
332 include /etc/sway/config.d/*
333 include ~/.config/sway/`hostname`
334
335 exec systemd-notify --ready || true