dblume commited on 2023-11-11 21:36:18
Showing 4 changed files, with 291 additions and 1 deletions.
... | ... |
@@ -0,0 +1,233 @@ |
1 |
+# i3 config file (v4) |
|
2 |
+# Please see https://i3wm.org/docs/userguide.html for a complete reference! |
|
3 |
+ |
|
4 |
+set $mod Mod4 |
|
5 |
+ |
|
6 |
+# Font for window titles. Will also be used by the bar unless a different font |
|
7 |
+# is used in the bar {} block below. |
|
8 |
+#font pango:monospace 13 |
|
9 |
+font pango:DejaVu Sans Mono 12 |
|
10 |
+ |
|
11 |
+# Start XDG autostart .desktop files using dex. See also |
|
12 |
+# https://wiki.archlinux.org/index.php/XDG_Autostart |
|
13 |
+exec --no-startup-id dex --autostart --environment i3 |
|
14 |
+ |
|
15 |
+# The combination of xss-lock, nm-applet and pactl is a popular choice, so |
|
16 |
+# they are included here as an example. Modify as you see fit. |
|
17 |
+ |
|
18 |
+# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the |
|
19 |
+# screen before suspend. Use loginctl lock-session to lock your screen. |
|
20 |
+exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --color 101030 --nofork |
|
21 |
+bindsym $mod+Shift+x exec i3lock --color 101030 |
|
22 |
+ |
|
23 |
+# NetworkManager is the most popular way to manage wireless networks on Linux, |
|
24 |
+# and nm-applet is a desktop environment-independent system tray GUI for it. |
|
25 |
+exec --no-startup-id nm-applet |
|
26 |
+ |
|
27 |
+# Use pactl to adjust volume in PulseAudio. |
|
28 |
+set $refresh_i3status killall -SIGUSR1 i3status |
|
29 |
+bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status |
|
30 |
+bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status |
|
31 |
+bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status |
|
32 |
+bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status |
|
33 |
+# sudo apt install brightnessctl |
|
34 |
+bindsym XF86MonBrightnessDown exec "brightnessctl --min-value=10 set 5%-" |
|
35 |
+bindsym XF86MonBrightnessUp exec "brightnessctl set 5%+" |
|
36 |
+ |
|
37 |
+## sound (from Alex Chen) |
|
38 |
+# sudo apt install playerctl |
|
39 |
+#bindsym XF86AudioRaiseVolume exec pamixer -i 5 |
|
40 |
+#bindsym XF86AudioLowerVolume exec pamixer -d 5 |
|
41 |
+#bindsym XF86AudioMute exec pamixer -t |
|
42 |
+bindsym XF86AudioPlay exec playerctl play-pause |
|
43 |
+bindsym XF86AudioNext exec playerctl next |
|
44 |
+bindsym XF86AudioPrev exec playerctl previous |
|
45 |
+ |
|
46 |
+bindsym $mod+g exec google-chrome --new-window |
|
47 |
+ |
|
48 |
+# Screenshot if using sway (Wayland) (from Alex Chen) |
|
49 |
+#bindsym Print exec grim -g "$(slurp)" ~/selection_$(date '+%Y%m%d-%H%M%S').png |
|
50 |
+#bindsym shift+Print exec grim -o $(swaymsg -t get_outputs | jq -r '.[] | select(.focused) | .name') ~/fullscreen_$(date '+%Y%m%d-%H%M%S').png |
|
51 |
+ |
|
52 |
+# Use Mouse+$mod to drag floating windows to their wanted position |
|
53 |
+floating_modifier $mod |
|
54 |
+ |
|
55 |
+# move tiling windows via drag & drop by left-clicking into the title bar, |
|
56 |
+# or left-clicking anywhere into the window while holding the floating modifier. |
|
57 |
+tiling_drag modifier titlebar |
|
58 |
+ |
|
59 |
+# start a terminal |
|
60 |
+bindsym $mod+Return exec i3-sensible-terminal |
|
61 |
+ |
|
62 |
+# kill focused window |
|
63 |
+bindsym $mod+Shift+q kill |
|
64 |
+ |
|
65 |
+# start dmenu (a program launcher) |
|
66 |
+bindsym $mod+d exec --no-startup-id dmenu_run |
|
67 |
+# A more modern dmenu replacement is rofi: |
|
68 |
+# bindcode $mod+40 exec "rofi -modi drun,run -show drun" |
|
69 |
+# There also is i3-dmenu-desktop which only displays applications shipping a |
|
70 |
+# .desktop file. It is a wrapper around dmenu, so you need that installed. |
|
71 |
+# bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop |
|
72 |
+ |
|
73 |
+# change focus |
|
74 |
+bindsym $mod+h focus left |
|
75 |
+bindsym $mod+j focus down |
|
76 |
+bindsym $mod+k focus up |
|
77 |
+bindsym $mod+l focus right |
|
78 |
+ |
|
79 |
+# alternatively, you can use the cursor keys: |
|
80 |
+bindsym $mod+Left focus left |
|
81 |
+bindsym $mod+Down focus down |
|
82 |
+bindsym $mod+Up focus up |
|
83 |
+bindsym $mod+Right focus right |
|
84 |
+ |
|
85 |
+# move focused window |
|
86 |
+bindsym $mod+Shift+h move left |
|
87 |
+bindsym $mod+Shift+j move down |
|
88 |
+bindsym $mod+Shift+k move up |
|
89 |
+bindsym $mod+Shift+l move right |
|
90 |
+ |
|
91 |
+# alternatively, you can use the cursor keys: |
|
92 |
+bindsym $mod+Shift+Left move left |
|
93 |
+bindsym $mod+Shift+Down move down |
|
94 |
+bindsym $mod+Shift+Up move up |
|
95 |
+bindsym $mod+Shift+Right move right |
|
96 |
+ |
|
97 |
+bindsym $mod+Tab workspace back_and_forth |
|
98 |
+bindsym $mod+Ctrl+l workspace next |
|
99 |
+bindsym $mod+Ctrl+h workspace prev |
|
100 |
+bindsym $mod+Ctrl+Right workspace next |
|
101 |
+bindsym $mod+Ctrl+Left workspace prev |
|
102 |
+bindsym $mod+Shift+Ctrl+l move window to workspace next; workspace next |
|
103 |
+bindsym $mod+Shift+Ctrl+h move window to workspace prev; workspace prev |
|
104 |
+ |
|
105 |
+# split in horizontal orientation |
|
106 |
+bindsym $mod+s split h |
|
107 |
+ |
|
108 |
+# split in vertical orientation |
|
109 |
+bindsym $mod+v split v |
|
110 |
+ |
|
111 |
+# enter fullscreen mode for the focused container |
|
112 |
+bindsym $mod+f fullscreen toggle |
|
113 |
+ |
|
114 |
+# change container layout (stacked, tabbed, toggle split) |
|
115 |
+#bindsym $mod+Shift+s layout stacking |
|
116 |
+bindsym $mod+w layout tabbed |
|
117 |
+bindsym $mod+e layout toggle split |
|
118 |
+ |
|
119 |
+# toggle tiling / floating |
|
120 |
+bindsym $mod+Shift+space floating toggle |
|
121 |
+ |
|
122 |
+# change focus between tiling / floating windows |
|
123 |
+bindsym $mod+space focus mode_toggle |
|
124 |
+ |
|
125 |
+# focus the parent container |
|
126 |
+bindsym $mod+a focus parent |
|
127 |
+ |
|
128 |
+# focus the child container |
|
129 |
+#bindsym $mod+d focus child |
|
130 |
+ |
|
131 |
+# Define names for default workspaces for which we configure key bindings later on. |
|
132 |
+# We use variables to avoid repeating the names in multiple places. |
|
133 |
+set $ws1 "1" |
|
134 |
+set $ws2 "2" |
|
135 |
+set $ws3 "3" |
|
136 |
+set $ws4 "4" |
|
137 |
+set $ws5 "5" |
|
138 |
+set $ws6 "6" |
|
139 |
+set $ws7 "7" |
|
140 |
+set $ws8 "8" |
|
141 |
+set $ws9 "9" |
|
142 |
+set $ws10 "10" |
|
143 |
+ |
|
144 |
+# switch to workspace |
|
145 |
+bindsym $mod+1 workspace number $ws1 |
|
146 |
+bindsym $mod+2 workspace number $ws2 |
|
147 |
+bindsym $mod+3 workspace number $ws3 |
|
148 |
+bindsym $mod+4 workspace number $ws4 |
|
149 |
+bindsym $mod+5 workspace number $ws5 |
|
150 |
+bindsym $mod+6 workspace number $ws6 |
|
151 |
+bindsym $mod+7 workspace number $ws7 |
|
152 |
+bindsym $mod+8 workspace number $ws8 |
|
153 |
+bindsym $mod+9 workspace number $ws9 |
|
154 |
+bindsym $mod+0 workspace number $ws10 |
|
155 |
+ |
|
156 |
+# move focused container to workspace |
|
157 |
+bindsym $mod+Shift+1 move container to workspace number $ws1; workspace number $ws1 |
|
158 |
+bindsym $mod+Shift+2 move container to workspace number $ws2; workspace number $ws2 |
|
159 |
+bindsym $mod+Shift+3 move container to workspace number $ws3; workspace number $ws3 |
|
160 |
+bindsym $mod+Shift+4 move container to workspace number $ws4; workspace number $ws4 |
|
161 |
+bindsym $mod+Shift+5 move container to workspace number $ws5; workspace number $ws5 |
|
162 |
+bindsym $mod+Shift+6 move container to workspace number $ws6; workspace number $ws6 |
|
163 |
+bindsym $mod+Shift+7 move container to workspace number $ws7; workspace number $ws7 |
|
164 |
+bindsym $mod+Shift+8 move container to workspace number $ws8; workspace number $ws8 |
|
165 |
+bindsym $mod+Shift+9 move container to workspace number $ws9; workspace number $ws9 |
|
166 |
+bindsym $mod+Shift+0 move container to workspace number $ws10; workspace number $ws10 |
|
167 |
+ |
|
168 |
+# reload the configuration file |
|
169 |
+bindsym $mod+Shift+c reload |
|
170 |
+# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) |
|
171 |
+bindsym $mod+Shift+r restart |
|
172 |
+# exit i3 (logs you out of your X session) |
|
173 |
+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'" |
|
174 |
+ |
|
175 |
+# resize window (you can also use the mouse for that) |
|
176 |
+mode "resize" { |
|
177 |
+ # These bindings trigger as soon as you enter the resize mode |
|
178 |
+ |
|
179 |
+ # Pressing left will shrink the window’s width. |
|
180 |
+ # Pressing right will grow the window’s width. |
|
181 |
+ # Pressing up will shrink the window’s height. |
|
182 |
+ # Pressing down will grow the window’s height. |
|
183 |
+ bindsym h resize shrink width 2 px or 2 ppt |
|
184 |
+ bindsym j resize grow height 2 px or 2 ppt |
|
185 |
+ bindsym k resize shrink height 2 px or 2 ppt |
|
186 |
+ bindsym l resize grow width 2 px or 2 ppt |
|
187 |
+ |
|
188 |
+ # same bindings, but for the arrow keys |
|
189 |
+ bindsym Left resize shrink width 2 px or 2 ppt |
|
190 |
+ bindsym Down resize grow height 2 px or 2 ppt |
|
191 |
+ bindsym Up resize shrink height 2 px or 2 ppt |
|
192 |
+ bindsym Right resize grow width 2 px or 2 ppt |
|
193 |
+ |
|
194 |
+ # back to normal: Enter or Escape or $mod+r |
|
195 |
+ bindsym Return mode "default" |
|
196 |
+ bindsym Escape mode "default" |
|
197 |
+ bindsym $mod+r mode "default" |
|
198 |
+} |
|
199 |
+bindsym $mod+r mode "resize" |
|
200 |
+ |
|
201 |
+set $bg-color #2f343f |
|
202 |
+set $inactive-bg-color #2f343f |
|
203 |
+set $text-color #f3f4f5 |
|
204 |
+set $inactive-text-color #676E7D |
|
205 |
+set $urgent-bg-color #E53935 |
|
206 |
+ |
|
207 |
+# From https://github.com/bookercodes/dotfiles/blob/ubuntu/.i3/config |
|
208 |
+# window colors |
|
209 |
+# border background text indicator |
|
210 |
+#client.focused $bg-color $bg-color $text-color #00ff00 |
|
211 |
+#client.unfocused $inactive-bg-color $inactive-bg-color $inactive-text-color #00ff00 |
|
212 |
+#client.focused_inactive $inactive-bg-color $inactive-bg-color $inactive-text-color #00ff00 |
|
213 |
+#client.urgent $urgent-bg-color $urgent-bg-color $text-color #00ff00 |
|
214 |
+hide_edge_borders none |
|
215 |
+ |
|
216 |
+# Start i3bar to display a workspace bar (plus the system information i3status |
|
217 |
+# finds out, if available) |
|
218 |
+bar { |
|
219 |
+ status_command i3status |
|
220 |
+} |
|
221 |
+ |
|
222 |
+# sudo apt install maim xclip |
|
223 |
+# Screenshots |
|
224 |
+bindsym Print exec --no-startup-id maim "/home/$USER/Pictures/$(date -Iseconds)" |
|
225 |
+bindsym $mod+Print exec --no-startup-id maim --window $(xdotool getactivewindow) "/home/$USER/Pictures/$(date -Iseconds)" |
|
226 |
+bindsym Shift+Print exec --no-startup-id maim --select "/home/$USER/Pictures/$(date -Iseconds)" |
|
227 |
+## Clipboard Screenshots |
|
228 |
+bindsym Ctrl+Print exec --no-startup-id maim | xclip -selection clipboard -t image/png |
|
229 |
+bindsym Ctrl+$mod+Print exec --no-startup-id maim --window $(xdotool getactivewindow) | xclip -selection clipboard -t image/png |
|
230 |
+bindsym Ctrl+Shift+Print exec --no-startup-id maim --select | xclip -selection clipboard -t image/png |
|
231 |
+ |
|
232 |
+# sudo apt install brightnessctl playerctl feh |
|
233 |
+exec feh --bg-scale /home/david/Pictures/chinesemoon.png |
... | ... |
@@ -0,0 +1,55 @@ |
1 |
+# i3status configuration file. |
|
2 |
+# see "man i3status" for documentation. |
|
3 |
+ |
|
4 |
+# It is important that this file is edited as UTF-8. |
|
5 |
+# The following line should contain a sharp s: |
|
6 |
+# ß |
|
7 |
+# If the above line is not correctly displayed, fix your editor first! |
|
8 |
+ |
|
9 |
+general { |
|
10 |
+ colors = true |
|
11 |
+ interval = 5 |
|
12 |
+} |
|
13 |
+ |
|
14 |
+#order += "ipv6" |
|
15 |
+order += "wireless _first_" |
|
16 |
+#order += "ethernet _first_" |
|
17 |
+order += "battery all" |
|
18 |
+#order += "disk /" |
|
19 |
+order += "load" |
|
20 |
+#order += "memory" |
|
21 |
+order += "tztime local" |
|
22 |
+ |
|
23 |
+wireless _first_ { |
|
24 |
+ # format_up = ": (%quality at %essid) %ip" |
|
25 |
+ format_up = " %quality %ip" |
|
26 |
+ format_down = ": down" |
|
27 |
+} |
|
28 |
+ |
|
29 |
+ethernet _first_ { |
|
30 |
+ format_up = "E: %ip (%speed)" |
|
31 |
+ format_down = "E: down" |
|
32 |
+} |
|
33 |
+ |
|
34 |
+battery all { |
|
35 |
+ format = " %status %percentage %remaining" |
|
36 |
+} |
|
37 |
+ |
|
38 |
+disk "/" { |
|
39 |
+ format = "%avail" |
|
40 |
+} |
|
41 |
+ |
|
42 |
+load { |
|
43 |
+ #format = " %1min" |
|
44 |
+ format = " %1min" |
|
45 |
+} |
|
46 |
+ |
|
47 |
+memory { |
|
48 |
+ format = "%used | %available" |
|
49 |
+ threshold_degraded = "1G" |
|
50 |
+ format_degraded = "MEMORY < %available" |
|
51 |
+} |
|
52 |
+ |
|
53 |
+tztime local { |
|
54 |
+ format = " %Y-%m-%d %H:%M" |
|
55 |
+} |
... | ... |
@@ -59,6 +59,7 @@ See [config.dlma.com](http://config.dlma.com) for more. |
59 | 59 |
9. .gdbinit |
60 | 60 |
10. .visidatarc, to hide [visidata's](https://www.visidata.org/) menu at the top, for the old school UI. |
61 | 61 |
11. .config/gitui/key\_bindings.ron, for vim key bindings in [gitui](https://github.com/extrawurst/gitui). |
62 |
+11. [i3](https://i3wm.org/) configs. |
|
62 | 63 |
|
63 | 64 |
#### Optional manual steps for fresh setups |
64 | 65 |
|
... | ... |
@@ -5,7 +5,8 @@ declare -r SCRIPT_NAME=$(basename "$BASH_SOURCE") |
5 | 5 |
declare -r backup_dir=$HOME/backup_of_dotfiles_$(date "+%Y-%m-%d_%H%M%S") |
6 | 6 |
declare -a dotfiles=(".bashrc" ".bash_profile" ".vimrc" ".editrc" ".gitconfig" |
7 | 7 |
".gitignore" ".inputrc" ".tmux.conf" ".ssh/config" ".ripgreprc" |
8 |
- ".gdbinit" ".config/gitui/key_bindings.ron" ".visidatarc") |
|
8 |
+ ".gdbinit" ".config/gitui/key_bindings.ron" ".visidatarc" |
|
9 |
+ ".config/i3/config" ".config/i3status/config") |
|
9 | 10 |
declare -i DRY_RUN=0 |
10 | 11 |
|
11 | 12 |
## exit the shell (with status 2) after printing the message |
12 | 13 |