aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMattias Andrée <maandree@kth.se>2021-06-25 12:56:30 +0200
committerMattias Andrée <maandree@kth.se>2021-06-25 12:56:30 +0200
commit5a7db2f34aa6a6787d98a001b6d28be97f36abf4 (patch)
tree52db199005cc5daee35b5c0e9b3d28b534449e1c
downloaddotfiles-5a7db2f34aa6a6787d98a001b6d28be97f36abf4.tar.gz
dotfiles-5a7db2f34aa6a6787d98a001b6d28be97f36abf4.tar.bz2
dotfiles-5a7db2f34aa6a6787d98a001b6d28be97f36abf4.tar.xz
First commit
Signed-off-by: Mattias Andrée <maandree@kth.se>
-rw-r--r--.gitignore2
-rw-r--r--Makefile14
-rw-r--r--README7
-rw-r--r--asroot/Makefile12
-rw-r--r--asroot/bash-aliases4
-rw-r--r--atril/Makefile12
-rw-r--r--atril/atril_toolbar.xml29
-rw-r--r--audacity/Makefile18
-rw-r--r--audacity/audacity.cfg3
-rw-r--r--audacity/user-profile3
-rw-r--r--base/Makefile25
-rw-r--r--base/faces/gnu-wink.svg217
-rw-r--r--base/faces/penguin.pngbin0 -> 12839 bytes
-rw-r--r--base/profile43
-rw-r--r--base/user-dirs.locale1
-rw-r--r--bash-completion/Makefile17
-rw-r--r--bash-completion/bash-aliases29
-rw-r--r--bash-completion/bash-bashrc3
-rw-r--r--bash/Makefile47
-rw-r--r--bash/aliases87
-rw-r--r--bash/aliases-Zenith17
-rw-r--r--bash/bashrc64
-rw-r--r--bash/bashrc_palette89
-rw-r--r--bash/bashrc_prompt413
-rw-r--r--bash/logout9
-rw-r--r--bash/profile17
-rw-r--r--bus/Makefile21
-rw-r--r--bus/user-profile15
-rw-r--r--bus/xinit9
-rw-r--r--coreutils/Makefile17
-rw-r--r--coreutils/bash-aliases5
-rw-r--r--coreutils/bash-bashrc51
-rw-r--r--cvs/Makefile12
-rw-r--r--cvs/user-profile4
-rw-r--r--dconf/Makefile16
-rw-r--r--dconf/xinit17
-rw-r--r--featherweight/Makefile12
-rw-r--r--featherweight/bash-aliases3
-rw-r--r--ffmpeg/Makefile12
-rw-r--r--ffmpeg/bash-aliases25
-rw-r--r--filesystem/Makefile90
-rw-r--r--filesystem/user-dirs.dirs15
-rw-r--r--gcc/Makefile12
-rw-r--r--gcc/user-profile4
-rw-r--r--git/Makefile12
-rw-r--r--git/bash-aliases50
-rw-r--r--gnupg/Makefile14
-rw-r--r--gnupg/user-profile8
-rw-r--r--google-chrome/Makefile9
-rw-r--r--gpm/Makefile12
-rw-r--r--gpm/bash-aliases4
-rw-r--r--grep/Makefile12
-rw-r--r--grep/bash-aliases7
-rw-r--r--gtk3/Makefile12
-rw-r--r--gtk3/user-profile3
l---------info1
-rw-r--r--java-runtime/Makefile18
-rw-r--r--java-runtime/user-profile3
-rw-r--r--kdenlive/Makefile9
-rw-r--r--less/Makefile12
-rw-r--r--less/user-profile3
l---------libcontacts-glibc1
l---------libcontacts-musl1
-rw-r--r--libcontacts/.gitignore1
-rw-r--r--libcontacts/Makefile15
-rw-r--r--meld/Makefile15
-rw-r--r--meld/meldrc.ini14
-rw-r--r--moc/Makefile17
-rw-r--r--moc/bash-aliases7
-rw-r--r--mplayer/Makefile13
-rw-r--r--mplayer/user-profile3
-rw-r--r--my-scripts/Makefile12
-rw-r--r--my-scripts/bash-aliases5
-rw-r--r--openssh/Makefile12
-rw-r--r--openssh/bash-aliases9
-rw-r--r--pluma/Makefile9
-rw-r--r--pony.computer/Makefile12
-rw-r--r--pony.computer/bash-aliases10
-rw-r--r--ponysay/Makefile12
-rw-r--r--ponysay/bash-aliases10
-rw-r--r--procps/Makefile9
-rw-r--r--pytagomacs/Makefile11
-rw-r--r--pytagomacs/pytagomacsrc7
-rw-r--r--python/Makefile16
-rw-r--r--python/user-profile3
-rw-r--r--qt5-styleplugins/Makefile12
-rw-r--r--qt5-styleplugins/user-profile3
-rw-r--r--radharc/Makefile16
-rw-r--r--radharc/xinit3
-rw-r--r--rotd/.gitignore1
-rw-r--r--rotd/Makefile15
-rw-r--r--rust/Makefile20
-rw-r--r--rust/user-profile3
-rw-r--r--signal-desktop/Makefile12
-rw-r--r--signal-desktop/bash-aliases15
l---------ssh1
-rw-r--r--sudo/Makefile12
-rw-r--r--sudo/bash-aliases8
-rw-r--r--texinfo/Makefile16
-rw-r--r--texinfo/bash-aliases30
-rw-r--r--texlive-bin/Makefile17
-rw-r--r--vlc/Makefile9
-rw-r--r--wget/Makefile10
-rw-r--r--xmonad/Makefile21
-rw-r--r--xmonad/xinit24
-rw-r--r--xorg-twm/Makefile11
-rw-r--r--xorg-twm/twmrc93
-rw-r--r--xorg-xinit/Makefile36
-rw-r--r--xorg-xinit/bash-aliases9
-rw-r--r--xorg-xinit/xinit7
-rw-r--r--xorg-xinit/xinitrc30
-rw-r--r--xorg-xrandr/Makefile18
-rw-r--r--xorg-xrandr/xinit4
-rw-r--r--xorg-xrdb/Makefile16
-rw-r--r--xorg-xrdb/xinit12
-rw-r--r--xorg-xset/Makefile16
-rw-r--r--xorg-xset/xinit4
-rw-r--r--xorg-xsetroot/Makefile16
-rw-r--r--xorg-xsetroot/xinit4
-rw-r--r--xwallpaper/Makefile20
-rw-r--r--xwallpaper/xinit10
-rw-r--r--zathura/Makefile9
122 files changed, 2498 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..1189c62
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+*\#*
+*~
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..36ff3a8
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,14 @@
+update:
+ @for PKG in *; do \
+ if test -d "$${PKG}"; then \
+ if pacman -Qq -- $${PKG} </dev/null >/dev/null 2>/dev/null ; then \
+ printf -- '\033[1mmake -C %s install\033[m\n' "$${PKG}"; \
+ make -C "$${PKG}" install; \
+ else\
+ printf -- '\033[1mmake -C %s uninstall\033[m\n' "$${PKG}"; \
+ make -C "$${PKG}" uninstall; \
+ fi; \
+ fi; \
+ done
+
+.PHONY: update
diff --git a/README b/README
new file mode 100644
index 0000000..6948a00
--- /dev/null
+++ b/README
@@ -0,0 +1,7 @@
+The following directories have the own source control:
+ rotd/config
+ libcontacts/contacts
+
+Configurations that are not tied to any package in particular
+are stored in filesystem/ if they are related to the filesystem
+and in base/ otherwise.
diff --git a/asroot/Makefile b/asroot/Makefile
new file mode 100644
index 0000000..1069f68
--- /dev/null
+++ b/asroot/Makefile
@@ -0,0 +1,12 @@
+.POSIX:
+
+install:
+ mkdir -p -- ~/.config/bash/aliases.d
+ test ! -d ~/.config/bash/aliases.d/asroot
+ ln -sf -- ~/.dotfiles/asroot/bash-aliases ~/.config/bash/aliases.d/asroot
+
+uninstall:
+ -unlink -- ~/.config/bash/aliases.d/asroot
+ -rmdir -- ~/.config/bash/aliases.d
+
+.PHONY: install uninstall
diff --git a/asroot/bash-aliases b/asroot/bash-aliases
new file mode 100644
index 0000000..6b20486
--- /dev/null
+++ b/asroot/bash-aliases
@@ -0,0 +1,4 @@
+# -*- shell-script -*-
+
+#DESCRIPTION: Run a command under `asroot`
+alias _="asroot"
diff --git a/atril/Makefile b/atril/Makefile
new file mode 100644
index 0000000..cab4117
--- /dev/null
+++ b/atril/Makefile
@@ -0,0 +1,12 @@
+.POSIX:
+
+install:
+ mkdir -p -- ~/.config/atril
+ test ! -d ~/.config/atril/atril_toolbar.xml
+ ln -sf -- ~/.dotfiles/atril/atril_toolbar.xml ~/.config/atril/atril_toolbar.xml
+
+uninstall:
+ -unlink -- ~/.config/atril/atril_toolbar.xml
+ -rm -rf -- ~/.config/atril
+
+.PHONY: install uninstall
diff --git a/atril/atril_toolbar.xml b/atril/atril_toolbar.xml
new file mode 100644
index 0000000..1b5c719
--- /dev/null
+++ b/atril/atril_toolbar.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<toolbars version="1.0">
+ <toolbar name="DefaultToolBar" hidden="false" editable="true">
+ <toolitem name="GoPreviousPage"/>
+ <toolitem name="GoNextPage"/>
+ <separator/>
+ <toolitem name="PageSelector"/>
+ <separator/>
+ <toolitem name="ViewZoom"/>
+ <separator/>
+ <toolitem name="EditRotateLeft"/>
+ <toolitem name="EditRotateRight"/>
+ <separator/>
+ <toolitem name="ViewBestFit"/>
+ <toolitem name="ViewPageWidth"/>
+ <toolitem name="ViewZoomOut"/>
+ <toolitem name="ViewZoomIn"/>
+ <separator/>
+ <toolitem name="ViewInvertedColors"/>
+ <toolitem name="ViewPresentation"/>
+ <separator/>
+ <toolitem name="GoFirstPage"/>
+ <toolitem name="GoLastPage"/>
+ <separator/>
+ <toolitem name="ViewContinuous"/>
+ <toolitem name="ViewDual"/>
+ <toolitem name="ViewReload"/>
+ </toolbar>
+</toolbars>
diff --git a/audacity/Makefile b/audacity/Makefile
new file mode 100644
index 0000000..ea262e6
--- /dev/null
+++ b/audacity/Makefile
@@ -0,0 +1,18 @@
+.POSIX:
+
+# Audacity heavily edits audacity.cfg so we make copy it instead of linking it
+
+install:
+ mkdir -p -- ~/.var/lib/audacity
+ mkdir -p -- ~/.config/profile.d
+ test ! -d ~/.config/profile.d/audacity
+ ln -sf -- ~/.dotfiles/audacity/user-profile ~/.config/profile.d/audacity
+ cp -- audacity.cfg ~/.var/lib/audacity/
+
+uninstall:
+ -unlink -- ~/.config/profile.d/audacity
+ -rmdir -- ~/.config/profile.d
+ -rm -rf -- ~/.var/lib/audacity
+ -rm -rf -- /var/tmp/"audacity-$$(whoami)"
+
+.PHONY: install uninstall
diff --git a/audacity/audacity.cfg b/audacity/audacity.cfg
new file mode 100644
index 0000000..5c2b45e
--- /dev/null
+++ b/audacity/audacity.cfg
@@ -0,0 +1,3 @@
+[GUI]
+Theme=dark
+ShowExtraMenus=1
diff --git a/audacity/user-profile b/audacity/user-profile
new file mode 100644
index 0000000..99162c5
--- /dev/null
+++ b/audacity/user-profile
@@ -0,0 +1,3 @@
+# -*- shell-script -*-
+
+export AUDACITY_PATH=~/.var/lib/audacity
diff --git a/base/Makefile b/base/Makefile
new file mode 100644
index 0000000..8006e1f
--- /dev/null
+++ b/base/Makefile
@@ -0,0 +1,25 @@
+.POSIX:
+
+FACE = penguin.png
+
+install:
+ mkdir -p -- ~/.config
+ test ! -d ~/.profile
+ test ! -d ~/.config/profile
+ test ! -d ~/.config/user-dirs.locale
+ test ! -d ~/.config/face
+ test ! -d ~/.face
+ test ! -d ~/.face.icon
+ ln -sf -- .config/profile ~/.profile
+ ln -sf -- ~/.dotfiles/base/profile ~/.config/profile
+ ln -sf -- ~/.dotfiles/base/user-dirs.locale ~/.config/
+ ln -sf -- ~/.dotfiles/base/faces/$(FACE) ~/.config/face
+ ln -sf -- .face ~/.face.icon
+ ln -sf -- .config/face ~/.face
+
+uninstall:
+ -unlink -- ~/.config/profile
+ -unlink -- ~/.config/user-dirs.locale
+ -unlink -- ~/.profile
+
+.PHONY: install uninstall
diff --git a/base/faces/gnu-wink.svg b/base/faces/gnu-wink.svg
new file mode 100644
index 0000000..f9939e4
--- /dev/null
+++ b/base/faces/gnu-wink.svg
@@ -0,0 +1,217 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
+ "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
+ width="701.000000pt" height="715.000000pt" viewBox="0 0 701.000000 715.000000"
+ preserveAspectRatio="xMidYMid meet">
+<metadata>
+Created by potrace 1.12, written by Peter Selinger 2001-2015
+</metadata>
+<g transform="translate(0.000000,715.000000) scale(0.100000,-0.100000)"
+fill="#000000" stroke="none">
+<path d="M1425 7139 c-203 -21 -393 -76 -580 -168 -344 -169 -534 -359 -695
+-693 -67 -140 -91 -210 -122 -353 -19 -87 -22 -130 -22 -330 0 -293 21 -458
+81 -650 65 -207 228 -461 418 -650 169 -170 356 -265 605 -311 52 -10 101 -22
+108 -27 8 -6 12 -37 12 -91 0 -93 -16 -136 -75 -206 -47 -55 -60 -88 -69 -164
+-9 -78 -32 -113 -114 -171 -104 -74 -152 -157 -152 -265 0 -90 55 -113 152
+-64 55 28 103 32 209 19 78 -9 111 4 155 62 39 52 63 70 105 81 l36 9 -5 -252
+c-8 -408 24 -608 140 -885 141 -333 376 -617 759 -915 51 -40 29 -13 -108 130
+-285 300 -385 430 -493 645 -77 154 -140 359 -177 575 -15 92 -18 159 -16 412
+1 190 5 309 12 321 7 13 26 23 53 27 81 14 193 55 272 100 44 25 83 42 86 38
+16 -18 50 -285 50 -385 0 -129 8 -154 52 -166 41 -10 53 -41 68 -183 6 -57 15
+-120 21 -141 9 -36 10 -36 72 -43 87 -10 103 -23 112 -87 10 -73 34 -98 96
+-98 26 0 50 -4 53 -9 6 -9 -19 -62 -52 -108 -33 -47 -37 -97 -13 -193 17 -65
+20 -100 15 -151 -6 -59 -3 -74 19 -123 29 -63 65 -90 133 -100 71 -9 84 -20
+84 -71 0 -51 16 -65 74 -65 44 0 113 -26 120 -47 8 -19 -8 -48 -56 -103 -58
+-66 -72 -105 -57 -154 20 -60 100 -139 237 -234 131 -91 162 -121 162 -156 0
+-28 -52 -77 -113 -106 -69 -32 -97 -102 -66 -163 20 -37 78 -105 111 -128 l31
+-23 -27 45 c-48 78 -59 106 -52 132 8 34 32 57 60 57 45 0 130 53 153 95 34
+61 29 98 -27 213 -27 56 -47 102 -43 102 3 0 29 -20 58 -44 35 -30 65 -69 90
+-117 22 -42 61 -95 95 -128 l57 -57 -58 -88 c-98 -148 -97 -228 5 -324 30 -29
+57 -52 59 -52 3 0 -11 31 -30 69 -39 75 -39 98 -2 145 11 14 33 33 49 41 l27
+14 -4 -43 c-7 -60 14 -95 121 -201 127 -127 209 -170 306 -163 l45 3 -57 27
+c-45 21 -61 35 -78 68 -12 23 -19 44 -16 47 2 3 20 -7 38 -21 77 -58 185 -90
+378 -110 l55 -6 -77 41 c-42 22 -84 52 -93 66 -18 27 -37 83 -28 83 3 0 43
+-24 88 -54 101 -66 154 -85 254 -93 86 -6 165 6 231 36 l45 20 -75 -5 c-41 -3
+-92 -2 -113 3 l-38 8 63 42 c77 51 178 149 224 217 19 28 34 54 34 58 0 4 -21
+-9 -48 -29 -44 -34 -170 -98 -178 -91 -1 2 13 23 32 47 18 24 34 47 34 52 0 4
+3 14 6 23 5 14 2 14 -26 5 -52 -19 -133 -6 -181 27 -54 37 -126 128 -141 176
+-14 47 -9 53 104 129 139 94 171 141 172 249 0 55 -6 78 -42 156 -23 50 -42
+97 -42 105 0 16 51 104 79 136 22 26 131 53 210 53 84 0 154 18 178 45 25 29
+53 118 53 170 0 47 -37 171 -58 191 -8 9 -39 33 -68 55 l-52 38 19 50 c10 28
+26 79 35 114 l16 64 56 2 c84 2 184 45 251 107 53 49 55 52 59 112 4 55 2 66
+-22 96 -14 19 -46 49 -71 67 -24 17 -56 49 -69 70 l-25 38 67 47 c37 27 108
+89 159 139 86 85 92 94 113 164 20 64 22 88 17 180 -9 150 -35 230 -90 275
+-69 56 -100 66 -161 50 -28 -8 -78 -17 -111 -20 -56 -6 -63 -4 -93 21 -36 30
+-49 68 -62 184 -5 43 -18 103 -29 135 -14 41 -16 56 -7 56 7 0 68 -36 135 -80
+154 -101 204 -126 285 -145 35 -8 104 -34 152 -57 l88 -43 170 -4 c110 -2 188
+1 223 9 88 19 153 91 153 168 0 43 -28 62 -88 62 -52 0 -71 10 -94 53 -12 22
+-39 149 -33 155 1 2 53 16 114 32 317 83 514 246 727 600 170 282 225 514 211
+885 -16 408 -98 676 -283 926 -213 288 -444 451 -780 548 -189 55 -526 69
+-717 30 -135 -27 -204 -58 -372 -164 -140 -89 -216 -125 -258 -125 -20 1 -57
+13 -109 35 -23 9 -23 -13 0 -80 26 -74 68 -121 142 -158 l65 -32 210 0 c177 1
+227 4 320 23 196 40 328 25 511 -58 210 -95 395 -311 472 -550 32 -98 42 -172
+42 -299 0 -226 -48 -386 -147 -492 -95 -101 -179 -118 -297 -60 -105 52 -189
+139 -384 401 -332 446 -445 562 -637 656 -151 74 -236 94 -395 94 -147 0 -197
+-12 -316 -75 -94 -49 -169 -103 -261 -186 -36 -32 -69 -59 -75 -59 -12 0 -44
+21 -183 125 -212 159 -346 205 -589 205 -310 0 -502 -77 -711 -285 -49 -49
+-202 -216 -339 -370 -376 -423 -446 -489 -569 -545 -130 -59 -284 7 -392 170
+-79 119 -88 157 -89 370 -1 194 1 207 54 340 35 89 128 253 180 317 153 189
+506 345 785 346 72 1 139 -7 240 -27 111 -23 167 -28 270 -28 324 0 469 80
+492 270 l6 51 -59 -24 c-40 -17 -79 -25 -119 -25 -72 0 -121 21 -313 138 -142
+86 -207 115 -311 137 -152 31 -473 43 -656 24z m595 -79 c107 -19 207 -57 319
+-123 58 -33 144 -82 191 -106 80 -43 89 -45 165 -45 45 0 90 5 103 12 56 32
+-13 -68 -72 -103 -86 -50 -137 -60 -316 -59 -134 0 -184 5 -265 23 -200 45
+-378 38 -600 -25 -179 -50 -367 -164 -476 -289 -105 -119 -228 -358 -263 -513
+-21 -94 -22 -354 -1 -435 26 -101 82 -196 159 -273 96 -96 162 -127 267 -126
+88 2 135 16 216 63 91 55 152 117 473 484 340 389 436 488 542 558 136 89 250
+118 478 120 134 1 166 -2 238 -22 162 -46 303 -133 454 -282 l78 -77 59 5 c80
+8 100 1 160 -53 72 -65 91 -106 91 -198 0 -92 11 -117 61 -145 21 -12 45 -31
+53 -42 12 -18 14 -18 20 -3 4 11 -7 28 -36 55 l-43 39 0 108 c0 90 -4 113 -22
+147 -26 49 -81 102 -148 145 -42 26 -45 30 -20 24 118 -27 331 -154 401 -241
+45 -55 72 -139 61 -185 -12 -48 -70 -118 -143 -173 -122 -92 -136 -165 -45
+-231 27 -19 51 -43 54 -55 9 -32 -13 -78 -44 -94 -42 -22 -56 -18 -31 8 14 15
+22 36 22 58 0 64 -82 128 -225 174 -152 50 -224 109 -249 208 -33 124 -37 273
+-10 372 4 15 -1 13 -20 -9 l-25 -30 -96 90 c-167 155 -249 202 -398 225 -168
+26 -356 -5 -522 -88 -186 -93 -321 -208 -528 -448 -314 -364 -399 -439 -642
+-570 -60 -32 -113 -71 -160 -116 l-70 -68 -55 65 c-52 61 -57 65 -90 60 -19
+-3 -60 -8 -91 -11 l-56 -6 -13 73 c-20 116 -19 114 -106 134 l-77 18 6 72 c4
+39 9 96 13 126 l6 54 -56 34 c-31 19 -56 38 -56 44 0 5 19 41 41 80 l41 71
+-45 85 -46 85 60 96 59 97 -22 92 -23 93 45 36 c95 78 89 68 100 170 5 52 14
+98 21 102 7 4 49 20 95 35 l83 28 37 88 38 88 107 0 107 0 49 61 50 60 150 3
+149 3 49 33 c54 37 38 39 142 -21 l42 -24 78 38 78 38 144 -50 c79 -28 146
+-49 148 -47 2 2 -38 37 -90 78 l-94 75 -89 12 c-49 6 -133 21 -187 33 l-98 22
+-111 -33 -110 -32 -98 22 -97 22 -95 -51 -94 -51 -100 5 -99 6 -45 -78 c-51
+-87 -40 -81 -192 -99 l-57 -6 -52 -88 c-48 -83 -56 -90 -115 -119 -35 -18 -64
+-36 -64 -42 0 -6 -7 -56 -15 -113 l-15 -102 -56 -51 -55 -51 25 -99 25 -99
+-51 -60 c-29 -33 -58 -68 -66 -77 -12 -15 -7 -26 47 -97 l61 -79 -65 -52 -65
+-52 67 -55 c111 -90 110 -73 13 -162 l-85 -79 90 -27 c50 -14 96 -28 103 -31
+9 -2 -8 -32 -52 -89 -36 -46 -62 -86 -58 -89 4 -2 35 -8 69 -11 33 -4 66 -11
+72 -15 8 -5 -4 -34 -39 -94 -27 -48 -50 -89 -50 -91 0 -3 41 -6 90 -7 l90 -3
+-46 -69 -46 -69 58 7 c33 4 78 9 102 13 26 3 42 1 42 -5 0 -6 -9 -48 -20 -94
+-11 -46 -20 -87 -20 -91 0 -5 34 19 75 53 49 40 77 57 79 48 3 -7 14 -60 27
+-118 12 -58 23 -106 24 -108 2 -2 25 33 51 77 27 45 51 81 54 81 3 0 14 -30
+24 -67 9 -38 22 -85 27 -106 l10 -38 62 77 62 78 5 -109 5 -108 64 91 c35 51
+66 91 68 89 2 -2 -13 -79 -34 -171 -32 -143 -40 -166 -56 -166 -36 0 -213 40
+-282 63 -178 61 -298 140 -441 290 -224 235 -360 500 -417 812 -19 103 -22
+156 -22 380 0 252 1 263 28 366 101 389 328 692 677 905 206 125 367 180 635
+218 60 8 552 -2 615 -14z m3783 -40 c196 -33 346 -91 484 -187 118 -82 324
+-292 404 -412 186 -278 242 -486 242 -886 -1 -345 -28 -478 -144 -705 -204
+-401 -442 -616 -747 -676 -42 -8 -87 -17 -98 -19 -18 -4 -26 5 -47 53 -21 47
+-73 270 -64 278 1 1 29 -40 61 -92 32 -52 61 -94 64 -94 3 0 2 47 -2 105 -4
+58 -4 105 -2 105 3 0 27 -28 53 -63 26 -35 52 -64 58 -66 5 -1 15 24 22 56 8
+32 18 76 24 98 l11 39 46 -84 46 -85 23 114 c13 63 24 116 26 117 1 2 30 -21
+64 -51 34 -30 63 -55 66 -55 2 0 -5 40 -16 90 -11 49 -18 92 -16 94 2 2 35 -1
+72 -6 101 -14 103 -12 63 52 -20 30 -36 58 -36 63 0 4 34 7 75 7 41 0 75 3 75
+8 0 4 -20 44 -44 89 -28 54 -39 84 -31 87 7 2 38 7 69 11 67 9 67 8 1 99 -25
+35 -45 68 -45 74 0 5 36 20 80 33 44 12 80 27 80 32 0 5 -31 41 -69 81 l-70
+71 70 59 c38 33 69 63 69 67 0 4 -22 27 -50 50 -27 23 -50 46 -50 51 0 5 22
+41 50 80 30 43 47 75 42 82 -5 6 -30 37 -55 69 -26 33 -47 66 -47 75 1 10 9
+53 20 97 l19 80 -49 50 -49 50 -13 105 -13 104 -56 33 c-48 29 -62 44 -102
+117 l-47 84 -67 7 c-107 10 -105 10 -148 91 l-40 76 -86 -7 -86 -6 -83 49 -84
+49 -70 -18 c-94 -25 -108 -24 -209 10 l-86 29 -71 -18 c-40 -10 -104 -24 -144
+-30 -39 -6 -81 -13 -93 -16 -19 -4 -204 -154 -190 -154 3 0 64 23 137 50 l131
+51 68 -37 67 -37 59 37 58 38 46 -33 c46 -32 47 -32 175 -34 l129 -2 41 -56
+41 -56 95 -3 95 -3 33 -81 34 -82 83 -32 82 -32 7 -60 c3 -34 6 -75 6 -93 0
+-27 9 -40 59 -81 33 -27 60 -56 60 -64 0 -8 -8 -49 -18 -91 l-18 -77 49 -86
+c26 -47 48 -92 48 -101 0 -8 -16 -48 -36 -88 l-37 -74 37 -65 c20 -36 36 -69
+36 -74 0 -5 -23 -25 -51 -43 -39 -27 -49 -40 -45 -55 2 -12 8 -65 11 -118 6
+-78 5 -99 -6 -102 -8 -3 -39 -12 -70 -20 -54 -15 -57 -18 -64 -53 -3 -21 -11
+-60 -17 -87 l-10 -48 -78 6 -78 7 -44 -55 c-23 -30 -47 -55 -51 -55 -4 -1 -32
+25 -61 57 -42 45 -76 68 -158 109 -157 78 -287 208 -523 522 -179 239 -279
+332 -470 439 -153 85 -291 117 -406 93 -60 -12 -199 -62 -199 -72 0 -3 36 -29
+79 -57 98 -64 211 -172 241 -232 18 -34 24 -62 24 -115 1 -76 -12 -109 -65
+-170 l-31 -35 95 0 c52 0 108 -3 125 -6 33 -7 31 -3 73 -194 10 -48 20 -63 81
+-123 82 -81 106 -128 114 -229 8 -86 -3 -127 -46 -187 l-30 -41 -83 1 c-65 0
+-101 -5 -159 -25 -41 -14 -78 -26 -83 -26 -4 0 -5 26 -2 57 5 44 11 61 31 77
+14 12 33 41 41 66 19 54 27 60 91 60 36 0 59 -6 77 -20 33 -26 41 -25 22 3
+-21 33 -57 47 -115 47 -28 0 -50 5 -50 10 0 21 29 66 64 99 52 50 49 99 -8
+120 -34 14 -91 0 -129 -29 -34 -27 -83 -126 -98 -198 -14 -71 -7 -279 13 -342
+8 -25 54 -99 103 -165 156 -211 234 -336 321 -513 76 -156 92 -181 153 -241
+43 -44 84 -74 114 -86 43 -16 50 -16 114 -1 113 28 116 28 162 4 72 -37 86
+-76 86 -233 0 -117 -3 -135 -25 -180 -13 -27 -57 -82 -96 -122 -109 -109 -232
+-184 -419 -254 l-100 -38 50 0 c45 -1 134 10 207 25 22 4 31 -1 58 -40 17 -25
+55 -61 84 -80 87 -55 97 -125 26 -174 -55 -37 -103 -43 -334 -46 -213 -2 -225
+-3 -346 -34 -244 -63 -351 -73 -511 -46 -122 20 -187 50 -254 118 -59 59 -185
+246 -286 425 -35 63 -82 134 -105 159 -39 44 -43 46 -105 49 l-64 3 47 -16
+c25 -9 60 -31 77 -48 18 -18 78 -123 135 -234 l103 -200 6 -124 c12 -214 42
+-337 123 -498 44 -89 77 -118 150 -132 95 -17 195 7 379 92 166 77 346 130
+439 130 58 0 158 -26 261 -67 53 -22 71 -34 76 -53 23 -81 -6 -261 -44 -282
+-13 -6 -58 -9 -121 -5 -192 9 -561 -31 -821 -89 -169 -38 -236 -41 -325 -14
+-134 40 -220 112 -259 214 -45 121 -50 261 -17 481 30 196 39 307 32 403 -7
+100 -28 227 -39 239 -13 13 -14 -3 -5 -77 13 -96 3 -409 -17 -570 -52 -419
+-53 -465 -10 -558 29 -63 96 -136 150 -165 37 -20 55 -22 235 -23 254 -1 238
+1 300 -39 69 -44 98 -44 186 0 46 23 82 35 109 34 52 -1 121 -22 118 -37 -2
+-6 -4 -35 -5 -65 -2 -49 2 -61 42 -121 35 -54 44 -79 48 -124 6 -70 -10 -99
+-92 -171 l-61 -53 -3 28 c-6 57 -12 58 -43 10 -34 -50 -129 -126 -115 -90 48
+116 57 191 34 269 l-12 40 -6 -65 c-12 -123 -73 -197 -232 -280 -202 -106
+-246 -185 -178 -320 17 -33 26 -60 20 -60 -6 0 -35 24 -64 53 -65 63 -86 121
+-86 239 l0 77 -53 25 c-69 33 -155 98 -189 142 -34 45 -53 130 -40 177 6 19
+21 52 36 73 14 21 24 40 22 42 -2 2 -19 -4 -36 -13 -45 -23 -115 -23 -141 1
+-19 17 -20 25 -14 129 l7 110 -49 -52 c-26 -29 -70 -63 -98 -76 -97 -48 -112
+-86 -91 -230 l8 -58 -45 31 c-61 41 -107 95 -107 126 0 13 14 52 31 86 40 79
+49 160 24 209 -53 101 -111 146 -218 166 -94 17 -167 52 -189 91 -22 39 -38
+163 -34 262 3 88 13 113 82 209 26 37 30 67 13 104 -8 18 -24 26 -72 36 -99
+20 -104 23 -109 76 -7 60 -52 119 -94 123 -83 7 -95 13 -110 47 -9 21 -14 70
+-14 127 0 121 -5 135 -51 158 -55 29 -61 45 -53 162 5 79 3 117 -10 164 -10
+38 -16 102 -16 167 l0 104 89 76 c91 77 141 136 227 266 40 60 50 70 56 55 4
+-11 21 -56 38 -101 29 -77 70 -147 133 -224 22 -28 18 -14 -23 73 -84 176 -98
+299 -60 523 12 66 23 181 25 255 5 144 0 140 -30 -25 -65 -355 -268 -670 -559
+-869 -129 -88 -233 -132 -426 -177 -152 -37 -210 -62 -278 -122 -80 -71 -107
+-82 -163 -68 -56 15 -102 5 -193 -41 l-59 -30 5 52 c5 45 11 58 54 101 27 28
+74 66 105 85 62 37 70 51 94 158 20 90 45 142 90 191 50 54 55 71 55 188 0
+112 21 201 95 407 152 424 308 669 510 802 196 129 304 176 445 190 61 6 154
+25 222 45 231 67 314 76 454 47 108 -23 212 -7 325 47 84 41 157 64 225 72
+l41 5 17 -61 c17 -59 44 -109 76 -135 49 -42 126 -83 191 -103 151 -45 219
+-87 219 -134 0 -30 -30 -55 -75 -62 -38 -6 -38 -6 -17 -24 50 -40 158 -31 204
+18 16 17 23 39 26 81 l4 59 -51 36 c-54 39 -70 72 -52 106 6 11 48 51 94 89
+171 143 200 202 162 330 -36 119 -264 298 -457 358 l-57 17 75 59 c92 72 182
+122 254 139 82 19 268 14 365 -10 166 -43 312 -140 455 -303 45 -51 167 -205
+270 -343 315 -418 456 -539 608 -521 157 19 269 136 333 351 27 89 36 303 20
+430 -22 164 -89 337 -178 462 -87 123 -263 261 -403 317 -158 63 -313 74 -515
+36 -70 -14 -172 -23 -281 -27 -146 -5 -178 -3 -224 12 -51 17 -121 70 -140
+105 -8 15 -3 17 43 17 67 1 106 19 300 136 169 103 281 148 415 167 98 13 374
+3 505 -20z m-908 -1746 c146 -30 260 -95 359 -202 54 -59 202 -265 231 -323
+13 -25 36 -88 51 -140 14 -52 40 -121 56 -154 40 -80 148 -235 219 -315 65
+-74 74 -93 84 -176 14 -118 68 -184 154 -184 48 0 50 -8 16 -49 -45 -53 -92
+-63 -271 -59 -158 3 -159 4 -224 37 -35 18 -102 44 -148 58 -116 33 -180 63
+-275 129 -44 30 -114 74 -153 95 l-73 40 -30 92 -31 91 32 33 32 33 -29 0
+c-17 0 -61 -15 -100 -34 -38 -19 -89 -37 -112 -41 -39 -6 -43 -5 -58 24 l-16
+31 51 0 c95 0 138 46 128 135 -5 39 -3 45 13 45 10 0 36 -18 59 -41 50 -51 66
+-47 63 15 -4 62 -24 99 -70 127 -21 12 -40 24 -42 26 -2 1 14 22 37 47 34 36
+41 53 47 100 10 74 -2 180 -25 233 -10 23 -48 73 -84 111 -71 77 -97 135 -77
+179 13 28 70 65 91 59 8 -3 51 -12 95 -22z m-40 -1206 c16 -57 39 -134 52
+-172 14 -43 23 -93 23 -130 l0 -61 -58 110 c-32 61 -86 154 -120 207 -34 54
+-62 100 -62 103 0 3 10 5 23 5 12 0 38 8 57 19 19 10 40 19 46 20 6 0 23 -45
+39 -101z m-1131 -1745 c102 -110 210 -152 416 -160 115 -5 136 -3 265 27 165
+37 257 45 426 35 l124 -7 -33 -67 c-18 -37 -36 -85 -39 -107 l-5 -39 -139 3
+c-166 4 -239 -11 -399 -83 -223 -100 -270 -115 -372 -115 -68 0 -104 5 -133
+19 -47 21 -112 89 -121 128 -4 15 -15 41 -25 58 -30 50 -62 203 -68 323 l-6
+113 30 -38 c16 -21 52 -61 79 -90z"/>
+<path d="M3043 5183 c-35 -44 -86 -73 -126 -73 -25 0 -51 -18 -59 -42 -3 -7
+-31 -12 -76 -14 -50 -2 -79 -8 -95 -20 -36 -27 -104 -125 -111 -161 -5 -22
+-18 -38 -42 -52 -20 -12 -41 -36 -50 -58 -37 -87 -50 -106 -98 -140 -78 -56
+-77 -58 3 -18 41 20 100 61 130 90 31 29 75 62 99 74 33 17 42 27 42 47 0 31
+44 119 75 150 15 15 36 24 56 24 28 0 31 -3 25 -22 -3 -13 -6 -60 -6 -105 0
+-74 -3 -84 -27 -114 l-27 -32 25 8 c179 52 307 245 297 443 l-3 56 -32 -41z"/>
+<path d="M3525 5073 c9 -47 19 -60 63 -79 20 -8 42 -23 49 -34 10 -14 26 -20
+54 -20 l40 0 54 -112 c29 -62 58 -137 64 -165 6 -32 32 -88 66 -143 65 -104
+83 -121 56 -53 -10 26 -27 84 -36 128 -20 90 -34 122 -65 148 -27 23 -78 132
+-115 247 -33 101 -38 109 -63 87 -26 -23 -58 -21 -121 8 l-53 25 7 -37z"/>
+<path d="M3004 4614 c-11 -43 2 -112 29 -153 33 -50 132 -115 216 -142 53 -18
+98 -23 226 -26 150 -4 202 3 182 23 -4 4 -83 11 -175 15 -172 7 -198 11 -270
+48 -80 41 -150 136 -168 229 -7 38 -31 42 -40 6z"/>
+<path d="M3878 3689 c-61 -14 -161 -64 -192 -95 -43 -44 -67 -99 -73 -172 -7
+-89 22 -168 85 -232 26 -27 41 -37 37 -25 -4 11 -10 42 -13 70 -5 45 -4 49 11
+36 27 -22 45 -6 52 46 9 68 20 90 57 113 41 25 83 25 131 1 20 -10 37 -15 37
+-11 0 17 -46 63 -76 76 -73 31 -151 11 -202 -52 -17 -21 -34 -35 -38 -31 -13
+12 7 74 36 114 54 73 175 111 317 99 97 -9 123 -19 223 -86 47 -32 121 -77
+164 -101 44 -23 116 -71 160 -104 120 -91 159 -109 217 -95 l34 7 -42 8 c-48
+8 -69 22 -179 118 -44 38 -119 94 -169 124 -49 31 -118 76 -153 101 -77 55
+-135 77 -236 91 -89 13 -136 13 -188 0z"/>
+<path d="M3975 3315 c-22 -8 -41 -15 -42 -15 -1 0 -7 -16 -13 -35 -16 -49 -5
+-89 36 -125 37 -32 95 -41 134 -20 23 12 34 55 20 80 -9 17 -8 20 10 20 58 0
+179 -100 222 -183 12 -23 32 -71 45 -107 l23 -65 -6 74 c-21 262 -232 447
+-429 376z"/>
+</g>
+</svg>
diff --git a/base/faces/penguin.png b/base/faces/penguin.png
new file mode 100644
index 0000000..10be782
--- /dev/null
+++ b/base/faces/penguin.png
Binary files differ
diff --git a/base/profile b/base/profile
new file mode 100644
index 0000000..4410d8e
--- /dev/null
+++ b/base/profile
@@ -0,0 +1,43 @@
+# -*- shell-script -*-
+
+export LOCALE="en_GB.UTF-8"
+export LC_ALL="en_GB.UTF-8"
+export LANG="en_GB.UTF-8"
+
+export MAIN_ALSA_CARD=0
+export MAIN_ALSA_MIXER=PCM
+
+if test -z "${XDG_RUNTIME_DIR}"; then
+ export XDG_RUNTIME_DIR='/tmp/.~'"$(whoami)"
+fi
+mkdir -p -- "${XDG_RUNTIME_DIR}"
+
+if test -x ~/.local/bin/e; then
+ export EDITOR=~/.local/bin/e
+elif test -x /usr/bin/emacs; then
+ export EDITOR="emacs -nw"
+elif test -x /usr/bin/vis; then
+ export EDITOR="vis"
+elif test -x /usr/bin/nano; then
+ export EDITOR="nano"
+elif test -x /usr/bin/vim; then
+ export EDITOR="vim"
+elif test -x /usr/bin/vi; then
+ export EDITOR="vi"
+fi
+export VISUAL="${EDITOR}"
+
+for __script in ~/.config/profile.d/*; do
+ if test -r "${__script}"; then
+ . "${__script}"
+ fi
+done
+unset __script
+
+if test -r ~/.config/"profile-$(hostname)"; then
+ . ~/.config/"profile-$(hostname)"
+fi
+
+if test -r ~/work/.config/profile; then
+ . ~/work/.config/profile
+fi
diff --git a/base/user-dirs.locale b/base/user-dirs.locale
new file mode 100644
index 0000000..daa2955
--- /dev/null
+++ b/base/user-dirs.locale
@@ -0,0 +1 @@
+en_GB
diff --git a/bash-completion/Makefile b/bash-completion/Makefile
new file mode 100644
index 0000000..7d9fcc9
--- /dev/null
+++ b/bash-completion/Makefile
@@ -0,0 +1,17 @@
+.POSIX:
+
+install:
+ mkdir -p -- ~/.config/bash/aliases.d
+ mkdir -p -- ~/.config/bash/bashrc.d
+ test ! -d ~/.config/bash/aliases.d/bash-completion
+ test ! -d ~/.config/bash/bashrc.d/bash-completion
+ ln -sf -- ~/.dotfiles/bash-completion/bash-aliases ~/.config/bash/aliases.d/bash-completion
+ ln -sf -- ~/.dotfiles/bash-completion/bash-bashrc ~/.config/bash/bashrc.d/bash-completion
+
+uninstall:
+ -unlink -- ~/.config/bash/aliases.d/bash-completion
+ -unlink -- ~/.config/bash/bashrc.d/bash-completion
+ -rmdir -- ~/.config/bash/aliases.d
+ -rmdir -- ~/.config/bash/bashrc.d
+
+.PHONY: install uninstall
diff --git a/bash-completion/bash-aliases b/bash-completion/bash-aliases
new file mode 100644
index 0000000..92aab19
--- /dev/null
+++ b/bash-completion/bash-aliases
@@ -0,0 +1,29 @@
+# -*- shell-script -*-
+
+# DESCRIPTION: reload autocompletion scripts and load new ones
+# USAGE: recomplete
+
+recomplete () {
+ if test -f /etc/bash_completion && ! shopt -oq posix; then
+ . /etc/bash_completion
+ fi
+ if test -f /usr/share/bash-completion/bash_completion && ! shopt -oq posix; then
+ . /usr/share/bash-completion/bash_completion
+ fi
+ if test -d ~/.local/bash_completion.d ] && ! shopt -oq posix; then
+ for __completionscript in ~/.local/bash_completion.d/*; do
+ if test -r "${__completionscript}"; then
+ . "${__completionscript}"
+ fi
+ done
+ unset __completionscript
+ fi
+ if test -d ~/.local/share/bash_completion.d && ! shopt -oq posix; then
+ for __completionscript in ~/.local/share/bash_completion.d/*; do
+ if [ -r "${__completionscript}" ]; then
+ . "${__completionscript}"
+ fi
+ done
+ unset __completionscript
+ fi
+}
diff --git a/bash-completion/bash-bashrc b/bash-completion/bash-bashrc
new file mode 100644
index 0000000..5222094
--- /dev/null
+++ b/bash-completion/bash-bashrc
@@ -0,0 +1,3 @@
+# -*- shell-script -*-
+
+recomplete
diff --git a/bash/Makefile b/bash/Makefile
new file mode 100644
index 0000000..7ea782a
--- /dev/null
+++ b/bash/Makefile
@@ -0,0 +1,47 @@
+.POSIX:
+
+install:
+ mkdir -p -- ~/.var/cache
+ mkdir -p -- ~/.config/bash
+ touch -- ~/.var/cache/bash_history
+ test ! -d ~/.bash_history
+ test ! -d ~/.bash_logout
+ test ! -d ~/.bash_profile
+ test ! -d ~/.bashrc
+ test ! -d ~/.config/bash/logout
+ test ! -d ~/.config/bash/profile
+ test ! -d ~/.config/bash/bashrc
+ test ! -d ~/.config/bash/bashrc_palette
+ test ! -d ~/.config/bash/bashrc_prompt
+ test ! -d ~/.config/bash/aliases
+ test ! -d ~/.config/bash/aliases-Zenith
+ ln -sf -- .var/cache/bash_history ~/.bash_history
+ ln -sf -- .config/bash/logout ~/.bash_logout
+ ln -sf -- .config/bash/profile ~/.bash_profile
+ ln -sf -- .config/bash/bashrc ~/.bashrc
+ ln -sf -- ~/.dotfiles/bash/logout ~/.config/bash/logout
+ ln -sf -- ~/.dotfiles/bash/profile ~/.config/bash/profile
+ ln -sf -- ~/.dotfiles/bash/bashrc ~/.config/bash/bashrc
+ ln -sf -- ~/.dotfiles/bash/bashrc_palette ~/.config/bash/bashrc_palette
+ ln -sf -- ~/.dotfiles/bash/bashrc_prompt ~/.config/bash/bashrc_prompt
+ ln -sf -- ~/.dotfiles/bash/aliases ~/.config/bash/aliases
+ ln -sf -- ~/.dotfiles/bash/aliases-Zenith ~/.config/bash/aliases-Zenith
+
+uninstall:
+ -unlink -- ~/.bash_history
+ -unlink -- ~/.bash_logout
+ -unlink -- ~/.bash_profile
+ -unlink -- ~/.bashrc
+ -rm -f -- ~/.var/cache/bash_history
+ -unlink -- ~/.config/bash/logout
+ -unlink -- ~/.config/bash/profile
+ -unlink -- ~/.config/bash/bashrc
+ -unlink -- ~/.config/bash/bashrc_palette
+ -unlink -- ~/.config/bash/bashrc_prompt
+ -unlink -- ~/.config/bash/aliases
+ -unlink -- ~/.config/bash/aliases-Zenith
+ -rmdir -- ~/.config/bash/aliases.d
+ -rmdir -- ~/.config/bash/bashrc.d
+ -rmdir -- ~/.config/bash
+
+.PHONY: install uninstall
diff --git a/bash/aliases b/bash/aliases
new file mode 100644
index 0000000..140f958
--- /dev/null
+++ b/bash/aliases
@@ -0,0 +1,87 @@
+# -*- shell-script -*-
+
+# DESCRIPTION: Create directories and parents, if missing, and move into the first one
+# USAGE: mkcd <directory> [<additional directories to create>]
+mkcd () {
+ mkdir -p -- "$@"
+ cd -- "$1"
+}
+
+# DESCRIPTION: Start bash in a temporary directory and destroy it after exiting the new bash instance
+# USAGE: tmpsh
+tmpsh () (
+ local tmpdir
+ tmpdir="${XDG_RUNTIME_DIR}"
+ if test -z "$tmpdir"; then
+ tmpdir=/tmp
+ fi
+ tmpdir="$tmpdir/tmpsh-$$.d"
+ mkdir -p -- "$tmpdir"
+ cd -- "$tmpdir"
+ bash
+ cd /
+ rm -rf -- "$tmpdir"
+ test ! -e "$tmpdir"
+)
+
+#DESCRIPTION: Reload the shell configurations
+#USAGE: resh
+resh () {
+ . ~/.bashrc
+}
+
+#DESCRIPTION: Edit the shell configurations
+#USAGE: edsh
+edsh () {
+ if [ -z "$EDITOR" ]; then
+ echo 'No default editor is set, please configure the environment variable EDITOR'
+ else
+ $EDITOR ~/.bashrc
+ fi
+}
+
+# DESCRIPTION: Run a command in a infinite loop with a sleep between executions
+# USAGE: forever "<arguments for sleep>" <command>
+forever () {
+ time="$1"
+ shift 1
+ while true; do
+ "$@"
+ sleep $time
+ done
+}
+
+#DESCRIPTION: ls with long listing, classification with appendix character, hidden files and the . and .. directories
+alias ll='ls -alF'
+
+#DESCRIPTION: ls with hidden files
+alias la='ls -A'
+
+#DESCRIPTION: ls with classification with appendix character
+alias l='ls -CF'
+
+#DESCRIPTION: Go to the parent directory
+alias ..="cd .."
+
+
+
+#libnotify
+# DESCRIPTION: Add an "alert" alias for long running commands. Use like so: sleep 10; alert
+alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history | tail -n1 | sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
+
+
+
+for __script in ~/.config/bash/aliases.d/*; do
+ if test -r "${__script}"; then
+ . "${__script}"
+ fi
+done
+unset __script
+
+if test -r ~/.config/bash/"aliases-$(hostname)"; then
+ . ~/.config/bash/"aliases-$(hostname)"
+fi
+
+if test -r ~/work/.config/bash/aliases; then
+ . ~/work/.config/bash/aliases
+fi
diff --git a/bash/aliases-Zenith b/bash/aliases-Zenith
new file mode 100644
index 0000000..ac794c9
--- /dev/null
+++ b/bash/aliases-Zenith
@@ -0,0 +1,17 @@
+# -*- shell-script -*-
+
+mount-crypt () {
+ sudo printf '' && \
+ device="$(sudo losetup --show -f -P /media/Secondary/.crypt/crypt.img)" && \
+ printf '%s\n' "${device}" > "${XDG_RUNTIME_DIR}/CryptCrypt" && \
+ gpg --decrypt /media/Secondary/.crypt/crypt.key | sudo cryptsetup -d - open "${device}" CryptCrypt && \
+ mkdir -p ~/Crypt && \
+ sudo mount /dev/mapper/CryptCrypt ~/Crypt
+}
+
+umount-crypt () {
+ sudo umount ~/Crypt
+ rmdir ~/Crypt
+ sudo cryptsetup close CryptCrypt
+ sudo losetup --detach "$(cat -- "${XDG_RUNTIME_DIR}/CryptCrypt")"
+}
diff --git a/bash/bashrc b/bash/bashrc
new file mode 100644
index 0000000..a500a9d
--- /dev/null
+++ b/bash/bashrc
@@ -0,0 +1,64 @@
+# -*- shell-script -*-
+
+# If not running interactively, don't do anything
+if [[ $- != *i* ]]; then
+ return
+fi
+
+
+# Don't put duplicate lines in the history. See bash(1) for more options
+# ... or force ignoredups and ignorespace
+HISTCONTROL=ignoredups:ignorespace
+# Append to the history file, don't overwrite it
+shopt -s histappend
+# For setting history length see HISTSIZE and HISTFILESIZE in bash(1)
+HISTSIZE=1000
+HISTFILESIZE=2000
+
+# Check the window size after each command and, if necessary, update the values of LINES and COLUMNS.
+shopt -s checkwinsize
+
+
+set -o physical
+alias cd='cd -L'
+
+
+
+if test -r ~/.config/bash/aliases; then
+ . ~/.config/bash/aliases
+fi
+
+if test -r /etc/bash_opt; then
+ . /etc/bash_opt
+fi
+
+~/.config/bash/bashrc_palette
+~/.config/bash/bashrc_prompt
+
+for __script in ~/.config/bash/bashrc.d/*; do
+ if test -r "${__script}"; then
+ . "${__script}"
+ fi
+done
+unset __script
+
+if test -r ~/.config/bash/"bashrc-$(hostname)"; then
+ . ~/.config/bash/"bashrc-$(hostname)"
+fi
+
+if test -r ~/work/.config/bash/bashrc; then
+ . ~/work/.config/bash/bashrc
+fi
+
+
+
+if test "$TERM" = linux; then
+ printf '\e[?8c'
+ if test -n "$PALETTE"; then
+ printf "$PALETTE"'\e[H\e[2J'
+ fi
+ palette-set `blackNcsColours`
+elif test "$TERM" = xterm; then
+ export TERM=xterm-256color
+fi
+featherweight-off
diff --git a/bash/bashrc_palette b/bash/bashrc_palette
new file mode 100644
index 0000000..8a4405a
--- /dev/null
+++ b/bash/bashrc_palette
@@ -0,0 +1,89 @@
+# DESCRIPTION: Palettes for the terminal
+
+# DESCRIPTION: Restore to the last selected palette
+# USAGE: palette-reset
+
+# DESCRIPTION: Store the last selected palette has that on set by <command>
+# USAGE: palette-set <command>
+
+# DESCRIPTION: The last choosen palette
+# VARIABLE: $PALETTE
+
+# Commands for setting the palette:
+# linuxColours The standard Linux VT palette
+# tangoColours The Tango palette
+# tangoidColours The Tango palette, but with black background
+# cobaltColours The Cobalt palette
+# yellowColours A palette with yellow background
+# redColours A palette with red background
+# ncsColours A palette based on NCS S 2050 with blue background
+# lightNcsColours A palette based on NCS S 2050 with lighter blue background
+# blackNcsColours A palette based on NCS S 2050 with black background
+
+
+__linux_c='\e]4;0;rgb:00/00/00\e\\\e]4;1;rgb:AA/00/00\e\\\e]4;2;rgb:00/AA/00\e\\\e]4;3;rgb:AA/55/00\e\\\e]4;4;rgb:00/00/AA\e\\\e]4;5;rgb:AA/00/AA\e\\\e]4;6;rgb:00/AA/AA\e\\\e]4;7;rgb:AA/AA/AA\e\\\e]4;8;rgb:55/55/55\e\\\e]4;9;rgb:FF/55/55\e\\\e]4;10;rgb:55/FF/55\e\\\e]4;11;rgb:FF/FF/55\e\\\e]4;12;rgb:55/55/FF\e\\\e]4;13;rgb:FF/55/FF\e\\\e]4;14;rgb:55/FF/FF\e\\\e]4;15;rgb:FF/FF/FF\e\\'
+
+__tango_c='\e]4;0;rgb:2E/34/36\e\\\e]4;1;rgb:CC/00/00\e\\\e]4;2;rgb:4E/9A/06\e\\\e]4;3;rgb:C4/A0/00\e\\\e]4;4;rgb:34/65/A4\e\\\e]4;5;rgb:75/50/7B\e\\\e]4;6;rgb:06/98/9A\e\\\e]4;7;rgb:D3/D7/CF\e\\\e]4;8;rgb:58/58/58\e\\\e]4;9;rgb:FF/55/55\e\\\e]4;10;rgb:55/FF/55\e\\\e]4;11;rgb:FF/FF/55\e\\\e]4;12;rgb:55/55/FF\e\\\e]4;13;rgb:FF/55/FF\e\\\e]4;14;rgb:55/FF/FF\e\\\e]4;15;rgb:FF/FF/FF\e\\'
+
+__tangoid_c='\e]4;0;rgb:00/00/00\e\\\e]4;1;rgb:CC/00/00\e\\\e]4;2;rgb:4E/9A/06\e\\\e]4;3;rgb:C4/A0/00\e\\\e]4;4;rgb:34/65/A4\e\\\e]4;5;rgb:75/50/7B\e\\\e]4;6;rgb:06/98/9A\e\\\e]4;7;rgb:D3/D7/CF\e\\\e]4;8;rgb:58/58/58\e\\\e]4;9;rgb:FF/55/55\e\\\e]4;10;rgb:55/FF/55\e\\\e]4;11;rgb:FF/FF/55\e\\\e]4;12;rgb:55/55/FF\e\\\e]4;13;rgb:FF/25/5FF\e\\\e]4;14;rgb:55/FF/FF\e\\\e]4;15;rgb:FF/FF/FF\e\\'
+
+__cobalt_c='\e]4;0;rgb:02/08/40\e\\\e]4;1;rgb:CC/00/00\e\\\e]4;2;rgb:4E/9A/06\e\\\e]4;3;rgb:C4/A0/00\e\\\e]4;4;rgb:34/657A4\e\\\e]4;5;rgb:75/50/7B\e\\\e]4;6;rgb:06/98/9A\e\\\e]4;7;rgb:D3/D7/CF\e\\\e]4;8;rgb:58/58/58\e\\\e]4;9;rgb:FF/55/55\e\\\e]4;10;rgb:55/FF/55\e\\\e]4;11;rgb:FF/FF/55\e\\\e]4;12;rgb:55/55/FF\e\\\e]4;13;rgb:FF/55/FF\e\\\e]4;14;rgb:55/FF/FF\e\\\e]4;15;rgb:FF/FF/FF\e\\'
+
+__yellow_c='\e]4;0;rgb:30/30/08\e\\\e]4;1;rgb:CC/00/00\e\\\e]4;2;rgb:4E/9A/06\e\\\e]4;3;rgb:C4/A0/00\e\\\e]4;4;rgb:34/65/A4\e\\\e]4;5;rgb:75/50/7B\e\\\e]4;6;rgb:06/98/9A\e\\\e]4;7;rgb:D3/D7/CF\e\\\e]4;8;rgb:58/58/58\e\\\e]4;9;rgb:FF/55/55\e\\\e]4;10;rgb:55/FF/55\e\\\e]4;11;rgb:FF/FF/55\e\\\e]4;12;rgb:55/55/FF\e\\\e]4;13;rgb:FF/55/FF\e\\\e]4;14;rgb:55/FF/FF\e\\\e]4;15;rgb:FF/FF/FF\e\\'
+
+__red_c='\e]4;0;rgb:30/00/00\e\\\e]4;1;rgb:CD/65/6C\e\\\e]4;2;rgb:32/A6/79\e\\\e]4;3;rgb:CC/AD/47\e\\\e]4;4;rgb:24/95/BE\e\\\e]4;5;rgb:A4/6E/B0\e\\\e]4;6;rgb:00/A0/9F\e\\\e]4;7;rgb:D3/D7/CF\e\\\e]4;8;rgb:55/57/53\e\\\e]4;9;rgb:EB/5E/6A\e\\\e]4;10;rgb:0E/C2/87\e\\\e]4;11;rgb:F2/CA/38\e\\\e]4;12;rgb:00/AC/E0\e\\\e]4;13;rgb:C4/73/D1\e\\\e]4;14;rgb:00/C3/C7\e\\\e]4;15;rgb:EE/EE/EE\e\\'
+
+__ncs_c='\e]4;0;rgb:02/08/40\e\\\e]4;1;rgb:CD/65/6C\e\\\e]4;2;rgb:32/A6/79\e\\\e]4;3;rgb:CC/AD/47\e\\\e]4;4;rgb:24/95/BE\e\\\e]4;5;rgb:A4/6E/B0\e\\\e]4;6;rgb:00/A0/9F\e\\\e]4;7;rgb:D3/D7/CF\e\\\e]4;8;rgb:55/57/53\e\\\e]4;9;rgb:EB/5E/6A\e\\\e]4;10;rgb:0E/C2/87\e\\\e]4;11;rgb:F2/CA/38\e\\\e]4;12;rgb:00/AC/E0\e\\\e]4;13;rgb:C4/73/D1\e\\\e]4;14;rgb:00/C3/C7\e\\\e]4;15;rgb:EE/EE/EE\e\\'
+
+__light_ncs_c='\e]4;0;rgb:0C/14/58\e\\\e]4;1;rgb:CD/65/6C\e\\\e]4;2;rgb:32/A6/79\e\\\e]4;3;rgb:CC/AD/47\e\\\e]4;4;rgb:24/95/BE\e\\\e]4;5;rgb:A4/6E/B0\e\\\e]4;6;rgb:00/A0/9F\e\\\e]4;7;rgb:D3/D7/CF\e\\\e]4;8;rgb:55/57/53\e\\\e]4;9;rgb:EB/5E/6A\e\\\e]4;10;rgb:0E/C2/87\e\\\e]4;11;rgb:F2/CA/38\e\\\e]4;12;rgb:00/AC/E0\e\\\e]4;13;rgb:C4/73/D1\e\\\e]4;14;rgb:00/C3/C7\e\\\e]4;15;rgb:EE/EE/EE\e\\'
+
+__black_ncs_c='\e]4;0;rgb:00/00/00\e\\\e]4;1;rgb:CD/65/6C\e\\\e]4;2;rgb:32/A6/79\e\\\e]4;3;rgb:CC/AD/47\e\\\e]4;4;rgb:24/95/BE\e\\\e]4;5;rgb:A4/6E/B0\e\\\e]4;6;rgb:00/A0/9F\e\\\e]4;7;rgb:D3/D7/CF\e\\\e]4;8;rgb:55/57/53\e\\\e]4;9;rgb:EB/5E/6A\e\\\e]4;10;rgb:0E/C2/87\e\\\e]4;11;rgb:F2/CA/38\e\\\e]4;12;rgb:00/AC/E0\e\\\e]4;13;rgb:C4/73/D1\e\\\e]4;14;rgb:00/C3/C7\e\\\e]4;15;rgb:EE/EE/EE\e\\'
+
+
+if [ "$TERM" = "linux" ]; then
+ __c () {
+ sed -e 's:;10;:A:g' -e 's:;11;:B:g' -e 's:;12;:C:g' -e 's:;13;:D:g' -e 's:;14;:E:g' -e 's:;15;:F:g' |
+ sed -e 's:]4:]P:g' -e 's:;::g' -e 's:rgb::g' -e 's:/::g' -e 's/://g' -e 's:\\e\\\\::g'
+ }
+ __linux_c="$(__c <<<"${__linux_c}")"
+ __tango_c="$(__c <<<"${__tango_c}")"
+ __tangoid_c="$(__c <<<"${__tangoid_c}")"
+ __cobalt_c="$(__c <<<"${__cobalt_c}")"
+ __yellow_c="$(__c <<<"${__yellow_c}")"
+ __red_c="$(__c <<<"${__red_c}")"
+ __ncs_c="$(__c <<<"${__ncs_c}")"
+ __light_ncs_c="$(__c <<<"${__light_ncs_c}")"
+ __black_ncs_c="$(__c <<<"${__black_ncs_c}")"
+fi
+
+alias linuxColours='echo -en "${__linux_c}"'
+alias tangoColours='echo -en "${__tango_c}"'
+alias tangoidColours='echo -en "${__tangoid_c}"'
+alias cobaltColours='echo -en "${__cobalt_c}"'
+alias yellowColours='echo -en "${__yellow_c}"'
+alias redColours='echo -en "${__red_c}"'
+alias ncsColours='echo -en "${__ncs_c}"'
+alias lightNcsColours='echo -en "${__light_ncs_c}"'
+alias blackNcsColours='echo -en "${__black_ncs_c}"'
+
+if [ "$USER" = 'root' ]; then
+ alias stdColours=redColours
+else
+ alias stdColours=blackNcsColours
+fi
+
+if [ "$COLORTERM" = '' ]; then
+ stdColours
+fi
+
+PALETTE=
+
+palette-set () {
+ PALETTE="$*"
+}
+
+palette-reset () {
+ printf '%s' "$PALETTE"
+}
+
+palette-set `stdColours`
diff --git a/bash/bashrc_prompt b/bash/bashrc_prompt
new file mode 100644
index 0000000..5463afb
--- /dev/null
+++ b/bash/bashrc_prompt
@@ -0,0 +1,413 @@
+#DESCRIPTION: A nicer default shell prompt line
+
+
+#DESCRIPTION: Use full block cursor Do not use full block cursor
+#USAGE block-on block-off
+
+#DESCRIPTION: Print username Do not print username Set colour of username
+#USAGE: username-on username-off username-colour <ansi-colour>
+
+#DESCRIPTION: Print hostname Do not print hostname Set colour of hostname
+#USAGE: hostname-on hostname-off hostname-colour <ansi-colour>
+
+#DESCRIPTION: Print IP address in place hostname
+#USAGE: hostname-ip
+
+#DESCRIPTION: Print terminal name Do not print terminal name Set colour of terminal name
+#USAGE: pts-on pts-off pts-colour <ansi-colour>
+
+#DESCRIPTION: Print git branch Do not print git branch Set colour of git branch
+#USAGE: git-on git-off git-colour <ansi-colour>
+
+#DESCRIPTION: Print directory Do not print directory Set colour of directory
+#USAGE: dir-on dir-off dir-colour <ansi-colour>
+
+#DESCRIPTION: Print directory tip Print absolute directory Print custom directory
+#USAGE: dir-short dir-full dir-text <text>
+
+#DESCRIPTION: Print current time Do not print current time Set colour of current time
+#USAGE: clock-on clock-off clock-colour <ansi-colour>
+
+#DESCRIPTION: Print battery status Do not print battery status Set colour of battery status
+#USAGE: battery-on battery-off battery-colour <ansi-colour>
+
+#DESCRIPTION: Print featherweight status Do not print featherweight status Set the used colour
+#USAGE featherweight-on featherweight-off featherweight-colour <ansi-colour>
+
+#DESCRIPTION: Set title on terminal Do not set title on terminal
+#USAGE title-on title-off
+
+#DESCRIPTION: Use two lines Use a single line
+#USAGE dual-on dual-off
+
+#DESCRIPTION: Set colour of error code
+#USAGE error-colour <ansi-colour>
+
+#DESCRIPTION: Set colour of dollar/hash sign
+#USAGE dollar-colour <ansi-colour>
+
+
+prompt_addons=()
+
+
+__prompt_block=""
+if [ "$TERM" = "linux" ]; then
+ __prompt_block="\033[?8c"
+fi
+block-on () {
+ __prompt_block="\033[?8c"
+ update-prompt
+}
+block-off () {
+ __prompt_block=""
+ update-prompt
+}
+
+
+__prompt_username="\u"
+username-on () {
+ __prompt_username="\u"
+ update-prompt
+}
+username-off () {
+ __prompt_username=""
+ update-prompt
+}
+
+
+__prompt_username_colour="94"
+if [ "$USER" = "root" ]; then
+ __prompt_username_colour="91"
+ if [ "$TERM" = "linux" ]; then
+ __prompt_username_colour="31;01"
+ fi
+elif [ "$TERM" = "linux" ]; then
+ __prompt_username_colour="34;01"
+fi
+username-colour () {
+ __prompt_username_colour="$*"
+ update-prompt
+}
+
+
+__prompt_hostname="1"
+hostname-on () {
+ __prompt_hostname="1"
+ update-prompt
+}
+hostname-ip () {
+ __prompt_hostname="$( (ifconfig | sed -n 's/^[\t ]*inet[\t ][\t ]*\([^\t ]*\).*$/\1/p' |
+ sed '/^127\.0\.0\.1$/d' ; echo 127.0.0.1) | sed 1q )"
+ update-prompt
+}
+hostname-off () {
+ __prompt_hostname="0"
+ update-prompt
+}
+
+
+__prompt_hostname_colour="34"
+hostname-colour () {
+ __prompt_hostname_colour="$*"
+ update-prompt
+}
+
+
+__prompt_pts="0"
+if [ "$TERM" = "linux" ]; then
+ __prompt_pts="1"
+fi
+pts-on () {
+ __prompt_pts="1"
+ update-prompt
+}
+pts-off () {
+ __prompt_pts="0"
+ update-prompt
+}
+
+
+__prompt_pts_colour="36"
+pts-colour () {
+ __prompt_pts_colour="$*"
+ update-prompt
+}
+
+
+__prompt_git="1"
+git-on () {
+ __prompt_git="1"
+ update-prompt
+}
+git-off () {
+ __prompt_git="0"
+ update-prompt
+}
+
+
+__prompt_git_colour="32"
+git-colour () {
+ __prompt_git_colour="$*"
+ update-prompt
+}
+
+
+__prompt_func_git () {
+ exec 2>/dev/null
+ if git status >&2; then
+ status="$(git status -s -b | head -n 1)"
+ if [ "$(echo "${status}" | cut -d ' ' -f 3)" = '[ahead' ]; then
+ echo "${status}" | cut -d ' ' -f 2
+ else
+ echo "${status}" | cut -d ' ' -f 2 | cut -d . -f 1
+ fi
+ fi
+}
+
+
+__prompt_dir="\w"
+dir-on () {
+ __prompt_dir="\w"
+ update-prompt
+}
+dir-short () {
+ __prompt_dir="\W"
+ update-prompt
+}
+dir-full () {
+ __prompt_dir='$(pwd)'
+ update-prompt
+}
+dir-text () {
+ __prompt_dir="$(sed -e 's:\\:\\\\:g' <<<"$*")"
+ update-prompt
+}
+dir-off () {
+ __prompt_dir=""
+ update-prompt
+}
+
+
+__prompt_dir_colour="35"
+dir-colour () {
+ __prompt_dir_colour="$*"
+ update-prompt
+}
+
+
+__prompt_clock="(\t)"
+clock-on () {
+ __prompt_clock="(\t)"
+ update-prompt
+}
+clock-off () {
+ __prompt_clock=""
+ update-prompt
+}
+
+
+__prompt_clock_colour="33"
+clock-colour () {
+ __prompt_clock_colour="$*"
+ update-prompt
+}
+
+
+__prompt_dual="\[\033[00m\]\n\[\033[1K\]"
+dual-on () {
+ __prompt_dual="\[\033[00m\]\n\[\033[1K\]"
+ update-prompt
+}
+dual-off () {
+ __prompt_dual=""
+ update-prompt
+}
+
+
+__prompt_dollar_colour="01;34"
+if [ "$USER" = "root" ]; then
+ __prompt_dollar_colour="01;31"
+fi
+dollar-colour () {
+ __prompt_dollar_colour="$*"
+ update-prompt
+}
+
+
+__prompt_error_colour="01;31"
+error-colour () {
+ __prompt_error_colour="$*"
+ update-prompt
+}
+
+
+__prompt_func_error () {
+ if [ "$1" = "0" ]; then
+ echo -n ""
+ else
+ echo -n "(error: $1) "
+ fi
+}
+
+
+__prompt_battery=""
+battery-on () {
+ __prompt_battery='$(__prompt_func_battery)'
+ update-prompt
+}
+battery-off () {
+ __prompt_battery=""
+ update-prompt
+}
+
+
+__prompt_battery_colour="33"
+battery-colour () {
+ __prompt_battery_colour="$*"
+ update-prompt
+}
+
+
+__prompt_func_battery () {
+ local __first=1
+ acpi --battery 2>/dev/null | while read info; do
+ if [ $__first = 1 ]; then
+ echo -n "(${info})"
+ __first=0
+ else
+ echo -n " (${info})"
+ fi
+ done
+}
+
+
+__prompt_featherweight='$(__prompt_func_featherweight)'
+featherweight-on () {
+ __prompt_featherweight='$(__prompt_func_featherweight)'
+ update-prompt
+}
+featherweight-off () {
+ __prompt_featherweight=''
+ update-prompt
+}
+
+
+__prompt_featherweight_colour="36"
+featherweight-colour () {
+ __prompt_featherweight_colour="$*"
+ update-prompt
+}
+
+
+__prompt_func_featherweight () {
+ local status
+ if [ -r ~/.var/lib/featherweight/status ]; then
+ status="$(cat ~/.var/lib/featherweight/status)"
+ if [ ! "${status}" = "0" ]; then
+ echo "(fw: ${status})"
+ fi
+ fi
+}
+
+
+__prompt_title=""
+case "$TERM" in
+ xterm*|rxvt*|Eterm|aterm|kterm|gnome*)
+ __prompt_title="\033]0;\u@\h: \w || $(tty)\a"
+ ;;
+esac
+title-on () {
+ __prompt_title="\033]0;\u@\h: \w || $(tty)\a"
+ update-prompt
+}
+title-off () {
+ __prompt_title=""
+ update-prompt
+}
+
+
+__screen_title=""
+case "$TERM" in
+ screen)
+ __screen_title="\033_\u@\h: \w || $(tty)\033\\"
+ ;;
+esac
+screen-title-on () {
+ __screen_title="\033_\u@\h: \w || $(tty)\033\\"
+ update-prompt
+}
+screen-title-off () {
+ __screen_title=""
+ update-prompt
+}
+
+
+update-prompt () {
+ local __invisible __addon
+ __invisible="\[${__prompt_title}${__screen_title}${__prompt_block}\033[00m\]"
+ PS1=""
+ if [ ! "${__prompt_username}" = "" ]; then
+ PS1="${PS1}\[\033[${__prompt_username_colour}m\]${__prompt_username}\[\033[00m\]"
+ fi
+ if [ "${__prompt_hostname}" = "1" ]; then
+ if [ ! "${PS1}" = "" ]; then
+ PS1="${PS1}@"
+ fi
+ PS1="${PS1}\[\033[${__prompt_hostname_colour}m\]\h\[\033[00m\]"
+ elif [ ! "${__prompt_hostname}" = "0" ]; then
+ if [ ! "${PS1}" = "" ]; then
+ PS1="${PS1}@"
+ fi
+ PS1="${PS1}\[\033[${__prompt_hostname_colour}m\]${__prompt_hostname}\[\033[00m\]"
+ fi
+ if [ "${__prompt_pts}" = "1" ]; then
+ if [ ! "${PS1}" = "" ]; then
+ PS1="${PS1}."
+ fi
+ PS1="${PS1}\[\033[${__prompt_pts_colour}m\]\l\[\033[00m\]"
+ fi
+ if [ "${__prompt_git}" = "1" ]; then
+ if [ ! "${PS1}" = "" ]; then
+ PS1="${PS1}"'$(git status 2>/dev/null >&2 && echo -n : || echo -n "")'
+ fi
+ PS1="${PS1}\[\033[${__prompt_git_colour}m\]"'$(__prompt_func_git)'"\[\033[00m\]"
+ fi
+ if [ ! "${__prompt_dir}" = "" ]; then
+ if [ ! "${PS1}" = "" ]; then
+ PS1="${PS1}: "
+ fi
+ PS1="${PS1}\[\033[${__prompt_dir_colour}m\]${__prompt_dir}\[\033[00m\]"
+ fi
+ if [ ! "${__prompt_clock}" = "" ]; then
+ if [ ! "${PS1}" = "" ]; then
+ PS1="${PS1} "
+ fi
+ PS1="${PS1}\[\033[${__prompt_clock_colour}m\]${__prompt_clock}\[\033[00m\]"
+ fi
+ if [ ! "${__prompt_battery}" = "" ]; then
+ if [ ! "${PS1}" = "" ]; then
+ PS1="${PS1} "
+ fi
+ PS1="${PS1}\[\033[${__prompt_battery_colour}m\]${__prompt_battery}\[\033[00m\]"
+ fi
+ if [ ! "${__prompt_featherweight}" = "" ]; then
+ if [ ! "${PS1}" = "" ]; then
+ PS1="${PS1} "
+ fi
+ PS1="${PS1}\[\033[${__prompt_featherweight_colour}m\]${__prompt_featherweight}\[\033[00m\]"
+ fi
+ __sh="\[\033[00m\033[${__prompt_dollar_colour}m\]\\$\[\033[00m\]"
+ __err="\[\033[${__prompt_error_colour}m\]"'$(__prompt_func_error $?)'"\[\033[00m\]"
+ for __addon in "${prompt_addons[@]}"; do
+ PS1="${PS1}$(${__addon})"
+ done
+ PS1="${__invisible}${__err}${PS1}${__prompt_dual}${__sh} "
+}
+
+
+update-prompt
+
+
+PS2='\[\e[01;31m\]> \[\e[00m\]'
+PS3='\[\e[01;31m\]> \[\e[00m\]'
+PS4='\[\e[01;31m\]+ \[\e[00m\]'
diff --git a/bash/logout b/bash/logout
new file mode 100644
index 0000000..ef22cbc
--- /dev/null
+++ b/bash/logout
@@ -0,0 +1,9 @@
+# -*- shell-script -*-
+
+if test -r ~/.config/bash/"logout-$(hostname)"; then
+ . ~/.config/bash/"logout-$(hostname)"
+fi
+
+if test -r ~/work/.config/bash/logout; then
+ . ~/work/.config/bash/logout
+fi
diff --git a/bash/profile b/bash/profile
new file mode 100644
index 0000000..096711e
--- /dev/null
+++ b/bash/profile
@@ -0,0 +1,17 @@
+# -*- shell-script -*-
+
+if test -r ~/.config/profile; then
+ . ~/.config/profile
+fi
+
+if test -r ~/.config/bash/"profile-$(hostname)"; then
+ . ~/.config/bash/"profile-$(hostname)"
+fi
+
+if test -r ~/work/.config/bash/profile; then
+ . ~/work/.config/bash/profile
+fi
+
+if test -r ~/.config/bash/bashrc; then
+ . ~/.config/bash/bashrc;
+fi
diff --git a/bus/Makefile b/bus/Makefile
new file mode 100644
index 0000000..e677bd6
--- /dev/null
+++ b/bus/Makefile
@@ -0,0 +1,21 @@
+.POSIX:
+
+XINITRC_ORDER = 10
+
+install:
+ mkdir -p -- ~/.config/profile.d
+ test ! -d ~/.config/profile.d/bus
+ ln -sf -- ~/.dotfiles/bus/user-profile ~/.config/profile.d/bus
+ mkdir -p -- ~/.config/X11/xinit/xinitrc.d
+ test ! -d ~/.config/X11/xinit/xinitrc.d/$(XINITRC_ORDER)-bus
+ ln -sf -- ~/.dotfiles/bus/xinit ~/.config/X11/xinit/xinitrc.d/$(XINITRC_ORDER)-bus
+
+uninstall:
+ -unlink -- ~/.config/profile.d/bus
+ -rmdir -- ~/.config/profile.d
+ -unlink -- ~/.config/X11/xinit/xinitrc.d/$(XINITRC_ORDER)-bus
+ -rmdir -- ~/.config/X11/xinit/xinitrc.d
+ -rmdir -- ~/.config/X11/xinit
+ -rmdir -- ~/.config/X11
+
+.PHONY: install uninstall
diff --git a/bus/user-profile b/bus/user-profile
new file mode 100644
index 0000000..521cb46
--- /dev/null
+++ b/bus/user-profile
@@ -0,0 +1,15 @@
+# -*- shell-script -*-
+
+mkdir -p "${XDG_RUNTIME_DIR}/@bus"
+
+export BUS_AUDIO="${XDG_RUNTIME_DIR}/@bus/audio"
+export BUS_INPUT="${XDG_RUNTIME_DIR}/@bus/input"
+export BUS_VIDEO="${XDG_RUNTIME_DIR}/@bus/video"
+export BUS_FILES="${XDG_RUNTIME_DIR}/@bus/files"
+export BUS_GENERIC="${XDG_RUNTIME_DIR}/@bus/generic"
+
+if test ! -e "${BUS_AUDIO}"; then bus create "${BUS_AUDIO}"; fi
+if test ! -e "${BUS_INPUT}"; then bus create "${BUS_INPUT}"; fi
+if test ! -e "${BUS_VIDEO}"; then bus create "${BUS_VIDEO}"; fi
+if test ! -e "${BUS_FILES}"; then bus create "${BUS_FILES}"; fi
+if test ! -e "${BUS_GENERIC}"; then bus create "${BUS_GENERIC}"; fi
diff --git a/bus/xinit b/bus/xinit
new file mode 100644
index 0000000..de6c824
--- /dev/null
+++ b/bus/xinit
@@ -0,0 +1,9 @@
+# -*- shell-script -*-
+
+# Create buses
+if test -z "${XDG_RUNTIME_DIR}"; then
+ export XDG_RUNTIME_DIR='/tmp/.~'"$(whoami)"
+fi
+mkdir -p "${XDG_RUNTIME_DIR}/@bus"
+export BUS_AUDIO="${XDG_RUNTIME_DIR}/@bus/audio"
+bus create "${BUS_AUDIO}"
diff --git a/coreutils/Makefile b/coreutils/Makefile
new file mode 100644
index 0000000..9058e3e
--- /dev/null
+++ b/coreutils/Makefile
@@ -0,0 +1,17 @@
+.POSIX:
+
+install:
+ mkdir -p -- ~/.config/bash/aliases.d
+ mkdir -p -- ~/.config/bash/bashrc.d
+ test ! -d ~/.config/bash/aliases.d/coreutils
+ test ! -d ~/.config/bash/bashrc.d/coreutils
+ ln -sf -- ~/.dotfiles/coreutils/bash-aliases ~/.config/bash/aliases.d/coreutils
+ ln -sf -- ~/.dotfiles/coreutils/bash-bashrc ~/.config/bash/bashrc.d/coreutils
+
+uninstall:
+ -unlink -- ~/.config/bash/aliases.d/coreutils
+ -unlink -- ~/.config/bash/bashrc.d/coreutils
+ -rmdir -- ~/.config/bash/aliases.d
+ -rmdir -- ~/.config/bash/bashrc.d
+
+.PHONY: install uninstall
diff --git a/coreutils/bash-aliases b/coreutils/bash-aliases
new file mode 100644
index 0000000..378c1d7
--- /dev/null
+++ b/coreutils/bash-aliases
@@ -0,0 +1,5 @@
+# -*- shell-script -*-
+
+#DESCRIPTION: Use colours in ls when the output is not piped
+
+alias ls='ls --color=auto'
diff --git a/coreutils/bash-bashrc b/coreutils/bash-bashrc
new file mode 100644
index 0000000..c4df04b
--- /dev/null
+++ b/coreutils/bash-bashrc
@@ -0,0 +1,51 @@
+# -*- shell-script -*-
+
+# lc = left of colour sequence (default = "\033[")
+# rc = right of colour sequence (default = "m")
+# en = end color (replaced lc+no+rc; default = NULL)
+# cl = clear to end of line (default = "\033[K")
+# rs = reset to ordinary colors (default = "0")
+
+# no = normal (global default)
+# di = directory
+# fi = regular file
+# ex = executable regular file
+# pi = named pipe (FIFO)
+# bd = block device
+# cd = character device
+# ln = symbolic link
+# or = orphaned symbolic link (points to a file that no longer exists)
+# mi = missing file (a missing file that an orphan symbolic link points to)
+# so = socket
+# do = door
+# su = setuid
+# sg = setgid
+# st = sticky
+# ow = other-writable
+# tw = ow (other-writable) + st (sticky)
+# ca = ???
+# mh = ???
+
+export LS_COLORS=\
+"di=1;34:"\
+"fi=0:"\
+"ex=1;32:"\
+"pi=42;30:"\
+"bd=46;37:"\
+"cd=46;30:"\
+"ln=1;36:"\
+"or=1;31:"\
+"mi=1;31:"\
+"so=41;37:"\
+"do=41;30:"\
+"su=1;45;7:"\
+"sg=1;35:"\
+"st=31:"\
+"ow=32:"\
+"tw=33:"\
+"$(printf "*.%s=34:" tar tgz arj taz lzh lzma tlz txz zip z Z dz gz lz xz bz2 bz tbz tbz2 tz deb rpm jar war ear sar rar
+ ace zoo cpio 7z rz zst dmg)"\
+"$(printf "*.%s=35:" jpg jpeg gif bmp pbm pgm ppm tga zbm xpm tif tiff png svg svgz mng pcx mov mpg mpeg m2v mkc webm ogm
+ mp4 m4v mp4v vob nuv wmv asf rm rmvb flv avi fli flv gl dl xcf xwd yuv cgm emf axv anx ogv ogx pam
+ ff webm webp)"\
+"$(printf "*.%s=36:" aac au flc flac m4a mid midi mka mp3 mpc ogg ra wav axa oga spx xsdf opus)"
diff --git a/cvs/Makefile b/cvs/Makefile
new file mode 100644
index 0000000..c834e59
--- /dev/null
+++ b/cvs/Makefile
@@ -0,0 +1,12 @@
+.POSIX:
+
+install:
+ mkdir -p -- ~/.config/profile.d
+ test ! -d ~/.config/profile.d/cvs
+ ln -sf -- ~/.dotfiles/cvs/user-profile ~/.config/profile.d/cvs
+
+uninstall:
+ -unlink -- ~/.config/profile.d/cvs
+ -rmdir -- ~/.config/profile.d
+
+.PHONY: install uninstall
diff --git a/cvs/user-profile b/cvs/user-profile
new file mode 100644
index 0000000..0788bd0
--- /dev/null
+++ b/cvs/user-profile
@@ -0,0 +1,4 @@
+# -*- shell-script -*-
+
+export CVSROOT=~/.var/lib/cvsroot
+export CVS_RSH=ssh
diff --git a/dconf/Makefile b/dconf/Makefile
new file mode 100644
index 0000000..0b1b6a1
--- /dev/null
+++ b/dconf/Makefile
@@ -0,0 +1,16 @@
+.POSIX:
+
+XINITRC_ORDER = 10
+
+install:
+ mkdir -p -- ~/.config/X11/xinit/xinitrc.d
+ test ! -d ~/.config/X11/xinit/xinitrc.d/$(XINITRC_ORDER)-dconf
+ ln -sf -- ~/.dotfiles/dconf/xinit ~/.config/X11/xinit/xinitrc.d/$(XINITRC_ORDER)-dconf
+
+uninstall:
+ -unlink -- ~/.config/X11/xinit/xinitrc.d/$(XINITRC_ORDER)-dconf
+ -rmdir -- ~/.config/X11/xinit/xinitrc.d
+ -rmdir -- ~/.config/X11/xinit
+ -rmdir -- ~/.config/X11
+
+.PHONY: install uninstall
diff --git a/dconf/xinit b/dconf/xinit
new file mode 100644
index 0000000..645f699
--- /dev/null
+++ b/dconf/xinit
@@ -0,0 +1,17 @@
+# -*- shell-script -*-
+
+# Set dconf profile
+if test ! "${SET_DCONF_PROFILE}" = 0; then
+ export DCONF_PROFILE=~/.config/dconf/profiles/"${SESSION/-/_}"
+
+ mkdir -p ~/.config/dconf/profiles
+
+ if test ! -e ~/.config/dconf/profiles/"${SESSION/-/_}"; then
+ printf '%s\n' "user-db:${SESSION}" user-db:user system-db:local system-db:site \
+ > ~/.config/dconf/profiles/"${SESSION/-/_}"
+ fi
+
+ if test ! -e ~/.config/dconf/"${SESSION/-/_}" && test -e ~/.config/dconf/user; then
+ cp -- ~/.config/dconf/user ~/.config/dconf/"${SESSION/-/_}"
+ fi
+fi
diff --git a/featherweight/Makefile b/featherweight/Makefile
new file mode 100644
index 0000000..cc4f9db
--- /dev/null
+++ b/featherweight/Makefile
@@ -0,0 +1,12 @@
+.POSIX:
+
+install:
+ mkdir -p -- ~/.config/bash/aliases.d
+ test ! -d ~/.config/bash/aliases.d/featherweight
+ ln -sf -- ~/.dotfiles/featherweight/bash-aliases ~/.config/bash/aliases.d/featherweight
+
+uninstall:
+ -unlink -- ~/.config/bash/aliases.d/featherweight
+ -rmdir -- ~/.config/bash/aliases.d
+
+.PHONY: install uninstall
diff --git a/featherweight/bash-aliases b/featherweight/bash-aliases
new file mode 100644
index 0000000..b81fa18
--- /dev/null
+++ b/featherweight/bash-aliases
@@ -0,0 +1,3 @@
+# -*- shell-script -*-
+
+alias fw=featherweight
diff --git a/ffmpeg/Makefile b/ffmpeg/Makefile
new file mode 100644
index 0000000..32991b3
--- /dev/null
+++ b/ffmpeg/Makefile
@@ -0,0 +1,12 @@
+.POSIX:
+
+install:
+ mkdir -p -- ~/.config/bash/aliases.d
+ test ! -d ~/.config/bash/aliases.d/ffmpeg
+ ln -sf -- ~/.dotfiles/ffmpeg/bash-aliases ~/.config/bash/aliases.d/ffmpeg
+
+uninstall:
+ -unlink -- ~/.config/bash/aliases.d/ffmpeg
+ -rmdir -- ~/.config/bash/aliases.d
+
+.PHONY: install uninstall
diff --git a/ffmpeg/bash-aliases b/ffmpeg/bash-aliases
new file mode 100644
index 0000000..41846c8
--- /dev/null
+++ b/ffmpeg/bash-aliases
@@ -0,0 +1,25 @@
+# -*- shell-script -*-
+
+remove-video-on-all () (
+ for ext in opus aac mp3 m4a; do
+ for f in *.{mkv,mp4,webm}; do
+ if ffmpeg -i "$f" -map 0:a -codec copy -y -- "$f.$ext"; then
+ rm -- "$f"
+ else
+ rm -- "$f.$ext"
+ fi
+ done
+ done
+)
+
+remove-video-on-all-1 () (
+ for ext in opus aac mp3 m4a; do
+ for f in *."$1"; do
+ if ffmpeg -i "$f" -map 0:a -codec copy -y -- "$f.$ext"; then
+ rm -- "$f"
+ else
+ rm -- "$f.$ext"
+ fi
+ done
+ done
+)
diff --git a/filesystem/Makefile b/filesystem/Makefile
new file mode 100644
index 0000000..c46eea2
--- /dev/null
+++ b/filesystem/Makefile
@@ -0,0 +1,90 @@
+.POSIX:
+
+install:
+ mkdir -p -- ~/.config
+ mkdir -p -- ~/.var/cache/.thumbnails
+ rm -rf -- ~/.config/.cache
+ rm -rf -- ~/.cache
+ rm -rf -- ~/.thumbnails
+ ln -sf -- ../.cache ~/.config/.cache
+ ln -sf -- .var/cache ~/.cache
+ ln -sf -- .cache/.thumbnails ~/.thumbnails
+ mkdir -p -- ~/.var/games
+ mkdir -p -- ~/.var/lib
+ mkdir -p -- ~/.var/mail
+ mkdir -p -- ~/.var/spool
+ rm -f -- ~/.spool
+ rm -f -- ~/.local/var
+ ln -sf .var/spool/ ~/.spool
+ ln -sf ../.var ~/.local/var
+ mkdir -p -- ~/.local/bin
+ mkdir -p -- ~/.local/src
+ if test -d ~/.fonts && test ! -L ~/.fonts; then \
+ mkdir -p -- ~/.local/share && \
+ test ! -e ~/.local/share/fonts && \
+ mv ~/.fonts ~/.local/share/fonts; \
+ else \
+ mkdir -p -- ~/.local/share/fonts && \
+ rm -f -- ~/.fonts && \
+ ln -sf -- .local/share/fonts ~/.fonts; \
+ fi
+ if test -d ~/.icons && test ! -L ~/.icons; then \
+ mkdir -p -- ~/.local/share && \
+ test ! -e ~/.local/share/icons && \
+ mv ~/.icons ~/.local/share/icons; \
+ else \
+ mkdir -p -- ~/.local/share/icons && \
+ rm -f -- ~/.icons && \
+ ln -sf -- .local/share/icons ~/.icons; \
+ fi
+ if test -d ~/.themes && test ! -L ~/.themes; then \
+ mkdir -p -- ~/.local/share && \
+ test ! -e ~/.local/share/themes && \
+ mv ~/.themes ~/.local/share/themes; \
+ else \
+ mkdir -p -- ~/.local/share/themes && \
+ rm -f -- ~/.themes && \
+ ln -sf -- .local/share/themes ~/.themes; \
+ fi
+ mkdir -p -- ~/.usr/bin
+ mkdir -p -- ~/.usr/include
+ mkdir -p -- ~/.usr/lib
+ mkdir -p -- ~/.usr/libexec
+ mkdir -p -- ~/.usr/share/man
+ mkdir -p -- ~/.usr/src
+ ln -sf -- ~/.dotfiles/filesystem/user-dirs.dirs ~/.config/
+
+uninstall:
+ -unlink -- ../.cache ~/.config/.cache
+ -unlink -- .var/cache ~/.cache
+ -unlink -- .cache/.thumbnails ~/.thumbnails
+ -unlink -- .var/spool/ ~/.spool
+ -unlink -- ../.var ~/.local/var
+ -unlink -- .local/share/fonts ~/.fonts
+ -unlink -- .local/share/icons ~/.icons
+ -unlink -- .local/share/themes ~/.themes
+ -rmdir -- ~/.config
+ -rmdir -- ~/.var/cache/.thumbnails
+ -rmdir -- ~/.var/cache
+ -rmdir -- ~/.var/games
+ -rmdir -- ~/.var/lib
+ -rmdir -- ~/.var/mail
+ -rmdir -- ~/.var/spool
+ -rmdir -- ~/.var
+ -rmdir -- ~/.local/bin
+ -rmdir -- ~/.local/src
+ -rmdir -- ~/.local/share/fonts
+ -rmdir -- ~/.local/share/icons
+ -rmdir -- ~/.local/share/themes
+ -rmdir -- ~/.local/share
+ -rmdir -- ~/.local
+ -rmdir -- ~/.usr/bin
+ -rmdir -- ~/.usr/include
+ -rmdir -- ~/.usr/lib
+ -rmdir -- ~/.usr/libexec
+ -rmdir -- ~/.usr/share/man
+ -rmdir -- ~/.usr/share
+ -rmdir -- ~/.usr/src
+ -rmdir -- ~/.usr
+
+.PHONY: install uninstall
diff --git a/filesystem/user-dirs.dirs b/filesystem/user-dirs.dirs
new file mode 100644
index 0000000..a6adde0
--- /dev/null
+++ b/filesystem/user-dirs.dirs
@@ -0,0 +1,15 @@
+# This file is written by xdg-user-dirs-update
+# If you want to change or add directories, just edit the line you're
+# interested in. All local changes will be retained on the next run
+# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
+# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
+# absolute path. No other format is supported.
+#
+XDG_DESKTOP_DIR="/var/empty"
+XDG_DOWNLOAD_DIR="$HOME/"
+XDG_TEMPLATES_DIR="$HOME/Templates"
+XDG_PUBLICSHARE_DIR="$HOME/Public"
+XDG_DOCUMENTS_DIR="$HOME/"
+XDG_MUSIC_DIR="$HOME/"
+XDG_PICTURES_DIR="$HOME/"
+XDG_VIDEOS_DIR="$HOME/"
diff --git a/gcc/Makefile b/gcc/Makefile
new file mode 100644
index 0000000..ce541b9
--- /dev/null
+++ b/gcc/Makefile
@@ -0,0 +1,12 @@
+.POSIX:
+
+install:
+ mkdir -p -- ~/.config/profile.d
+ test ! -d ~/.config/profile.d/gcc
+ ln -sf -- ~/.dotfiles/gcc/user-profile ~/.config/profile.d/gcc
+
+uninstall:
+ -unlink -- ~/.config/profile.d/gcc
+ -rmdir -- ~/.config/profile.d
+
+.PHONY: install uninstall
diff --git a/gcc/user-profile b/gcc/user-profile
new file mode 100644
index 0000000..0d231e6
--- /dev/null
+++ b/gcc/user-profile
@@ -0,0 +1,4 @@
+# -*- shell-script -*-
+
+export CC="gcc -fdiagnostics-color=auto"
+export CXX="g++ -fdiagnostics-color=auto"
diff --git a/git/Makefile b/git/Makefile
new file mode 100644
index 0000000..a428302
--- /dev/null
+++ b/git/Makefile
@@ -0,0 +1,12 @@
+.POSIX:
+
+install:
+ mkdir -p -- ~/.config/bash/aliases.d
+ test ! -d ~/.config/bash/aliases.d/git
+ ln -sf -- ~/.dotfiles/git/bash-aliases ~/.config/bash/aliases.d/git
+
+uninstall:
+ -unlink -- ~/.config/bash/aliases.d/git
+ -rmdir -- ~/.config/bash/aliases.d
+
+.PHONY: install uninstall
diff --git a/git/bash-aliases b/git/bash-aliases
new file mode 100644
index 0000000..3552668
--- /dev/null
+++ b/git/bash-aliases
@@ -0,0 +1,50 @@
+# -*- shell-script -*-
+
+alias gitlog="git log --graph --decorate"
+alias gitlogg="git log --graph --decorate --full-history"
+
+gitcomm () {
+ git commit --signoff -S"$GPG_KEY" -m "$*"
+}
+
+ge () {
+ if [ -z "$EDITOR" ]; then
+ printf '\e[1;31m%s\e[0m\n' 'No default editor is set, please configure the environment variable EDITOR'
+ else
+ $EDITOR -- "$@"
+ git add -- "$@"
+ fi
+}
+
+gitpush () {
+ git push -u origin `___git_branch_`
+}
+
+gitpull () {
+ __gb_=`___git_branch_`
+ git checkout "$1" &&
+ git pull &&
+ git checkout $__gb_ &&
+ git pull . "$1"
+ unset __gb_
+}
+
+gitp () {
+ __gb_=`___git_branch_`
+ git pull &&
+ git checkout "$1" &&
+ git pull &&
+ git pull . $__gb_
+ unset __gb_
+}
+
+
+_____gp___bashrc_ () {
+ printf '%s\n' "$2"
+}
+_____gp__bashrc_ () {
+ _____gp___bashrc_ `git status -b -s 2>/dev/null`
+}
+___git_branch_ () {
+ printf '%s\n' `_____gp__bashrc_ | cut -d . -f 1`
+}
diff --git a/gnupg/Makefile b/gnupg/Makefile
new file mode 100644
index 0000000..ac5408f
--- /dev/null
+++ b/gnupg/Makefile
@@ -0,0 +1,14 @@
+.POSIX:
+
+install:
+ mkdir -p -- ~/.var/lib/gnupg
+ mkdir -p -- ~/.config/profile.d
+ test ! -d ~/.config/profile.d/gnupg
+ ln -sf -- ~/.dotfiles/gnupg/user-profile ~/.config/profile.d/gnupg
+
+uninstall:
+ -unlink -- ~/.config/profile.d/gnupg
+ -rmdir -- ~/.config/profile.d
+ -rmdir -- ~/.var/lib/gnupg
+
+.PHONY: install uninstall
diff --git a/gnupg/user-profile b/gnupg/user-profile
new file mode 100644
index 0000000..67cbb86
--- /dev/null
+++ b/gnupg/user-profile
@@ -0,0 +1,8 @@
+# -*- shell-script -*-
+
+export GNUPGHOME=~/.var/lib/.gnupg
+
+export GPG_KEY=69E7C5ED
+export GPG_KEYA=45668AAD
+export GPG_KEY_EMAIL=6ABC233E # 8AAD AC7C E522 E5E8 674C F187 5319 6754 6ABC 233E
+# Old GPG_KEY_EMAIL: 678A6A76
diff --git a/google-chrome/Makefile b/google-chrome/Makefile
new file mode 100644
index 0000000..88142fa
--- /dev/null
+++ b/google-chrome/Makefile
@@ -0,0 +1,9 @@
+.POSIX:
+
+install:
+ @:
+
+uninstall:
+ -rm -rf -- ~/.config/google-chrome
+
+.PHONY: install uninstall
diff --git a/gpm/Makefile b/gpm/Makefile
new file mode 100644
index 0000000..7e3b16f
--- /dev/null
+++ b/gpm/Makefile
@@ -0,0 +1,12 @@
+.POSIX:
+
+install:
+ mkdir -p -- ~/.config/bash/aliases.d
+ test ! -d ~/.config/bash/aliases.d/gpm
+ ln -sf -- ~/.dotfiles/gpm/bash-aliases ~/.config/bash/aliases.d/gpm
+
+uninstall:
+ -unlink -- ~/.config/bash/aliases.d/gpm
+ -rmdir -- ~/.config/bash/aliases.d
+
+.PHONY: install uninstall
diff --git a/gpm/bash-aliases b/gpm/bash-aliases
new file mode 100644
index 0000000..8c24fdd
--- /dev/null
+++ b/gpm/bash-aliases
@@ -0,0 +1,4 @@
+# -*- shell-script -*-
+
+alias start-gpm="asroot gpm -m /dev/input/mice -t imps2"
+alias stop-gpm="asroot gpm -k"
diff --git a/grep/Makefile b/grep/Makefile
new file mode 100644
index 0000000..6c0d4e8
--- /dev/null
+++ b/grep/Makefile
@@ -0,0 +1,12 @@
+.POSIX:
+
+install:
+ mkdir -p -- ~/.config/bash/aliases.d
+ test ! -d ~/.config/bash/aliases.d/grep
+ ln -sf -- ~/.dotfiles/grep/bash-aliases ~/.config/bash/aliases.d/grep
+
+uninstall:
+ -unlink -- ~/.config/bash/aliases.d/grep
+ -rmdir -- ~/.config/bash/aliases.d
+
+.PHONY: install uninstall
diff --git a/grep/bash-aliases b/grep/bash-aliases
new file mode 100644
index 0000000..59c21d8
--- /dev/null
+++ b/grep/bash-aliases
@@ -0,0 +1,7 @@
+# -*- shell-script -*-
+
+#DESCRIPTION: Use colours with grep when the output is not piped
+
+alias grep='grep --color=auto'
+alias fgrep='fgrep --color=auto'
+alias egrep='egrep --color=auto'
diff --git a/gtk3/Makefile b/gtk3/Makefile
new file mode 100644
index 0000000..750394e
--- /dev/null
+++ b/gtk3/Makefile
@@ -0,0 +1,12 @@
+.POSIX:
+
+install:
+ mkdir -p -- ~/.config/profile.d
+ test ! -d ~/.config/profile.d/gtk3
+ ln -sf -- ~/.dotfiles/gtk3/user-profile ~/.config/profile.d/gtk3
+
+uninstall:
+ -unlink -- ~/.config/profile.d/gtk3
+ -rmdir -- ~/.config/profile.d
+
+.PHONY: install uninstall
diff --git a/gtk3/user-profile b/gtk3/user-profile
new file mode 100644
index 0000000..e53ea36
--- /dev/null
+++ b/gtk3/user-profile
@@ -0,0 +1,3 @@
+# -*- shell-script -*-
+
+export GTK_THEME=Adwaita:dark
diff --git a/info b/info
new file mode 120000
index 0000000..f00c57d
--- /dev/null
+++ b/info
@@ -0,0 +1 @@
+texinfo \ No newline at end of file
diff --git a/java-runtime/Makefile b/java-runtime/Makefile
new file mode 100644
index 0000000..9d4947b
--- /dev/null
+++ b/java-runtime/Makefile
@@ -0,0 +1,18 @@
+.POSIX:
+
+install:
+ mkdir -p -- ~/.var/cache/java
+ -rm -rf -- ~/.java
+ test ! -e ~/.java
+ ln -s -- .var/cache/java ~/.java
+ mkdir -p -- ~/.config/profile.d
+ test ! d ~/.config/profile.d/java-runtime
+ ln -sf -- ~/.dotfiles/java-runtime/user-profile ~/.config/profile.d/java-runtime
+
+uninstall:
+ -unlink -- ~/.config/profile.d/java-runtime
+ -rmdir -- ~/.config/profile.d
+ -rm -rf -- ~/.java
+ -rm -rf -- ~/.var/cache/java
+
+.PHONY: install uninstall
diff --git a/java-runtime/user-profile b/java-runtime/user-profile
new file mode 100644
index 0000000..9b60457
--- /dev/null
+++ b/java-runtime/user-profile
@@ -0,0 +1,3 @@
+# -*- shell-script -*-
+
+export _JAVA_OPTIONS='-Djdk.gtk.version=2.2'
diff --git a/kdenlive/Makefile b/kdenlive/Makefile
new file mode 100644
index 0000000..d482e64
--- /dev/null
+++ b/kdenlive/Makefile
@@ -0,0 +1,9 @@
+.POSIX:
+
+install:
+ @:
+
+uninstall:
+ -rm -f -- ~/.config/kdenliverc
+
+.PHONY: install uninstall
diff --git a/less/Makefile b/less/Makefile
new file mode 100644
index 0000000..73b43c7
--- /dev/null
+++ b/less/Makefile
@@ -0,0 +1,12 @@
+.POSIX:
+
+install:
+ mkdir -p -- ~/.config/profile.d
+ test ! -d ~/.config/profile.d/less
+ ln -sf -- ~/.dotfiles/less/user-profile ~/.config/profile.d/less
+
+uninstall:
+ -unlink -- ~/.config/profile.d/less
+ -rmdir -- ~/.config/profile.d
+
+.PHONY: install uninstall
diff --git a/less/user-profile b/less/user-profile
new file mode 100644
index 0000000..469134d
--- /dev/null
+++ b/less/user-profile
@@ -0,0 +1,3 @@
+# -*- shell-script -*-
+
+export LESSHISTFILE=/dev/null
diff --git a/libcontacts-glibc b/libcontacts-glibc
new file mode 120000
index 0000000..205dcc8
--- /dev/null
+++ b/libcontacts-glibc
@@ -0,0 +1 @@
+libcontacts \ No newline at end of file
diff --git a/libcontacts-musl b/libcontacts-musl
new file mode 120000
index 0000000..205dcc8
--- /dev/null
+++ b/libcontacts-musl
@@ -0,0 +1 @@
+libcontacts \ No newline at end of file
diff --git a/libcontacts/.gitignore b/libcontacts/.gitignore
new file mode 100644
index 0000000..9b698a0
--- /dev/null
+++ b/libcontacts/.gitignore
@@ -0,0 +1 @@
+/contacts/
diff --git a/libcontacts/Makefile b/libcontacts/Makefile
new file mode 100644
index 0000000..7b7ad08
--- /dev/null
+++ b/libcontacts/Makefile
@@ -0,0 +1,15 @@
+.POSIX:
+
+install:
+ mkdir -p -- ~/.config
+ if test ! -L ~/.config/contacts; then \
+ test ! -e ~/.config/contacts && \
+ ln -sf -- ~/.dotfiles/libcontacts/contacts ~/.config/contacts; \
+ else \
+ test "$(readlink ~/.config/contacts)" = ~/.dotfiles/libcontacts/contacts; \
+ fi
+
+uninstall:
+ -unlink -- ~/.config/contacts
+
+.PHONY: install uninstall
diff --git a/meld/Makefile b/meld/Makefile
new file mode 100644
index 0000000..bda9978
--- /dev/null
+++ b/meld/Makefile
@@ -0,0 +1,15 @@
+.POSIX:
+
+# Unfortunely meldrc.ini contains both (for us unless) state and settings,
+# therefore we are making a copy instead of a link. Otherwise running meld
+# could make changes to our dotfiles.
+
+install:
+ mkdir -p -- ~/.config/meld
+ cp -- meldrc.ini ~/.config/meld/
+
+uninstall:
+ -unlink -- ~/.config/meld/meldrc.ini
+ -rm -rf -- ~/.config/meld
+
+.PHONY: install uninstall
diff --git a/meld/meldrc.ini b/meld/meldrc.ini
new file mode 100644
index 0000000..fba8e9b
--- /dev/null
+++ b/meld/meldrc.ini
@@ -0,0 +1,14 @@
+[DEFAULT]
+use_custom_font = True
+custom_font = Fixed 10
+tab_size = 8
+edit_wrap_lines = 0
+highlight_current_line = True
+show_line_numbers = False
+show_whitespace = False
+use_syntax_highlighting = False
+edit_command_type = custom
+edit_command_custom = emacs
+dirdiff_time_resolution_ns = 1
+text_codecs = utf8
+vc_show_commit_margin = True
diff --git a/moc/Makefile b/moc/Makefile
new file mode 100644
index 0000000..0d4ee14
--- /dev/null
+++ b/moc/Makefile
@@ -0,0 +1,17 @@
+.POSIX:
+
+install:
+ mkdir -p -- ~/.var/lib/moc
+ mkdir -p -- ~/.config/bash/aliases.d
+ rm -rf ~/.moc
+ test ! -d ~/.config/bash/aliases.d/moc
+ ln -sf -- .var/lib/moc ~/.moc
+ ln -sf -- ~/.dotfiles/moc/bash-aliases ~/.config/bash/aliases.d/moc
+
+uninstall:
+ -unlink -- ~/.moc
+ -unlink -- ~/.config/bash/aliases.d/moc
+ -rmdir -- ~/.config/bash/aliases.d
+ -rm -rf -- ~/.var/lib/moc
+
+.PHONY: install uninstall
diff --git a/moc/bash-aliases b/moc/bash-aliases
new file mode 100644
index 0000000..6dc6ab2
--- /dev/null
+++ b/moc/bash-aliases
@@ -0,0 +1,7 @@
+# -*- shell-script -*-
+
+if test "$TERM" = linux; then
+ alias mocp="mocp --theme darkdot_theme"
+else
+ alias mocp="etty; exec mocp --theme darkdot_theme"
+fi
diff --git a/mplayer/Makefile b/mplayer/Makefile
new file mode 100644
index 0000000..57e4ff8
--- /dev/null
+++ b/mplayer/Makefile
@@ -0,0 +1,13 @@
+.POSIX:
+
+install:
+ mkdir -p -- ~/.config/profile.d
+ test ! -d ~/.config/profile.d/mplayer
+ ln -sf -- ~/.dotfiles/mplayer/user-profile ~/.config/profile.d/mplayer
+
+uninstall:
+ -unlink -- ~/.config/profile.d/mplayer
+ -rmdir -- ~/.config/profile.d
+ -rm -rf -- ~/.config/mplayer
+
+.PHONY: install uninstall
diff --git a/mplayer/user-profile b/mplayer/user-profile
new file mode 100644
index 0000000..581717b
--- /dev/null
+++ b/mplayer/user-profile
@@ -0,0 +1,3 @@
+# -*- shell-script -*-
+
+export MPLAYER_HOME="${XDG_CONFIG_HOME}/mplayer"
diff --git a/my-scripts/Makefile b/my-scripts/Makefile
new file mode 100644
index 0000000..23d998a
--- /dev/null
+++ b/my-scripts/Makefile
@@ -0,0 +1,12 @@
+.POSIX:
+
+install:
+ mkdir -p -- ~/.config/bash/aliases.d
+ test ! -d ~/.config/bash/aliases.d/my-scripts
+ ln -sf -- ~/.dotfiles/my-scripts/bash-aliases ~/.config/bash/aliases.d/my-scripts
+
+uninstall:
+ -unlink -- ~/.config/bash/aliases.d/my-scripts
+ -rmdir -- ~/.config/bash/aliases.d
+
+.PHONY: install uninstall
diff --git a/my-scripts/bash-aliases b/my-scripts/bash-aliases
new file mode 100644
index 0000000..4b3b78b
--- /dev/null
+++ b/my-scripts/bash-aliases
@@ -0,0 +1,5 @@
+# -*- shell-script -*-
+
+if test "$TERM" = linux; then
+ alias etty='etty;palette-reset'
+fi
diff --git a/openssh/Makefile b/openssh/Makefile
new file mode 100644
index 0000000..41a8d84
--- /dev/null
+++ b/openssh/Makefile
@@ -0,0 +1,12 @@
+.POSIX:
+
+install:
+ mkdir -p -- ~/.config/bash/aliases.d
+ test ! -d ~/.config/bash/aliases.d/openssh
+ ln -sf -- ~/.dotfiles/openssh/bash-aliases ~/.config/bash/aliases.d/openssh
+
+uninstall:
+ -unlink -- ~/.config/bash/aliases.d/openssh
+ -rmdir -- ~/.config/bash/aliases.d
+
+.PHONY: install uninstall
diff --git a/openssh/bash-aliases b/openssh/bash-aliases
new file mode 100644
index 0000000..38f7a01
--- /dev/null
+++ b/openssh/bash-aliases
@@ -0,0 +1,9 @@
+# -*- shell-script -*-
+
+if test -n "$DISPLAY"; then
+ alias sshhome="ssh -YC -p7777 mattias@maandree.ignorelist.com"
+else
+ alias sshhome="ssh -p7777 mattias@maandree.ignorelist.com"
+fi
+alias sftphome="sftp -P7777 mattias@maandree.ignorelist.com"
+alias scphome="scp -P7777"
diff --git a/pluma/Makefile b/pluma/Makefile
new file mode 100644
index 0000000..0971cfd
--- /dev/null
+++ b/pluma/Makefile
@@ -0,0 +1,9 @@
+.POSIX:
+
+install:
+ @:
+
+uninstall:
+ -rm -rf -- ~/.config/pluma
+
+.PHONY: install uninstall
diff --git a/pony.computer/Makefile b/pony.computer/Makefile
new file mode 100644
index 0000000..4aa7464
--- /dev/null
+++ b/pony.computer/Makefile
@@ -0,0 +1,12 @@
+.POSIX:
+
+install:
+ mkdir -p -- ~/.config/bash/aliases.d
+ test ! -d ~/.config/bash/aliases.d/pony.computer
+ ln -sf -- ~/.dotfiles/pony.computer/bash-aliases ~/.config/bash/aliases.d/pony.computer
+
+uninstall:
+ -unlink -- ~/.config/bash/aliases.d/pony.computer
+ -rmdir -- ~/.config/bash/aliases.d
+
+.PHONY: install uninstall
diff --git a/pony.computer/bash-aliases b/pony.computer/bash-aliases
new file mode 100644
index 0000000..4a9326d
--- /dev/null
+++ b/pony.computer/bash-aliases
@@ -0,0 +1,10 @@
+# -*- shell-script -*-
+
+#DESCRIPTION: Utilise KMS support in ponysay when in a TTY and running pony.computer
+
+if "$TERM" = "linux"; then
+ pony.computer () {
+ PONYSAY_KMS_PALETTE="$PALETTE" /usr/bin/pony.computer "$@"
+ printf "$PALETTE"
+ }
+fi
diff --git a/ponysay/Makefile b/ponysay/Makefile
new file mode 100644
index 0000000..7b90bd9
--- /dev/null
+++ b/ponysay/Makefile
@@ -0,0 +1,12 @@
+.POSIX:
+
+install:
+ mkdir -p -- ~/.config/bash/aliases.d
+ test ! -d ~/.config/bash/aliases.d/ponysay
+ ln -sf -- ~/.dotfiles/ponysay/bash-aliases ~/.config/bash/aliases.d/ponysay
+
+uninstall:
+ -unlink -- ~/.config/bash/aliases.d/ponysay
+ -rmdir -- ~/.config/bash/aliases.d
+
+.PHONY: install uninstall
diff --git a/ponysay/bash-aliases b/ponysay/bash-aliases
new file mode 100644
index 0000000..3b9faed
--- /dev/null
+++ b/ponysay/bash-aliases
@@ -0,0 +1,10 @@
+# -*- shell-script -*-
+
+#DESCRIPTION: Utilise KMS support in ponysay when in a TTY
+
+if test"$TERM" = "linux"; then
+ ponysay () {
+ PONYSAY_KMS_PALETTE="$PALETTE" /usr/bin/ponysay "$@"
+ printf "$PALETTE"
+ }
+fi
diff --git a/procps/Makefile b/procps/Makefile
new file mode 100644
index 0000000..d7b150c
--- /dev/null
+++ b/procps/Makefile
@@ -0,0 +1,9 @@
+.POSIX:
+
+install:
+ -rmdir -- ~/.config/procps
+
+uninstall:
+ -rm -rf -- ~/.config/procps
+
+.PHONY: install uninstall
diff --git a/pytagomacs/Makefile b/pytagomacs/Makefile
new file mode 100644
index 0000000..139cef6
--- /dev/null
+++ b/pytagomacs/Makefile
@@ -0,0 +1,11 @@
+.POSIX:
+
+install:
+ mkdir -p -- ~/.config
+ test ! -d ~/.config/pytagomacsrc
+ ln -sf -- ~/.dotfiles/pytagomacs/pytagomacsrc ~/.config/pytagomacsrc
+
+uninstall:
+ -unlink -- ~/.config/pytagomacsrc
+
+.PHONY: install uninstall
diff --git a/pytagomacs/pytagomacsrc b/pytagomacs/pytagomacsrc
new file mode 100644
index 0000000..d35fa58
--- /dev/null
+++ b/pytagomacs/pytagomacsrc
@@ -0,0 +1,7 @@
+# -*- python -*-
+
+INACTIVE_COLOUR = '34'
+ACTIVE_COLOUR = '01;31'
+SELECTED_COLOUR = '44;37'
+STATUS_COLOUR = '07'
+ALERT_COLOUR = None
diff --git a/python/Makefile b/python/Makefile
new file mode 100644
index 0000000..8c2d730
--- /dev/null
+++ b/python/Makefile
@@ -0,0 +1,16 @@
+.POSIX:
+
+install:
+ mkdir -p -- ~/.var/cache
+ ln -sf .var/cache/python_history ~/
+ mkdir -p -- ~/.config/profile.d
+ test ! -d ~/.config/profile.d/python
+ ln -sf -- ~/.dotfiles/python/user-profile ~/.config/profile.d/python
+
+uninstall:
+ -unlink -- ~/.config/profile.d/python
+ -rmdir -- ~/.config/profile.d
+ -unlink -- ~/.var/cache/python_history
+ -unlink -- ~/.python_history
+
+.PHONY: install uninstall
diff --git a/python/user-profile b/python/user-profile
new file mode 100644
index 0000000..8c9f982
--- /dev/null
+++ b/python/user-profile
@@ -0,0 +1,3 @@
+# -*- shell-script -*-
+
+export PYTHON_EGG_CACHE="${XDG_CACHE_HOME}/python-eggs"
diff --git a/qt5-styleplugins/Makefile b/qt5-styleplugins/Makefile
new file mode 100644
index 0000000..3f0c44f
--- /dev/null
+++ b/qt5-styleplugins/Makefile
@@ -0,0 +1,12 @@
+.POSIX:
+
+install:
+ mkdir -p -- ~/.config/profile.d
+ test ! -d ~/.config/profile.d/qt5-styleplugins
+ ln -sf -- ~/.dotfiles/qt5-styleplugins/user-profile ~/.config/profile.d/qt5-styleplugins
+
+uninstall:
+ -unlink -- ~/.config/profile.d/qt5-styleplugins
+ -rmdir -- ~/.config/profile.d
+
+.PHONY: install uninstall
diff --git a/qt5-styleplugins/user-profile b/qt5-styleplugins/user-profile
new file mode 100644
index 0000000..1491d3b
--- /dev/null
+++ b/qt5-styleplugins/user-profile
@@ -0,0 +1,3 @@
+# -*- shell-script -*-
+
+export QT_STYLE_OVERRIDE=GTK2
diff --git a/radharc/Makefile b/radharc/Makefile
new file mode 100644
index 0000000..f5f2c66
--- /dev/null
+++ b/radharc/Makefile
@@ -0,0 +1,16 @@
+.POSIX:
+
+XINITRC_ORDER = 20
+
+install:
+ mkdir -p -- ~/.config/X11/xinit/xinitrc.d
+ test ! -d ~/.config/X11/xinit/xinitrc.d/$(XINITRC_ORDER)-radharc
+ ln -sf -- ~/.dotfiles/radharc/xinit ~/.config/X11/xinit/xinitrc.d/$(XINITRC_ORDER)-radharc
+
+uninstall:
+ -unlink -- ~/.config/X11/xinit/xinitrc.d/$(XINITRC_ORDER)-radharc
+ -rmdir -- ~/.config/X11/xinit/xinitrc.d
+ -rmdir -- ~/.config/X11/xinit
+ -rmdir -- ~/.config/X11
+
+.PHONY: install uninstall
diff --git a/radharc/xinit b/radharc/xinit
new file mode 100644
index 0000000..f0051b5
--- /dev/null
+++ b/radharc/xinit
@@ -0,0 +1,3 @@
+# -*- shell-script -*-
+
+radharc &
diff --git a/rotd/.gitignore b/rotd/.gitignore
new file mode 100644
index 0000000..5b8a7b8
--- /dev/null
+++ b/rotd/.gitignore
@@ -0,0 +1 @@
+/config/
diff --git a/rotd/Makefile b/rotd/Makefile
new file mode 100644
index 0000000..5db6e1b
--- /dev/null
+++ b/rotd/Makefile
@@ -0,0 +1,15 @@
+.POSIX:
+
+install:
+ mkdir -p -- ~/.config
+ if test ! -L ~/.config/rotd; then \
+ test ! -e ~/.config/rotd && \
+ ln -sf -- ~/.dotfiles/rotd/config ~/.config/rotd; \
+ else \
+ test "$(readlink ~/.config/rotd)" = ~/.dotfiles/rotd/config; \
+ fi
+
+uninstall:
+ -unlink -- ~/.config/rotd
+
+.PHONY: install uninstall
diff --git a/rust/Makefile b/rust/Makefile
new file mode 100644
index 0000000..d58e207
--- /dev/null
+++ b/rust/Makefile
@@ -0,0 +1,20 @@
+.POSIX:
+
+install:
+ if test -d ~/.cargo; then \
+ test ! -d ~/.var/lib/cargo && \
+ mkdir -p -- ~/.var/lib && \
+ mv ~/.cargo ~/.var/lib/cargo; \
+ else \
+ mkdir -p -- ~/.var/lib; \
+ fi
+ test ! -d ~/.config/profile.d/rust
+ ln -sf -- ~/.dotfiles/rust/user-profile ~/.config/profile.d/rust
+
+uninstall:
+ -rm -rf -- ~/.var/cache/cargo
+ -rm -rf -- ~/.cargo
+ -unlink -- ~/.config/profile.d/rust
+ -rmdir -- ~/.config/profile.d
+
+.PHONY: install uninstall
diff --git a/rust/user-profile b/rust/user-profile
new file mode 100644
index 0000000..be94b1a
--- /dev/null
+++ b/rust/user-profile
@@ -0,0 +1,3 @@
+# -*- shell-script -*-
+
+export CARGO_HOME=~/.var/lib/cargo
diff --git a/signal-desktop/Makefile b/signal-desktop/Makefile
new file mode 100644
index 0000000..1d82c40
--- /dev/null
+++ b/signal-desktop/Makefile
@@ -0,0 +1,12 @@
+.POSIX:
+
+install:
+ mkdir -p -- ~/.config/bash/aliases.d
+ test ! -d ~/.config/bash/aliases.d/signal-desktop
+ ln -sf -- ~/.dotfiles/signal-desktop/bash-aliases ~/.config/bash/aliases.d/signal-desktop
+
+uninstall:
+ -unlink -- ~/.config/bash/aliases.d/signal-desktop
+ -rmdir -- ~/.config/bash/aliases.d
+
+.PHONY: install uninstall
diff --git a/signal-desktop/bash-aliases b/signal-desktop/bash-aliases
new file mode 100644
index 0000000..1e76a52
--- /dev/null
+++ b/signal-desktop/bash-aliases
@@ -0,0 +1,15 @@
+# -*- shell-script -*-
+
+mount-signal () {
+ sudo printf '' && \
+ device="$(sudo losetup --show -f -P ~/.var/signal/SignalCrypt.img)" && \
+ printf '%s\n' "${device}" > "${XDG_RUNTIME_DIR}/SignalCrypt" && \
+ gpg --decrypt ~/.var/signal/SignalCrypt.key | sudo cryptsetup -d - open "${device}" SignalCrypt && \
+ sudo mount /dev/mapper/SignalCrypt /home/mattias/.var/signal/SignalCrypt.d
+}
+
+umount-signal () {
+ sudo umount /home/mattias/.var/signal/SignalCrypt.d
+ sudo cryptsetup close SignalCrypt
+ sudo losetup --detach "$(cat -- "${XDG_RUNTIME_DIR}/SignalCrypt")"
+}
diff --git a/ssh b/ssh
new file mode 120000
index 0000000..dc275a7
--- /dev/null
+++ b/ssh
@@ -0,0 +1 @@
+openssh \ No newline at end of file
diff --git a/sudo/Makefile b/sudo/Makefile
new file mode 100644
index 0000000..479092b
--- /dev/null
+++ b/sudo/Makefile
@@ -0,0 +1,12 @@
+.POSIX:
+
+install:
+ mkdir -p -- ~/.config/bash/aliases.d
+ test ! -d ~/.config/bash/aliases.d/sudo
+ ln -sf -- ~/.dotfiles/sudo/bash-aliases ~/.config/bash/aliases.d/sudo
+
+uninstall:
+ -unlink -- ~/.config/bash/aliases.d/sudo
+ -rmdir -- ~/.config/bash/aliases.d
+
+.PHONY: install uninstall
diff --git a/sudo/bash-aliases b/sudo/bash-aliases
new file mode 100644
index 0000000..8276bd3
--- /dev/null
+++ b/sudo/bash-aliases
@@ -0,0 +1,8 @@
+# -*- shell-script -*-
+
+# DESCRIPTION: safeguards to prevent security exploitations
+
+# Prevents a program or shell function from pretending to be sudo
+sudo () {
+ /usr/bin/sudo --prompt $'\e[01;32m[sudo] password for '"$USER"$': \033[00m' "$@"
+}
diff --git a/texinfo/Makefile b/texinfo/Makefile
new file mode 100644
index 0000000..0cc5a60
--- /dev/null
+++ b/texinfo/Makefile
@@ -0,0 +1,16 @@
+.POSIX:
+
+install:
+ if test -x /usr/bin/info; then \
+ mkdir -p -- ~/.config/bash/aliases.d && \
+ test ! -d ~/.config/bash/aliases.d/texinfo && \
+ ln -sf -- ~/.dotfiles/texinfo/bash-aliases ~/.config/bash/aliases.d/texinfo; \
+ else \
+ make uninstall; \
+ fi
+
+uninstall:
+ -unlink -- ~/.config/bash/aliases.d/texinfo
+ -rmdir -- ~/.config/bash/aliases.d
+
+.PHONY: install uninstall
diff --git a/texinfo/bash-aliases b/texinfo/bash-aliases
new file mode 100644
index 0000000..b52e4e8
--- /dev/null
+++ b/texinfo/bash-aliases
@@ -0,0 +1,30 @@
+# -*- shell-script -*-
+
+#DESCRIPTION: Open a programs info manual and open the invoking chapter
+#USAGE: iv [program]
+
+iv () {
+ __texinfo="$1"
+ shift 1
+ info "(${__texinfo})" invoking "$@"
+ unset __texinfo
+}
+
+
+#DESCRIPTION: Open a programs info manual and try to select a usage page
+#USAGE: iu [program] [node]
+
+iu () {
+ info --usage "$@"
+}
+
+
+#DESCRIPTION: Open a programs info manual
+#USAGE: i [program] [node]
+
+i () {
+ __texinfo="$1"
+ shift 1
+ info "(${__texinfo})" "$@"
+ unset __texinfo
+}
diff --git a/texlive-bin/Makefile b/texlive-bin/Makefile
new file mode 100644
index 0000000..4b21f55
--- /dev/null
+++ b/texlive-bin/Makefile
@@ -0,0 +1,17 @@
+.POSIX:
+
+install:
+ if test -d ~/.texlive; then \
+ test ! -d ~/.var/cache/texlive && \
+ mkdir -p -- ~/.var/cache && \
+ mv ~/.texlive ~/.var/cache/texlive; \
+ else \
+ mkdir -p -- ~/.var/cache/texlive; \
+ fi
+ ln -sf -- .var/cache/texlive ~/.texlive
+
+uninstall:
+ -rm -rf -- ~/.var/cache/texlive
+ -rm -rf -- ~/.texlive
+
+.PHONY: install uninstall
diff --git a/vlc/Makefile b/vlc/Makefile
new file mode 100644
index 0000000..1438ec6
--- /dev/null
+++ b/vlc/Makefile
@@ -0,0 +1,9 @@
+.POSIX:
+
+install:
+ @:
+
+uninstall:
+ -rm -rf -- ~/.config/vlc
+
+.PHONY: install uninstall
diff --git a/wget/Makefile b/wget/Makefile
new file mode 100644
index 0000000..35c640f
--- /dev/null
+++ b/wget/Makefile
@@ -0,0 +1,10 @@
+.POSIX:
+
+install:
+ test ! -d ~/.wget-hsts
+ ln -sf -- /dev/null ~/.wget-hsts
+
+uninstall:
+ -unlink -- ~/.wget-hsts
+
+.PHONY: install uninstall
diff --git a/xmonad/Makefile b/xmonad/Makefile
new file mode 100644
index 0000000..afb5a4b
--- /dev/null
+++ b/xmonad/Makefile
@@ -0,0 +1,21 @@
+.POSIX:
+
+XINITRC_ORDER = 80
+
+install:
+ pacman -Qq -- xwallpaper </dev/null >/dev/null
+ pacman -Qq -- xcman </dev/null >/dev/null
+ pacman -Qq -- pdeath </dev/null >/dev/null
+ pacman -Qq -- mate-panel </dev/null >/dev/null
+ -pacman -Qq -- mate-settings-daemon </dev/null >/dev/null
+ mkdir -p -- ~/.config/X11/xinit/xinitrc.d
+ test ! -d ~/.config/X11/xinit/xinitrc.d/$(XINITRC_ORDER)-xmonad
+ ln -sf -- ~/.dotfiles/xmonad/xinit ~/.config/X11/xinit/xinitrc.d/$(XINITRC_ORDER)-xmonad
+
+uninstall:
+ -unlink -- ~/.config/X11/xinit/xinitrc.d/$(XINITRC_ORDER)-xmonad
+ -rmdir -- ~/.config/X11/xinit/xinitrc.d
+ -rmdir -- ~/.config/X11/xinit
+ -rmdir -- ~/.config/X11
+
+.PHONY: install uninstall
diff --git a/xmonad/xinit b/xmonad/xinit
new file mode 100644
index 0000000..13f8392
--- /dev/null
+++ b/xmonad/xinit
@@ -0,0 +1,24 @@
+# -*- shell-script -*-
+
+# Only apply if starting xmonad as the window manager
+if test "${SESSION}" = xmonad; then
+
+ # Tell Java if we are using a non-reparenting window manager
+ export _JAVA_AWT_WM_NONREPARENTING=1
+
+ # Start GTK2 settings daemon
+ if test ! "${NO_MATE}" = y && test -x /usr/lib/mate-settings-daemon/mate-settings-daemon; then
+ /usr/lib/mate-settings-daemon/mate-settings-daemon &
+ sleep 0.5
+ fi
+
+ # Automatically focus output when mouse is moving in root window
+ pdeath HUP xmonad-autofocus-output &
+
+ # Start composition manager
+ xcman &
+
+ # Start application panel
+ mate-panel &
+
+fi
diff --git a/xorg-twm/Makefile b/xorg-twm/Makefile
new file mode 100644
index 0000000..8935a6f
--- /dev/null
+++ b/xorg-twm/Makefile
@@ -0,0 +1,11 @@
+.POSIX:
+
+install:
+ mkdir -p -- ~/.config
+ test ! -d ~/.config/twmrc
+ ln -sf -- ~/.dotfiles/xorg-twm/twmrc ~/.config/twmrc
+
+uninstall:
+ -unlink -- ~/.config/twmrc
+
+.PHONY: install uninstall
diff --git a/xorg-twm/twmrc b/xorg-twm/twmrc
new file mode 100644
index 0000000..91869e1
--- /dev/null
+++ b/xorg-twm/twmrc
@@ -0,0 +1,93 @@
+#
+# Default twm configuration file; needs to be kept small to conserve string
+# space in systems whose compilers don't handle medium-sized strings.
+#
+# Sites should tailor this file, providing any extra title buttons, menus, etc.
+# that may be appropriate for their environment. For example, if most of the
+# users were accustomed to uwm, the defaults could be set up not to decorate
+# any windows and to use meta-keys.
+#
+
+NoGrabServer
+RestartPreviousState
+DecorateTransients
+TitleFont "-adobe-helvetica-bold-r-normal--*-120-*-*-*-*-*-*"
+ResizeFont "-adobe-helvetica-bold-r-normal--*-120-*-*-*-*-*-*"
+MenuFont "-adobe-helvetica-bold-r-normal--*-120-*-*-*-*-*-*"
+IconFont "-adobe-helvetica-bold-r-normal--*-100-*-*-*-*-*-*"
+IconManagerFont "-adobe-helvetica-bold-r-normal--*-100-*-*-*"
+#ClientBorderWidth
+
+Color
+{
+ BorderColor "slategrey"
+ DefaultBackground "rgb:2/a/9"
+ DefaultForeground "gray85"
+ TitleBackground "rgb:2/a/9"
+ TitleForeground "gray85"
+ MenuBackground "rgb:2/a/9"
+ MenuForeground "gray85"
+ MenuBorderColor "slategrey"
+ MenuTitleBackground "gray70"
+ MenuTitleForeground "rgb:2/a/9"
+ IconBackground "rgb:2/a/9"
+ IconForeground "gray85"
+ IconBorderColor "gray85"
+ IconManagerBackground "rgb:2/a/9"
+ IconManagerForeground "gray85"
+}
+
+#
+# Define some useful functions for motion-based actions.
+#
+MoveDelta 3
+Function "move-or-lower" { f.move f.deltastop f.lower }
+Function "move-or-raise" { f.move f.deltastop f.raise }
+Function "move-or-iconify" { f.move f.deltastop f.iconify }
+
+#
+# Set some useful bindings. Sort of uwm-ish, sort of simple-button-ish
+#
+Button1 = : root : f.menu "defops"
+
+Button1 = m : window|icon : f.function "move-or-lower"
+Button2 = m : window|icon : f.iconify
+Button3 = m : window|icon : f.function "move-or-raise"
+
+Button1 = : title : f.function "move-or-raise"
+Button2 = : title : f.raiselower
+
+Button1 = : icon : f.function "move-or-iconify"
+Button2 = : icon : f.iconify
+
+Button1 = : iconmgr : f.iconify
+Button2 = : iconmgr : f.iconify
+
+#
+# And a menus with the usual things
+#
+menu "defops"
+{
+"Twm" f.title
+"Iconify" f.iconify
+"Resize" f.resize
+"Move" f.move
+"Raise" f.raise
+"Lower" f.lower
+"" f.nop
+"Focus" f.focus
+"Unfocus" f.unfocus
+"Show Iconmgr" f.showiconmgr
+"Hide Iconmgr" f.hideiconmgr
+"" f.nop
+"Terminator" f.exec "exec terminator &"
+"Xterm" f.exec "exec xterm &"
+"Firefox" f.exec "exec firefox &"
+"Caja" f.exec "exec c &"
+"" f.nop
+"Kill" f.destroy
+"Delete" f.delete
+"" f.nop
+"Restart" f.restart
+"Exit" f.quit
+}
diff --git a/xorg-xinit/Makefile b/xorg-xinit/Makefile
new file mode 100644
index 0000000..1c37d2f
--- /dev/null
+++ b/xorg-xinit/Makefile
@@ -0,0 +1,36 @@
+.POSIX:
+
+XINITRC_ORDER = 50
+
+# Testing that xmonad is installed because it is the default sessions
+# Testing that asroot, xorg-setxkbmap, and xorg-xmodmap are installed because setkeys uses them
+install:
+ pacman -Qq -- asroot </dev/null >/dev/null
+ pacman -Qq -- dconf </dev/null >/dev/null
+ pacman -Qq -- xmonad </dev/null >/dev/null
+ pacman -Qq -- xorg-setxkbmap </dev/null >/dev/null
+ pacman -Qq -- xorg-xmodmap </dev/null >/dev/null
+ pacman -Qq -- xorg-xrandr </dev/null >/dev/null
+ pacman -Qq -- xorg-xrdb </dev/null >/dev/null
+ pacman -Qq -- xorg-xset </dev/null >/dev/null
+ pacman -Qq -- xorg-xsetroot </dev/null >/dev/null
+ mkdir -p -- ~/.config/bash/aliases.d
+ test ! -d ~/.config/bash/aliases.d/xorg-xinit
+ ln -sf -- ~/.dotfiles/xorg-xinit/bash-aliases ~/.config/bash/aliases.d/xorg-xinit
+ mkdir -p -- ~/.config/X11/xinit
+ test ! -d ~/.config/X11/xinit/xinitrc
+ ln -sf -- ~/.dotfiles/xorg-xinit/xinitrc ~/.config/X11/xinit/xinitrc
+ mkdir -p -- ~/.config/X11/xinit/xinitrc.d
+ test ! -d ~/.config/X11/xinit/xinitrc.d/$(XINITRC_ORDER)-xorg-xinit
+ ln -sf -- ~/.dotfiles/xorg-xinit/xinit ~/.config/X11/xinit/xinitrc.d/$(XINITRC_ORDER)-xorg-xinit
+
+uninstall:
+ -unlink -- ~/.config/bash/aliases.d/xorg-xinit
+ -rmdir -- ~/.config/bash/aliases.d
+ -unlink -- ~/.config/X11/xinit/xinitrc
+ -unlink -- ~/.config/X11/xinit/xinitrc.d/$(XINITRC_ORDER)-xorg-xinit
+ -rmdir -- ~/.config/X11/xinit/xinitrc.d
+ -rmdir -- ~/.config/X11/xinit
+ -rmdir -- ~/.config/X11
+
+.PHONY: install uninstall
diff --git a/xorg-xinit/bash-aliases b/xorg-xinit/bash-aliases
new file mode 100644
index 0000000..14b2000
--- /dev/null
+++ b/xorg-xinit/bash-aliases
@@ -0,0 +1,9 @@
+# -*- shell-script -*-
+
+if test "$TERM" = dumb; then
+ alias startx='printf '\''\e[1;31m%s\e[0m\n\c'\'' "Do not start an X session from a dumb terminal"; false'
+ alias xinit='printf '\''\e[1;31m%s\e[0m\n\c'\'' "Do not start an X session from a dumb terminal"; false'
+elif test ! "$TERM" = linux || test -n "$DISPLAY"; then
+ alias startx='printf '\''\e[1;31m%s\e[0m\n\c'\'' "Do not start an X session from within an X session"; false'
+ alias xinit='printf '\''\e[1;31m%s\e[0m\n\c'\'' "Do not start an X session from within an X session"; false'
+fi
diff --git a/xorg-xinit/xinit b/xorg-xinit/xinit
new file mode 100644
index 0000000..bd1874c
--- /dev/null
+++ b/xorg-xinit/xinit
@@ -0,0 +1,7 @@
+# -*- shell-script -*-
+
+for f in /etc/X11/xinit/xinitrc.d/*; do
+ if test -r "$f"; then
+ . -- "$f"
+ fi
+done
diff --git a/xorg-xinit/xinitrc b/xorg-xinit/xinitrc
new file mode 100644
index 0000000..5d6a3ab
--- /dev/null
+++ b/xorg-xinit/xinitrc
@@ -0,0 +1,30 @@
+# -*- shell-script -*-
+
+# Get selected session
+default_session=xmonad
+SESSION_="$SESSION"
+if test -z "$SESSION" = ""; then
+ SESSION="$default_session"
+ SESSION_="$SESSION"
+fi
+
+# Export DESKTOP_SESSION
+if [ ! "${SET_DESKTOP_SESSION}" = n ]; then
+ export DESKTOP_SESSION="$SESSION"
+fi
+
+# Apply package specific settings and run package specific programs
+for f in ~/.config/X11/xinit/xinitrc.d/*; do
+ if test -r "$f"; then
+ . -- "$f"
+ fi
+done
+
+# Set keyboard settings
+setkeys
+
+# Start hotkey daemon
+xkbdbind &
+
+# Start session
+exec ${SESSION_WRAPPER} "$SESSION"
diff --git a/xorg-xrandr/Makefile b/xorg-xrandr/Makefile
new file mode 100644
index 0000000..6eed73b
--- /dev/null
+++ b/xorg-xrandr/Makefile
@@ -0,0 +1,18 @@
+.POSIX:
+
+XINITRC_ORDER = 15
+
+# Testing that xwallpaper is installed because setres calls it
+install:
+ pacman -Qq -- xwallpaper </dev/null >/dev/null
+ mkdir -p -- ~/.config/X11/xinit/xinitrc.d
+ test ! -d ~/.config/X11/xinit/xinitrc.d/$(XINITRC_ORDER)-xorg-xrandr
+ ln -sf -- ~/.dotfiles/xorg-xrandr/xinit ~/.config/X11/xinit/xinitrc.d/$(XINITRC_ORDER)-xorg-xrandr
+
+uninstall:
+ -unlink -- ~/.config/X11/xinit/xinitrc.d/$(XINITRC_ORDER)-xorg-xrandr
+ -rmdir -- ~/.config/X11/xinit/xinitrc.d
+ -rmdir -- ~/.config/X11/xinit
+ -rmdir -- ~/.config/X11
+
+.PHONY: install uninstall
diff --git a/xorg-xrandr/xinit b/xorg-xrandr/xinit
new file mode 100644
index 0000000..771d2ff
--- /dev/null
+++ b/xorg-xrandr/xinit
@@ -0,0 +1,4 @@
+# -*- shell-script -*-
+
+# Set screen layout, resolution and calibration
+setres
diff --git a/xorg-xrdb/Makefile b/xorg-xrdb/Makefile
new file mode 100644
index 0000000..7dce6db
--- /dev/null
+++ b/xorg-xrdb/Makefile
@@ -0,0 +1,16 @@
+.POSIX:
+
+XINITRC_ORDER = 20
+
+install:
+ mkdir -p -- ~/.config/X11/xinit/xinitrc.d
+ test ! -d ~/.config/X11/xinit/xinitrc.d/$(XINITRC_ORDER)-xorg-xrdb
+ ln -sf -- ~/.dotfiles/xorg-xrdb/xinit ~/.config/X11/xinit/xinitrc.d/$(XINITRC_ORDER)-xorg-xrdb
+
+uninstall:
+ -unlink -- ~/.config/X11/xinit/xinitrc.d/$(XINITRC_ORDER)-xorg-xrdb
+ -rmdir -- ~/.config/X11/xinit/xinitrc.d
+ -rmdir -- ~/.config/X11/xinit
+ -rmdir -- ~/.config/X11
+
+.PHONY: install uninstall
diff --git a/xorg-xrdb/xinit b/xorg-xrdb/xinit
new file mode 100644
index 0000000..b93f2d0
--- /dev/null
+++ b/xorg-xrdb/xinit
@@ -0,0 +1,12 @@
+# -*- shell-script -*-
+
+# Set font settings and potentionally other resources
+if test -r /etc/X11/xinit/Xresources; then
+ xrdb -merge /etc/X11/xinit/Xresources
+fi
+if test -r ~/.config/X11/xinit/Xresources; then
+ xrdb -merge ~/.config/X11/xinit/Xresources
+fi
+if test -r ~/.Xresources; then
+ xrdb -merge ~/.Xresources
+fi
diff --git a/xorg-xset/Makefile b/xorg-xset/Makefile
new file mode 100644
index 0000000..18a23be
--- /dev/null
+++ b/xorg-xset/Makefile
@@ -0,0 +1,16 @@
+.POSIX:
+
+XINITRC_ORDER = 20
+
+install:
+ mkdir -p -- ~/.config/X11/xinit/xinitrc.d
+ test ! -d ~/.config/X11/xinit/xinitrc.d/$(XINITRC_ORDER)-xorg-xset
+ ln -sf -- ~/.dotfiles/xorg-xset/xinit ~/.config/X11/xinit/xinitrc.d/$(XINITRC_ORDER)-xorg-xset
+
+uninstall:
+ -unlink -- ~/.config/X11/xinit/xinitrc.d/$(XINITRC_ORDER)-xorg-xset
+ -rmdir -- ~/.config/X11/xinit/xinitrc.d
+ -rmdir -- ~/.config/X11/xinit
+ -rmdir -- ~/.config/X11
+
+.PHONY: install uninstall
diff --git a/xorg-xset/xinit b/xorg-xset/xinit
new file mode 100644
index 0000000..1d8433a
--- /dev/null
+++ b/xorg-xset/xinit
@@ -0,0 +1,4 @@
+# -*- shell-script -*-
+
+# Turn off screen saver
+xset -dpms s off
diff --git a/xorg-xsetroot/Makefile b/xorg-xsetroot/Makefile
new file mode 100644
index 0000000..05648e8
--- /dev/null
+++ b/xorg-xsetroot/Makefile
@@ -0,0 +1,16 @@
+.POSIX:
+
+XINITRC_ORDER = 20
+
+install:
+ mkdir -p -- ~/.config/X11/xinit/xinitrc.d
+ test ! -d ~/.config/X11/xinit/xinitrc.d/$(XINITRC_ORDER)-xorg-xsetroot
+ ln -sf -- ~/.dotfiles/xorg-xsetroot/xinit ~/.config/X11/xinit/xinitrc.d/$(XINITRC_ORDER)-xorg-xsetroot
+
+uninstall:
+ -unlink -- ~/.config/X11/xinit/xinitrc.d/$(XINITRC_ORDER)-xorg-xsetroot
+ -rmdir -- ~/.config/X11/xinit/xinitrc.d
+ -rmdir -- ~/.config/X11/xinit
+ -rmdir -- ~/.config/X11
+
+.PHONY: install uninstall
diff --git a/xorg-xsetroot/xinit b/xorg-xsetroot/xinit
new file mode 100644
index 0000000..27f06b1
--- /dev/null
+++ b/xorg-xsetroot/xinit
@@ -0,0 +1,4 @@
+# -*- shell-script -*-
+
+# Set cursor to right handed pointer
+xsetroot -cursor_name left_ptr
diff --git a/xwallpaper/Makefile b/xwallpaper/Makefile
new file mode 100644
index 0000000..1d7f330
--- /dev/null
+++ b/xwallpaper/Makefile
@@ -0,0 +1,20 @@
+.POSIX:
+
+XINITRC_ORDER = 20
+
+install:
+ pacman -Qq -- xcman </dev/null >/dev/null
+ pacman -Qq -- pdeath </dev/null >/dev/null
+ pacman -Qq -- mate-panel </dev/null >/dev/null
+ -pacman -Qq -- mate-settings-daemon </dev/null >/dev/null
+ mkdir -p -- ~/.config/X11/xinit/xinitrc.d
+ test ! -d ~/.config/X11/xinit/xinitrc.d/$(XINITRC_ORDER)-xwallpaper
+ ln -sf -- ~/.dotfiles/xwallpaper/xinit ~/.config/X11/xinit/xinitrc.d/$(XINITRC_ORDER)-xwallpaper
+
+uninstall:
+ -unlink -- ~/.config/X11/xinit/xinitrc.d/$(XINITRC_ORDER)-xwallpaper
+ -rmdir -- ~/.config/X11/xinit/xinitrc.d
+ -rmdir -- ~/.config/X11/xinit
+ -rmdir -- ~/.config/X11
+
+.PHONY: install uninstall
diff --git a/xwallpaper/xinit b/xwallpaper/xinit
new file mode 100644
index 0000000..9080e46
--- /dev/null
+++ b/xwallpaper/xinit
@@ -0,0 +1,10 @@
+# -*- shell-script -*-
+
+# Set background
+if test -f ~/.config/background."${SESSION_}"; then
+ xwallpaper --zoom ~/.config/background."${SESSION_}"
+elif test -f ~/.config/background; then
+ xwallpaper --zoom ~/.config/background
+elif test -f /etc/background; then
+ xwallpaper --zoom /etc/background
+fi
diff --git a/zathura/Makefile b/zathura/Makefile
new file mode 100644
index 0000000..cd99a66
--- /dev/null
+++ b/zathura/Makefile
@@ -0,0 +1,9 @@
+.POSIX:
+
+install:
+ -rmdir -- ~/.config/zathura
+
+uninstall:
+ -rm -rf -- ~/.config/zathura
+
+.PHONY: install uninstall