web-dev-qa-db-ja.com

カスタムLD_PRELOADを使用してアプリケーションをグラフィカルに起動しますか?

私はKDEPlasmaを使用していますが、Qt5アプリケーション(KWriteなど)でカーソルの点滅を無効にしたいのですが、これは このgitリポジトリの.soファイル* のおかげです。設定パネルの「カーソルの点滅を無効にする」チェックボックス:(

.bashrcファイルにexport LD_PRELOAD=/full/path/to/qt5noblink.soを追加しましたが、ファイルをダブルクリックしたときではなく、シェルから起動したアプリでのみ機能します。

Plasmaがこの輸出ラインをグローバルに処理する方法はありますか? (すべての実行可能ファイルを書き直さずに: この前の質問 は本当に私が探しているものではありません...)ありがとう!

(*他のデスクトップ環境でカーソルが点滅するトリックについては これを読んでください 、それはゴージャスです!)

1
ratnoz

.bashrcは、対話型シェルを実行している場合にのみ読み取られます。環境変数を設定するのは間違った場所です。環境変数は、対話型シェルを介して起動されたアプリケーションでのみ設定されることがわかりました。

セッション全体の環境変数を設定するには、ほとんどのシステムで、~/.profileで設定できます。 KDEを使用しているので、より良い場所は ~/.config/plasma-workspace/env/preload.sh かもしれません。このように、変数はKDEでログインした場合にのみ設定され、別のGUI環境を選択した場合や、テキストモード(ネットワーク経由など)でログインした場合は設定されません。ただし、LD_PRELOADを非常に広く設定すると危険な場合があることに注意してください。ライブラリは、Qtライブラリを使用するプログラムだけでなく、実行するすべてのプログラムにロードされます。これは無害に見えますが。