From 13ccff1a00bd6de2d567e09da23d38fb3ed4928b Mon Sep 17 00:00:00 2001
From: Luca Bilke <bilke@tralios.de>
Date: Thu, 23 May 2024 17:13:05 +0200
Subject: [PATCH] make shortcuts script portable

---
 .config/lf/shortcuts       | 22 ++++++++++++++++++++++
 .config/zsh/configs/hashes | 22 ++++++++++++++++++++++
 .gitignore                 |  3 ---
 .local/bin/shortcuts       | 15 +++++----------
 4 files changed, 49 insertions(+), 13 deletions(-)
 create mode 100644 .config/lf/shortcuts
 create mode 100644 .config/zsh/configs/hashes

diff --git a/.config/lf/shortcuts b/.config/lf/shortcuts
new file mode 100644
index 00000000..3bddf01e
--- /dev/null
+++ b/.config/lf/shortcuts
@@ -0,0 +1,22 @@
+# NOTE: Managed by shortcuts script
+map gcf cd ~/.config
+map gch cd ~/.cache
+map gco cd ~/Documents/dev
+map gdk cd ~/Desktop
+map gdl cd ~/Downloads
+map gdm cd ~/Documents
+map gds cd ~/.local/share/stow/dots
+map gdt cd ~/.local/share
+map ge cd /etc
+map gh cd ~
+map glo cd /usr/local
+map gle cd ~/.local/libexec
+map glg cd /var/log
+map gmn cd /mnt
+map gms cd ~/Music
+map gpc cd ~/Pictures
+map gr cd /
+map gsc cd ~/.local/bin
+map gst cd ~/.local/state
+map gsv cd ~/.local/sv
+map gvd cd ~/Videos
diff --git a/.config/zsh/configs/hashes b/.config/zsh/configs/hashes
new file mode 100644
index 00000000..247d348e
--- /dev/null
+++ b/.config/zsh/configs/hashes
@@ -0,0 +1,22 @@
+# NOTE: Managed by shortcuts script
+hash -d cf=~/.config
+hash -d ch=~/.cache
+hash -d co=~/Documents/dev
+hash -d dk=~/Desktop
+hash -d dl=~/Downloads
+hash -d dm=~/Documents
+hash -d ds=~/.local/share/stow/dots
+hash -d dt=~/.local/share
+hash -d e=/etc
+hash -d h=~
+hash -d lo=/usr/local
+hash -d le=~/.local/libexec
+hash -d lg=/var/log
+hash -d mn=/mnt
+hash -d ms=~/Music
+hash -d pc=~/Pictures
+hash -d r=/
+hash -d sc=~/.local/bin
+hash -d st=~/.local/state
+hash -d sv=~/.local/sv
+hash -d vd=~/Videos
diff --git a/.gitignore b/.gitignore
index 1b7b577a..81b3cccc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,9 +3,6 @@
 .local/share/xkb/compiled/keymap
 .config/nvim/lazy-lock.json
 .config/lazygit/state.yml
-.config/nvim/lua/config/keys.lua
 .config/gtk-2.0/gtkfilechooser.ini
 .config/nvim/spell/en.utf-8.add.spl
 .config/nvim/lua/custom/secrets.lua
-.config/lf/shortcuts
-.config/zsh/configs/hashes
diff --git a/.local/bin/shortcuts b/.local/bin/shortcuts
index 8a9ab654..22bf8e43 100755
--- a/.local/bin/shortcuts
+++ b/.local/bin/shortcuts
@@ -1,8 +1,8 @@
 #!/bin/sh
 
-zsh=$ZDOTDIR/configs/hashes
-lf=$XDG_CONFIG_HOME/lf/shortcuts
-nvim=$XDG_CONFIG_HOME/nvim/lua/config/shortcuts.lua
+zsh=${ZDOTDIR}/configs/hashes
+lf=${XDG_CONFIG_HOME}/lf/shortcuts
+nvim=${XDG_CONFIG_HOME}/nvim/lua/config/shortcuts.lua
 
 clean() {
     echo "# NOTE: Managed by shortcuts script" >"$zsh"
@@ -18,7 +18,7 @@ write() {
     while IFS= read -r line; do
         shortcut=$(echo "$line" | cut -d' ' -f1)
         path=$(echo "$line" | cut -d' ' -f2)
-        path=$(eval "echo $path")
+        path=$(eval "echo $path" | sed "s|${HOME}|~|g")
 
         printf "hash -d %s=%s\n" "$shortcut" "$path" >>"$zsh"
         printf "map g%s cd %s\n" "$shortcut" "$path" >>"$lf"
@@ -26,13 +26,8 @@ write() {
     done
 }
 
-filter() {
-    input=$1
-    sed 's/#.*//;/^$/d;s/ \+/ /g' "$input"
-}
-
 clean
 
-filter "$XDG_CONFIG_HOME/directories" | write
+sed 's/#.*//;/^$/d;s/ \+/ /g' <"${XDG_CONFIG_HOME}/directories" | write
 
 finalize