有没有办法自定义键盘以将Shift+ Spacebar+设置SomeLetter为箭头键的替代品?编辑文本时,我使用鼠标或箭头键将光标移动到某行中的特定位置。这两种方法都非常具有限制性,因为它们会让我失去注意力并减慢我的速度。
如果我是正确的,使用Shift+Spacebar没有特定的分配,它只是打印典型的space
. Ctrl、Shift和的组合Alt通常被分配给一些其他任务。所以能够在全局范围内定义这样的快捷方式是件好事。有可能(并且您建议)这样做吗?我使用 Ubuntu 18.04,我知道如何为应用程序/程序设置全局命令,但我不知道如何完成这项工作(如果可能)。
这就是我在 Ubuntu 中添加快捷方式的方法。
答案1
我没有使用Shift+ ,而是使用了。SpacebarAlt Gr
根据已接受的答案这个问题,我创建了一个基于英语(英国)的键盘布局。如果您的键盘不是英国英语,您可能需要更改文件中的键码。此键盘布局将箭头键映射到
- alt gr+ s= 左
- alt gr+ d= 向下
- alt gr+ f= 右
- alt gr+ e= 向上
- alt gr+ t= 上一页
- alt gr+ v= 下一页
- alt gr+ a= 家
- alt gr+ g= 结束
- alt gr+ z= 退格键
- alt gr+ w= 删除
- alt gr+ q= 逃脱
- alt gr+ r= 插入
它还将数字映射到右手:
- alt gr+ n= 0
- alt gr+ m= 1
- alt gr+ ,= 2
- alt gr+ .= 3
- alt gr+ j= 4
- alt gr+ k= 5
- alt gr+ l= 6
- alt gr+ u= 7
- alt gr+ i= 8
- alt gr+ o= 9
将以下文本复制到新文件中/usr/share/X11/xkb/symbols/aa
// based on a keyboard map from an 'xkb/symbols/gb' file
default partial alphanumeric_keys
xkb_symbols "mylayout" {
// Describes the differences between a very simple en_US
// keyboard and a very simple U.K. keyboard layout defined by
// MyLayout
include "latin"
name[Group1]="MyLayout (UK)";
key <AE02> { [ 2, quotedbl, twosuperior, oneeighth ] };
key <AE03> { [ 3, sterling, threesuperior, sterling ] };
key <AE04> { [ 4, dollar, EuroSign, onequarter ] };
key <AC11> { [apostrophe, at, dead_circumflex, dead_caron] };
key <TLDE> { [ grave, notsign, bar, bar ] };
key <BKSL> { [numbersign, asciitilde, dead_grave, dead_breve ] };
key <LSGT> { [ backslash, bar, bar, brokenbar ] };
key <AD01> { [ q, Q, Escape, Adiaeresis ] };
key <AD02> { [ w, W, Delete, Aring ] };
key <AD03> { [ e, E, Up, Eacute ] };
key <AD04> { [ r, R, Prior, registered ] };
key <AD05> { [ t, T, Prior, THORN ] };
key <AD06> { [ y, Y ] };
key <AD07> { [ u, U, 7, Uacute ] };
key <AD08> { [ i, I, 8, Iacute ] };
key <AD09> { [ o, O, 9, Oacute ] };
key <AD10> { [ p, P ] };
key <AD11> { [ bracketleft, braceleft ] };
key <AD12> { [ bracketright, braceright ] };
key <AC01> { [ a, A, Home, Aacute ] };
key <AC02> { [ s, S, Left, section ] };
key <AC03> { [ d, D, Down, ETH ] };
key <AC04> { [ f, F, Right, F ] };
key <AC05> { [ g, G, End, G ] };
key <AC06> { [ h, H ] };
key <AC07> { [ j, J, 4, J ] };
key <AC08> { [ k, K, 5, OE ] };
key <AC09> { [ l, L, 6, Ooblique ] };
key <AC10> { [ semicolon, colon, ntilde, Ntilde ] };
key <AC11> { [ apostrophe, at, dead_acute, dead_diaeresis ] };
key <AB01> { [ z, Z, BackSpace, AE ] };
key <AB02> { [ x, X, Insert, X ] };
key <AB03> { [ c, C ] };
key <AB04> { [ v, V, Next, V ] };
key <AB05> { [ b, B, Next, B ] };
key <AB06> { [ n, N, 0, Ntilde ] };
key <AB07> { [ m, M, 1, mu ] };
key <AB08> { [ comma, less, 2, less ] };
key <AB09> { [ period, greater, 3, greater ] };
key <AB10> { [ slash, question ] };
include "level3(ralt_switch_multikey)"
};
编辑以下文件:sudo gedit /usr/share/X11/xkb/rules/evdev.xml
</layoutlist>
添加此文本之前
<layout>
<configItem>
<name>aa</name>
<shortDescription>MyLayout (UK)</shortDescription>
<description>MyLayout (UK)</description>
<languageList>
<iso639Id>eng</iso639Id>
</languageList>
</configItem>
<variantList/>
现在您有了带有此映射的新键盘布局。将布局添加为键盘输入法中的第一个选项,您将能够在终端、编辑器、浏览器中使用它...我注意到它在某些程序(如 Eclipse)中不起作用。可能是因为它为他们定义了一个快捷方式,但它对我来说在大多数地方都有效。