web-dev-qa-db-ja.com

Xの起動後にプログラムをどのように起動しますか?

F.Lux という小さなアプリがあり、時刻に基づいて画面の温度を設定します。 Linuxバージョンは、コンソールインターフェイスを備えた少し質素ですが、完全にうまく機能します。

Xの起動後に起動するように、どこで起動できますか?

18
cyborg

.xinitrcは、そこからウィンドウマネージャを起動する場合に使用するものです。 KDEまたはGNOMEを使用している場合は、ログイン時に自動起動するサービスにプログラムを追加する必要があります。

7
stevenrjanssens

まず、「man X」を読んでください:

 STARTING UP

   There are two main ways of getting the X server and an initial  set  of
   client  applications  started.   The  particular method used depends on
   what operating system you are running and whether or not you use  other
   window systems in addition to X.

xserverを起動する方法に応じて、xserverが起動した後に2つのスクリプトを使用して起動することがわかります。

  • .xinitrc(startxxinitを起動する)を介してセッションを起動した場合)
  • .xsession(ディスプレイマネージャ(xdm)を介してシステムにログインした場合)

(私は個人的にln -s .xinitrc .xsessionなので、どのようにxserverを起動するかは問題ではありません)。

システムへのログインに使用するものに応じて(最近ではgdmまたはkdmのどちらかだと思います)、状況は少し異なります。通常、gdmとkdm(およびその他のディスプレイマネージャー)は、「ユーザーセッション」または同様のラベルが付いたものを選択するようユーザーに提供します。この「ユーザーセッション」を選択すると、ほとんどのディスプレイマネージャーは~/.xsessionを起動します。あなたはあなたのアプリケーションとデスクトップ環境/ウィンドウマネージャを立ち上げる責任があります。

他の可能な解決策は、さまざまなデスクトップ環境/ウィンドウマネージャーが「自動起動」の概念をどのようにサポートしているかを調べることです。私は個人的にこれらのメカニズムを回避し、古き良き.xinitrc / .xsessionの方法に固執します。

.xinitrcの例は次のようになります。

xmodmap ~/.Xmodmap
xsetxkbmap de
autocutsel &
xflux -l 52
exec /usr/bin/fluxbox
6
akira

ホームディレクトリに.xinitrcという名前のスクリプトを配置してみてください。 KDEとGnomeには、ログイン時にスクリプト/アプリケーションを実行する機能もあります。 .Xstartupが機能しない場合は、.xstartupまたは.xinitrcも機能する可能性があります。私のLinuxは少し錆びているようです。 >。>

3
Darth Android

XDG Autostart Specification は、Gnome、KDE、XFCEなどのXDG準拠のデスクトップ環境で機能します。