mirror of
https://github.com/LukeSmithxyz/voidrice.git
synced 2026-01-30 09:48:11 +01:00
Unfortunately I don't have the time to test if every one of these generated configurations work, but they shouldn't have changed at all.
99 lines
3.4 KiB
Bash
Executable File
99 lines
3.4 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"
|
|
ranger_shortcuts="/dev/null"
|
|
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 g%s cd %s\nmap t%s tab_new %s\nmap m%s shell mv -v %%s %s\nmap Y%s shell cp -rv %%s %s \n" \
|
|
"$shortcut" "$path" \
|
|
"$shortcut" "$path" \
|
|
"$shortcut" "$path" \
|
|
"$shortcut" "$path" \
|
|
>>"$ranger_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 %s shell \$EDITOR %s \n" \
|
|
"$shortcut" "$path" \
|
|
>>"$ranger_shortcuts"
|
|
printf "map E%s \$\$EDITOR \"%s\" \n" \
|
|
"$shortcut" "$path" \
|
|
>>"$lf_shortcuts"
|
|
printf "cmap ;%s %s\n" \
|
|
"$shortcut" "$path" \
|
|
>>"$vim_shortcuts"
|
|
done
|
|
}
|
|
|
|
filter() {
|
|
input=$1
|
|
sed 's/#.*//;/^$/d;s/ \+/ /g' "$input"
|
|
}
|
|
|
|
# Remove, prepare files
|
|
rm -f "$lf_shortcuts" "$ranger_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"
|
|
|
|
filter "$bmdirs" | write_dirs
|
|
filter "$bmfiles" | write_files
|