Wayland 上的 GNOME

Wayland 上的 GNOME

我正在使用 Archlinux。当我编程时,我喜欢交换 Escape 和 Caps Lock。

我知道 gnome 可以做这个工作。但是 Archlinux 中的 Gnome 3.6.2 找不到它。

所以我使用 xmodmap 并创建一个文件:~/.xmodmap

  clear Lock
  keysym Caps_Lock = Escape
  keysym Escape = Caps_Lock
  add Lock = Caps_Lock

当我跑步时:

  xmodmap ~/.xmodmap

它运作良好。

但是当我登录 gnome 时它无法自动工作,即使我添加xmodmap ~/.xmodmap~/.xprofile

我做错什么了吗?我该如何解决这个问题?

答案1

避免使用 xmodmap,因为它是另一个必须运行的守护进程。除非触碰其他键,否则更简单且仍然是 Xorg 上游setxkbmap,可以在extra/xorg-setxkbmap包中找到。

类似的问题了解如何在启动 GNOME 时自动启动它,但请使用选项caps:swapescape。例如,如果您使用startx~/.xinitrc,请将以下内容添加到其中:

setxkbmap -option caps:swapescape

答案2

您应该创建的文件~/.Xmodmap以大写 X 开头。根据您使用的登录管理器(gdm、xdm 等...),应该~/.Xmodmap会自动加载,如果没有发生这种情况,正如您的问题所显示的那样,您可以编辑~/.xsession~/.xinitrc文件并添加以下行以强制加载您的~/.Xmodmap

 [ -f ~/.Xmodmap ] && xmodmap ~/.Xmodmap

答案3

我认为你应该创建一个有名称的文件~/.Xmodmap(注意大 X)。正如我在/etc/gdm/Xsessiongdm中看到的~/.Xmodmap,如果它存在,它会加载,所以你不需要~/.xprofile或类似的 hack :)

答案4

先前的解决方案在 X11 下运行。

Wayland 上的 GNOME

如果您在 Wayland 上有 GNOME,您可以使用这个来将 Esc 与 Caps Lock 键互换:

gsettings set org.gnome.desktop.input-sources xkb-options "['caps:swapescape']"

Wayland 上的 Plasma

如果您在 Wayland 上拥有 Plasma (KDE),请进入系统设置 -> 输入设备 -> 键盘 -> 高级,在第二个“Caps Lock 行为”项中勾选“交换 Esc 和 Caps Lock”。

这已在 Plasma 5.27 上测试过。

在此处输入图片描述

相关内容