Xubuntu 16.04をインストールし、後でi3wmをインストールしましたが、気に入りました。しかし、興味深い質問があります。私はkbddとsetxkbmapを使ってキーボードレイアウトを切り替えて制御します。だからこれを入れました。~/.xsessionrc:
#!/bin/sh
kbdd
exec setxkbmap "us,ua,ru" ",winkeys" "grp:shift_caps_toggle" &
dropbox start &
これはすべてうまくいきますが、dbusを介してi3barに私の「現在のレイアウトインジケータ」を追加しようとすると、次のようになります。
dbus-send --print-reply=literal --dest=ru.gentoo.KbddService /ru/gentoo/KbddService ru.gentoo.kbdd.getCurrentLayout | awk '{ print $2 }'
エラーが表示されます。
Error org.freedesktop.DBus.Error.ServiceUnknown: The name ru.gentoo.KbddService was not provided by any .service files
しかし、端末でkbddを再起動すると機能します!さらに、kbddのpidはまったく変わりませんでした。だから何かを始める順序に問題があるかもしれません。ところで、他のコンピュータでは、i3を起動するために空のログインとstartxコマンドを使用していたので、~/.sessionrcの代わりに~/.xinitrcを使用し、正常に動作しました。誰でも助けることができますか?
付録:
kbddのpidはdbus-launcherのpidより小さいが、dbus-monitorのpidはkbddのpidより小さい。ここには理由があるようです。しかし、なぜ?他のもののdbus-launcherの後にkbddを起動するためにsystemd用のいくつかのユニットスクリプトを書く必要がありますか?