我希望能够按Alt+C来生成Ç
,按++Alt来生成,等等。ShiftUÜ
我该怎么做?组合键不允许我创建自定义快捷键,死键也不允许。
答案1
如果您想重新映射多个键,听起来您想创建一个自定义键盘布局,这个问题之前曾在这里被问过:
另一方面,重新映射几个键并不难。让我们按照您要求的做吧。
该xmodmap
命令可用于重新映射键盘。例如,对于您提到的映射,.Xmodmap
在您的主目录中创建一个文件(请注意,我使用的是 >> 而不是 >,因此它会附加到文件而不是替换文件):
$ echo keysym Alt_R = Mode_switch >> ~/.Xmodmap
$ echo keysym C = c C ccedilla Ccedilla >> ~/.Xmodmap
$ echo keysym U = u U udiaeresis Udiaeresis >> ~/.Xmodmap
... 其中 'ccedilla' 是 ç,而 udiaeresis 是 ü(我刚刚使用此方法输入了这两个字母,尽管我个人更喜欢使用组合键方法)。我将在下面更详细地解释这一点。
如果你希望每次启动 Ubuntu GUI 时都使用这些设置(即 X 服务器),然后您应该创建(或编辑)一个名为的文件,它.xinitrc
位于您的主目录中,并添加此行(如果它尚不在那里,可能不在那里):xmodmap ~/.Xmodmap
您也可以xmodmap ~/.Xmodmap
从终端输入来测试您的设置。
笔记除了重新启动 X 服务器(如果您已通过以下方式让它们自动加载),没有简单的方法可以告诉 xmodmap “撤消”错误.xinitrc
,则需要先修复 .Xmodmap)!但是,您可能能够通过使用setxkbmap -layout us
(将“us”更改为适合您的正常布局的任何内容)将事物重置为默认值。
尖端:要试验 xmodmap 映射,您可以从命令行一次运行一个命令,例如:
$ xmodmap -e 'keysym U = u U udiaeresis Udiaeresis >> ~/.Xmodmap'
您可以使用xmodmap -pke
来显示当前的键映射,或者仅xmodmap -p
显示修饰符(Alt、Ctrl 等)映射。
有关可重新映射的键盘符号列表,请参阅此处(我在这里找到了“ccedilla”等) http://www.in-ulm.de/~mascheck/X11/keysyms.txt
正如承诺的那样,下面是我建议放入的 3 行的简要解释.Xmodmap
:
第一行将确保您的右键Alt
被视为AltGr
,因为它在某些国际键盘上已经是这样的。除非您在美国,否则您可能不需要该行。
第二行和第三行分别重新映射 C 和 U 键。
您会注意到,每行的“=”符号后有 4 个以空格分隔的条目。它们的含义如下:
- 第一个是当您单独按下该键时您希望该键产生的内容(例如,按下“c”键输入小写的“c”)。
- 第二个是用 Shift 键生成的内容(Shift“c”输入大写“C”)。
- 第三个是当您按下新映射的右 Alt 键时将产生的结果
- 第四个定义当您按下右 Alt 键、Shift 键和字母键时产生的内容。
其他资源/参考资料:
并且不要忘记查看手册页:
$ man xmodmap
$ man xev