89a7b968087987c9a5e3aab7f0f78159f6bcefdd
[~bandali/configs] / .config / i3 / config
1 exec --no-startup-id ~/.local/bin/startup-progs
2
3 # super
4 set $mod Mod4
5 # alt
6 set $mod2 Mod1
7 # hyper
8 set $mod3 Mod3
9
10 # window title and bar font (unless specified differently in 'bar {}'
11 font pango:Source Code Pro 9.5
12 # font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
13
14 # for dragging floating windows with mouse
15 floating_modifier $mod
16
17 # default tabbed
18 workspace_layout tabbed
19
20 # terminal
21 bindsym $mod+Return exec urxvt
22 bindsym $mod+Shift+Return exec urxvt -name floating
23 for_window [class="URxvt" instance="floating"] floating enable
24
25 # kill focused window (not necessarily its application)
26 bindsym $mod+Shift+w kill
27 # kill an application
28 #bindsym --release $mod+Shift+x exec xkill
29
30 # rofi launcher and pass
31 bindsym $mod+space exec rofi -show run -display-run ' > ' -display-window ' 🗔 '
32 bindsym $mod+backslash exec rofi -show window -display-run ' > ' -display-window ' 🗔 '
33 bindsym $mod+Shift+space exec rofi-pass
34
35 # brightness
36 bindsym $mod+apostrophe exec rofi-light # rofi-based brightness chooser
37 bindsym XF86MonBrightnessUp exec light -A 5 # increase screen brightness
38 bindsym XF86MonBrightnessDown exec light -U 5 # decrease screen brightness
39
40 # volume
41 bindsym XF86AudioRaiseVolume exec pamixer --allow-boost --increase 5
42 bindsym XF86AudioLowerVolume exec pamixer --allow-boost --decrease 5
43 bindsym XF86AudioMute exec pamixer --toggle-mute
44 bindsym XF86AudioMicMute exec pactl set-source-mute 1 toggle
45
46 # window focus
47 bindsym $mod+h focus left
48 bindsym $mod+j focus down
49 bindsym $mod+k focus up
50 bindsym $mod+l focus right
51 bindsym $mod+Left focus left
52 bindsym $mod+Down focus down
53 bindsym $mod+Up focus up
54 bindsym $mod+Right focus right
55
56 # window move
57 bindsym $mod+Shift+h move left
58 bindsym $mod+Shift+j move down
59 bindsym $mod+Shift+k move up
60 bindsym $mod+Shift+l move right
61 bindsym $mod+Shift+Left move left
62 bindsym $mod+Shift+Down move down
63 bindsym $mod+Shift+Up move up
64 bindsym $mod+Shift+Right move right
65
66 # horizontal and vertical orientation
67 bindsym $mod+shift+backslash split h
68 bindsym $mod+minus split v
69
70 # enter fullscreen mode for the focused container
71 bindsym $mod+f fullscreen toggle
72
73 # change container layout (stacked, tabbed, toggle split)
74 bindsym $mod+s layout stacking
75 bindsym $mod+w layout tabbed
76 bindsym $mod+e layout toggle split
77
78 # toggle tiling / floating
79 bindsym $mod+Shift+f floating toggle
80 # toggle tiling / floating focus
81 bindsym $mod+grave focus mode_toggle
82
83 # toggle sticky
84 bindsym $mod+shift+s sticky toggle
85
86 # focus parent / child
87 bindsym $mod+a focus parent
88 bindsym $mod+Shift+a focus child
89
90 # switch to workspace
91 bindsym $mod+1 workspace 1
92 bindsym $mod+2 workspace 2
93 bindsym $mod+3 workspace 3
94 bindsym $mod+4 workspace 4
95 bindsym $mod+5 workspace 5
96 bindsym $mod+6 workspace 6
97 bindsym $mod+7 workspace 7
98 bindsym $mod+8 workspace 8
99 bindsym $mod+9 workspace 9
100 bindsym $mod+0 workspace 10
101 bindsym $mod+bracketleft workspace prev
102 bindsym $mod+bracketright workspace next
103
104 # move focused container to workspace
105 bindsym $mod+Shift+1 move container to workspace 1
106 bindsym $mod+Shift+2 move container to workspace 2
107 bindsym $mod+Shift+3 move container to workspace 3
108 bindsym $mod+Shift+4 move container to workspace 4
109 bindsym $mod+Shift+5 move container to workspace 5
110 bindsym $mod+Shift+6 move container to workspace 6
111 bindsym $mod+Shift+7 move container to workspace 7
112 bindsym $mod+Shift+8 move container to workspace 8
113 bindsym $mod+Shift+9 move container to workspace 9
114 bindsym $mod+Shift+0 move container to workspace 10
115 bindsym $mod+Shift+bracketleft move container to workspace prev
116 bindsym $mod+Shift+bracketright move container to workspace next
117
118 # bspwm-esque workspace switch and container move
119 bindsym $mod2+bracketleft exec b-ws-util i3 switch prev
120 bindsym $mod2+bracketright exec b-ws-util i3 switch next
121 bindsym $mod2+Shift+bracketleft exec b-ws-util i3 move prev follow
122 bindsym $mod2+Shift+bracketright exec b-ws-util i3 move next follow
123
124 set $mode_system System (l)ock | (e)xit i3 | (s)uspend | (h)ibernate | (r)eboot | (S)hutdown
125 mode "$mode_system" {
126 bindsym l exec i3lock, mode "default"
127 bindsym e exec i3-msg exit, mode "default"
128 bindsym s exec systemctl suspend, mode "default"
129 bindsym h exec systemctl hibernate, mode "default"
130 bindsym r exec systemctl reboot, mode "default"
131 bindsym Shift+s exec systemctl poweroff -i, mode "default"
132
133 bindsym Return mode "default"
134 bindsym Escape mode "default"
135 bindsym q mode "default"
136 }
137
138 bindsym $mod+Shift+c reload
139 bindsym $mod+Shift+r restart
140 bindsym $mod+Shift+e mode "$mode_system"
141
142 # resize window (you can also use the mouse for that)
143 mode "resize" {
144 # These bindings trigger as soon as you enter the resize mode
145
146 # Pressing left will shrink the window’s width.
147 # Pressing right will grow the window’s width.
148 # Pressing up will shrink the window’s height.
149 # Pressing down will grow the window’s height.
150 bindsym j resize shrink width 10 px or 10 ppt
151 bindsym k resize grow height 10 px or 10 ppt
152 bindsym l resize shrink height 10 px or 10 ppt
153 bindsym semicolon resize grow width 10 px or 10 ppt
154
155 # same bindings, but for the arrow keys
156 bindsym Left resize shrink width 10 px or 10 ppt
157 bindsym Down resize grow height 10 px or 10 ppt
158 bindsym Up resize shrink height 10 px or 10 ppt
159 bindsym Right resize grow width 10 px or 10 ppt
160
161 # back to normal: Enter or Escape
162 bindsym Return mode "default"
163 bindsym Escape mode "default"
164 }
165 bindsym $mod+r mode "resize"
166
167 # application-specific window configurations
168 for_window [class="mpv"] floating enable
169 for_window [class="Mumble"] floating enable
170 for_window [class="Nm-connection-editor"] floating enable
171 for_window [class="Virt-manager"] floating enable
172
173 # no title bars
174 for_window [class="^.*"] border pixel 4
175
176 # i3bar and system info from i3status
177 bar {
178 status_command i3status | my-i3status
179 tray_output primary
180 }