| 1 | 1 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,218 @@ |
| 1 |
+## Variables |
|
| 2 |
+set $mod Mod4 |
|
| 3 |
+floating_modifier $mod |
|
| 4 |
+ |
|
| 5 |
+## Font |
|
| 6 |
+font pango:monospace 10 |
|
| 7 |
+ |
|
| 8 |
+## Wrapping |
|
| 9 |
+focus_wrapping no |
|
| 10 |
+ |
|
| 11 |
+## Focus window |
|
| 12 |
+bindsym $mod+h focus left |
|
| 13 |
+bindsym $mod+j focus down |
|
| 14 |
+bindsym $mod+k focus up |
|
| 15 |
+bindsym $mod+l focus right |
|
| 16 |
+ |
|
| 17 |
+## Move window |
|
| 18 |
+bindsym $mod+Shift+h move left |
|
| 19 |
+bindsym $mod+Shift+j move down |
|
| 20 |
+bindsym $mod+Shift+k move up |
|
| 21 |
+bindsym $mod+Shift+l move right |
|
| 22 |
+ |
|
| 23 |
+## Focus parent |
|
| 24 |
+bindsym $mod+a focus parent |
|
| 25 |
+ |
|
| 26 |
+## Focus child |
|
| 27 |
+bindsym $mod+z focus child |
|
| 28 |
+ |
|
| 29 |
+## Split |
|
| 30 |
+bindsym $mod+v split h |
|
| 31 |
+bindsym $mod+s split v |
|
| 32 |
+ |
|
| 33 |
+## Layout |
|
| 34 |
+bindsym $mod+q layout stacking |
|
| 35 |
+bindsym $mod+w layout tabbed |
|
| 36 |
+bindsym $mod+e layout toggle split |
|
| 37 |
+ |
|
| 38 |
+## Toggle fullscreen |
|
| 39 |
+bindsym $mod+f fullscreen toggle |
|
| 40 |
+ |
|
| 41 |
+## Toggle floating focus |
|
| 42 |
+bindsym $mod+Shift+f focus mode_toggle |
|
| 43 |
+ |
|
| 44 |
+## Toggle floating |
|
| 45 |
+bindsym $mod+Control+f floating toggle |
|
| 46 |
+ |
|
| 47 |
+## Automatic floating |
|
| 48 |
+for_window [instance="(^|-)floating(-|$)"] floating enable |
|
| 49 |
+ |
|
| 50 |
+## Kill |
|
| 51 |
+bindsym $mod+Shift+q kill |
|
| 52 |
+ |
|
| 53 |
+## Reload |
|
| 54 |
+bindsym $mod+Shift+r reload |
|
| 55 |
+ |
|
| 56 |
+## Restart |
|
| 57 |
+bindsym $mod+Control+r restart |
|
| 58 |
+ |
|
| 59 |
+## Exit |
|
| 60 |
+bindsym $mod+Control+e exit |
|
| 61 |
+ |
|
| 62 |
+## Terminal |
|
| 63 |
+bindsym $mod+Return exec --no-startup-id $TERMINAL |
|
| 64 |
+ |
|
| 65 |
+## Launcher |
|
| 66 |
+bindsym $mod+d exec --no-startup-id rofi -show drun |
|
| 67 |
+ |
|
| 68 |
+## Rename workspace |
|
| 69 |
+bindsym $mod+x exec --no-startup-id i3-workspace-rename rofi -dmenu -l 0 -filter |
|
| 70 |
+ |
|
| 71 |
+## Switch workspace |
|
| 72 |
+bindsym $mod+1 workspace number 1 |
|
| 73 |
+bindsym $mod+2 workspace number 2 |
|
| 74 |
+bindsym $mod+3 workspace number 3 |
|
| 75 |
+bindsym $mod+4 workspace number 4 |
|
| 76 |
+bindsym $mod+5 workspace number 5 |
|
| 77 |
+bindsym $mod+6 workspace number 6 |
|
| 78 |
+bindsym $mod+7 workspace number 7 |
|
| 79 |
+bindsym $mod+8 workspace number 8 |
|
| 80 |
+bindsym $mod+9 workspace number 9 |
|
| 81 |
+bindsym $mod+0 workspace number 10 |
|
| 82 |
+bindsym $mod+Tab workspace next |
|
| 83 |
+bindsym $mod+Shift+Tab workspace prev |
|
| 84 |
+bindsym $mod+Control+Tab workspace back_and_forth |
|
| 85 |
+ |
|
| 86 |
+## Move to workspace |
|
| 87 |
+bindsym $mod+Shift+1 move container to workspace number 1 |
|
| 88 |
+bindsym $mod+Shift+2 move container to workspace number 2 |
|
| 89 |
+bindsym $mod+Shift+3 move container to workspace number 3 |
|
| 90 |
+bindsym $mod+Shift+4 move container to workspace number 4 |
|
| 91 |
+bindsym $mod+Shift+5 move container to workspace number 5 |
|
| 92 |
+bindsym $mod+Shift+6 move container to workspace number 6 |
|
| 93 |
+bindsym $mod+Shift+7 move container to workspace number 7 |
|
| 94 |
+bindsym $mod+Shift+8 move container to workspace number 8 |
|
| 95 |
+bindsym $mod+Shift+9 move container to workspace number 9 |
|
| 96 |
+bindsym $mod+Shift+0 move container to workspace number 10 |
|
| 97 |
+ |
|
| 98 |
+## Move and switch to workspace |
|
| 99 |
+bindsym $mod+Control+1 move container to workspace number 1; workspace number 1 |
|
| 100 |
+bindsym $mod+Control+2 move container to workspace number 2; workspace number 2 |
|
| 101 |
+bindsym $mod+Control+3 move container to workspace number 3; workspace number 3 |
|
| 102 |
+bindsym $mod+Control+4 move container to workspace number 4; workspace number 4 |
|
| 103 |
+bindsym $mod+Control+5 move container to workspace number 5; workspace number 5 |
|
| 104 |
+bindsym $mod+Control+6 move container to workspace number 6; workspace number 6 |
|
| 105 |
+bindsym $mod+Control+7 move container to workspace number 7; workspace number 7 |
|
| 106 |
+bindsym $mod+Control+8 move container to workspace number 8; workspace number 8 |
|
| 107 |
+bindsym $mod+Control+9 move container to workspace number 9; workspace number 9 |
|
| 108 |
+bindsym $mod+Control+0 move container to workspace number 10; workspace number 10 |
|
| 109 |
+ |
|
| 110 |
+## Resize |
|
| 111 |
+bindsym $mod+r mode "resize" |
|
| 112 |
+mode "resize" |
|
| 113 |
+{
|
|
| 114 |
+ bindsym Escape mode "default" |
|
| 115 |
+ bindsym Control+c mode "default" |
|
| 116 |
+ bindsym h resize shrink width 10 px or 10 ppt |
|
| 117 |
+ bindsym j resize grow height 10 px or 10 ppt |
|
| 118 |
+ bindsym k resize shrink height 10 px or 10 ppt |
|
| 119 |
+ bindsym l resize grow width 10 px or 10 ppt |
|
| 120 |
+} |
|
| 121 |
+ |
|
| 122 |
+## Mark |
|
| 123 |
+bindsym $mod+m mode "mark" |
|
| 124 |
+mode "mark" |
|
| 125 |
+{
|
|
| 126 |
+ bindsym Escape mode "default" |
|
| 127 |
+ bindsym Control+c mode "default" |
|
| 128 |
+ bindsym $mod+a mark --add --toggle a; mode "default" |
|
| 129 |
+ bindsym $mod+b mark --add --toggle b; mode "default" |
|
| 130 |
+ bindsym $mod+c mark --add --toggle c; mode "default" |
|
| 131 |
+ bindsym $mod+d mark --add --toggle d; mode "default" |
|
| 132 |
+ bindsym $mod+e mark --add --toggle e; mode "default" |
|
| 133 |
+ bindsym $mod+f mark --add --toggle f; mode "default" |
|
| 134 |
+ bindsym $mod+g mark --add --toggle g; mode "default" |
|
| 135 |
+ bindsym $mod+h mark --add --toggle h; mode "default" |
|
| 136 |
+ bindsym $mod+i mark --add --toggle i; mode "default" |
|
| 137 |
+ bindsym $mod+j mark --add --toggle j; mode "default" |
|
| 138 |
+ bindsym $mod+k mark --add --toggle k; mode "default" |
|
| 139 |
+ bindsym $mod+l mark --add --toggle l; mode "default" |
|
| 140 |
+ bindsym $mod+m mark --add --toggle m; mode "default" |
|
| 141 |
+ bindsym $mod+n mark --add --toggle n; mode "default" |
|
| 142 |
+ bindsym $mod+o mark --add --toggle o; mode "default" |
|
| 143 |
+ bindsym $mod+p mark --add --toggle p; mode "default" |
|
| 144 |
+ bindsym $mod+q mark --add --toggle q; mode "default" |
|
| 145 |
+ bindsym $mod+r mark --add --toggle r; mode "default" |
|
| 146 |
+ bindsym $mod+s mark --add --toggle s; mode "default" |
|
| 147 |
+ bindsym $mod+t mark --add --toggle t; mode "default" |
|
| 148 |
+ bindsym $mod+u mark --add --toggle u; mode "default" |
|
| 149 |
+ bindsym $mod+v mark --add --toggle v; mode "default" |
|
| 150 |
+ bindsym $mod+w mark --add --toggle w; mode "default" |
|
| 151 |
+ bindsym $mod+x mark --add --toggle x; mode "default" |
|
| 152 |
+ bindsym $mod+y mark --add --toggle y; mode "default" |
|
| 153 |
+ bindsym $mod+z mark --add --toggle z; mode "default" |
|
| 154 |
+ bindsym $mod+1 mark --add --toggle 1; mode "default" |
|
| 155 |
+ bindsym $mod+2 mark --add --toggle 2; mode "default" |
|
| 156 |
+ bindsym $mod+3 mark --add --toggle 3; mode "default" |
|
| 157 |
+ bindsym $mod+4 mark --add --toggle 4; mode "default" |
|
| 158 |
+ bindsym $mod+5 mark --add --toggle 5; mode "default" |
|
| 159 |
+ bindsym $mod+6 mark --add --toggle 6; mode "default" |
|
| 160 |
+ bindsym $mod+7 mark --add --toggle 7; mode "default" |
|
| 161 |
+ bindsym $mod+8 mark --add --toggle 8; mode "default" |
|
| 162 |
+ bindsym $mod+9 mark --add --toggle 9; mode "default" |
|
| 163 |
+ bindsym $mod+0 mark --add --toggle 0; mode "default" |
|
| 164 |
+ bindsym a [con_mark="a"] focus; mode "default" |
|
| 165 |
+ bindsym b [con_mark="b"] focus; mode "default" |
|
| 166 |
+ bindsym c [con_mark="c"] focus; mode "default" |
|
| 167 |
+ bindsym d [con_mark="d"] focus; mode "default" |
|
| 168 |
+ bindsym e [con_mark="e"] focus; mode "default" |
|
| 169 |
+ bindsym f [con_mark="f"] focus; mode "default" |
|
| 170 |
+ bindsym g [con_mark="g"] focus; mode "default" |
|
| 171 |
+ bindsym h [con_mark="h"] focus; mode "default" |
|
| 172 |
+ bindsym i [con_mark="i"] focus; mode "default" |
|
| 173 |
+ bindsym j [con_mark="j"] focus; mode "default" |
|
| 174 |
+ bindsym k [con_mark="k"] focus; mode "default" |
|
| 175 |
+ bindsym l [con_mark="l"] focus; mode "default" |
|
| 176 |
+ bindsym m [con_mark="m"] focus; mode "default" |
|
| 177 |
+ bindsym n [con_mark="n"] focus; mode "default" |
|
| 178 |
+ bindsym o [con_mark="o"] focus; mode "default" |
|
| 179 |
+ bindsym p [con_mark="p"] focus; mode "default" |
|
| 180 |
+ bindsym q [con_mark="q"] focus; mode "default" |
|
| 181 |
+ bindsym r [con_mark="r"] focus; mode "default" |
|
| 182 |
+ bindsym s [con_mark="s"] focus; mode "default" |
|
| 183 |
+ bindsym t [con_mark="t"] focus; mode "default" |
|
| 184 |
+ bindsym u [con_mark="u"] focus; mode "default" |
|
| 185 |
+ bindsym v [con_mark="v"] focus; mode "default" |
|
| 186 |
+ bindsym w [con_mark="w"] focus; mode "default" |
|
| 187 |
+ bindsym x [con_mark="x"] focus; mode "default" |
|
| 188 |
+ bindsym y [con_mark="y"] focus; mode "default" |
|
| 189 |
+ bindsym z [con_mark="z"] focus; mode "default" |
|
| 190 |
+ bindsym 1 [con_mark="1"] focus; mode "default" |
|
| 191 |
+ bindsym 2 [con_mark="2"] focus; mode "default" |
|
| 192 |
+ bindsym 3 [con_mark="3"] focus; mode "default" |
|
| 193 |
+ bindsym 4 [con_mark="4"] focus; mode "default" |
|
| 194 |
+ bindsym 5 [con_mark="5"] focus; mode "default" |
|
| 195 |
+ bindsym 6 [con_mark="6"] focus; mode "default" |
|
| 196 |
+ bindsym 7 [con_mark="7"] focus; mode "default" |
|
| 197 |
+ bindsym 8 [con_mark="8"] focus; mode "default" |
|
| 198 |
+ bindsym 9 [con_mark="9"] focus; mode "default" |
|
| 199 |
+ bindsym 0 [con_mark="0"] focus; mode "default" |
|
| 200 |
+} |
|
| 201 |
+ |
|
| 202 |
+## Borders |
|
| 203 |
+default_border pixel 0 |
|
| 204 |
+default_floating_border pixel 0 |
|
| 205 |
+ |
|
| 206 |
+## Colors |
|
| 207 |
+# https://notes.rcrnstn.net/colors.md |
|
| 208 |
+# border background text indicator child_border |
|
| 209 |
+client.focused #c6c6c6ff #000000ad #c6c6c6ff #00000000 #00000000 |
|
| 210 |
+client.focused_inactive #c6c6c6ff #000000c0 #919191ff #00000000 #00000000 |
|
| 211 |
+client.placeholder #919191ff #000000c0 #919191ff #00000000 #00000000 |
|
| 212 |
+client.unfocused #919191ff #000000c0 #919191ff #00000000 #00000000 |
|
| 213 |
+client.urgent #919191ff #000000c0 #ffb3b3ff #ffb3b3ff #00000000 |
|
| 214 |
+client.background #00000000 |
|
| 215 |
+ |
|
| 216 |
+## Gaps |
|
| 217 |
+gaps inner 10 |
|
| 218 |
+gaps outer -5 |
| 0 | 219 |
new file mode 100755 |
| ... | ... |
@@ -0,0 +1,21 @@ |
| 1 |
+#!/usr/bin/env python3 |
|
| 2 |
+ |
|
| 3 |
+import sys |
|
| 4 |
+import subprocess |
|
| 5 |
+import json |
|
| 6 |
+ |
|
| 7 |
+I3_GET = ['i3-msg', '-t', 'get_workspaces'] |
|
| 8 |
+I3_RENAME = ['i3-msg', 'rename', 'workspace', 'to'] |
|
| 9 |
+ |
|
| 10 |
+def get(): |
|
| 11 |
+ for workspace in json.loads(subprocess.check_output(I3_GET)): |
|
| 12 |
+ if workspace['focused']: |
|
| 13 |
+ return workspace['name'] |
|
| 14 |
+ |
|
| 15 |
+def filter(value): |
|
| 16 |
+ return subprocess.check_output([*sys.argv[1:], value]) |
|
| 17 |
+ |
|
| 18 |
+def rename(value): |
|
| 19 |
+ subprocess.call([*I3_RENAME, value]) |
|
| 20 |
+ |
|
| 21 |
+rename(filter(get())) |
| 0 | 22 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,14 @@ |
| 1 |
+i3 & |
|
| 2 |
+I3_PID="$!" |
|
| 3 |
+ |
|
| 4 |
+# Running `i3 --get-socketpath` seems to interfere with the startup of the `i3` |
|
| 5 |
+# running in the background. |
|
| 6 |
+# while ! i3 --get-socketpath > '/dev/null' |
|
| 7 |
+while ! [ -e '/run/user/1000/i3/ipc-socket.'* ] |
|
| 8 |
+do |
|
| 9 |
+ if ! [ "$(ps -p "$I3_PID" -o pid=)" ] |
|
| 10 |
+ then |
|
| 11 |
+ wait "$I3_PID" |
|
| 12 |
+ exit $? |
|
| 13 |
+ fi |
|
| 14 |
+done |