使用自定义 LD_PRELOAD 以图形方式启动应用程序?

使用自定义 LD_PRELOAD 以图形方式启动应用程序?

我正在使用 KDE Plasma,并且我想在 Qt5 应用程序中禁用光标闪烁(例如 KWrite,但不仅如此),这要归功于此 git 存储库中的 .so 文件*,因为配置面板中没有“禁用光标闪烁”复选框:(

我在 .bashrc 文件中添加了export LD_PRELOAD=/full/path/to/qt5noblink.so,但它仅适用于我从 shell 启动的应用程序,不适用于双击文件时。

Plasma 有什么办法在全球范围内处理这条出口线吗? (无需重写我所有的可执行文件:上一个问题并不是我真正想要的...)谢谢!

(*有关其他桌面环境下光标闪烁的技巧读这个,太漂亮了!)

答案1

.bashrc仅当您运行交互式 shell 时才读取。这是设置环境变量的错误位置:正如您所发现的,它们只能在通过交互式 shell 启动的应用程序中设置。

要为整个会话设置环境变量,在大多数系统上,您可以将其设置为~/.profile.由于您使用的是 KDE,所以更好的地方可能是~/.config/plasma-workspace/env/preload.sh。这样,仅当您在 KDE 下登录时才会设置该变量,如果您选择其他 GUI 环境或以文本模式登录(例如通过网络),则不会设置该变量。但请注意,过于广泛的设置LD_PRELOAD可能很危险:该库将加载到您运行的每个程序中,而不仅仅是加载到使用 Qt 库的程序中。不过这个看起来无害。

相关内容