mirror of
https://github.com/LukeSmithxyz/voidrice.git
synced 2026-01-30 09:48:11 +01:00
69 lines
2.7 KiB
Bash
Executable File
69 lines
2.7 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# Input locations.
|
|
bmdirs="${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs"
|
|
bmfiles="${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-files"
|
|
|
|
# Output locations. Unactivated progs should go to /dev/null.
|
|
shell_shortcuts="${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc"
|
|
zsh_named_dirs="${XDG_CONFIG_HOME:-$HOME/.config}/shell/zshnameddirrc"
|
|
lf_shortcuts="${XDG_CONFIG_HOME:-$HOME/.config}/lf/shortcutrc"
|
|
vim_shortcuts="${XDG_CONFIG_HOME:-$HOME/.config}/nvim/shortcuts.vim"
|
|
qute_shortcuts="/dev/null"
|
|
fish_shortcuts="/dev/null"
|
|
vifm_shortcuts="/dev/null"
|
|
|
|
write_dirs() {
|
|
while IFS= read -r line; do
|
|
shortcut=$(echo "$line" | cut -d' ' -f1)
|
|
path_raw=$(echo "$line" | cut -d' ' -f2)
|
|
path=$(eval "echo $path_raw")
|
|
|
|
printf "%s=\"cd %s && ls -A\" \\\\\n" \
|
|
"$shortcut" "$path" >>"$shell_shortcuts"
|
|
printf "hash -d %s=%s\n" \
|
|
"$shortcut" "$path" >>"$zsh_named_dirs"
|
|
printf "abbr %s \"cd %s; and ls -A\"\n" \
|
|
"$shortcut" "$path" >>"$fish_shortcuts"
|
|
printf "map g%s :cd %s<CR>\nmap t%s <tab>:cd %s<CR><tab>\nmap M%s <tab>:cd %s<CR><tab>:mo<CR>\nmap Y%s <tab>:cd %s<CR><tab>:co<CR> \n" \
|
|
"$shortcut" "$path" "$shortcut" "$path" "$shortcut" "$path" "$shortcut" "$path" >>"$vifm_shortcuts"
|
|
printf "config.bind(';%s', \"set downloads.location.directory %s ;; hint links download\") \n" \
|
|
"$shortcut" "$path" >>"$qute_shortcuts"
|
|
printf "map C%s cd \"%s\"\n" \
|
|
"$shortcut" "$path" >>"$lf_shortcuts"
|
|
printf "cmap ;%s %s\n" \
|
|
"$shortcut" "$path" >>"$vim_shortcuts"
|
|
done
|
|
}
|
|
|
|
write_files() {
|
|
while IFS= read -r line; do
|
|
shortcut=$(echo "$line" | cut -d' ' -f1)
|
|
path_raw=$(echo "$line" | cut -d' ' -f2)
|
|
path=$(eval "echo $path_raw")
|
|
|
|
printf "%s=\"\$EDITOR %s\" \\\\\n" \
|
|
"$shortcut" "$path" >>"$shell_shortcuts"
|
|
printf "hash -d %s=%s \n" \
|
|
"$shortcut" "$path" >>"$zsh_named_dirs"
|
|
printf "abbr %s \"\$EDITOR %s\" \n" \
|
|
"$shortcut" "$path" >>"$fish_shortcuts"
|
|
printf "map %s :e %s<CR> \n" \
|
|
"$shortcut" "$path" >>"$vifm_shortcuts"
|
|
printf "map E%s \$\$EDITOR \"%s\" \n" \
|
|
"$shortcut" "$path" >>"$lf_shortcuts"
|
|
printf "cmap ;%s %s\n" \
|
|
"$shortcut" "$path" >>"$vim_shortcuts"
|
|
done
|
|
}
|
|
|
|
# Remove, prepare files
|
|
rm -f "$lf_shortcuts" "$qute_shortcuts" "$zsh_named_dirs" "$vim_shortcuts" 2>/dev/null
|
|
printf "# vim: filetype=sh\\n" >"$fish_shortcuts"
|
|
printf "# vim: filetype=sh\\nalias " >"$shell_shortcuts"
|
|
printf "\" vim: filetype=vim\\n" >"$vifm_shortcuts"
|
|
|
|
# Write shortcuts to files
|
|
sed 's/#.*//;/^$/d;s/ \+/ /g' <"$bmdirs" | write_dirs
|
|
sed 's/#.*//;/^$/d;s/ \+/ /g' <"$bmfiles" | write_files
|