KDEが使える環境でAIRアプリをKDE外から使う
まず結論。
dbusが使える環境で、kdewalletmanagerを起動した状態で、
すればいける(環境変数の値は別のでもいいかもしれないけど調べてない)
KDE_SESSION_VERSION=4 KDE_FULL_SESSION=true /opt/TweetDeck/bin/TweetDeck
以下経緯など
私のマシンでは、kubuntuのKDE4(4.2.1)はちょっと重いので
プログラムを書くのがメインな時はawesomeを使ってみることにした。
(まあ、それでも4.1.xの時と比べたらだいぶマシになった)
そこで困ったのが、AIRアプリであるTweetDeckが動かないこと。
WindowsでもLinuxでも動いて、しかもグループ分けが便利なので気に入って使ってる。
起動すると、次のようなメッセージが出て、画面は表示されるものの使えない状態になる。
Adobe AIRはいまのところKDEとGnomeしかサポートしていないらしい。
$ /opt/TweetDeck/bin/TweetDeck
Unknown desktop manager, only Gnome and KDE are supported
.
試しに
KDEWM=/usr/bin/awesomeにして、KDEで使うWindow ManagerをawesomeしたらTweetDeckも動くけど、なんかしっくりこない。
しかたがないので、awesome単体で使える方法を調べることにした。
KDEでTweetDeckを起動するとKwalletが動くので、手動でkwalletmanagerを起動してから
TweetDeckを起動してみたが、また同じメッセージが出てだめだった。
straceを使ってKDEから起動するときと、awesome環境から起動するときの違いをみてみたら、
どうもdbusでkwalletを探してるっぽいことが分かった。
でも、kwalletmanagerを起動しておけば、ちゃんと見つけられるし、
$ qdbus org.kde.kwalletd /modules/kwalletd org.kde.KWallet.localWallet
kdewallet
awesome環境で起動するときは、そもそもkwalletを探していないようなので不足があるようだ。
何か無いかとAIRのディレクトリを探ろうかと思ったら、いきなりlibCore.soを見つけたので、
おもむろにstrings libCore.so | grep -i kdeしてみたら、
KDE_SESSION_VERSION, KDE_FULL_SESSIONが出てきた。
こいつらにKDEで見た値を入れたら動いてしまった。