永久重新映射一个键到另一个 xubuntu

永久重新映射一个键到另一个 xubuntu

我已经看到很多关于如何重新映射键的问题,但不知何故我的问题是它从不重新映射永久。

这是我的~/bootstrap-custom.sh

#!/bin/sh
# remaps Caps Lock to Ctrl
/usr/bin/setxkbmap -option "ctrl:nocaps"

我已将其添加source ~/boostrap-custom.sh到我的启动应用程序中。

映射工作正常。

然而:

  • 映射不会在启动时加载,或者至少会被启动应用程序后运行的某些程序覆盖。
  • 每次我插入键盘时,映射似乎都会被遗忘。

有什么方法可以使映射永久存在,但保持相同的方法(xkbmap)?

答案1

这可能只是一个部分解决方案(老实说,我不知道它对键盘拔出/重新插入有何反应),但由于您已经有一个可以执行您想要的操作的脚本,所以这可能已经足够接近了。

启动时,X11 会执行几个特殊程序(如果它们存在于系统中)。就我们的目的而言,最有趣的可能是〜/ .xsession,它是在您通过显示管理器登录后执行的,这是当今图形环境的正常设置。(以前您通常登录到 shell,然后运行命令startx来启动 X;如果是这样,您使用~/.xinitrc目的相同。

我们可以利用它来虚拟执行命令,无论您使用什么显示管理器(gdm、gdm3、kdm 等)和桌面环境(GNOME、Xfce、KDE ​​等)。

  1. 创建一个名为的文件.xsession并将其放在您的主目录中。
  2. 添加以下内容:
    #!/bin/bash
    /usr/bin/setxkbmap -option "ctrl:nocaps"
  3. 保存并将文件设置为模式 755(chmod 755 ~/.xsession
  4. 注销并重新登录,或重新启动

这应该会在登录时设置您的键盘映射。它还应该执行得足够晚,以便 setxkbmap 能够真正发挥作用。

如果由于某种原因此方法无法奏效,登录到文本终端(Ctrl++ for any F2 in [F1..F6] 应该是你的朋友)并通过发出命令来删除该Alt文件。F2rm ~/.xsession

作为参考,这是我的 ~/.xsession,它以模式 755 将我带入 Xfce4 会话(这可以作为“已知的良好”示例):

#!/bin/sh
xscreensaver &
exec xfce4-session

最后的指令exec用给定的命令替换脚本本身。任何不能立即退出的指令都需要在后台运行,因此&。(我希望 setxkbmap 几乎立即退出,因此不需要在后台运行。)

答案2

您可以尝试将 shell 代码放入您的.profile文件中,或者更复杂的版本是使用 XKB。这里是一个快速概览。

如需完整概述,请尝试此arch wiki 文章

答案3

显然这是一个错误。

“我在 arch linux 中使用 xfce,我所做的就是编辑 ~/.config/xfce4/panel/xkb-plugin-##.rc 并添加新行或某些内容,它在某些会话中有效。另一个临时修复可能是 #31 建议的。

  1. 在插件中设置所需的选项
  2. 将 ~/.config/xfce4/panel/xkb-plugin-##.rc 复制到其他文件,例如 ~/.config/xfce4/panel/goodxkb.rc
  3. 将此命令添加到启动作业:

    sh -c "cp ~/.config/xfce4/panel/goodxkb.rc ~/.config/xfce4/panel/xkb-plugin-##.rc && pkill xkb" (将 ## 更改为您的数字)

pkill 部分对于重新加载插件及其配置至关重要。”

https://askubuntu.com/questions/66096/how-to-set-up-xfce4-xkb-plugin-to-remember-settings-over-reboots

答案4

编辑 /etc/rc.local 并添加脚本的路径。确保是可执行的并且具有 #!/bin/狂欢在顶部。不要重新启动计算机,将其关闭并再次打开。这应该有效。

相关内容