. . .
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
74bindsym $mod+Shift+Return exec --no-startup-id urxvt
75
76# editor
77bindsym $mod+v exec --no-startup-id PATH="$HOME/.nvm/versions/node/v18.17.1/bin:$PATH" neovide
78bindsym $mod+Shift+v exec --no-startup-id urxvt -e vim
79
80# browser
81bindsym $mod+Tab exec --no-startup-id firefox-nightly --private-window
82bindsym $mod+Shift+Tab exec --no-startup-id firefox-nightly
83#bindsym $mod+Tab exec --no-startup-id google-chrome-stable --incognito --disable-background-networking --dns-prefetch-disabled
84#bindsym $mod+Shift+Tab exec --no-startup-id google-chrome-stable --disable-background-networking --dns-prefetch-disabled
85
86# explorer
87bindsym $mod+x exec --no-startup-id pcmanfm
88# TODO ranger
89
90# launcher
91bindsym $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 " > "
92
93# screenshots
94bindsym Print exec --no-startup-id i3-scrot
95bindsym $mod+Print --release exec --no-startup-id i3-scrot -w
96bindsym $mod+Shift+Print --release exec --no-startup-id i3-scrot -s
97
98# audio stuff
99bindsym $mod+Ctrl+m exec pavucontrol
100# TODO: mocp and/or vlc
101
102# transparency
103bindsym $mod+Ctrl+t exec --no-startup-id picom -b
104# dunst = notifications
105bindsym $mod+Shift+d --release exec --no-startup-id "killall dunst; exec notify-send 'Reloaded Dunst'"
106
107# launcher menu TODO get rid of this or make it useful
108set $mode_launch [p] Packages - [a] Audio - [k] Kill - [x] File Explorer - [m] Morc Menu - [u] Mocp - [space] Fix Keymap
109mode "$mode_launch" {
110 bindsym a exec --no-startup-id pavucontrol, mode "default"
111 bindsym k --release exec --no-startup-id xkill, mode "default"
112 bindsym u exec --no-startup-id alacritty -e 'mocp', mode "default"
113
114 bindsym Return mode "default"
115 bindsym Escape mode "default"
116}
117
118# brightness controls
119# bindsym XF86MonBrightnessUp exec "xbacklight -inc 10; notify-send 'brightness up'"
120# bindsym XF86MonBrightnessDown exec "xbacklight -dec 10; notify-send 'brightness down'"
121
122
123# wallpapers
124bindsym $mod+Shift+w exec --no-startup-id feh /data/0/media/images/wallpapers/Active/ --randomize --bg-scale --no-fehbg
125
126# = i3 =
127
128bindsym Shift+Escape kill
129bindsym $mod+BackSpace kill
130# reload i3 config
131bindsym $mod+Shift+r reload
132# fully restart i3 session (keeps user applications running)
133bindsym $mod+Ctrl+Shift+r restart
134
135# go-to / send-to for named workspaces
136bindsym $mod+m exec --no-startup-id i3-input -F 'workspace %s' -P 'Go to -> '
137bindsym $mod+Shift+m exec --no-startup-id i3-input -F 'move container to workspace %s' -P 'Move to -> '
138
139# send a window to the shadow realm
140bindsym $mod+Shift+comma move scratchpad
141# browse the contents of the shadow realm
142bindsym $mod+comma scratchpad show
143
144# tiling / floating
145bindsym $mod+0 floating toggle, border none
146bindsym $mod+Shift+space floating toggle
147bindsym $mod+space focus mode_toggle
148
149bindsym $mod+f fullscreen toggle
150
151# split direction
152bindsym $mod+a split toggle, border pixel 2
153bindsym $mod+Shift+a layout toggle split
154
155# focus the parent container, for advanced layout arrangement
156bindsym $mod+w focus parent
157
158# move between windows
159bindsym $mod+h focus left
160bindsym $mod+j focus down
161bindsym $mod+k focus up
162bindsym $mod+l focus right
163bindsym $mod+Left focus left
164bindsym $mod+Down focus down
165bindsym $mod+Up focus up
166bindsym $mod+Right focus right
167
168# move current window
169bindsym $mod+Shift+h move left
170bindsym $mod+Shift+j move down
171bindsym $mod+Shift+k move up
172bindsym $mod+Shift+l move right
173bindsym $mod+Shift+Left move left
174bindsym $mod+Shift+Down move down
175bindsym $mod+Shift+Up move up
176bindsym $mod+Shift+Right move right
177
178# move entire workspace between monitors
179bindsym $mod+Ctrl+Left move workspace to output left
180bindsym $mod+Ctrl+Right move workspace to output right
181bindsym $mod+Ctrl+h move workspace to output left
182bindsym $mod+Ctrl+l move workspace to output right
183
184# cycle thru workspaces
185# Mod1 = Alt
186bindsym Mod1+Right workspace next
187bindsym Mod1+Left workspace prev
188bindsym Mod1+l workspace next
189bindsym Mod1+h workspace prev
190
191# suspend / exit stuff. TODO clean this up
192bindsym Ctrl+Mod1+l exec --no-startup-id "$HOME/pixel-lock"
193bindsym $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'"
194
195bindsym $mod+End mode "$mode_system"
196set $mode_system (l)ock, (e)xit, (s)uspend, (h)ibernate, (r)eboot, (Shift+s)hutdown
197mode "$mode_system" {
198 bindsym l exec --no-startup-id i3exit lock, mode "default"
199 bindsym s exec --no-startup-id i3exit suspend, mode "default"
200 bindsym u exec --no-startup-id i3exit switch_user, mode "default"
201 bindsym e exec --no-startup-id i3exit logout, mode "default"
202 bindsym h exec --no-startup-id i3exit hibernate, mode "default"
203 bindsym r exec --no-startup-id i3exit reboot, mode "default"
204 bindsym Shift+s exec --no-startup-id i3exit shutdown, mode "default"
205
206 # exit system mode: "Enter" or "Escape"
207 bindsym Return mode "default"
208 bindsym Escape mode "default"
209}
210
211# Preset workspaces. TODO clean this up
212# Workspace names
213# to display names or symbols instead of plain workspace numbers you can use
214# something like: set $ws1 1:mail
215# set $ws2 2:
216set $ws1 11:1
217set $ws2 12:2
218set $ws3 13:3
219set $ws4 14:4
220set $ws5 15:5
221set $ws6 16:6
222set $ws7 17:7
223set $ws8 18:8
224set $ws9 19:9
225
226# switch to workspace
227bindsym $mod+1 workspace $ws1
228bindsym $mod+2 workspace $ws2
229bindsym $mod+3 workspace $ws3
230bindsym $mod+4 workspace $ws4
231bindsym $mod+5 workspace $ws5
232bindsym $mod+6 workspace $ws6
233bindsym $mod+7 workspace $ws7
234bindsym $mod+8 workspace $ws8
235bindsym $mod+9 workspace $ws9
236bindsym $mod+mod2+KP_1 workspace $ws1
237bindsym $mod+mod2+KP_2 workspace $ws2
238bindsym $mod+mod2+KP_3 workspace $ws3
239bindsym $mod+mod2+KP_4 workspace $ws4
240bindsym $mod+mod2+KP_5 workspace $ws5
241bindsym $mod+mod2+KP_6 workspace $ws6
242bindsym $mod+mod2+KP_7 workspace $ws7
243bindsym $mod+mod2+KP_8 workspace $ws8
244bindsym $mod+mod2+KP_9 workspace $ws9
245
246# Move focused container to workspace
247bindsym $mod+Ctrl+1 move container to workspace $ws1
248bindsym $mod+Ctrl+2 move container to workspace $ws2
249bindsym $mod+Ctrl+3 move container to workspace $ws3
250bindsym $mod+Ctrl+4 move container to workspace $ws4
251bindsym $mod+Ctrl+5 move container to workspace $ws5
252bindsym $mod+Ctrl+6 move container to workspace $ws6
253bindsym $mod+Ctrl+7 move container to workspace $ws7
254bindsym $mod+Ctrl+8 move container to workspace $ws8
255bindsym $mod+Ctrl+9 move container to workspace $ws9
256
257bindsym $mod+Ctrl+mod2+KP_1 move container to workspace $ws1
258bindsym $mod+Ctrl+mod2+KP_2 move container to workspace $ws2
259bindsym $mod+Ctrl+mod2+KP_3 move container to workspace $ws3
260bindsym $mod+Ctrl+mod2+KP_4 move container to workspace $ws4
261bindsym $mod+Ctrl+mod2+KP_5 move container to workspace $ws5
262bindsym $mod+Ctrl+mod2+KP_6 move container to workspace $ws6
263bindsym $mod+Ctrl+mod2+KP_7 move container to workspace $ws7
264bindsym $mod+Ctrl+mod2+KP_8 move container to workspace $ws8
265bindsym $mod+Ctrl+mod2+KP_9 move container to workspace $ws9
266
267# Move to workspace with focused container
268bindsym $mod+Shift+1 move container to workspace $ws1; workspace $ws1
269bindsym $mod+Shift+2 move container to workspace $ws2; workspace $ws2
270bindsym $mod+Shift+3 move container to workspace $ws3; workspace $ws3
271bindsym $mod+Shift+4 move container to workspace $ws4; workspace $ws4
272bindsym $mod+Shift+5 move container to workspace $ws5; workspace $ws5
273bindsym $mod+Shift+6 move container to workspace $ws6; workspace $ws6
274bindsym $mod+Shift+7 move container to workspace $ws7; workspace $ws7
275bindsym $mod+Shift+8 move container to workspace $ws8; workspace $ws8
276bindsym $mod+Shift+9 move container to workspace $ws9; workspace $ws9
277
278bindsym $mod+Shift+mod2+KP_End move container to workspace $ws1; workspace $ws1
279bindsym $mod+Shift+mod2+KP_Down move container to workspace $ws2; workspace $ws2
280bindsym $mod+Shift+mod2+KP_Next move container to workspace $ws3; workspace $ws3
281bindsym $mod+Shift+mod2+KP_Left move container to workspace $ws4; workspace $ws4
282bindsym $mod+Shift+mod2+KP_Begin move container to workspace $ws5; workspace $ws5
283bindsym $mod+Shift+mod2+KP_Right move container to workspace $ws6; workspace $ws6
284bindsym $mod+Shift+mod2+KP_Home move container to workspace $ws7; workspace $ws7
285bindsym $mod+Shift+mod2+KP_Up move container to workspace $ws8; workspace $ws8
286bindsym $mod+Shift+mod2+KP_Prior move container to workspace $ws9; workspace $ws9
287
288set $mode_resize Resizing... (Esc to finish)
289bindsym $mod+s mode $mode_resize
290
291mode "$mode_resize" {
292 # These bindings trigger as soon as you enter the resize mode
293 bindsym h resize shrink width 5 px or 5 ppt
294 bindsym j resize grow height 5 px or 5 ppt
295 bindsym k resize shrink height 5 px or 5 ppt
296 bindsym l resize grow width 5 px or 5 ppt
297
298 bindsym Left resize shrink width 5 px or 5 ppt
299 bindsym Down resize grow height 5 px or 5 ppt
300 bindsym Up resize shrink height 5 px or 5 ppt
301 bindsym Right resize grow width 5 px or 5 ppt
302
303 bindsym Return mode "default"
304 bindsym Escape mode "default"
305}
306
307# === Colors ===
308
309# TODO clean up
310
311set $void_main #020A04
312set $dark_main #042019
313set $mid_main #0F4039
314set $light_main #FF0000
315#0F8079
316set $pale_main #CCFFCC
317
318set $pale_off #222222
319
320set $bright_2 #EEFFEE
321
322set $dark_main #000000
323set $mid_main #222222
324#443322
325set $light_main #00BBEE
326#AA4444
327set $pale_main #FEFFCC
328
329
330set $red #FE0000
331
332# theme colors
333# class border backgr. text indic. child_border
334 client.focused $void_main $light_main $pale_main $pale_main
335 client.focused_inactive $void_main $void_main $pale_main $void_main
336 client.unfocused $void_main $void_main $light_main $red
337 client.urgent $void_main $pale_off $void_main $red
338 client.placeholder $void_main $void_main $void_main $red
339# client.focused #556064 #556064 #80FFF9 #FDF6E3
340# client.focused_inactive #2F3D44 #2F3D44 #1ABC9C #454948
341# client.unfocused #2F3D44 #2F3D44 #1ABC9C #454948
342# client.urgent #CB4B16 #FDF6E3 #1ABC9C #268BD2
343# client.placeholder #000000 #0c0c0c #ffffff #000000
344
345 client.background #00FF00
346