Gentooデスクトップ環境をgreetd/swayに移行

2023/03/09 08:48#Linux

greetd/sway移行メモ。

ログインマネージャ

KDEだとログインマネージャはSDDMがついてくるけどsway使うならSDDMじゃなくても良いのでgreetd/tuigreetにしました。

emerge -a gui-apps/tuigreet

私はOpenRC使っているのでdisplay-manager-initもインストール。

emerge -a gui/libs/display-manager-init
rc-update add display-manager default

greetdを使うように設定。

# /etc/conf.d/display-manager

# What display manager do you use ?
#     [ xdm | greetd | gdm | sddm | gpe | lightdm | entrance ]
# NOTE: If this is set in /etc/rc.conf, that setting will override this one.
DISPLAYMANAGER="greetd"

さらにtuigreet使うようにgreetdを設定します。

設定例をネットで探しているとコマンドでsway起動しているのが大半ですが、それだと環境変数の読込ができないので.desktopファイルを作成してwrapperスクリプトを実行する法にします。

# /etc/greetd/config.toml

[default_session]

command = "tuigreet -r -s '/usr/local/share/wayland-sessions'"

user = "greetd"

/usr/share/wayland-sessionsにあるファイルを編集しちゃうと再インストールの時にリセットされちゃうので/usr/local/share/wayland-sessionsにファイルを用意してtuigreetコマンドのオプションでディレクトリ指定します。

[Desktop Entry]
Name=Sway
Comment=An i3-compatible Wayland compositor
Exec=$HOME/.dotfiles/sway-wrapper.sh
Type=Application

上記で指定したラッパースクリプト。
swayの実行時はdbusセッション起動しとかないとchromeとかがおかしくなりました。

#!/bin/sh

# ~/.dotfiles/sway-wrapper.sh

export EDITOR=/usr/local/bin/nvim
export XDG_CACHE_HOME=/var/tmp/share/$USER

exec dbus-run-session -- sway

dbusの環境変数を再読込

sway起動時に設定される環境変数を読み込むために下記コマンドをswayの設定ファイルに追記します。
これがないと通知デーモンや画面共有のプログラムなどが自動的に起動されなかったです。

exec dbus-update-activation-environment --all

ステータスバー

ステータスバーは画面の左側にあるのが好きなのだけど、swaybarだと上か下かしか選択できないのでwaybarにしました。

emerge -a waybar

おわりに

このあとすぐHyprlandに移行しました。