CDM

提供: ArchWiki
移動先: 案内検索

CDM はミニマルでありながら、SLiM, KDM, GDM, Qingy と同じように機能が揃っているログインマネージャです。X Window System のオーバーヘッドや Qingy のような不安定さを感じさせない、高速なダイアログベースのログインシステムを提供します。Bash だけで書かれているため、CDM の依存パッケージは非常に少なく、それでいながらあらゆる DE/WM を起動して複数のユーザー/セッションをサポートします。

インストール

AUR にある cdm-gitAUR パッケージをインストールしてください。

そして systemctl disable を使って他のディスプレイマネージャの systemd サービスは全て無効化するようにします。

例えば、GNOME ディスプレイマネージャを使っていた場合、次を実行することで停止できます:

# systemctl disable gdm.service

CDM を使うのに systemd サービスを有効にする必要はありません。代わりに、zzz-cdm.sh という名前のスクリプトを /etc/profile.d に配置します。このスクリプトはログインマネージャにログインしようとしたときに (/etc/profile.d 内の他のスクリプトと一緒に) 実行されます。ただし、設定が間違っている時にデスクトップにも仮想端末にもユーザーがアクセスできない事態にならないように、スクリプトは実行されている仮想端末をチェックしてから、それからデフォルトで tty1 でのみ動作します。

スクリプトはグローバルな /etc/profile.d ディレクトリに配置するので、CDM は tty1 でログインするユーザー全てで動作します。使用するユーザーを限定したい場合は、/etc/profile.d/zzz-cdm.sh の実行パーミッションを変更してファイルの中身を、bash なら ~/.bash_profile、zsh なら ~/.zprofile にコピーしてください。

設定

CDM は /etc/cdmrc を編集することで設定できます。完全な注釈があるので設定するのは比較的簡単です。/etc/cdmrc$HOME/.cdmrc にコピーすることでユーザー個別の設定ファイルを使うこともできます。

メニューアイテム

メニューアイテムは3つの配列で設定します: binlist, namelist, flaglist。行列の要素の順番は重要です。配列に要素を加えるときは順番を守ってください。binlist には実行するコマンド、namelist にはメニューに表示する名前、flaglist には binlist で指定したプログラムのタイプを追加します。タイプは X セッションの 'X' あるいはコンソールプログラムの 'C' のどちらかになります。基本的に X セッションは startx で起動し (binlist の要素は startx コマンドの引数になります)、コンソールプログラムは exec を使って起動します。

設定例:

binlist=(
  "~/.xsession"                                   # Launch your X session,
  "/bin/bash --login"                           # or just execute your shell,
  "/usr/bin/fbterm"                             # or start a frame buffer console,
  "/usr/bin/cdm ~/.submenu.cdmrc"  # or go to a submenu :)
)
namelist=("X session" Console FBTerm "Sub menu")
flaglist=(X C C C)

テーマ

テーマは /usr/share/cdm/themes に保存され、/etc/cdmrcdialogrc 変数にテーマファイルのフルパスを指定することで使うことができます。例:

dialogrc=/usr/share/cdm/themes/cdm

テーマの構文は非常にわかりやすいものになっています。新しいテーマを作成するときは既存のテーマを複製して編集するのが良いでしょう。

X を起動

X サーバーを起動する方法は変えることができます。ConsoleKit の使用は任意です。X サーバーを起動する tty を指定することができ (数字を指定するか、現在の tty で X サーバーを起動したい場合は 'keep' にしてください)、X サーバーのカスタム引数を指定できます。

電源管理のカスタムコマンド

シャットダウンや再起動などの電源管理のエントリを追加したい場合は、binlist に記述してください。詳しくは systemd#電源管理 を参照。

参照