「Xinit」の版間の差分
Kusanaginoturugi (トーク | 投稿記録) (→xinitrc: 記事を英語版に差し替え) |
Kusanaginoturugi (トーク | 投稿記録) (→xinitrc: 一部飜訳) |
||
32行目: | 32行目: | ||
=== xinitrc === |
=== xinitrc === |
||
− | {{ic|~/.xinitrc}} |
+ | {{ic|~/.xinitrc}} は X に応じてプログラムを実行し、X サーバーの起動時に環境変数を設定するのに便利です。ユーザーのホームディレクトリに存在する場合は、''startx'' と ''xinit'' が実行します。それ以外の場合、''startx'' はデフォルトの {{ic|/etc/X11/xinit/xinitrc}} を実行します。 |
+ | {{note|''Xinit'' には、ファイルを実行する代わりに独自のデフォルトの動作があります。詳細については、{{man|1|xinit}} を参照してください。}} |
||
− | {{note|''Xinit'' has its own default behaviour instead of executing the file. See {{man|1|xinit}} for details.}} |
||
This default xinitrc will start a basic environment with [[Twm]], {{Pkg|xorg-xclock}} and [[Xterm]] (assuming that the necessary packages are installed). Therefore, to start a different window manager or desktop environment, first create a copy of the default {{ic|xinitrc}} in your home directory: |
This default xinitrc will start a basic environment with [[Twm]], {{Pkg|xorg-xclock}} and [[Xterm]] (assuming that the necessary packages are installed). Therefore, to start a different window manager or desktop environment, first create a copy of the default {{ic|xinitrc}} in your home directory: |
2022年3月14日 (月) 11:08時点における版
~/.xinitrc
ファイルは xinit
や startx
によって読み込まれるシェルスクリプトです。主として、X サーバーが起動した時にデスクトップ環境やウィンドウマネージャなどのプログラムを起動するのに使われます (デーモンの起動や環境変数のセットなど)。xinit
と startx
プログラムは X Window System を起動させ、X を直接 /etc/init
から起動できないシステムや複数のウィンドウシステムを使っている環境で、一番最初のクライアントプログラムとして動作します。
~/.xinitrc
の主要な仕事の一つは、/usr/bin/startx
や /usr/bin/xinit
プログラムが実行されたときに X Window System のためにどのクライアントを呼び出すか指定することです。様々な追加の記述やコマンドが存在しており、それらを ~/.xinitrc
に追加して、その後のシステムのカスタマイズも行えます。
ほとんどの DM は xinit の前に同じようなファイルである xprofile も読み込みます。
目次
インストール
xorg-xinit をインストールしてください。
設定
xinit と startx はオプションでクライアントプログラムの引数を取ります。#Override xinitrc を参照してください。もし、引数を与えなければ、クライアントプロラムを起動するシェルスクリプトとして、~/.xinitrc
を探します。
xinitrc
~/.xinitrc
は X に応じてプログラムを実行し、X サーバーの起動時に環境変数を設定するのに便利です。ユーザーのホームディレクトリに存在する場合は、startx と xinit が実行します。それ以外の場合、startx はデフォルトの /etc/X11/xinit/xinitrc
を実行します。
This default xinitrc will start a basic environment with Twm, xorg-xclock and Xterm (assuming that the necessary packages are installed). Therefore, to start a different window manager or desktop environment, first create a copy of the default xinitrc
in your home directory:
$ cp /etc/X11/xinit/xinitrc ~/.xinitrc
Then edit the file and replace the default programs with desired commands. Remember that lines following a command using exec
would be ignored. For example, to start xscreensaver
in the background and then start openbox, use the following:
~/.xinitrc
... xscreensaver & exec openbox-session
Long-running programs started before the window manager, such as a screensaver and wallpaper application, must either fork themselves or be run in the background by appending an &
sign. Otherwise, the script would halt and wait for each program to exit before executing the window manager or desktop environment. Note that some programs should instead not be forked, to avoid race bugs, as is the case of xrdb. Prepending exec
will replace the script process with the window manager process, so that X does not exit even if this process forks to the background.
xserverrc
xserverrc
ファイルは、X サーバーの起動を担当するシェルスクリプトです。startx と xinit はどちらも ~/.xserverrc
が存在すればそれを実行し、 startx はそうでなければ /etc/X11/xinit/xserverrc
を使用します。
logind
で セッションのパーミッション を維持し、端末を切り替えてスクリーンロッカーを回避するのを防ぐために、ログインしたのと同じ仮想端末で Xorg を起動しなければなりません [1]。そのため、~/.xserverrc
ファイルで vt$XDG_VTNR
を指定することが推奨されます。
~/.xserverrc
#!/bin/sh exec /usr/bin/Xorg -nolisten tcp "$@" vt$XDG_VTNR
全てのコマンドラインオプションの一覧は Xserver(1) を参照してください。
また、サーバを起動するコンソールとは別のコンソールで X を表示させたい場合は、 /usr/lib/systemd/systemd-multi-seat-x
が提供する X サーバラッパーを使って表示させることも可能です。便利なように、 xinit と startx は ~/.xserverrc
を修正することでこのラッパーを使うようにセットアップすることができます。
使用方法
Xorg を通常のユーザーとして実行するには、次のように実行します。
$ startx
または、#xserverrc が設定されている場合は:
$ xinit -- :1
これでお好みのウィンドウマネージャー(またはデスクトップ環境)が正しく起動するはずです。
X を終了するには、ウィンドウマネージャーの exit 関数を実行してください(exit 関数があれば)。そのような機能がない場合は次のように実行します。
$ pkill -15 Xorg
signal(7) も参照してください。
ヒントとテクニック
コマンドラインから xinitrc を上書きする
~/.xinitrc
は既に記述しているが、他の WM/DE を試してみたい場合、ウィンドウマネージャのパスを加えて startx
を実行することができます:
$ startx /full/path/to/window-manager
フルパスが必要なので注意してください。
ウィンドウマネージャに引数を指定する場合、startx のパラメータとしてクォートで囲う必要があります:
$ startx "/full/path/to/window-manager --key value"
また、--
の後にカスタムオプションを指定して (デフォルトの X サーバーオプションが入っている) /etc/X11/xinit/xserverrc
を上書きすることもできます。例:
$ startx /usr/bin/enlightenment -- -nolisten tcp -br +bs -dpi 96 vt$XDG_VTNR
または:
$ xinit /usr/bin/enlightenment -- -nolisten tcp -br +bs -dpi 96 vt$XDG_VTNR
man startx
を参照してください。
ログイン時に X を自動起動
startx が正しく 設定 されていることを確認します。
ログインシェル の初期化ファイル (例: Bash の場合は ~/.bash_profile
, Zsh の場合は ~/.zprofile
) に以下の内容を記述してください。
if [ -z "${DISPLAY}" ] && [ "${XDG_VTNR}" -eq 1 ]; then exec startx fi
複数の仮想端末でグラフィカルログインを使用したい場合は、-eq
の比較を -le 3
(vt1 から vt3 まで) のようなものに置き換えることが可能です。
仮想端末を検出する別の条件として、"$(tty)" = "/dev/tty1"
は -le
との比較が出来ません、 "$(fgconsole 2>/dev/null || echo -1)" -eq 1
は シリアルコンソール では機能しないことが挙げられます。
X セッションが終了してもログインしたままにしたい場合は、exec
を削除してください。
ログイン時に X を起動 と systemd/ユーザー#ディスプレイマネージャを使わずに Xorg に自動ログイン も参照してください。
DE/WM の選択
様々な DE/WM を頻繁に切り替えて使っている場合、ディスプレイマネージャを使うか、以下のコードを .xinitrc
に追加することを推奨します。引数を使って起動したいデスクトップ環境やウィンドウマネージャをロードします:
~/.xinitrc
... # Here Xfce is kept as default session=${1:-xfce} case $session in awesome ) exec awesome;; bspwm ) exec bspwm;; catwm ) exec catwm;; cinnamon ) exec cinnamon-session;; dwm ) exec dwm;; enlightenment ) exec enlightenment_start;; ede ) exec startede;; fluxbox ) exec startfluxbox;; gnome ) exec gnome-session;; gnome-classic ) exec gnome-session --session=gnome-classic;; i3|i3wm ) exec i3;; icewm ) exec icewm-session;; jwm ) exec jwm;; kde ) exec startkde;; mate ) exec mate-session;; monster|monsterwm ) exec monsterwm;; notion ) exec notion;; openbox ) exec openbox-session;; unity ) exec unity;; xfce|xfce4 ) exec startxfce4;; xmonad ) exec xmonad;; # No known session, try to run it as command *) exec $1;; esac
/etc/X11/xinit/xserverrc
ファイルをホームディレクトリにコピーしてください:
$ cp /etc/X11/xinit/xserverrc ~/.xserverrc
その後、引数を指定して特定の DE/WM を起動することができます:
$ xinit $ xinit gnome $ xinit kde $ xinit wmaker
または:
$ startx $ startx ~/.xinitrc gnome $ startx ~/.xinitrc kde $ startx ~/.xinitrc wmaker
ウィンドウマネージャを使わずにアプリケーションを起動
ウィンドウマネージャを使わずに特定のアプリケーションだけを起動することも可能です。フルスクリーンモードで何か一つのアプリケーションを表示したいときに有用です。例:
~/.xinitrc
... exec chromium
この方法を使うときはアプリケーションのウィンドウの配置を、アプリケーションの設定ファイルで設定しておく必要があります。
ディスプレイマネージャ#ウィンドウマネージャを使わずにアプリケーションを起動も見て下さい。
startx 使用時の出力のリダイレクト
詳細は、Xorg#Session log redirection を参照してください。