我正在使用 Gnome(在 Ubuntu 20.04 上),并且我想配置我的 PC 键盘的行为类似于 Mac 的:所有 UI 键盘快捷键都应使用最接近该键的键space
作为其快捷键(因此而不是 Mac 的command
键)。这也应该适用于终端仿真器应用程序:ctrl-c
应该使用真实密钥完成ctrl
并发送中断,同时command-c
应该复制到剪贴板。
我通过将键盘选项配置为以下方式实现了此目的:
gsettings set org.gnome.desktop.input-sources xkb-options "['ctrl:swap_lalt_lctl_lwin', 'ctrl:ralt_rctrl', 'ctrl:swap_rwin_rctl']"
这使得我的笔记本电脑键盘上的底行按键的行为如下,从左到右:super
, fn
, alt
, ctrl
, space
, ctrl
, super
。这意味着在所有具有默认键盘快捷键的 UI 应用程序中,按下最接近space
Mac 的按键的行为:ctrl-c
例如,它发送复制剪贴板的操作。
在终端模拟器应用程序中,我需要的键盘选项有点不同:
gsettings set org.gnome.desktop.input-sources xkb-options "['altwin:swap_alt_win']"
这使得按键从左到右依次为:ctrl
, fn
, alt
, super
, space
, super
, ctrl
。这又很好用了。按最左下角的键可以按预期工作,ctrl-c
现在发送中断。我可以配置键盘快捷键,以便按下最接近的键space
并将c
副本复制到剪贴板,再次使其像在 Mac 上一样工作。
通过这种配置,我总是按键盘上的同一键复制到剪贴板,并按同一键发送中断。
现在的问题是如何配置以便:
- 只有终端仿真应用程序窗口才有第二个键盘选项。
- 所有其他窗口,包括 Gnome shell 本身都有第一个键盘选项。
- 当终端仿真应用程序窗口获得焦点时,全局(系统)快捷方式仍然有效。例如,我有一个快捷方式,可以按
ctrl-f1
(使用最接近space
UI 应用程序和 Gnome shell 的键)切换到第一个工作区。现在,当我处于终端仿真应用程序窗口时,这应该可以继续工作。 - 该键盘选项与当前基于语言的布局相结合。因此,如果我通过 Gnome shell 更改键盘语言,选项将根据当前应用程序的窗口进行组合。我不使用每个应用程序的语言布局,而是使用系统范围的语言布局。另外,我可以忍受终端仿真应用程序中只有一种键盘语言。但对于其他应用程序,我确实需要并使用多种键盘语言。