Plan 9とGo言語のブログ

主にPlan 9やGo言語の日々気づいたことを書きます。

デスクトップ環境をKDE 5 Plasmaデスクトップに変更した

先月の記事ではGNOMEをインストールしましたが、KDE 5 Plasmaデスクトップの方が見た目も操作感も好みだったので変更しました。WebブラウザとターミナルとPlan 9ツールの利用が主な使い方なので、どれを使ってもそんなに変わらないのですが。

やったこと

まず必要なパッケージを追加します。Waylandバックエンドを使うのでplasma-wayland-sessionも入れておきます。plasma-metaはメタパッケージといって複数のパッケージがまとまったものです。

$ sudo pacman -S plasma-meta sddm plasma-wayland-session

# 入ってなければ入れる
$ sudo pacman -S noto-fonts noto-fonts-cjk

KDEアプリケーションはこれだけ入れました。kde-applicationsはパッケージグループで、こちらも複数のパッケージをまとめたものです。

$ pacman -Qge kde-applications
kde-applications ark
kde-applications dolphin
kde-applications gwenview
kde-applications kcalc
kde-applications konsole
kde-applications ksystemlog
kde-applications okular

pacmanのメタパッケージとパッケージグループ

上でみたように、パッケージグループとメタパッケージはどちらも複数のパッケージをまとめるものですが、利用方法は全然別のものです。

パッケージグループ

  • pacman -gフラグでグループの絞り込みができる
  • パッケージグループをインストールする時に必要なパッケージを選択できる
  • 選択したパッケージは明示的インストールとして扱う
  • グループに新しい依存パッケージが追加されても追従しない

メタパッケージ

  • パッケージ名に-metaが付く(全てではないらしい)
  • メタパッケージをインストールする時はパッケージの選択はできない
  • メタパッケージを明示的インストールとして、個別のパッケージは依存パッケージとして扱う
  • メタパッケージに新しい依存が増えた場合、メタパッケージをアップデートするとインストールされる

SDDM

ログイン画面でSDDMを使うようにします。どのディスプレイマネージャを使うのかについては、/etc/systemd/system/display-manager.serviceシンボリックリンクになっていて、SDDMの場合は参照先が/usr/lib/systemd/system/sddm.serviceとなります。必ず1つしか有効にできないので、GDMは無効にします。

$ sudo systemctl disable gdm.service
$ sudo systemctl enable sddm.service

/etc/sddm.conf.d/uid.conf

SDDMはデフォルトにより、UIDが60000以上のユーザを扱いません。だけどもsystemd-homedでユーザを管理している場合、UIDは60000より大きな値が使われるので、SDDMにユーザが表示されずログインできません。なのでUIDの最大値を変更します。

[Users]
MaximumUid=60350

/etc/sddm.conf.d/hidpi.conf

12インチMacBookRetinaディスプレイなので、HiDPIオプションも有効にしておきます。

[Wayland]
EnableHiDPI=true

[X11]
EnableHiDPI=true

Firefox

WaylandバックエンドのPlasmaデスクトップでは、FirefoxはXWaylandで動作するようですが、HiDPIディスプレイで使うと全体的にぼやけたり滲んだりといった表示になります*1FirefoxはWaylandに対応しているので、環境変数で切り替えましょう。

~/.pam_environment

2022年10月追記 今だとhomectlで設定するほうが良いようです。

$ homectl inspect lufia
...
 Environment: GTK_IM_MODULE=ibus
              QT_IM_MODULE=ibus
              XMODIFIERS=@im=ibus
...

$ homectl update lufia --setenv 'MOZ_ENABLE_WAYLAND=1' --setenv GTK_IM_MODULE=ibus ... (過去に設定した値も全部書く)

.pam_environmentを使う場合はここから。

+MOZ_ENABLE_WAYLAND DEFAULT=1

ところで、このファイルはpam_envによるものみたいですね。マニュアルはpam_envにありました。

ショートカットキー

Plasmaデスクトップの場合でも、GTKベースアプリケーションはgsettings(dconf)の設定を参照します。Firefoxも同様なので、以下の設定は必要です。

$ gsettings set org.gnome.desktop.interface gtk-key-theme Emacs

IBus

GNOMEの場合は何もしなくてもIBusを使えていましたが、KDEでは自分で書いてあげる必要があるようです。~/.config/autostart以下に設定を作ります。

~/.config/autostart/ibus-daemon.desktop

[Desktop Entry]
Type=Application
Name=IBus Daemon
Exec=ibus-daemon -drx --panel=/usr/lib/kimpanel-ibus-panel

~/.config以下にはautostart-scriptsディレクトリもあります。autostartは拡張子.desktopなiniファイルを管理する場所で、autostart-scriptsシェルスクリプトなどを管理するために使うようです。

KDEシステム設定

基本的にはデフォルトのまま使って慣れる派ですが、どうしても無理なものをシステム設定で変更しました。変更した箇所だけ列挙。

  • キーボードの設定でCapsLockをControlに置き替え
    • キーボード→詳細→Ctrl position/Caps LockをCtrlとして扱う
  • トラックパッドをいつも通りに設定
    • タップしてクリック
    • タップしてドラッグ
    • Tap-and-drag lock
    • スクロールの方向を反転(自然なスクロール)

ショートカット→KRunner/KRunnerで、KRunner*2の開始をCtrl+Spaceでもできるようにしようかと思ったけど、これは慣れの問題なのでAlt+Spaceのまま使うことにしました。

気になりメモ

WaylandバックエンドでPlasmaデスクトップを使う場合、スリープからの復帰や外部ディスプレイ接続などで突然クラッシュすることがあります。Waylandでの不具合などは以下でまとめられています。

GNOME関連のパッケージをアンインストールしてもgsettings list-schemasで確認するとorg.gnome.*スキーマが残っています。これらのスキーマgsettings-desktop-schemasによって追加されたもので、このパッケージはphonon-qt5-gstreamergtk3などが依存しているようでした。

*1:どうして滲むのかはHiDPI support in Chromiumで説明されていました

*2:macOSにおけるSpotlightのようなもの