|
diff --git a/.config/i3/config b/.config/i3/config
|
|
|
1 |
set $mod Mod4 |
|
|
2 |
|
|
|
3 |
font pango:Berkeley Mono Bold 7 |
|
|
4 |
exec --no-startup-id dex --autostart --environment i3 |
|
|
5 |
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork |
|
|
6 |
exec --no-startup-id nm-applet |
|
|
7 |
|
|
|
8 |
# Use pactl to adjust volume in PulseAudio. |
|
|
9 |
set $refresh_i3status killall -SIGUSR1 i3status |
|
|
10 |
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status |
|
|
11 |
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status |
|
|
12 |
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status |
|
|
13 |
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status |
|
|
14 |
|
|
|
15 |
# My keybinds |
|
|
16 |
bindsym $mod+bracketright exec --no-startup-id pats -t |
|
|
17 |
bindsym $mod+m exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle |
|
|
18 |
bindsym $mod+l exec --no-startup-id i3lock |
|
|
19 |
bindsym $mod+p exec --no-startup-id "rofi -show drun -theme ~/.black.rasi" |
|
|
20 |
bindsym $mod+Escape exec --no-startup-id "maim -s | xclip -selection clipboard -t image/png" |
|
|
21 |
|
|
|
22 |
# Use Mouse+$mod to drag floating windows to their wanted position |
|
|
23 |
floating_modifier $mod |
|
|
24 |
tiling_drag modifier titlebar |
|
|
25 |
|
|
|
26 |
# start a terminal |
|
|
27 |
bindsym $mod+Return exec alacritty |
|
|
28 |
|
|
|
29 |
# kill focused window |
|
|
30 |
bindsym $mod+Shift+q kill |
|
|
31 |
|
|
|
32 |
# change focus |
|
|
33 |
bindsym $mod+Left focus left |
|
|
34 |
bindsym $mod+Down focus down |
|
|
35 |
bindsym $mod+Up focus up |
|
|
36 |
bindsym $mod+Right focus right |
|
|
37 |
|
|
|
38 |
# move focused window |
|
|
39 |
bindsym $mod+Shift+j move left |
|
|
40 |
bindsym $mod+Shift+k move down |
|
|
41 |
bindsym $mod+Shift+l move up |
|
|
42 |
bindsym $mod+Shift+semicolon move right |
|
|
43 |
|
|
|
44 |
# alternatively, you can use the cursor keys: |
|
|
45 |
bindsym $mod+Shift+Left move left |
|
|
46 |
bindsym $mod+Shift+Down move down |
|
|
47 |
bindsym $mod+Shift+Up move up |
|
|
48 |
bindsym $mod+Shift+Right move right |
|
|
49 |
|
|
|
50 |
# split in horizontal orientation |
|
|
51 |
bindsym $mod+h split h |
|
|
52 |
|
|
|
53 |
# split in vertical orientation |
|
|
54 |
bindsym $mod+v split v |
|
|
55 |
|
|
|
56 |
# enter fullscreen mode for the focused container |
|
|
57 |
bindsym $mod+f fullscreen toggle |
|
|
58 |
|
|
|
59 |
# change container layout (stacked, tabbed, toggle split) |
|
|
60 |
bindsym $mod+s layout stacking |
|
|
61 |
bindsym $mod+w layout tabbed |
|
|
62 |
bindsym $mod+e layout toggle split |
|
|
63 |
|
|
|
64 |
# toggle tiling / floating |
|
|
65 |
bindsym $mod+Shift+space floating toggle |
|
|
66 |
|
|
|
67 |
# change focus between tiling / floating windows |
|
|
68 |
bindsym $mod+space focus mode_toggle |
|
|
69 |
|
|
|
70 |
# focus the parent container |
|
|
71 |
bindsym $mod+a focus parent |
|
|
72 |
|
|
|
73 |
# focus the child container |
|
|
74 |
bindsym $mod+d focus child |
|
|
75 |
|
|
|
76 |
# Define names for default workspaces for which we configure key bindings later on. |
|
|
77 |
# We use variables to avoid repeating the names in multiple places. |
|
|
78 |
set $ws1 "1" |
|
|
79 |
set $ws2 "2" |
|
|
80 |
set $ws3 "3" |
|
|
81 |
set $ws4 "4" |
|
|
82 |
set $ws5 "5" |
|
|
83 |
set $ws6 "6" |
|
|
84 |
set $ws7 "7" |
|
|
85 |
set $ws8 "8" |
|
|
86 |
set $ws9 "9" |
|
|
87 |
set $ws10 "10" |
|
|
88 |
|
|
|
89 |
# switch to workspace |
|
|
90 |
bindsym $mod+1 workspace number $ws1 |
|
|
91 |
bindsym $mod+2 workspace number $ws2 |
|
|
92 |
bindsym $mod+3 workspace number $ws3 |
|
|
93 |
bindsym $mod+4 workspace number $ws4 |
|
|
94 |
bindsym $mod+5 workspace number $ws5 |
|
|
95 |
bindsym $mod+6 workspace number $ws6 |
|
|
96 |
bindsym $mod+7 workspace number $ws7 |
|
|
97 |
bindsym $mod+8 workspace number $ws8 |
|
|
98 |
bindsym $mod+9 workspace number $ws9 |
|
|
99 |
bindsym $mod+0 workspace number $ws10 |
|
|
100 |
|
|
|
101 |
# move focused container to workspace |
|
|
102 |
bindsym $mod+Shift+1 move container to workspace number $ws1 |
|
|
103 |
bindsym $mod+Shift+2 move container to workspace number $ws2 |
|
|
104 |
bindsym $mod+Shift+3 move container to workspace number $ws3 |
|
|
105 |
bindsym $mod+Shift+4 move container to workspace number $ws4 |
|
|
106 |
bindsym $mod+Shift+5 move container to workspace number $ws5 |
|
|
107 |
bindsym $mod+Shift+6 move container to workspace number $ws6 |
|
|
108 |
bindsym $mod+Shift+7 move container to workspace number $ws7 |
|
|
109 |
bindsym $mod+Shift+8 move container to workspace number $ws8 |
|
|
110 |
bindsym $mod+Shift+9 move container to workspace number $ws9 |
|
|
111 |
bindsym $mod+Shift+0 move container to workspace number $ws10 |
|
|
112 |
|
|
|
113 |
# reload the configuration file |
|
|
114 |
bindsym $mod+Shift+c reload |
|
|
115 |
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) |
|
|
116 |
bindsym $mod+Shift+r restart |
|
|
117 |
# exit i3 (logs you out of your X session) |
|
|
118 |
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'" |
|
|
119 |
|
|
|
120 |
# resize window (you can also use the mouse for that) |
|
|
121 |
mode "resize" { |
|
|
122 |
# same bindings, but for the arrow keys |
|
|
123 |
bindsym Left resize shrink width 10 px or 10 ppt |
|
|
124 |
bindsym Down resize grow height 10 px or 10 ppt |
|
|
125 |
bindsym Up resize shrink height 10 px or 10 ppt |
|
|
126 |
bindsym Right resize grow width 10 px or 10 ppt |
|
|
127 |
|
|
|
128 |
# back to normal: Enter or Escape or $mod+r |
|
|
129 |
bindsym Return mode "default" |
|
|
130 |
bindsym Escape mode "default" |
|
|
131 |
bindsym $mod+r mode "default" |
|
|
132 |
} |
|
|
133 |
|
|
|
134 |
bindsym $mod+r mode "resize" |
|
|
135 |
|
|
|
136 |
# No title bars |
|
|
137 |
for_window [class="^.*"] border pixel 2 |
|
|
138 |
|
|
|
139 |
# Do not follow mouse for focus |
|
|
140 |
focus_follows_mouse no |
|
|
141 |
|
|
|
142 |
set $primary #c3b091 |
|
|
143 |
set $secondary #ff4500 |
|
|
144 |
set $dark #333333 |
|
|
145 |
set $light #ffffff |
|
|
146 |
|
|
|
147 |
# Start i3bar to display a workspace bar (plus the system information i3status |
|
|
148 |
# finds out, if available) |
|
|
149 |
bar { |
|
|
150 |
status_command i3status |
|
|
151 |
position top |
|
|
152 |
colors { |
|
|
153 |
background #000000 |
|
|
154 |
separator #191919 |
|
|
155 |
# border background text |
|
|
156 |
focused_workspace $primary $primary $dark |
|
|
157 |
inactive_workspace $dark $dark $light |
|
|
158 |
urgent_workspace $secondary $secondary $light |
|
|
159 |
|
|
|
160 |
} |
|
|
161 |
} |
|
|
162 |
|
|
|
163 |
# border background text indicator |
|
|
164 |
client.focused $primary $primary $light $light |
|
|
165 |
client.unfocused $dark $dark $light $light |
|
|
166 |
client.focused_inactive $dark $dark $light $light |
|
|
167 |
client.urgent $secondary $secondary $light $light |
|
|
168 |
|
|
|
169 |
# Workspace 1 only has floating windows |
|
|
170 |
for_window [workspace="1"] floating enable |
|
|
171 |
|
|
|
172 |
# Expections for opening in floating mode where XSetClassHint is set to floating |
|
|
173 |
for_window [class="^(mpv|SimpleScreenRecorder|Thunar|transmission)$"] floating enable |
|
|
174 |
for_window [title="^(Stalag)$"] floating enable |
|
diff --git a/.shenanigans.sh b/.shenanigans.sh
|
| 1 |
# Software list (Void Linux): |
1 |
# Software list: |
| 2 |
# void-repo-nonfree void-repo-multilib void-repo-multilib-nonfree |
|
|
| 3 |
# file-roller xfce4-plugins thunar-archive-plugin |
2 |
# file-roller xfce4-plugins thunar-archive-plugin |
| 4 |
# lm_sensors conky maim xlockmore picom cwm xclip xsel xsetroot xdotool |
3 |
# vim git tmux maim xclip xsel mc htop entr cifs-utils rsync jq rofi fd |
| 5 |
# xss-lock wmctrl zip mc htop entr cifs-utils rsync jq rofi st fd |
4 |
# rsync curl hstr tree make gdb nvtop ctags stow newsboat mpv lazygit |
| 6 |
# clang clang-tools-extra vim git curl tmux hstr tree make cmake gdb |
|
|
| 7 |
# nvtop ctags stow newsboat mpv rsync python3-pipx lazygit |
|
|
| 8 |
# Additonal stuff: |
5 |
# Additonal stuff: |
| 9 |
# go install golang.org/x/tools/gopls@latest |
6 |
# go install golang.org/x/tools/gopls@latest |
| 10 |
# pipx install pyright mdformat |
|
|
| 11 |
# pipx inject mdformat mdformat-gfm |
|
|
| 12 |
|
7 |
|
| 13 |
# Only run if the script is being sourced (bashrc). |
8 |
# Only run if the script is being sourced (bashrc). |
| 14 |
if [[ "${BASH_SOURCE[0]}" != "${0}" ]]; then |
9 |
if [[ "${BASH_SOURCE[0]}" != "${0}" ]]; then |
| ... |
| 35 |
alias tmux='tmux -T 256 -u' |
30 |
alias tmux='tmux -T 256 -u' |
| 36 |
alias server='python3 -m http.server 6969' |
31 |
alias server='python3 -m http.server 6969' |
| 37 |
alias newsboat='newsboat -r -u ~/.feeds.txt' |
32 |
alias newsboat='newsboat -r -u ~/.feeds.txt' |
| 38 |
alias n='cd ~/Notes && vim toc.txt' |
33 |
alias emptytrash='gio trash --empty' |
| 39 |
|
34 |
|
| 40 |
# Custom folder jump commands. |
35 |
# Custom folder jump commands. |
| 41 |
alias j='cd ~/Junk' |
36 |
alias j='cd ~/Junk' |
| ... |
| 49 |
export HISTFILESIZE= |
44 |
export HISTFILESIZE= |
| 50 |
export HISTFILE=~/.bash_history_infinite |
45 |
export HISTFILE=~/.bash_history_infinite |
| 51 |
PROMPT_COMMAND="history -a; ${PROMPT_COMMAND}" |
46 |
PROMPT_COMMAND="history -a; ${PROMPT_COMMAND}" |
| 52 |
# PROMPT_COMMAND="history -a; history -n; ${PROMPT_COMMAND}" |
|
|
| 53 |
bind '"\e[A": history-search-backward' |
47 |
bind '"\e[A": history-search-backward' |
| 54 |
bind '"\e[B": history-search-forward' |
48 |
bind '"\e[B": history-search-forward' |
| 55 |
export HSTR_CONFIG=hicolor |
49 |
export HSTR_CONFIG=hicolor |
| ... |
| 70 |
"ssh.zip $HOME/.ssh" |
64 |
"ssh.zip $HOME/.ssh" |
| 71 |
"bash_history_infinite.zip $HOME/.bash_history_infinite" |
65 |
"bash_history_infinite.zip $HOME/.bash_history_infinite" |
| 72 |
"projects.zip $HOME/Projects" |
66 |
"projects.zip $HOME/Projects" |
| 73 |
"notes.zip $HOME/Notes" |
|
|
| 74 |
"twow.zip $HOME/Games/turtlewow/WTF $HOME/Games/turtlewow/wow.sh" |
|
|
| 75 |
"vanilla+.zip $HOME/Games/vanilla+/WTF $HOME/Games/vanilla+/wow.sh" |
|
|
| 76 |
) |
67 |
) |
| 77 |
|
68 |
|
| 78 |
for entry in "${archive_sets[@]}"; do |
69 |
for entry in "${archive_sets[@]}"; do |
| ... |
| 83 |
rm -Rf /tmp/$SNAPSHOT |
74 |
rm -Rf /tmp/$SNAPSHOT |
| 84 |
} |
75 |
} |
| 85 |
|
76 |
|
| 86 |
micstatus() { |
|
|
| 87 |
pactl get-source-mute @DEFAULT_SOURCE@ | grep -q "no" && echo 1 || echo 0; |
|
|
| 88 |
} |
|
|
| 89 |
|
|
|
| 90 |
slugify() { |
77 |
slugify() { |
| 91 |
local text="$1" |
78 |
local text="$1" |
| 92 |
echo "$text" | tr '[:upper:]' '[:lower:]' | sed -E 's/[^a-z0-9]+/-/g; s/^-+|-+$//g' |
79 |
echo "$text" | tr '[:upper:]' '[:lower:]' | sed -E 's/[^a-z0-9]+/-/g; s/^-+|-+$//g' |
| 93 |
} |
80 |
} |
| 94 |
|
81 |
|
| 95 |
worldclocks() { |
82 |
worldclocks() { |
| 96 |
printf "%-18s %s\n" "Local:" "$(TZ='Europe/Ljubljana' date +'%a %H:%M')" |
83 |
printf "%-18s %s\n" "Local:" "$(TZ='Europe/Ljubljana' date +'%a %H:%M')" |
| 97 |
printf "%-18s %s\n" "Brisbane:" "$(TZ='Australia/Brisbane' date +'%a %H:%M')" |
84 |
printf "%-18s %s\n" "Brisbane:" "$(TZ='Australia/Brisbane' date +'%a %H:%M')" |
| 98 |
printf "%-18s %s\n" "San Francisco:" "$(TZ='America/Los_Angeles' date +'%a %H:%M')" |
85 |
printf "%-18s %s\n" "San Francisco:" "$(TZ='America/Los_Angeles' date +'%a %H:%M')" |
| 99 |
printf "%-18s %s\n" "New York:" "$(TZ='America/New_York' date +'%a %H:%M')" |
86 |
printf "%-18s %s\n" "New York:" "$(TZ='America/New_York' date +'%a %H:%M')" |
| 100 |
} |
87 |
} |