如何在 xfce / xubuntu 中永久交换 esc 和大写锁定?

Dan*_*oss 21 keyboard xfce xmodmap xkb

不久前我关注了一些帖子,它说要制作一个~/.xmodmap这样的文件:

! Swap caps lock and escape
remove Lock = Caps_Lock
keysym Escape = Caps_Lock
keysym Caps_Lock = Escape
add Lock = Caps_Lock
Run Code Online (Sandbox Code Playgroud)

我做到了,现在我可以交换esccaps lock通过执行xmodmap ~/.xmodmap. 我希望这是永久的,所以我将该命令添加到我的~/.bash_profile,但它似乎不起作用;我还是要手动xmodmap。作为一名 EEng 辍学生,我很想重新连接我的键盘 }:-) 但我知道一定有更好的方法。我怎样才能使这项工作永久有效?

dai*_*isy 15

执行 xfce4-settings-manager,在Session and Startup-> 中Application autostart,添加一个条目,它执行xmodmap ~/.xmodmap

或者将文件重命名为 ~/.Xmodmap

  • 我重命名了该文件(它有效!),但令我惊讶的是我的 .bash_profile 方法不起作用。我以为我的 bash-fu 不弱:P (2认同)

don*_*sti 6

xkb 有一个选项可以做到这一点:

caps:swapescape      Swap ESC and Caps Lock
Run Code Online (Sandbox Code Playgroud)

所以你可以简单地添加1

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

到您的 XFCE 自动启动项。


1:可能有更好的方法来做到这一点,但我不是 XFCE 用户


vdi*_*rlo 5

在 Opensuse 上的 Xfce 中,我通过编辑文件来交换我的EscCaps Lock密钥/etc/X11/xorg.conf.d/00-keyboard.conf,如archlinux wiki中所述。我添加了一行内容

Option "XkbOptions" "caps:swapescape"
Run Code Online (Sandbox Code Playgroud)

到以以下内容开头的部分

Section "InputClass"
Run Code Online (Sandbox Code Playgroud)

然后重新启动我的电脑,事情就完成了。

编辑文件之前先备份该文件。如果您犯了错误,您的 GUI 可能无法启动,您必须从命令提示符恢复或编辑该文件。在 Ubuntu 中,我记得我必须将选项行添加到具有不同名称的键盘配置文件中。