use separate xresources file for theme/colors
[~bandali/configs] / i3 / .i3 / config
1 # This file has been auto-generated by i3-config-wizard(1).
2 # It will not be overwritten, so edit it as you like.
3 #
4 # Should you change your keyboard layout some time, delete
5 # this file and re-run i3-config-wizard(1).
6 #
7
8 # i3 config file (v4)
9 #
10 # Please see http://i3wm.org/docs/userguide.html for a complete reference!
11
12 set $mod Mod4
13
14 # Font for window titles. Will also be used by the bar unless a different font
15 # is used in the bar {} block below.
16 # This font is widely installed, provides lots of unicode glyphs, right-to-left
17 # text rendering and scalability on retina/hidpi displays (thanks to pango).
18 font pango:DejaVu Sans Mono 8
19 # Before i3 v4.8, we used to recommend this one as the default:
20 # font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
21 # The font above is very space-efficient, that is, it looks good, sharp and
22 # clear in small sizes. However, its unicode glyph coverage is limited, the old
23 # X core fonts rendering does not support right-to-left and this being a bitmap
24 # font, it doesn’t scale on retina/hidpi displays.
25
26 # Use Mouse+$mod to drag floating windows to their wanted position
27 floating_modifier $mod
28
29 set $lime #9FBC00
30 set $darklime #505e00
31 set $blue #131D24
32 set $lightblue #232D34
33 set $lightgray #DDEEDD
34 set $darkgray #444444
35 set $white #FFFFFF
36 set $urgentred #B33A3A
37
38 set $ws1 "1:"
39 set $ws2 "2:"
40 set $ws3 "3:"
41 set $ws4 "4:"
42
43 # set $default_gaps_inner 10
44 # set $default_gaps_outer 0
45 # gaps inner $default_gaps_inner
46 # gaps outer $default_gaps_outer
47 #smart_borders on
48
49 # start a terminal
50 #bindsym $mod+Return exec i3-sensible-terminal
51 bindsym $mod+Return exec urxvt
52
53 # kill focused window
54 bindsym $mod+q kill
55
56 # start dmenu (a program launcher)
57 bindsym $mod+space exec --no-startup-id dmenu_run
58 # There also is the (new) i3-dmenu-desktop which only displays applications
59 # shipping a .desktop file. It is a wrapper around dmenu, so you need that
60 # installed.
61 # bindsym $mod+d exec --no-startup-id i3-dmenu-desktop
62
63 # change focus
64 bindsym $mod+h focus left
65 bindsym $mod+j focus down
66 bindsym $mod+k focus up
67 bindsym $mod+l focus right
68
69 # alternatively, you can use the cursor keys:
70 bindsym $mod+Left focus left
71 bindsym $mod+Down focus down
72 bindsym $mod+Up focus up
73 bindsym $mod+Right focus right
74
75 # move focused window
76 bindsym $mod+Shift+j move left
77 bindsym $mod+Shift+k move down
78 bindsym $mod+Shift+l move up
79 bindsym $mod+Shift+semicolon move right
80
81 # alternatively, you can use the cursor keys:
82 bindsym $mod+Shift+Left move left
83 bindsym $mod+Shift+Down move down
84 bindsym $mod+Shift+Up move up
85 bindsym $mod+Shift+Right move right
86
87 # split in horizontal orientation
88 bindsym $mod+comma split h
89
90 # split in vertical orientation
91 bindsym $mod+period split v
92
93 # enter fullscreen mode for the focused container
94 bindsym $mod+f fullscreen toggle
95
96 # change container layout (stacked, tabbed, toggle split)
97 bindsym $mod+s layout stacking
98 bindsym $mod+w layout tabbed
99 bindsym $mod+e layout toggle split
100
101 # toggle tiling / floating
102 bindsym $mod+Shift+space floating toggle
103
104 # change focus between tiling / floating windows
105 bindsym $mod+semicolon focus mode_toggle
106
107 # focus the parent container
108 bindsym $mod+a focus parent
109
110 # focus the child container
111 bindsym $mod+d focus child
112
113 # switch to workspace
114 bindsym $mod+1 workspace $ws1
115 bindsym $mod+2 workspace $ws2
116 bindsym $mod+3 workspace $ws3
117 bindsym $mod+4 workspace $ws4
118 bindsym $mod+5 workspace 5
119 bindsym $mod+6 workspace 6
120 bindsym $mod+7 workspace 7
121 bindsym $mod+8 workspace 8
122 bindsym $mod+9 workspace 9
123 bindsym $mod+0 workspace 10
124
125 bindsym $mod+braceleft workspace prev
126 bindsym $mod+braceright workspace next
127
128 # move focused container to workspace
129 bindsym $mod+Shift+1 move container to workspace number $ws1
130 bindsym $mod+Shift+2 move container to workspace number $ws2
131 bindsym $mod+Shift+3 move container to workspace number $ws3
132 bindsym $mod+Shift+4 move container to workspace number $ws4
133 bindsym $mod+Shift+5 move container to workspace 5
134 bindsym $mod+Shift+6 move container to workspace 6
135 bindsym $mod+Shift+7 move container to workspace 7
136 bindsym $mod+Shift+8 move container to workspace 8
137 bindsym $mod+Shift+9 move container to workspace 9
138 bindsym $mod+Shift+0 move container to workspace 10
139
140 bindsym $mod+Shift+braceleft move container to workspace prev
141 bindsym $mod+Shift+braceright move container to workspace next
142
143 # reload the configuration file
144 bindsym $mod+Shift+c reload
145 # restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
146 bindsym $mod+Shift+r restart
147 # exit i3 (logs you out of your X session)
148 # bindsym $mod+Shift+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'"
149
150 # resize window (you can also use the mouse for that)
151 mode "resize" {
152 # These bindings trigger as soon as you enter the resize mode
153
154 # Pressing left will shrink the window’s width.
155 # Pressing right will grow the window’s width.
156 # Pressing up will shrink the window’s height.
157 # Pressing down will grow the window’s height.
158 bindsym h resize shrink width 10 px or 10 ppt
159 bindsym j resize grow height 10 px or 10 ppt
160 bindsym k resize shrink height 10 px or 10 ppt
161 bindsym l resize grow width 10 px or 10 ppt
162
163 # same bindings, but for the arrow keys
164 bindsym Left resize shrink width 10 px or 10 ppt
165 bindsym Down resize grow height 10 px or 10 ppt
166 bindsym Up resize shrink height 10 px or 10 ppt
167 bindsym Right resize grow width 10 px or 10 ppt
168
169 # back to normal: Enter or Escape
170 bindsym Return mode "default"
171 bindsym Escape mode "default"
172 }
173
174 bindsym $mod+r mode "resize"
175
176 set $mode_gaps Gaps: (o) outer, (i) inner
177 set $mode_gaps_outer Outer Gaps: +|-|0 (local), Shift + +|-|0 (global)
178 set $mode_gaps_inner Inner Gaps: +|-|0 (local), Shift + +|-|0 (global)
179 bindsym $mod+Shift+g mode "$mode_gaps"
180
181 mode "$mode_gaps" {
182 bindsym o mode "$mode_gaps_outer"
183 bindsym i mode "$mode_gaps_inner"
184 bindsym Return mode "default"
185 bindsym Escape mode "default"
186 }
187
188 mode "$mode_gaps_inner" {
189 bindsym plus gaps inner current plus 5
190 bindsym minus gaps inner current minus 5
191 bindsym 0 gaps inner current set 0
192
193 bindsym Shift+plus gaps inner all plus 5
194 bindsym Shift+minus gaps inner all minus 5
195 bindsym Shift+0 gaps inner all set 0
196
197 bindsym Return mode "default"
198 bindsym Escape mode "default"
199 }
200 mode "$mode_gaps_outer" {
201 bindsym plus gaps outer current plus 5
202 bindsym minus gaps outer current minus 5
203 bindsym 0 gaps outer current set 0
204
205 bindsym Shift+plus gaps outer all plus 5
206 bindsym Shift+minus gaps outer all minus 5
207 bindsym Shift+0 gaps outer all set 0
208
209 bindsym Return mode "default"
210 bindsym Escape mode "default"
211 }
212
213 # fix graphics glitch
214 for_window [class="^.*"] border pixel 0
215 for_window [class="(?i)urxvt"] border pixel 3
216
217 # dialogs
218 for_window [class="(?i)gsimplecal"] floating enable
219 for_window [window_role="pop-up"] floating enable
220 for_window [window_role="task_dialog"] floating enable
221
222 # windows with no border
223 for_window [class="(?i)firefox"] border none
224 for_window [class="(?i)thunderbird"] border none
225 for_window [class="(?i)emacs"] border none
226
227
228 # assign certain applications to a specific workspace
229 assign [class="(?i)firefox"] $ws1
230 assign [class="(?i)urxvt"] $ws2
231 assign [class="(?i)emacs"] $ws3
232
233 # Start i3bar to display a workspace bar (plus the system information i3status
234 # finds out, if available)
235 bar {
236 status_command i3status
237 strip_workspace_numbers yes
238 # height 20
239 colors {
240 statusline $lightgray
241 background $blue
242 separator $lime
243 # BORDER BACKGROUND TEXT
244 focused_workspace $lightblue $lightblue $lime
245 inactive_workspace $blue $blue $white
246 urgent_workspace $urgentred $urgentred $white
247 }
248 }
249
250 set $mode_system System (l) lock, (e) logout, (r) reboot, (s) shutdown
251 mode "$mode_system" {
252 bindsym l exec --no-startup-id i3exit lock, mode "default"
253 bindsym e exec --no-startup-id i3exit logout, mode "default"
254 bindsym r exec --no-startup-id i3exit reboot, mode "default"
255 bindsym s exec --no-startup-id i3exit shutdown, mode "default"
256
257 # back to normal: Enter or Escape
258 bindsym Return mode "default"
259 bindsym Escape mode "default"
260 }
261 bindsym $mod+Shift+e mode "$mode_system"
262
263 exec --no-startup-id nm-applet
264 exec --no-startup-id "pulseaudio --start"
265
266 # Sreen brightness controls
267 bindsym XF86MonBrightnessUp exec --no-startup-id xbacklight -inc 5 # increase screen brightness
268 bindsym XF86MonBrightnessDown exec --no-startup-id xbacklight -dec 5 # decrease screen brightness
269
270 # Keyboard brightness controls
271 bindsym XF86KbdBrightnessUp exec --no-startup-id kbdlight up # increase screen brightness
272 bindsym XF86KbdBrightnessDown exec --no-startup-id kbdlight down # decrease screen brightness
273
274 # Pulse Audio controls
275 bindsym XF86AudioRaiseVolume exec --no-startup-id pamixer --allow-boost --increase 5 #increase sound volume
276 bindsym XF86AudioLowerVolume exec --no-startup-id pamixer --allow-boost --decrease 5 #decrease sound volume
277 bindsym XF86AudioMute exec --no-startup-id pamixer --toggle-mute # mute sound
278
279 # MPD controls (using mpc)
280 bindsym XF86AudioPlay exec --no-startup-id mpc toggle
281 bindsym XF86AudioPrev exec --no-startup-id mpc prev
282 bindsym XF86AudioNext exec --no-startup-id mpc next