KDM

提供: ArchWiki
2017年7月30日 (日) 01:35時点におけるKusakata (トーク | 投稿記録)による版
ナビゲーションに移動 検索に移動

関連記事

KDM (KDE Display Manager) は KDE のログインマネージャです。テーマ、自動ログイン、セッションタイプ選択などの機能をサポートしています。

ノート: KDM は Plasma 5 から使えなくなります。DM としては SDDM の使用が推奨されており、Plasma 5 のテーマとの統合を実現します。

インストール

kdebase-workspaceAUR パッケージをインストールしてください。

それからディスプレイマネージャ#ディスプレイマネージャをロードするにしたがって KDM をブート時に起動するようにしてください。

設定

KDM の設定ファイルは /usr/share/config/kdm/kdmrc にあります。全てのオプションは /usr/share/doc/HTML/en/kdm/kdmrc-ref.docbook を見て下さい。

System Settings > Login Screen を開けば変更を加えることができます。Apply を押すと、KDE Polkit authorization ウィンドウが表示され変更を適用するために root パスワードが求められます。

ユーザーとしてシステム設定を起動した時に KDM の設定が編集できないようなときは、kdesu を使うことができます:

$ kdesu kcmshell4 kdm

kdesu のポップアップウィンドウで、root パスワードを入力してシステム設定が起動するのを待って下さい。それから "Login Screen" を開きます。

ノート: root でシステム設定を起動することになるので、注意して設定を変更してください。root で起動したシステム設定で変更した設定は全て /root/.kde4 に保存されます (通常はホームディレクトリの ~/.kde4 です)。

テーマ

Arch Linux の KDM テーマは archlinux-themes-kdm[リンク切れ: パッケージが存在しません] パッケージでインストールできます。

他にも多数の KDM 4 テーマが http://kde-look.org/index.php?xcontentmode=41 に存在します。上述の (root で実行した) システム設定でインストールしたテーマを選択してください。

テーマの作成

テーマファイルは /usr/share/apps/kdm/themes に配置します。

テーマのフォーマットは GDM と同じです。ドキュメントが次のページにあります: Detailed Description of Theme XML format

ServerArgsLocal

X サーバーの dpi の数値を強制的に指定するには、ServerArgsLocal に -dpi オプションを追加します。通常使用される値は 96 dpi です。

/usr/share/config/kdm/kdmrc
[...]
ServerArgsLocal=-dpi 96 -nolisten tcp
[...]

root ログインを許可

KDM で root ログインできるようにするには次を実行:

# sed -ie 's/AllowRootLogin=false/AllowRootLogin=true/' /usr/share/config/kdm/kdmrc

SessionsDirs

この変数には .desktop フォーマットによるセッションタイプの定義を含むディレクトリが保存されます。先に来るディレクトリが優先されます。Arch Linux ではウィンドウマネージャによってはセッションの定義ファイルが /usr/share/xsessions にインストールされることがあります。KDM でセッションが選択できるようにするためにリストに以下を追加してください:

/usr/share/config/kdm/kdmrc
[...]
SessionsDirs=/usr/share/config/kdm/sessions,/usr/share/apps/kdm/sessions,/usr/share/xsessions
[...]

Session

Session 変数はログインしたユーザーとして実行されるプログラムの名前です。セッションの引数 (SessionsDirs を参照) を解釈して引数の希望通りのセッションを起動します。ウィンドウマネージャのセッションでこの変数をカスタマイズすることで、壁紙を設定したりスクリーンセーバーを起動することができます。それには以下のように pacman の更新でファイルが変更されないようにします:

# cp /usr/share/config/kdm/Xsession /usr/share/config/kdm/Xsession.custom

kdmrc で次を設定:

/usr/share/config/kdm/kdmrc
[...]
Session=/usr/share/config/kdm/Xsession.custom
[...]

それから Xsession.custom を自由に編集してください。

X サーバーを再起動するメニューオプション

ユーザーから KDM から X サーバーを再起動できるようにするには、kdmrc の次のオプションを編集します:

/usr/share/config/kdm/kdmrc
[X-:*-Greeter]
[...]
# Show the "Restart X Server"/"Close Connection" action in the greeter.
# Default is true
AllowClose=true
[...]

この機能はメニューのドロップダウンオプションから使うことができます。このオプションには Alt+e のホットキーも含まれます。

トラブルシューティング

キーボードマップ

KDM のキーボードマップはシステム設定で設定できます (ログイン画面セクション)。

システム設定で言語を設定してキーボードマップが変更されない場合、/usr/share/config/kdm/Xsetup を編集して次のコマンドを追加してください:

setxkbmap jp

jp はあなたのキーボードレイアウトに置き換えてください。アップグレードがあるとファイルが上書きされてしまうため、/etc/pacman.conf で保護すると良いでしょう:

NoUpgrade = usr/share/config/kdm/Xsetup
ノート: 先頭にスラッシュ (/) を付けてはいけません。

KDM の起動が遅い

KDM がログイン画面を表示するのに時間がかかる場合 (例: 15-30秒) X フォントのキャッシュを再作成してみてください:

# fc-cache -fv

KDM と Gnome-keyring

KDM でのログイン時に GNOME Keyring のロックを自動的に解除するには /etc/pam.d/kde 内の auth include system-login という行のすぐ後に以下の行を追加:

auth            optional        pam_gnome_keyring.so

そして session include system-login の後に以下を追加:

session         optional        pam_gnome_keyring.so auto_start

スクリーンセーバーのロックを解除した時にキーリングのロックを自動的に解除するに /etc/pam.d/kscreensaver を開いて最後の行に以下を追加:

auth            optional        pam_gnome_keyring.so

ユーザー画像が表示されない

KDM でアカウント情報のユーザー画像を表示するには、System Settings > Login Screen > Users > User Image Source で適当なソースを設定して、ユーザーのホームディレクトリを誰からも実行できるようにして ~/.face.icon を誰からも読み込めるように属性を設定する必要があります [1]:

$ chmod o+x ~/
$ chmod o+r ~/.face.icon

画面のロックで入力がフリーズする

ロック画面が表示されると入力がフリーズする場合、他の仮想端末に切り替えて (例えば CTRL-ALT-F1) それから KDM を再起動して下さい:

$ systemctl stop kdm && systemctl start kdm

元の仮想端末に戻れば画面のロックを解除できるはずです。この挙動は バグ 314663 が原因です。

対処方法としては kscreenlockerkscreenlocker_greet で壁紙の透過を無効化して下さい。

qt-curve の場合、System Settings > Application Appearance > Style > Configure > Applications を開いて kscreenlockerkscreenlocker_greet を追加して "No background opacity" にして下さい。