summaryrefslogtreecommitdiff
path: root/.local/bin/shortcuts
blob: 9c42b7fde29afa587898108f5e62780511720ce4 (plain)
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"