将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 + hjkl或任何其他键而没有像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 {[ keykey + shiftkey + AltGrkey + Shift + AltGr ]};

(它也可以添加第5级修饰符,或更多)

如果你想在不重启的情况下检查更改; (更改布局的“de”…这是一个可能的布局列表 )

  setxkbmap -layout de 

箭头的标记就像“左,右,下,上”一样。 这是一个很好的可能值列表 。

这是我的自定义布局的一个例子。 (但目前尚未使用)

那么,您需要重新映射Capslock和AltGr,还是已经按照您发布的问题进行了工作?

如果您还想保持“正常”的德语布局,您可以对通常不使用的另一个布局进行更改(或更改“德语无死键”,您可以在同一个“de”文件中找到它。 ..)

来源: 链接到xbk和自定义布局的非常全面的解释。
链接到一个类似的问题与一个很好的答案。