. . .
1# i3 config file (v4)
2# http://i3wm.org/docs/userguide.html
3
4# === basics ===
5
6set $mod Mod4
7font xft:URWGothic-Book 11
8default_border none
9default_floating_border none
10hide_edge_borders none
11
12# key to hold to drag floating windows
13floating_modifier $mod
14
15# no. no. no. absolutely not.
16focus_follows_mouse no
17
18bar {
19 i3bar_command $HOME/bars
20}
21
22gaps inner 0
23gaps top 24
24gaps left 0
25gaps right 0
26gaps bottom 24
27
28# draw borders around container only if it is not the only container on this workspace
29# no_gaps=only activate if the gap size to the edge of the screen is 0
30smart_borders no_gaps
31
32# === startup programs ===
33
34exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
35exec_always --no-startup-id feh /data/0/media/images/wallpapers/Active/ --randomize --bg-scale --no-fehbg
36exec --no-startup-id nm-applet
37#exec --no-startup-id xfce4-power-manager
38exec --no-startup-id pamac-tray
39exec --no-startup-id clipit
40#exec --no-startup-id xautolock -time 60 -locker ~/pixel-lock
41exec_always --no-startup-id ff-theme-util
42exec_always --no-startup-id fix_xcursor
43exec --no-startup-id ~/.screenlayout/main.sh
44exec --no-startup-id xmodmap ~/.Xmodmap
45# exec --no-startup-id picom -b
46exec --no-startup-id xset b off
47exec --no-startup-id xset s off -dpms
48
49# === default management ===
50
51for_window [class=".*"] border pixel 2
52
53# default workspaces
54assign [class="discord"] "chat"
55for_window [class="Spotify"] move to workspace "music"
56for_window [class="Blender"] move to workspace "3d"
57
58# floating apps
59for_window [class="feh"] floating enable border none
60for_window [title="alsamixer"] floating enable border none
61for_window [title="File Transfer*"] floating enable
62for_window [class="GParted"] floating enable border none
63for_window [class="Lxappearance"] floating enable border none
64for_window [class="Pavucontrol"] floating enable border none
65for_window [class="qt5ct"] floating enable sticky enable border normal
66for_window [class="Ants!"] floating enable border none
67for_window [class="Stem UI Test"] floating enable border none
68for_window [class="Cuda Canvas"] floating enable border none
69
70# === Bindings ===
71
72# terminal
73bindsym $mod+Return exec --no-startup-id alacritty --command /data/0/code/python/snakepyt/.venv/bin/python /data/0/code/python/snakepyt/pyt
74bindsym $mod+Shift+b exec --no-startup-id alacritty
75bindsym $mod+Shift+Return exec --no-startup-id urxvt
76
77# editor
78bindsym $mod+v exec --no-startup-id PATH="$HOME/.nvm/versions/node/v18.17.1/bin:$PATH" neovide
79bindsym $mod+Shift+v exec --no-startup-id urxvt -e vim
80
81# browser
82bindsym $mod+Tab exec --no-startup-id firefox --private-window
83bindsym $mod+Shift+Tab exec --no-startup-id firefox
84#bindsym $mod+Tab exec --no-startup-id google-chrome-stable --incognito --disable-background-networking --dns-prefetch-disabled
85#bindsym $mod+Shift+Tab exec --no-startup-id google-chrome-stable --disable-background-networking --dns-prefetch-disabled
86
87# explorer
88bindsym $mod+x exec --no-startup-id pcmanfm
89# TODO ranger
90
91# launcher
92bindsym $mod+r exec --no-startup-id PATH="$HOME/.nvm/versions/node/v18.17.1/bin:/data/0/tools/Zotero_linux-x86_64:$PATH" rofi -show run -display-run " > "
93
94# screenshots
95bindsym Print exec --no-startup-id i3-scrot
96bindsym $mod+Print --release exec --no-startup-id i3-scrot -w
97bindsym $mod+Shift+Print --release exec --no-startup-id i3-scrot -s
98
99# audio stuff
100bindsym $mod+Ctrl+m exec pavucontrol
101# TODO: mocp and/or vlc
102
103# transparency
104bindsym $mod+Ctrl+t exec --no-startup-id picom -b
105# dunst = notifications
106bindsym $mod+Shift+d --release exec --no-startup-id "killall dunst; exec notify-send 'Reloaded Dunst'"
107
108# launcher menu TODO get rid of this or make it useful
109set $mode_launch [p] Packages - [a] Audio - [k] Kill - [x] File Explorer - [m] Morc Menu - [u] Mocp - [space] Fix Keymap
110mode "$mode_launch" {
111 bindsym a exec --no-startup-id pavucontrol, mode "default"
112 bindsym k --release exec --no-startup-id xkill, mode "default"
113 bindsym u exec --no-startup-id alacritty -e 'mocp', mode "default"
114
115 bindsym Return mode "default"
116 bindsym Escape mode "default"
117}
118
119# brightness controls
120# bindsym XF86MonBrightnessUp exec "xbacklight -inc 10; notify-send 'brightness up'"
121# bindsym XF86MonBrightnessDown exec "xbacklight -dec 10; notify-send 'brightness down'"
122
123
124# wallpapers
125bindsym $mod+Shift+w exec --no-startup-id feh /data/0/media/images/wallpapers/Active/ --randomize --bg-scale --no-fehbg
126
127# = i3 =
128
129bindsym Shift+Escape kill
130bindsym $mod+BackSpace kill
131# reload i3 config
132bindsym $mod+Shift+r reload
133# fully restart i3 session (keeps user applications running)
134bindsym $mod+Ctrl+Shift+r restart
135
136# go-to / send-to for named workspaces
137bindsym $mod+m exec --no-startup-id i3-input -F 'workspace %s' -P 'Go to -> '
138bindsym $mod+Shift+m exec --no-startup-id i3-input -F 'move container to workspace %s' -P 'Move to -> '
139
140# send a window to the shadow realm
141bindsym $mod+Shift+comma move scratchpad
142# browse the contents of the shadow realm
143bindsym $mod+comma scratchpad show
144
145# tiling / floating
146bindsym $mod+0 floating toggle, border none
147bindsym $mod+Shift+space floating toggle
148bindsym $mod+space focus mode_toggle
149
150bindsym $mod+f fullscreen toggle
151
152# split direction
153bindsym $mod+a split toggle, border pixel 2
154bindsym $mod+Shift+a layout toggle split
155
156# focus the parent container, for advanced layout arrangement
157bindsym $mod+w focus parent
158
159# move between windows
160bindsym $mod+h focus left
161bindsym $mod+j focus down
162bindsym $mod+k focus up
163bindsym $mod+l focus right
164bindsym $mod+Left focus left
165bindsym $mod+Down focus down
166bindsym $mod+Up focus up
167bindsym $mod+Right focus right
168
169# move current window
170bindsym $mod+Shift+h move left
171bindsym $mod+Shift+j move down
172bindsym $mod+Shift+k move up
173bindsym $mod+Shift+l move right
174bindsym $mod+Shift+Left move left
175bindsym $mod+Shift+Down move down
176bindsym $mod+Shift+Up move up
177bindsym $mod+Shift+Right move right
178
179# move entire workspace between monitors
180bindsym $mod+Ctrl+Left move workspace to output left
181bindsym $mod+Ctrl+Right move workspace to output right
182bindsym $mod+Ctrl+h move workspace to output left
183bindsym $mod+Ctrl+l move workspace to output right
184
185# cycle thru workspaces
186# Mod1 = Alt
187bindsym Mod1+Right workspace next
188bindsym Mod1+Left workspace prev
189bindsym Mod1+l workspace next
190bindsym Mod1+h workspace prev
191
192# suspend / exit stuff. TODO clean this up
193bindsym Ctrl+Mod1+l exec --no-startup-id "$HOME/pixel-lock"
194bindsym $mod+Shift+Ctrl+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'"
195
196bindsym $mod+End mode "$mode_system"
197set $mode_system (l)ock, (e)xit, (s)uspend, (h)ibernate, (r)eboot, (Shift+s)hutdown
198mode "$mode_system" {
199 bindsym l exec --no-startup-id i3exit lock, mode "default"
200 bindsym s exec --no-startup-id i3exit suspend, mode "default"
201 bindsym u exec --no-startup-id i3exit switch_user, mode "default"
202 bindsym e exec --no-startup-id i3exit logout, mode "default"
203 bindsym h exec --no-startup-id i3exit hibernate, mode "default"
204 bindsym r exec --no-startup-id i3exit reboot, mode "default"
205 bindsym Shift+s exec --no-startup-id i3exit shutdown, mode "default"
206
207 # exit system mode: "Enter" or "Escape"
208 bindsym Return mode "default"
209 bindsym Escape mode "default"
210}
211
212# Preset workspaces. TODO clean this up
213# Workspace names
214# to display names or symbols instead of plain workspace numbers you can use
215# something like: set $ws1 1:mail
216# set $ws2 2:
217set $ws1 11:1
218set $ws2 12:2
219set $ws3 13:3
220set $ws4 14:4
221set $ws5 15:5
222set $ws6 16:6
223set $ws7 17:7
224set $ws8 18:8
225set $ws9 19:9
226
227# switch to workspace
228bindsym $mod+1 workspace $ws1
229bindsym $mod+2 workspace $ws2
230bindsym $mod+3 workspace $ws3
231bindsym $mod+4 workspace $ws4
232bindsym $mod+5 workspace $ws5
233bindsym $mod+6 workspace $ws6
234bindsym $mod+7 workspace $ws7
235bindsym $mod+8 workspace $ws8
236bindsym $mod+9 workspace $ws9
237bindsym $mod+mod2+KP_1 workspace $ws1
238bindsym $mod+mod2+KP_2 workspace $ws2
239bindsym $mod+mod2+KP_3 workspace $ws3
240bindsym $mod+mod2+KP_4 workspace $ws4
241bindsym $mod+mod2+KP_5 workspace $ws5
242bindsym $mod+mod2+KP_6 workspace $ws6
243bindsym $mod+mod2+KP_7 workspace $ws7
244bindsym $mod+mod2+KP_8 workspace $ws8
245bindsym $mod+mod2+KP_9 workspace $ws9
246
247# Move focused container to workspace
248bindsym $mod+Ctrl+1 move container to workspace $ws1
249bindsym $mod+Ctrl+2 move container to workspace $ws2
250bindsym $mod+Ctrl+3 move container to workspace $ws3
251bindsym $mod+Ctrl+4 move container to workspace $ws4
252bindsym $mod+Ctrl+5 move container to workspace $ws5
253bindsym $mod+Ctrl+6 move container to workspace $ws6
254bindsym $mod+Ctrl+7 move container to workspace $ws7
255bindsym $mod+Ctrl+8 move container to workspace $ws8
256bindsym $mod+Ctrl+9 move container to workspace $ws9
257
258bindsym $mod+Ctrl+mod2+KP_1 move container to workspace $ws1
259bindsym $mod+Ctrl+mod2+KP_2 move container to workspace $ws2
260bindsym $mod+Ctrl+mod2+KP_3 move container to workspace $ws3
261bindsym $mod+Ctrl+mod2+KP_4 move container to workspace $ws4
262bindsym $mod+Ctrl+mod2+KP_5 move container to workspace $ws5
263bindsym $mod+Ctrl+mod2+KP_6 move container to workspace $ws6
264bindsym $mod+Ctrl+mod2+KP_7 move container to workspace $ws7
265bindsym $mod+Ctrl+mod2+KP_8 move container to workspace $ws8
266bindsym $mod+Ctrl+mod2+KP_9 move container to workspace $ws9
267
268# Move to workspace with focused container
269bindsym $mod+Shift+1 move container to workspace $ws1; workspace $ws1
270bindsym $mod+Shift+2 move container to workspace $ws2; workspace $ws2
271bindsym $mod+Shift+3 move container to workspace $ws3; workspace $ws3
272bindsym $mod+Shift+4 move container to workspace $ws4; workspace $ws4
273bindsym $mod+Shift+5 move container to workspace $ws5; workspace $ws5
274bindsym $mod+Shift+6 move container to workspace $ws6; workspace $ws6
275bindsym $mod+Shift+7 move container to workspace $ws7; workspace $ws7
276bindsym $mod+Shift+8 move container to workspace $ws8; workspace $ws8
277bindsym $mod+Shift+9 move container to workspace $ws9; workspace $ws9
278
279bindsym $mod+Shift+mod2+KP_End move container to workspace $ws1; workspace $ws1
280bindsym $mod+Shift+mod2+KP_Down move container to workspace $ws2; workspace $ws2
281bindsym $mod+Shift+mod2+KP_Next move container to workspace $ws3; workspace $ws3
282bindsym $mod+Shift+mod2+KP_Left move container to workspace $ws4; workspace $ws4
283bindsym $mod+Shift+mod2+KP_Begin move container to workspace $ws5; workspace $ws5
284bindsym $mod+Shift+mod2+KP_Right move container to workspace $ws6; workspace $ws6
285bindsym $mod+Shift+mod2+KP_Home move container to workspace $ws7; workspace $ws7
286bindsym $mod+Shift+mod2+KP_Up move container to workspace $ws8; workspace $ws8
287bindsym $mod+Shift+mod2+KP_Prior move container to workspace $ws9; workspace $ws9
288
289set $mode_resize Resizing... (Esc to finish)
290bindsym $mod+s mode $mode_resize
291
292mode "$mode_resize" {
293 # These bindings trigger as soon as you enter the resize mode
294 bindsym h resize shrink width 5 px or 5 ppt
295 bindsym j resize grow height 5 px or 5 ppt
296 bindsym k resize shrink height 5 px or 5 ppt
297 bindsym l resize grow width 5 px or 5 ppt
298
299 bindsym Left resize shrink width 5 px or 5 ppt
300 bindsym Down resize grow height 5 px or 5 ppt
301 bindsym Up resize shrink height 5 px or 5 ppt
302 bindsym Right resize grow width 5 px or 5 ppt
303
304 bindsym Return mode "default"
305 bindsym Escape mode "default"
306}
307
308# === Colors ===
309
310# TODO clean up
311
312set $void_main #020A04
313set $dark_main #042019
314set $mid_main #0F4039
315set $light_main #FF0000
316#0F8079
317set $pale_main #CCFFCC
318
319set $pale_off #222222
320
321set $bright_2 #EEFFEE
322
323set $dark_main #000000
324set $mid_main #222222
325#443322
326set $light_main #00BBEE
327#AA4444
328set $pale_main #FEFFCC
329
330
331set $red #FE0000
332
333# theme colors
334# class border backgr. text indic. child_border
335 client.focused $void_main $light_main $pale_main $pale_main
336 client.focused_inactive $void_main $void_main $pale_main $void_main
337 client.unfocused $void_main $void_main $light_main $red
338 client.urgent $void_main $pale_off $void_main $red
339 client.placeholder $void_main $void_main $void_main $red
340# client.focused #556064 #556064 #80FFF9 #FDF6E3
341# client.focused_inactive #2F3D44 #2F3D44 #1ABC9C #454948
342# client.unfocused #2F3D44 #2F3D44 #1ABC9C #454948
343# client.urgent #CB4B16 #FDF6E3 #1ABC9C #268BD2
344# client.placeholder #000000 #0c0c0c #ffffff #000000
345
346 client.background #00FF00
347