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 |