为什么 .bashrc 中的 setxkbmap 时好时坏?为什么 PC 启动后需要一段时间才能加载?

为什么 .bashrc 中的 setxkbmap 时好时坏?为什么 PC 启动后需要一段时间才能加载?

我在我的文件上使用它.bashrc

## SWAP CONTROL KEY

setxkbmap -option ctrl:swapcaps

我这样做主要是因为我经常使用 Emacs。它似乎大多数时候都有效。

不幸的是,有两个问题不断发生:

(i) - PC 启动后,需要一段时间才能工作。这不是瞬间完成的,这让我很感兴趣,因为这似乎是一件“小”事;

(ii) - 有时,突然间,交换停止工作,然后突然又恢复。今天就发生过一次。

虽然只有一次,但真的很烦人,因为我最近更改了按键绑定。所以,在习惯它的过程中,我有时会犯错误。如果我不信任这个按键绑定,错误会更加频繁。

我对文件配置的知识缺口很大.bashrc。也许我的文件中存在一些不一致之处。以下是 GitHub 上的存储库,显示了整个 .bashrc 文件

谢谢。

答案1

因此,您遇到的问题之一就是“.bashrc仅在终端中为 Bash shell 读取”。您的 GUI 不是 Bash shell,因此.bashrcGUI 不会读取它,直到您打开终端,然后激活/应用密钥更改。

如果我们希望它在全球范围内发挥作用,它需要作为系统的一部分独立执行.bashrc。有两个选项:您的用户 crontab,@reboot这是一个特殊名称。或者,一个 SystemD 单元。

(我没有测试过这两种解决方案,因此我无法评论其中哪一种效果更好,如果有的话)。

让我们首先从 cron job 选项开始。

Cron 任务方法

打开你的终端,然后运行crontab -e

添加以下行:

@reboot setxkbmap -option ctrl:swapcaps

重新启动系统,看看是否有效。

如果有效,那就太好了。如果不行,那么我们必须尝试另一种方法。

后备解决方案:登录后自动运行 gnome-terminal

如果其他方法都失败了,请将其添加gnome-terminal到您的启动应用程序中。

首先,安装gnome-startup-applications

sudo apt install gnome-startup-applications

其次,在您的应用程序中搜索“启动应用程序偏好设置”

添加一个项目gnome-terminal。这样它就会自动运行终端。

相关内容