1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
#!/bin/sh
bmdirs="${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs"
bmdirs_dir="${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs.d"
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"
shell_env_shortcuts="${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutenvrc"
zsh_named_dirs="${XDG_CONFIG_HOME:-$HOME/.config}/shell/zshnameddirrc"
lf_shortcuts="${XDG_CONFIG_HOME:-$HOME/.config}/lf/shortcutrc"
yazi_shortcuts="${XDG_CONFIG_HOME:-$HOME/.config}/yazi/shortcutrc"
broot_shortcuts="${XDG_CONFIG_HOME:-$HOME/.config}/broot/shortcutrc.hjson"
vim_shortcuts="${XDG_CONFIG_HOME:-$HOME/.config}/nvim/shortcuts.vim"
qute_shortcuts="/dev/null"
fish_shortcuts="/dev/null"
vifm_shortcuts="/dev/null"
# Remove, prepare files
rm -f "$shell_env_shortcuts" "$lf_shortcuts" "$qute_shortcuts" "$zsh_named_dirs" "$vim_shortcuts" 2>/dev/null
printf "alias " > "$shell_shortcuts"
echo "verbs: [" > "$broot_shortcuts"
# Format the `directories` file in the correct syntax and sent it to all three configs.
eval "echo \"$(cat "$bmdirs"; for i in "$bmdirs_dir"/*; do cat $i; done)\"" | \
awk "!/^\s*#/ && !/^\s*\$/ {gsub(\"\\\s*#.*$\",\"\");
printf(\"%s=\42cd %s && ls -A\42 \\\\\n\",\$1,\$2) >> \"$shell_shortcuts\" ;
printf(\"[ -n \42%s\42 ] && export %s=\42%s\42 \n\",\$1,\$1,\$2) >> \"$shell_env_shortcuts\" ;
printf(\"map C%s cd \42%s\42 \n\",\$1,\$2) >> \"$lf_shortcuts\" ;
printf(\"{ on = [\42C\42,\",\$1) > \"$yazi_shortcuts\" ;
for(i = 0; ++i <= length(\$1);) printf(\"\42%s\42,\", substr(\$0, i, 1)) > \"$yazi_shortcuts\" ;
printf(\"\42<Enter>\42], run = \42cd %s\42 },\\\\\n\",\$2) > \"$yazi_shortcuts\" ;
printf(\"{invocation: \42b%s\42, execution: \42:focus %s\42}\n\", \$1, \$2) >> \"$broot_shortcuts\" ; }"
# " printf(\"hash -d %s=%s \n\",\$1,\$2) >> \"$zsh_named_dirs\" ;
# printf(\"abbr %s \42cd %s; and ls -A\42\n\",\$1,\$2) >> \"$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\",\$1,\$2, \$1, \$2, \$1, \$2, \$1, \$2) >> \"$vifm_shortcuts\" ;
# printf(\"config.bind(';%s', \42set downloads.location.directory %s ;; hint links download\42) \n\",\$1,\$2) >> \"$qute_shortcuts\" ;
# printf(\"cmap ;%s %s\n\",\$1,\$2) >> \"$vim_shortcuts\" "
sed '/^append_keymap.*\[$/,/^\]$/ {
/^append_keymap.*\[[[:space:]]*/b
/^\]$/b
/.*/d
}' ~/.config/yazi/keymap.toml | sed '/^append_keymap.*\[$/,/^\]$/ {
/^append_keymap.*\[[[:space:]]*/b
/^\]$/c\
'"$(cat ~/.config/yazi/shortcutrc)"'
]
}' > ~/.config/yazi/keymap.toml.sed
mv ~/.config/yazi/keymap.toml.sed ~/.config/yazi/keymap.toml
echo "]" >> "$broot_shortcuts"
|