大写锁定重新映射停止工作

大写锁定重新映射停止工作

我将 caps-lock 键重新映射到 control,通常情况下,该键可以正常工作,但经过一段时间的正常运行和一个/多个挂起/唤醒周期*后,该映射会中断,caps-lock 会恢复为默认行为 - 即打开 led 并将我输入的内容大写。(尽管 Tweaks UI 仍显示它已映射到 Ctrl - 请参见下图。)

调整用户界面

问题:

  • 这是一个已知问题吗(可能有已知的解决方案)?(快速搜索找不到任何相关内容。)
  • 有没有办法调试该问题,最好是通过命令行?

*备注:我不确定是不是挂起/唤醒循环导致了这个问题,但我无法将它与其他任何东西联系起来……

备注2:删除并重新添加映射(或重新启动)可以解决问题,但找到更持久的解决方案会更好。

答案1

当映射中断时,一种解决方法是,通过以下方式重新启动 gnome shell:

  • Alt+F2
  • 类型r
  • 点击回车

如此反复,直至再次发生故障。

答案2

它是错误 #1899206。 有此 PPA使用假定的修复,如果您想在 20.04 中正式修复该错误之前自行修复它,您可以从 PPA 安装 mutter 包并重新启动。

答案3

由于我不断遇到同样的行为,我也开始寻求手动方式来纠正这个问题。我找到了解决方案,其中一个被整合到一个脚本中,它可以 1) 通过 .profile 登录时调用;2) 从 tty 调用;它将完成工作并随时纠正问题:

 /home/odoncaoa 2021-07-03 17:59
 odoncaoa@tufFX705du[2]$ cat .uxSwapCapsLock-and-Ctrl
 #!/bin/bash
 xmodmap -e "remove Lock = Caps_Lock"
 xmodmap -e "remove Control = Control_L"
 xmodmap -e "keysym Control_L = Caps_Lock"
 xmodmap -e "keysym Caps_Lock = Control_L"
 xmodmap -e "add Lock = Caps_Lock"
 xmodmap -e "add Control = Control_L"
 #End script

哦,是的,为了使这项工作通过 cmdLn 进行重新映射使用:例如'。$HOME/.uxSwapCapsLock-and-Ctrl'。

相关内容