diff options
Diffstat (limited to '.config/i3')
-rw-r--r-- | .config/i3/config##h.lowe | 282 |
1 files changed, 117 insertions, 165 deletions
diff --git a/.config/i3/config##h.lowe b/.config/i3/config##h.lowe index 2e5a8c4..b486760 100644 --- a/.config/i3/config##h.lowe +++ b/.config/i3/config##h.lowe | |||
@@ -1,124 +1,137 @@ | |||
1 | # i3 config file (v4) | 1 | # vim: filetype=i3config |
2 | # Please see https://i3wm.org/docs/userguide.html for a complete reference! | 2 | # https://i3wm.org/docs/userguide.html |
3 | 3 | ||
4 | # set modifiers | 4 | # set modifiers |
5 | set $mod Mod4 | 5 | set $mod Mod4 |
6 | set $alt Mod1 | 6 | set $alt Mod1 |
7 | 7 | ||
8 | # launch polybar | 8 | # use mouse+$mod to drag floating windows to their wanted position |
9 | exec --no-startup-id $HOME/.config/polybar/launch.sh & | 9 | floating_modifier $alt |
10 | 10 | ||
11 | # launch spliffer + notification | 11 | ## autostart |
12 | exec --no-startup-id $HOME/bin/watch_incoming.sh | 12 | exec --no-startup-id xsettingsd & |
13 | exec --no-startup-id picom -b | ||
14 | exec --no-startup-id flashfocus & | ||
15 | exec --no-startup-id nextcloud & | ||
16 | exec --no-startup-id copyq & | ||
17 | exec --no-startup-id redshift & | ||
18 | exec --no-startup-id nm-applet & | ||
19 | exec --no-startup-id udiskie --automount --file-manager thunar --tray --notify & | ||
20 | exec --no-startup-id /usr/lib/pam_kwallet_init | ||
21 | exec --no-startup-id remind -z -k'dunstify -i "calendar" "⏰ reminder!" "%s" &' ~/.reminders & | ||
22 | exec --no-startup-id /home/yigit/.local/bin/pulse-volume-watcher.py | xob -m 80 & | ||
23 | exec --no-startup-id $HOME/.config/polybar/launch.sh & | ||
13 | 24 | ||
14 | # start the screensaver, '' at the end is not a typo | 25 | # start the screensaver, '' at the end is not a typo |
15 | exec --no-startup-id xidlehook --not-when-fullscreen --not-when-audio --timer normal 300 'betterlockscreen -l dimblur -t "Welcome Back"' '' | 26 | exec --no-startup-id xidlehook --not-when-fullscreen --not-when-audio --timer normal 300 'betterlockscreen -l dimblur -t "Welcome Back"' '' |
16 | 27 | ||
17 | # flash the active window | 28 | # swap caps lock and escape, set keyboard layout |
18 | exec_always--no-startup-id flashfocus | 29 | exec --no-startup-id setxkbmap -model pc105 -layout us -variant colemak -option caps:backspace |
19 | 30 | ||
20 | # Font for window titles | 31 | # tap ctrl to esc, hold ctrl to ctrl |
21 | font pango:Lato 11 | 32 | exec --no-startup-id xcape -e 'Control_L=Escape' & |
22 | 33 | ||
23 | # Use Mouse+$mod to drag floating windows to their wanted position | 34 | # set the wallpaper |
24 | floating_modifier $alt | 35 | exec --no-startup-id ~/.fehbg |
36 | |||
37 | # font for window titles | ||
38 | font pango:Iosevka 11 | ||
25 | 39 | ||
26 | gaps inner 5 | 40 | gaps inner 5 |
27 | gaps outer 0 | 41 | gaps outer 0 |
28 | 42 | ||
29 | ############## | 43 | ## bindings |
30 | # bindings # | 44 | # done, {task,time}warrior control suite |
31 | ############## | 45 | bindcode $mod+42 exec --no-startup-id ~/.local/bin/done |
46 | |||
47 | # type the contents of the clipboard with mod+p | ||
48 | bindcode --release $mod+27 exec --no-startup-id ~/.local/bin/type_clipboard.sh | ||
32 | 49 | ||
33 | # i switched back to firefox can you tell | 50 | # launch emoji picker with mod+c |
34 | bindsym Ctrl+q exec --no-startup-id true | 51 | bindcode $mod+54 exec --no-startup-id rofimoji --skin-tone neutral |
35 | 52 | ||
36 | # get the mouse out of the way | 53 | # get the mouse out of the way |
37 | bindsym $mod+o exec --no-startup-id xdotool mousemove 1920 1080 | 54 | bindsym $mod+32 exec --no-startup-id xdotool mousemove 1920 1080 |
38 | 55 | ||
39 | # bookmark from clipboard | 56 | # bookmark from clipboard |
40 | bindsym $mod+u exec --no-startup-id ~/bin/bukuadd_c | 57 | bindcode $mod+30 exec --no-startup-id ~/.local/bin/bukuadd_c |
41 | |||
42 | # add taskwarrior/gtd calendar item | ||
43 | bindsym $mod+Shift+t exec --no-startup-id ~/bin/td | ||
44 | |||
45 | # add taskwarrior/gtd inbox item | ||
46 | bindsym $mod+Shift+i exec --no-startup-id ~/bin/in | ||
47 | |||
48 | # swap caps lock and escape, set keyboard layout, 35 is ]/ü (layout agnostic) | ||
49 | bindcode $mod+35 exec --no-startup-id "setxkbmap -model pc105 -layout us,us,tr -variant ,colemak, -option grp:alt_shift_toggle,caps:backspace" | ||
50 | 58 | ||
51 | # use flameshot with print screen | 59 | # use flameshot with print screen |
52 | bindsym Print exec flameshot gui | 60 | bindsym Print exec flameshot gui |
53 | 61 | ||
54 | # media keys | 62 | # media keys |
55 | bindsym XF86AudioRaiseVolume exec --no-startup-id "amixer set Master 2%+ && volnoti-show $(amixer get Master | grep -Po '[0-9]+(?=%)' | head -1)" | 63 | bindsym XF86AudioRaiseVolume exec --no-startup-id amixer set Master 2%+ |
56 | bindsym XF86AudioLowerVolume exec --no-startup-id "amixer set Master 2%- && volnoti-show $(amixer get Master | grep -Po '[0-9]+(?=%)' | head -1)" | 64 | bindsym XF86AudioLowerVolume exec --no-startup-id amixer set Master 2%- |
57 | bindsym XF86AudioMute exec --no-startup-id "amixer set Master toggle && if amixer get Master | grep -Fq '[off]'; then volnoti-show -m; else volnoti-show $(amixer get Master | grep -Po '[0-9]+(?=%)' | head -1); fi" | 65 | bindsym XF86AudioMute exec --no-startup-id amixer set Master toggle |
58 | bindsym XF86AudioPlay exec --no-startup-id playerctl play-pause | 66 | bindsym XF86AudioPlay exec --no-startup-id playerctl play-pause # for spotify |
59 | bindsym XF86AudioPrev exec --no-startup-id playerctl previous | 67 | bindsym XF86AudioPrev exec --no-startup-id playerctl previous |
60 | bindsym XF86AudioNext exec --no-startup-id playerctl next | 68 | bindsym XF86AudioNext exec --no-startup-id playerctl next |
69 | bindsym XF86Tools exec --no-startup-id mpc toggle # for mpd/ncmpcpp | ||
61 | 70 | ||
62 | # Make the currently focused window a scratchpad | 71 | # make the currently focused window a scratchpad |
63 | bindsym $mod+Shift+minus move scratchpad | 72 | bindcode $mod+Shift+20 move scratchpad |
64 | 73 | ||
65 | # Show the first scratchpad window | 74 | # show the first scratchpad window |
66 | bindsym $mod+minus scratchpad show | 75 | bindcode $mod+20 scratchpad show |
67 | 76 | ||
68 | # shortcuts for frequent programs | 77 | # pause notifications for a while with mod+shift+y |
69 | bindsym $mod+Shift+z exec zotero | 78 | bindcode $mod+Shift+32 exec ~/.local/bin/toggle_notifications.sh |
70 | bindsym $mod+Shift+f exec pcmanfm | ||
71 | 79 | ||
80 | ## shortcuts for frequent programs | ||
81 | |||
82 | # zotero on mod+shift+z | ||
83 | bindcode $mod+Shift+52 exec zotero | ||
84 | # thunar on mod+shift+t | ||
85 | bindcode $mod+Shift+41 exec thunar | ||
72 | # start a terminal | 86 | # start a terminal |
73 | bindsym $mod+Return exec kitty | 87 | bindsym $mod+Return exec kitty |
88 | # start rofi with mod+s | ||
89 | bindcode $mod+40 exec rofi -show combi | ||
90 | # launch the poweroff menu | ||
91 | bindsym $mod+Shift+Escape exec --no-startup-id ~/.local/bin/power.sh | ||
74 | 92 | ||
75 | # kill focused window | 93 | # kill focused window |
76 | bindsym $mod+Shift+q kill | 94 | bindcode $mod+Shift+24 kill |
77 | bindsym --whole-window $mod+button2 kill | 95 | bindsym --whole-window $mod+button2 kill |
78 | 96 | ||
79 | # start rofi (a program launcher) | 97 | # change focus on mod+hnei (qwerty hjkl) |
80 | bindsym $mod+d exec rofi -show combi | 98 | bindcode $mod+43 focus left |
81 | 99 | bindcode $mod+44 focus down | |
82 | # change focus | 100 | bindcode $mod+45 focus up |
83 | bindsym $mod+h focus left | 101 | bindcode $mod+46 focus right |
84 | bindsym $mod+j focus down | ||
85 | bindsym $mod+k focus up | ||
86 | bindsym $mod+l focus right | ||
87 | 102 | ||
88 | # move focused window | 103 | # move focused window on mod+shift+hnei |
89 | bindsym $mod+Shift+h move left | 104 | bindcode $mod+Shift+43 move left |
90 | bindsym $mod+Shift+j move down | 105 | bindcode $mod+Shift+44 move down |
91 | bindsym $mod+Shift+k move up | 106 | bindcode $mod+Shift+45 move up |
92 | bindsym $mod+Shift+l move right | 107 | bindcode $mod+Shift+46 move right |
93 | 108 | ||
94 | # split in horizontal orientation | 109 | # split in horizontal orientation with mod+b |
95 | bindsym $mod+b split h | 110 | bindcode $mod+56 split h |
96 | 111 | ||
97 | # split in vertical orientation | 112 | # split in vertical orientation with mod+v |
98 | bindsym $mod+v split v | 113 | bindcode $mod+55 split v |
99 | 114 | ||
100 | # enter fullscreen mode for the focused container | 115 | # enter fullscreen mode for the focused container with mod+t |
101 | bindsym $mod+f fullscreen toggle | 116 | bindcode $mod+41 fullscreen toggle |
102 | 117 | ||
103 | # change container layout (stacked, tabbed, toggle split) | 118 | # change container layout (stacked, tabbed, toggle split) |
104 | bindsym $mod+s layout stacking | 119 | bindcode $mod+39 layout stacking |
105 | bindsym $mod+w layout tabbed | 120 | bindcode $mod+25 layout tabbed |
106 | bindsym $mod+e layout toggle split | 121 | bindcode $mod+26 layout toggle split |
107 | 122 | ||
108 | # toggle tiling / floating | 123 | # toggle tiling / floating |
109 | bindsym $mod+Shift+space floating toggle | 124 | bindsym $mod+Shift+space floating toggle |
110 | 125 | ||
111 | # toggle sticky floating window | 126 | # toggle sticky floating window with mod+a |
112 | bindsym $mod+a sticky toggle | 127 | bindcode $mod+38 sticky toggle |
113 | 128 | ||
114 | # change focus between tiling / floating windows | 129 | # change focus between tiling / floating windows |
115 | bindsym $mod+space focus mode_toggle | 130 | bindsym $mod+space focus mode_toggle |
116 | 131 | ||
117 | # focus the parent container | ||
118 | # bindsym $mod+a focus parent | ||
119 | |||
120 | # Define names for default workspaces for which we configure key bindings later on. | 132 | # Define names for default workspaces for which we configure key bindings later on. |
121 | # We use variables to avoid repeating the names in multiple places. | 133 | # We use variables to avoid repeating the names in multiple places. |
134 | # Workspace icons are added at polybar | ||
122 | set $ws1 "1" | 135 | set $ws1 "1" |
123 | set $ws2 "2" | 136 | set $ws2 "2" |
124 | set $ws3 "3" | 137 | set $ws3 "3" |
@@ -128,7 +141,11 @@ set $ws6 "6" | |||
128 | set $ws7 "7" | 141 | set $ws7 "7" |
129 | set $ws8 "8" | 142 | set $ws8 "8" |
130 | set $ws9 "9" | 143 | set $ws9 "9" |
131 | set $ws10 "10" | 144 | set $ws10 "0" |
145 | set $wsmusic "music" | ||
146 | set $wszotero "zotero" | ||
147 | set $wsdesktop "desktop" | ||
148 | set $wsbrowser "browser" | ||
132 | 149 | ||
133 | # switch to workspace | 150 | # switch to workspace |
134 | bindsym $mod+1 workspace $ws1 | 151 | bindsym $mod+1 workspace $ws1 |
@@ -139,8 +156,12 @@ bindsym $mod+5 workspace $ws5 | |||
139 | bindsym $mod+6 workspace $ws6 | 156 | bindsym $mod+6 workspace $ws6 |
140 | bindsym $mod+7 workspace $ws7 | 157 | bindsym $mod+7 workspace $ws7 |
141 | bindsym $mod+8 workspace $ws8 | 158 | bindsym $mod+8 workspace $ws8 |
142 | bindsym $mod+9 workspace $ws9 | 159 | bindsym $mod+9 workspace $wssteam |
143 | bindsym $mod+0 workspace $ws10 | 160 | bindsym $mod+0 workspace $ws10 |
161 | bindsym $mod+m workspace $wsmusic | ||
162 | bindcode $mod+49 workspace $wszotero | ||
163 | bindcode $mod+60 workspace $wsdesktop | ||
164 | bindcode $mod+21 workspace $wsbrowser | ||
144 | 165 | ||
145 | # move focused container to workspace | 166 | # move focused container to workspace |
146 | bindsym $mod+Shift+1 move container to workspace $ws1 | 167 | bindsym $mod+Shift+1 move container to workspace $ws1 |
@@ -151,111 +172,42 @@ bindsym $mod+Shift+5 move container to workspace $ws5 | |||
151 | bindsym $mod+Shift+6 move container to workspace $ws6 | 172 | bindsym $mod+Shift+6 move container to workspace $ws6 |
152 | bindsym $mod+Shift+7 move container to workspace $ws7 | 173 | bindsym $mod+Shift+7 move container to workspace $ws7 |
153 | bindsym $mod+Shift+8 move container to workspace $ws8 | 174 | bindsym $mod+Shift+8 move container to workspace $ws8 |
154 | bindsym $mod+Shift+9 move container to workspace $ws9 | 175 | bindsym $mod+Shift+9 move container to workspace $wssteam |
155 | bindsym $mod+Shift+0 move container to workspace $ws10 | 176 | bindsym $mod+Shift+0 move container to workspace $ws10 |
177 | bindsym $mod+Shift+m move container to workspace $wsmusic | ||
178 | bindcode $mod+Shift+49 move container to workspace $wszotero | ||
179 | bindcode $mod+Shift+60 move container to workspace $wsdesktop | ||
180 | bindcode $mod+Shift+21 move container to workspace $wsbrowser | ||
156 | 181 | ||
157 | # reload the configuration file | 182 | # reload the configuration file |
158 | bindsym $mod+Shift+c reload | 183 | bindcode $mod+Shift+54 reload |
159 | # restart i3 inplace (preserves your layout/session, can be used to upgrade i3) | 184 | # restart i3 inplace (preserves your layout/session, can be used to upgrade i3) |
160 | bindsym $mod+Shift+r restart | 185 | bindcode $mod+Shift+27 restart |
161 | 186 | ||
162 | # resize window (you can also use the mouse for that) | 187 | default_border pixel 2 |
163 | mode "resize" { | ||
164 | # These bindings trigger as soon as you enter the resize mode | ||
165 | |||
166 | # Pressing left will shrink the window’s width. | ||
167 | # Pressing right will grow the window’s width. | ||
168 | # Pressing up will shrink the window’s height. | ||
169 | # Pressing down will grow the window’s height. | ||
170 | bindsym h resize shrink width 10 px or 10 ppt | ||
171 | bindsym j resize grow height 10 px or 10 ppt | ||
172 | bindsym k resize shrink height 10 px or 10 ppt | ||
173 | bindsym l resize grow width 10 px or 10 ppt | ||
174 | |||
175 | # back to normal: Enter or Escape or $mod+r | ||
176 | bindsym Return mode "default" | ||
177 | bindsym Escape mode "default" | ||
178 | bindsym $mod+r mode "default" | ||
179 | } | ||
180 | bindsym $mod+r mode "resize" | ||
181 | |||
182 | # session | ||
183 | mode " (L)ock (S)ignout (R)eboot (P)oweroff" { | ||
184 | bindsym $mod+l exec betterlockscreen -l dimblur -t "Welcome back" | ||
185 | bindsym $mod+r exec systemctl reboot | ||
186 | bindsym $mod+p exec systemctl poweroff | ||
187 | bindsym $mod+s exit | ||
188 | bindcode 66 mode "default" | ||
189 | } | ||
190 | bindsym $mod+Shift+e mode " (L)ock (S)ignout (R)eboot (P)oweroff" | ||
191 | |||
192 | bindsym $mod+Shift+Escape exec --no-startup-id ~/bin/power.sh | ||
193 | |||
194 | set $mode_gaps Gaps: (o)uter, (i)nner | ||
195 | #, (h)orizontal, (v)ertical, (t)op, (r)ight, (b)ottom, (l)eft | ||
196 | set $mode_gaps_outer Outer Gaps: +|-|0 (local), Shift + +|-|0 (global) | ||
197 | set $mode_gaps_inner Inner Gaps: +|-|0 (local), Shift + +|-|0 (global) | ||
198 | # set $mode_gaps_horiz Horizontal Gaps: +|-|0 (local), Shift + +|-|0 (global) | ||
199 | # set $mode_gaps_verti Vertical Gaps: +|-|0 (local), Shift + +|-|0 (global) | ||
200 | # set $mode_gaps_top Top Gaps: +|-|0 (local), Shift + +|-|0 (global) | ||
201 | # set $mode_gaps_right Right Gaps: +|-|0 (local), Shift + +|-|0 (global) | ||
202 | # set $mode_gaps_bottom Bottom Gaps: +|-|0 (local), Shift + +|-|0 (global) | ||
203 | # set $mode_gaps_left Left Gaps: +|-|0 (local), Shift + +|-|0 (global) | ||
204 | bindsym $mod+Shift+g mode "$mode_gaps" | ||
205 | |||
206 | mode "$mode_gaps" { | ||
207 | bindsym o mode "$mode_gaps_outer" | ||
208 | bindsym i mode "$mode_gaps_inner" | ||
209 | # bindsym h mode "$mode_gaps_horiz" | ||
210 | # bindsym v mode "$mode_gaps_verti" | ||
211 | # bindsym t mode "$mode_gaps_top" | ||
212 | # bindsym r mode "$mode_gaps_right" | ||
213 | # bindsym b mode "$mode_gaps_bottom" | ||
214 | # bindsym l mode "$mode_gaps_left" | ||
215 | # bindsym Return mode "$mode_gaps" | ||
216 | bindsym Escape mode "default" | ||
217 | } | ||
218 | |||
219 | mode "$mode_gaps_outer" { | ||
220 | bindsym plus gaps outer current plus 5 | ||
221 | bindsym minus gaps outer current minus 5 | ||
222 | bindsym 0 gaps outer current set 0 | ||
223 | |||
224 | bindsym Shift+plus gaps outer all plus 5 | ||
225 | bindsym Shift+minus gaps outer all minus 5 | ||
226 | bindsym Shift+0 gaps outer all set 0 | ||
227 | |||
228 | bindsym Return mode "$mode_gaps" | ||
229 | bindsym Escape mode "default" | ||
230 | } | ||
231 | mode "$mode_gaps_inner" { | ||
232 | bindsym plus gaps inner current plus 5 | ||
233 | bindsym minus gaps inner current minus 5 | ||
234 | bindsym 0 gaps inner current set 0 | ||
235 | |||
236 | bindsym Shift+plus gaps inner all plus 5 | ||
237 | bindsym Shift+minus gaps inner all minus 5 | ||
238 | bindsym Shift+0 gaps inner all set 0 | ||
239 | |||
240 | bindsym Return mode "$mode_gaps" | ||
241 | bindsym Escape mode "default" | ||
242 | } | ||
243 | |||
244 | for_window [class=".*"] border pixel 0 | ||
245 | for_window [class="Zotero" instance="Toplevel" title="Quick Format Citation"] floating enable | 188 | for_window [class="Zotero" instance="Toplevel" title="Quick Format Citation"] floating enable |
246 | for_window [class="Zotero" instance="Toplevel" title="Progress"] floating enable | 189 | for_window [class="Zotero" instance="Toplevel" title="Progress"] floating enable |
247 | assign [class="^Thunderbird$"] 8 | 190 | for_window [class="Zotero" window_role="pref"] floating enable |
248 | 191 | for_window [class="zoom" title="Chat"] floating enable | |
249 | # class border backgr. text indicator child_border | 192 | for_window [class="Dia" window_role="toolbox_window"] floating enable |
250 | client.focused #458588 #285577 #ffffff #458588 #285577 | 193 | for_window [class="Pavucontrol" title="Volume Control"] floating enable |
251 | client.focused_inactive #b16286 #5f676a #ffffff #484e50 #5f676a | 194 | |
252 | client.unfocused #927374 #222222 #888888 #292d2e #222222 | 195 | assign [class="^Brave-browser$"] $wsbrowser |
253 | client.urgent #2f343a #900000 #ffffff #900000 #900000 | 196 | assign [class="^Zotero$"] $wszotero |
254 | client.placeholder #000000 #0c0c0c #ffffff #000000 #0c0c0c | 197 | for_window [class="Spotify"] move --no-auto-back-and-forth container to workspace $wsmusic |
198 | |||
199 | # class border background text indicator child_border | ||
200 | client.focused #ae81ff #080808 #85dc85 #ff5454 #ae81ff | ||
201 | client.focused_inactive #ae81ff #9e9e9e #080808 #ff5454 #5f676a | ||
202 | client.unfocused #ae81ff #323437 #b2b2b2 #ff5454 #222222 | ||
203 | client.urgent #ae81ff #900000 #b2b2b2 #ff5454 #900000 | ||
204 | client.placeholder #ae81ff #0c0c0c #b2b2b2 #ff5454 #0c0c0c | ||
255 | 205 | ||
256 | client.background #ffffff | 206 | client.background #ffffff |
257 | 207 | ||
258 | # config | 208 | # config |
259 | hide_edge_borders smart | 209 | hide_edge_borders none |
260 | workspace_auto_back_and_forth yes | 210 | workspace_auto_back_and_forth yes |
261 | focus_follows_mouse no | 211 | focus_follows_mouse no |
212 | mouse_warping none | ||
213 | focus_wrapping no | ||