将Caps Lock配置为AltGr,将箭头配置为vim
1.如何将Caps Lock全局映射到AltGr ?
我不需要CapsLock,而是想在那里轻松访问AltGr Key
我想将所有移动键映射到vim
的位置
- AltGr + F = 退格
- AltGr + H = LeftArr
- AltGr + J = DownArr
- AltGr + L = RightArr
- AltGr + K = UpArr
- AltGr + U = PgUp
- AltGr + D = PgDown
- AltGr + S = 输入
- AltGr + 3 = Pos1
- AltGr + $ = 结束
- AltGr + X = Del
因此,我可以轻松地完成我的代码,而无需将手移离10-Finger-Position(就像在vim
编辑器中一样)
我找到了这个答案: 如何将大写锁定键重新映射到退格键?
建议使用
xmodmap -e "keycode [code] = [new key]"
请参阅: http : //wiki.linuxquestions.org/wiki/List_of_Keysyms_Recognised_by_Xmodmap
但我无法弄清楚,如何将其添加到例如AltGr + J的组合中
另一个开始是在unity-control-center
– >键盘 – >快捷键 – >打字作为Caps Lock
设置“替代字符键”
更新:我找到了一些解决方案(见下文),但它们都不能在所有应用程序中运行,我想这是一个名为“XFree 4”的全局设置,某些应用程序使用它。
如何设置XFree 4的键绑定?
您必须编辑/usr/share/X11/xkb/symbols/de
(其中/de
是您的语言)并在您使用的语言的第一个块中添加此部分:
# replace Caps with AltGr key { [ ISO_Level3_Shift ] }; # Add vim cursor keys to be accessed with AltGr key { [ x, X, Delete, Delete ] }; key { [ s, S, KP_Enter, KP_Enter ] }; key { [ d, D, Next, Next ] }; key { [ f, F, BackSpace, BackSpace ] }; key { [ h, H , Left, Left ] }; key { [ j, J, Down, Down ] }; key { [ k, K, Up, Up ] }; key { [ l, L, Right, Right ] }; key { [ u, U, Prior, Prior ] }; key { [ 3, section, Home, Home ] }; key { [ 4, dollar, End, End ] };
退出并重新登录,以便可以使用。 只有一些应用程序不接受这些设置,例如:可以用guake
替换的guake
,以及可以用atom
替换的sublime
。
编辑:我发现,在yakuake
,Key-Bindings被设置为“XFree 4”,如果你将它设置为Liux或Solaris,那么XKB设置也适用于:
要将CapsLock重新映射到AltGr使用
xmodmap -e "keycode 66 = ISO_Level3_Shift"
(来源: https : //superuser.com/a/138757/160420 )
要将箭头键映射到AltGr + h,j,k和l,请使用xmodmap -pke
查找正确的设置:
xmodmap -pke|egrep "f F|j J|k K|h H|l L|o O|u U|d D|dollar|BackSpace"
并将第五个值更改为新键并将其全部添加到bash脚本中:
# xrandr needs the desktop to be fully loaded. add a delay, to be able to add it to Startup Applications: sleep 15 # change BackSpace into AltGr xmodmap -e "keycode 66 = ISO_Level3_Shift" # set BackSpace on AltGr + F xmodmap -e "keycode 41 = f F f F BackSpace BackSpace dstroke ordfeminine f F dstroke ordfeminine" # create arrow keys at h,j,k,l xmodmap -e "keycode 43 = h H h H Left Left" xmodmap -e "keycode 44 = j J j J Down Down" xmodmap -e "keycode 45 = k K k K Up Up" xmodmap -e "keycode 46 = l L l L Right Right" xmodmap -e "keycode 30 = u U u U Prior Prior" xmodmap -e "keycode 40 = d D d D Next Next" xmodmap -e "keycode 12 = 3 section 3 numbersign Home Home" xmodmap -e "keycode 13 = 4 dollar 4 dollar End End" xmodmap -e "keycode 53 = x X x X Delete Delete"
(来源: https : //askubuntu.com/a/466315/34298 )
将该bash脚本放入启动应用程序 (Chooe Dash>启动应用程序>添加,然后添加命令。)
注意:奇怪的是在gnome-terminal
这很好用,但是在yakuake
它适用于AltGr + F上的BackSpace但它将AltGr + h,j,k和l设置为D,B,A和C,除非你将Key Binding设置为“ Linux“而不是”(默认)XFree 4“,并且在sublime-text
中根本不起作用
为了获得AltGr + h , j , k , l或任何其他键而没有像Autokey这样的应用程序来执行← ↓ ↑ →您可以自定义/ usr / share / X11 / xkb / symbols /中的键盘布局。 目前我使用德语布局“de”。 首先,我会:
1-复制标准布局
cp /usr/share/X11/xkb/symbols/de /usr/share/X11/xkb/symbols/de.bak
2-使用您的首选文本编辑器打开您的布局(此处:gedit)
sudo gedit /usr/share/X11/xkb/symbols/de
在那里你会看到类似的东西:
key { [ e, E, EuroSign, EuroSign ] }; key { [ z, Z, leftarrow, yen ] }; key { [udiaeresis, Udiaeresis, dead_diaeresis, dead_abovering ] }; .... .... key { [ plus, asterisk, dead_tilde, macron ] }; key { [ s, S, ssharp, U017F ] }; key { [ h, H, Left, Left ] }; key { [ j, J, Down, Down ] }; key { [ k, K, Up, Up ] }; key { [ l, L, Right, Right ] }; .... .... key { [ minus, underscore, endash, emdash ] }; key { [ less, greater, bar, NoSymbol ] };
如您所见,AB,AC,AD,AE表示行,数字表示其在键盘上的位置(有一些特殊键,例如less / more键,可以重新映射到其他键。
在那里你找不到所有的键盘,只是与键盘所基于的布局不同的键盘。 德语版基于“拉丁语(type4)”,你可以在文件的开头看到:
include "latin(type4)"
然后你只需要根据你的需要改变。 它的作用如下:
key {[ key , key + shift , key + AltGr , key + Shift + AltGr ]};
(它也可以添加第5级修饰符,或更多)
如果你想在不重启的情况下检查更改; (更改布局的“de”…这是一个可能的布局列表 )
setxkbmap -layout de
箭头的标记就像“左,右,下,上”一样。 这是一个很好的可能值列表 。
这是我的自定义布局的一个例子。 (但目前尚未使用)
那么,您需要重新映射Capslock和AltGr,还是已经按照您发布的问题进行了工作?
如果您还想保持“正常”的德语布局,您可以对通常不使用的另一个布局进行更改(或更改“德语无死键”,您可以在同一个“de”文件中找到它。 ..)
来源: 链接到xbk和自定义布局的非常全面的解释。
链接到一个类似的问题与一个很好的答案。