如何永久切换 Caps Lock 和 Esc

Isa*_*ell 146 keyboard-layout

如何在 Saucy 中永久切换Caps LockEsc键功能?我可以使用此命令临时执行此操作(直到重新启动):

/usr/bin/setxkbmap -option "caps:swapescape"
Run Code Online (Sandbox Code Playgroud)

我尝试将该命令添加为启动应用程序,但它似乎没有做任何事情。

cha*_*kes 150

另一种方法是通过dconf-editor. 此方法有一些来自 的额外步骤gnome-tweak-tool,但如果您不想从调整工具中提取依赖项,则此方法很有用。

这将允许您使用caps:swapescape语法并自动使更改永久化。

sudo apt-get install dconf-tools
Run Code Online (Sandbox Code Playgroud)

启动后dconf-editor,导航到org >> gnome >> desktop >> input-sources

在 中添加您需要的选项xkb-options。选项字符串用单引号括起来并用逗号分隔。注意不要删除末端的括号。

dconf 编辑器中的 xkb 选项

您可以使用此方法输入在System Settings >> Text Entry 中不再可用的大多数传统 xkb 选项。唯一的例外是切换键盘布局的设置,由于错误,该设置目前不起作用。

有关选项和语法的列表,请man 7 xkeyboard-config在终端中使用。

可以使用的另一种常见的方法是terminate:ctrl_alt_bksp,让ctrl+ alt+backspace结束X会话。

  • 您也可以从命令行执行此操作,而无需安装 dconf-editor:`dconf write /org/gnome/desktop/input-sources/xkb-options "['caps:escape']"` (69认同)
  • 请注意,如果您需要*交换*这两个键(而不是仅将 `Esc` 分配给 `Caps Lock`),则需要使用 `'caps:swapescape'`。 (15认同)
  • +1 用于引用`keyboard-config(7)`,这就是我要找的。 (6认同)
  • 不要使用“sudo”运行上述命令,因为此设置似乎是针对特定用户的。 (5认同)
  • 或者你可以做`gsettings set org.gnome.desktop.input-sources xkb-options "['caps:escape']"` (3认同)
  • 在 Ubuntu 20.04 上,找不到 `dconf-tools`,但是 `sudo apt install dconf-editor` 成功了。 (2认同)

joj*_*ojo 92

适用于大多数 linux 发行版的解决方案:

setxkbmap -option caps:swapescape
Run Code Online (Sandbox Code Playgroud)

其他选项是可能的:

  • caps:none 停用
  • caps:escape 使它成为一个额外的逃生
  • caps:super 使其成为额外的超级(Windows)键。

要使其在启动时工作,您可以将其放入,~/.profile因为它只会在交互式登录后运行。

如果切换在登录之间不持续(例如,当挂起您的机器时),您还可以.xinitrc在您的主目录中创建一个文件并将其放在那里。使用此选项,笔记本电脑上的 Linux mint 20 工作得无可挑剔。

  • 从 18.04 开始,将 `setxkbmap` 命令放在 `~/.xsessionrc` 和 `~/.profile` 中似乎不再使设置在登录/重启之间保持不变 (6认同)
  • `~/.profile` 是一个糟糕的地方 - 在每个登录 shell 上都会读取该文件。将它放在启动 X11 时使用的文件中,例如 `~/.xinitrc` 或 `~/.xsession`。 (4认同)
  • 这适用于 Ubuntu 14.04、Unity。 (2认同)
  • 在 Ubuntu 16.04 中也为我工作 (2认同)
  • @Conrad.Dean 我在基于 18.04 LTS 的 Mint 19 中使用它:这里没有问题。这些设置不应该持续存在,而是在登录时加载。 (2认同)

Isa*_*ell 49

好的,找到了一种使用 gnome-tweak-tool 做到这一点的方法。

从终端运行

sudo apt-get install gnome-tweak-tool -y && gnome-tweak-tool
Run Code Online (Sandbox Code Playgroud)

您可以在“键入 -> Caps Lock 键行为”中找到一个选项来交换 Caps Lock 和 Esc。

更新:在 Ubuntu 18.04 和 20.04 中,它可以在键盘和鼠标 > 附加布局选项 > Caps Lock Behavior 中找到(感谢 Adracus 在下面的评论)

  • 对于 Ubuntu > 18.04,可以在“键盘和鼠标”>“其他布局选项”>“大写锁定行为”中找到 (7认同)
  • 在 Ubuntu 14 上,窗口的布局非常复杂,但它仍然有效。 (5认同)
  • 可执行文件现在被称为“gnome-tweaks”。 (3认同)
  • 最近,在从 20.04 挂起恢复后,我的外部键盘上忽略了这个来自调整的设置(但在我的笔记本电脑上受到尊重)。我必须选择其他一些选项,然后重新选择“Swap ESC and Caps Lock”。现在将采用 `setxkbmap` 解决方案 (2认同)

Rad*_*anu 23

You can use xmodmap in terminal to swap Caps Lock with Esc:

xmodmap -e "keycode 9 = Caps_Lock NoSymbol Caps_Lock"   #this will make Esc to act as Caps Lock
xmodmap -e "keycode 66 = Escape NoSymbol Escape"        #this will make Caps Lock to act as Esc
Run Code Online (Sandbox Code Playgroud)

To get this change for every session, after you have run the ??previous commands create a file called .xmodmap with the new keymaps, using the following command:

xmodmap -pke > ~/.xmodmap
Run Code Online (Sandbox Code Playgroud)

Then, create a file called .xinitrc in your home directory, containing the following line/command:

xmodmap .xmodmap
Run Code Online (Sandbox Code Playgroud)

  • 这在 Ubuntu 14.04 下不起作用。我也试过一个 .xsessionrc 文件,它也没有工作。 (7认同)
  • 在 Ubuntu 14.04 上,这使得 Escape 映射到 Caps_Lock 但 Caps_Lock 不映射到 Escape。 (2认同)
  • 嗨,我这样做了,并且有效。但是,除了 esc 绑定到大写锁定之外,大写锁定现在绑定到大写锁定 _and_ escape。桌面环境是否有可能以某种方式仍然覆盖它?我使用 KDE (2认同)

小智 20

类似于@Radu 的回答,但与 14.04 兼容(另请参阅此回答)。

xmodmap -e "remove Lock = Caps_Lock"
xmodmap -e "keycode 9 = Caps_Lock NoSymbol Caps_Lock"
xmodmap -e "keycode 66 = Escape NoSymbol Escape"
xmodmap -pke > ~/.xmodmap
Run Code Online (Sandbox Code Playgroud)

如果不起作用,请更换:

xmodmap -e "remove Lock = Caps_Lock"
Run Code Online (Sandbox Code Playgroud)

和:

xmodmap -e "clear Lock"
Run Code Online (Sandbox Code Playgroud)

  • 必须将“remove Lock = Caps_Lock”更改为“clear Lock”才能使其工作 (4认同)

小智 13

转到屏幕右上角的齿轮图标并执行以下操作:

  • 点击系统设置?键盘布局? 选项...(右下角)?大写锁定键行为(第四次向下)。

  • 然后向下滚动并选择Swap ESC and Caps Lock

完毕!

  • 这应该是 ubuntu 和 mint 的最佳答案 (3认同)

小智 10

在终端中运行一次此命令。 dconf应该已经安装了 gnome 3。

dconf write "/org/gnome/desktop/input-sources/xkb-options" "['caps:swapescape']"
Run Code Online (Sandbox Code Playgroud)


小智 9

上面带有Switch Escape 和 Capslock答案的键盘布局在 Ubuntu 16.04 及更高版本上不再有效(之前是吗?不知道)。

为了避免权限等问题,只需在开始执行以下步骤之前切换到 root,通过su在终端中运行并输入您的 root 密码。然后:

  1. 跑:

    cd /etc/default/
    vim keyboard
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在那里你会看到一行:

    XKBOPTIONS=""
    
    Run Code Online (Sandbox Code Playgroud)

    将其更改为:

    XKBOPTIONS="caps:swapescape"
    
    Run Code Online (Sandbox Code Playgroud)
  3. 退出 Vim 并保存:

    :wqa
    
    Run Code Online (Sandbox Code Playgroud)
  4. 重启。

这将是永久性的,我保证。:)


小智 8

对于 Ubuntu 18.04 和 Gnome 3.30,这对我有用:

gsettings set org.gnome.desktop.input-sources xkb-options "['caps:swapescape']"
Run Code Online (Sandbox Code Playgroud)

  • 我在流行!_OS 19.10; 这是我尝试过的第一件事,它可以在重启后继续工作。 (2认同)
  • `gsettings set org.gnome.desktop.input-sources xkb-options "['caps:escape']"` 以保留常规 ESC 键(如:不交换) (2认同)

pep*_*ico 6

为此,我专门用 C 语言构建了一个工具,该工具克服了 xcape/xmodmap 解决方案的许多问题

它做得更多,因为它也将 CAPSLOCK 转换为 ESC 和 CTRL。