如何将capslock键绑定到fish shell命令,并禁用其toggle-caps功能?


9

我最近切换到了鱼壳,它的自动完成功能真的很棒。

但是,我发现自己想使用tabcomplete_autocomplete功能,而不是明确使用它。前进键和结束键都可以执行此操作,但是在正常的打字位置中,手指无法触及。

我很乐意为此使用Capslock钥匙,因为我从来没有使用过钥匙,但是它的位置很好。

我已经尝试过了,setxkbmap -option caps:none但这似乎capslock完全禁用了密钥。我想我可以将它绑定到前向或结束键,但是我也不知道该怎么做。

另外,我似乎在鱼壳中找不到以下项的键绑定capslock

cowpig@gerty:~$ bind -K
b2
backspace
btab
dc
down
end
enter
f1
f2
f3
f4
f5
f6
f7
f8
f9
f10
f11
f12
f13
f14
f15
f16
f17
f18
f19
f20
home
ic
left
npage
ppage
right
sdc
send
sf
shome
sic
sleft
snext
sprevious
sr
sright
up

我相信您将不得不为Ubuntu找到系统级的重新映射工具,因为用户界面程序通常无法抑制默认的大写锁定行为。
Nick Sweeting

我猜您可以使用xbindkeys设置默认的大写锁定行为,告诉它发送不同的事件,然后在鱼中处理该事件?
XtrmJosh



您也许可以编写Python守护程序来处理此问题。一些基本的信息在这里:stackoverflow.com/questions/22367358/...
Nandakumar Edamana

Answers:


2

首先,请检查手册,因为我认为Ctrl+ F也会自动完成。您可以看到它help在输入鱼。

如果要继续进行映射,请运行xev并按capslock获取键码。我的是66:

enter code hereKeyRelease event, serial 37, synthetic NO, window 0x5200001,
root 0x4b7, subw 0x0, time 6149967, (918,609), root:(984,661),
state 0x10, keycode 66 (keysym 0xff57, End), same_screen YES,
XKeysymToKeycode returns keycode: 37
XLookupString gives 0 bytes: 
XFilterEvent returns: False

现在创建一个具有权限755和以下文本的脚本(即〜/ xmodmap.sh):

#/bin/bash
xmodmap -e "keycode 66 = End"
xmodmap -e "clear Lock"

运行脚本,它将把转换capslockEnd密钥。

要使其永久存在,请将以下命令添加到启动应用程序:

/bin/bash -c "sleep 7 && /home/myusername/xmodmap.sh"

我已经尝试过使用鱼壳,它会自动完成命令。

Alt Gr用来将一些键映射到更近的位置:自定义包括导航键的键盘布局


这几乎是我想要的:)
mavix
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.