home · contact · privacy
Split up aliases dotfiles by purpose, ownership.
authorPlom Heller <plom@plomlompom.com>
Sun, 13 Sep 2026 02:25:53 +0000 (04:25 +0200)
committerPlom Heller <plom@plomlompom.com>
Sun, 13 Sep 2026 02:25:53 +0000 (04:25 +0200)
home/any/.aliases_etc.ls [new file with mode: 0644]
home/root/.aliases [deleted file]
home/root/.aliases_etc.hibernation [new file with mode: 0644]
home/user/.aliases [deleted file]
home/user/.aliases_etc.hibernation [new file with mode: 0644]
setup_scripts/lib/link_home.sh

diff --git a/home/any/.aliases_etc.ls b/home/any/.aliases_etc.ls
new file mode 100644 (file)
index 0000000..f0ff635
--- /dev/null
@@ -0,0 +1,2 @@
+alias ls="ls --color=auto"
+
diff --git a/home/root/.aliases b/home/root/.aliases
deleted file mode 100644 (file)
index fb46ad5..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-alias ls="ls --color=auto"
-
-alias hibernate_safe="command systemctl hibernate || systemctl poweroff"
-systemctl () {
-    local MSG="Use 'hibernate_safe' instead."
-    [ "$@" = "hibernate" ] && echo "${MSG}" && return 1
-    command systemctl "$@"
-}
diff --git a/home/root/.aliases_etc.hibernation b/home/root/.aliases_etc.hibernation
new file mode 100644 (file)
index 0000000..8f1a3c5
--- /dev/null
@@ -0,0 +1,8 @@
+# /etc/systemd/system/sytemd-hibernate.service.d/60-poweroff-on-failure.conf
+# is bypassed by pure "systemctl hibernate", so only allow wrap with poweroff
+alias hibernate_safe="command systemctl hibernate || systemctl poweroff"
+systemctl () {
+    local MSG="Use 'hibernate_safe' instead."
+    [ "$@" = "hibernate" ] && echo "${MSG}" && return 1
+    command systemctl "$@"
+}
diff --git a/home/user/.aliases b/home/user/.aliases
deleted file mode 100644 (file)
index 197ef9a..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-alias ls="ls --color=auto"
-
-alias hibernate_safe="sudo /bin/sh -lc hibernate_safe"
-sudo() {
-    local MSG="Use 'hibernate_safe' instead."
-    [ "$1 $2" = "systemctl hibernate" ] && echo "${MSG}" && return 1
-    command sudo "$@"
-}
diff --git a/home/user/.aliases_etc.hibernation b/home/user/.aliases_etc.hibernation
new file mode 100644 (file)
index 0000000..da7ef8f
--- /dev/null
@@ -0,0 +1,6 @@
+alias hibernate_safe="sudo /bin/sh -lc hibernate_safe"
+sudo() {
+    local MSG="Use 'hibernate_safe' instead."
+    [ "$1 $2" = "systemctl hibernate" ] && echo "${MSG}" && return 1
+    command sudo "$@"
+}
index a3ad4ad9a755d1f9bbf1b11a665c8885668e6f68..c6f0ae0008d1710a642f00b46f8846bb3c7a37c2 100644 (file)
@@ -3,20 +3,24 @@ include PATH_REPO
 include msg
 
 link_home() {
-    local PATH_SKEL="${PATH_REPO}/home/$1"
-    local DOT_ALIASFILE='. ${HOME}/.aliases'
+    local LOOP_ALIASFILES=\
+'for FILE in ${HOME}/.aliases_etc.*; do . "${FILE}"; done'
     local PATH_PROFILE="${HOME}/${FNAME_PROFILE}"
-    msg 'Linking %s files into home directory …' "${PATH_SKEL}"
-    find "${PATH_SKEL}" -mindepth 1 -maxdepth 1 | while IFS= read -r SRC; do
-        DEST="${HOME}/$(basename "${SRC}")"
-        if [ -e "${DEST}" ] || [ -L "${DEST}" ]; then
-            msg 'Skipping already-found %s …' "${DEST}"
-        else
-            ln -v -s "${SRC}" "${DEST}"
-        fi
+    for DIRNAME in any "$1"; do
+        local PATH_SKEL="${PATH_REPO}/home/${DIRNAME}"
+        msg 'Linking %s files into home directory …' "${PATH_SKEL}"
+        find "${PATH_SKEL}" -mindepth 1 -maxdepth 1 \
+            | while IFS= read -r SRC; do
+            DEST="${HOME}/$(basename "${SRC}")"
+            if [ -e "${DEST}" ] || [ -L "${DEST}" ]; then
+                msg 'Skipping already-found %s …' "${DEST}"
+            else
+                ln -v -s "${SRC}" "${DEST}"
+            fi
+        done
     done
     msg 'Augmenting user %s …' "${FNAME_PROFILE}"
     # test ensures idempotency
-    grep -qxF "${DOT_ALIASFILE}" "${PATH_PROFILE}" 2>/dev/null\
-        || printf '\n%s\n' "${DOT_ALIASFILE}" >> "${PATH_PROFILE}"
+    grep -qxF "${LOOP_ALIASFILES}" "${PATH_PROFILE}" 2>/dev/null\
+        || printf '\n%s\n' "${LOOP_ALIASFILES}" >> "${PATH_PROFILE}"
 }