Rob*_*een 10 kde autostart xmodmap
第一次按下时,我的反引号 (`) 不会产生任何结果 - 我必须按两次才能生成一个 `。如果我忘记了,然后输入 ` e,我会得到一个带重音的 e 字符。
对于当前会话,我只能通过运行以下命令暂时解决此问题:
xmodmap -e 'keycode 49 = grave asciitilde'
Run Code Online (Sandbox Code Playgroud)
问题是,我不知道如何使这种更改永久化。我在 Ask Ubuntu 上发现了许多相关问题,但没有一个能解决这个特定问题。
我正在使用 KDE。
小智 15
在系统首选项、键盘布局中,有三个英国“变体”:
Layout Variants
------ --------
English (UK) Default
English (UK) English (UK, extended WinKeys)
English (UK) English (UK, international with dead keys)
Run Code Online (Sandbox Code Playgroud)
我的键盘有 Windows 键,所以我在安装过程中选择了第二个变体,这似乎很合理。
事实上,“默认”和“扩展的 WinKeys”变体之间的区别似乎与 Windows 键完全没有关系。“extended WinKeys”变体实际上对 AltGr 键行为进行了许多更改,其中大部分更改为更好,例如,AltGr 移位撇号和抑扬符键向按下的下一个字母添加锐音和抑扬符重音,而不是“默认”变体给出的随机结果。
但是,“extended Winkeys”变体还纠正了 AltGr 移位的反引号,并返回打印在键上的断条,而不是“默认”提供的不正确的实心条。这反过来意味着 AltGr-backtick 不能用于将重音符添加到下一个字母,这与“extended Winkeys”变体一致,因此显然有人决定用该函数替换反引号。
由于任何英国 Linux 用户都会使用 Compose-key 功能来书写带重音的字母,因此没有人知道这些键盘变体之间的差异,它只会让人误会。在提到反引号引起这种意外行为的各种论坛中,每个人都对它发生的原因感到困惑。
这就是这个错误导致的那种事情。如果我想显示路径上某处的 shell 脚本的内容,我可能会输入:
$ cat `which zegrep`
Run Code Online (Sandbox Code Playgroud)
但相反,我得到:
$ cat ?hich zegrep
Run Code Online (Sandbox Code Playgroud)
...反引号和“w”组合成w-with-grave
这是反引号键与英国“扩展 WinKeys”布局的映射:
$ xmodmap -pke | grep "keycode 49"
keycode 49 = dead_grave notsign grave notsign brokenbar notsign bar bar
Run Code Online (Sandbox Code Playgroud)
如果您将键盘布局更改为 UK“默认”,dead_grave 键映射将移动到第三个位置,即“mode_shifted”位置(如果您在键盘上定义了一个 Mode_shift 键,则可以启用)这使得更多感觉:
$ xmodmap -pke | grep "keycode 49"
keycode 49 = grave notsign dead_grave notsign bar bar brokenbar notsign
Run Code Online (Sandbox Code Playgroud)
我想我应该报告一个错误,因为显然其他人遇到了这个问题,但我不知道该推荐什么。也许将“UK,extended WinKeys”重命名为“UK,deadkeys via AltGr”,这样人们通常不会选择它,除非他们知道什么是“deadkeys”并且特别想要这种行为。或者将 dead_grave 函数移动到反引号键上的 AltGr-shifted 位置,这将使其与其他死键保持一致。
无论如何,只需转到键盘布局,添加新布局并选择英国默认键盘。