blob: b3c3c905cf57643e19687fb4706faac5934b47fc (
plain) (
blame)
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/zsh
keymap_file="$1"
# taken from zkbd
emulate -RL zsh
trap "return 1" 1 2 15
function getseq() {
trap "stty ${$(stty -g 2>/dev/null):-echo -raw}" 0 1 2 15
stty raw -echo
local k='' seq='' i
for ((i=10; i>0; --i))
do
read -t -k 1 k && break
sleep 1
done
[[ -n $k ]] || exit
[[ $k = $'\012' || $k = $'\015' || $k = ' ' ]] && exit
seq=$k
while read -t -k 1 k
do
seq=$seq$k
done
print -Rn ${(V)seq}
}
function entry() {
echo -n "$1: "
seq="$(getseq)"
echo
echo "key[$1]='$seq'" >> "$keymap_file.tmp"
}
echo "keymap time!"
echo 'typeset -g -A key' > "$keymap_file.tmp"
entry Backspace
entry CtrlBackspace
entry Insert
entry Delete
entry PageUp
entry PageDown
entry Home
entry End
entry Up
entry Left
entry Down
entry Right
entry CtrlUp
entry CtrlLeft
entry CtrlDown
entry CtrlRight
mv "$keymap_file.tmp" "$keymap_file"
|