Linuxを想定デスクトップ環境システムがインストールされました。起動して資格情報を入力するときに何が起こってもデスクトップ環境起動後のデフォルトのデスクトップ環境を検討します。ユーザーは KDE や XFCE などの他のデスクトップ環境を選択できますが、これはデフォルト環境ではありません。デフォルトのデスクトップ環境、または最後に使用されたDEを見つけるためのディストリビューションに拘束されないコードスニペットは何ですか?コードは、リモートSSHセッションまたはCTRL-ALT-F2テキスト専用コンソールで実行する必要があります。
この質問の原動力は、私が最近nvidia-bug-report.shの出力をNVIDIAに電子メールで送信したからです。数日後、NVIDIAテクニカルサポートチームは「どのOS?」、「GNOMEまたはKDE?」、「どのディストリビューション?」という質問に答えました。すべてのメタデータは、独自のスクリプトによって自動的に収集および分類できます。
デスクトップ環境がクラッシュしたため、nvidia-bug-report.shはCTRL-ALT-F2テキストコンソールまたはリモートSSHセッションで実行する必要があります。明らかに、それらのどれも$DESKTOP_SESSION変数を持っていません。答えは、同様のリストから信頼度順に1つ以上の項目を返します"gnome|kde|mate|cinnamon|lx|xfce|jwm|none"
。
「のようなものが欲しい。 単純なシェルスクリプトから展開名とバージョン番号をどのように取得できますか? 」
答え1
確実な解決策が提供されていない場合は、次のスニペットが役に立ちます。
$ w | awk -vdp=$DISPLAY '($2 ~ dp){gsub(/.*\//, "");print $NF}'
または:
$ qdbus | grep -oPm1 '(kdm|xfce|gnome)'
pstreeを使用する別の方法:
$ pstree -H $(pidof X) | grep -oP '(kdm|xfce|gnome)(?=.*?X)'
kdm
そしてもう一つ:
$ lsof ~/.xsession-errors | grep -oEm1 '(kde|xfce|gnome)'
kde
または変形:
$ lsof ~/.xsession-errors | awk 'NR==2{print $1;quit}'
startkde