コマンドラインから仮想デスクトップに関する情報を取得するにはどうすればよいですか?

コマンドラインから仮想デスクトップに関する情報を取得するにはどうすればよいですか?

デスクトップのサイズ、現在アクティブなデスクトップ、デスクトップ環境 (DE) に設定されているラベル (ある場合) などの情報を取得する方法を知りたいです。

答え1

このツールを使用すると、wmctrl上記のすべての情報、具体的には-dスイッチに関する情報を取得できます。

$ wmctrl -d
0  * DG: 5760x900  VP: 0,0  WA: 0,25 1440x826  Workspace 1
1  - DG: 5760x900  VP: 0,0  WA: 0,25 1440x826  
2  - DG: 5760x900  VP: 0,0  WA: 0,25 1440x826  N/A
3  - DG: 5760x900  VP: 0,0  WA: 0,25 1440x826  N/A

詳細

各デスクトップに対して 1 行が出力され、行はスペースで区切られた列に分割されます。

  • 最初の列には整数のデスクトップ番号が含まれます。
  • 2 番目の列には、現在のデスクトップの場合は '*' 文字が含まれ、それ以外の場合は '-' 文字が含まれます。
  • 次の 2 つの列には、固定文字列 DG: と、デスクトップ ジオメトリ ('x' として) (例: '1280x1024') が含まれます。
  • 次の 2 つの列には、固定文字列 VP: と、',' 形式のビューポート位置 (例: '0,0') が含まれます。
  • この後の 3 つの列には、固定文字列 WA: が含まれ、その後に作業領域のジオメトリが 'X、Y、WxH' (例: '0,0 1280x998') として含まれる 2 つの列が続きます。
  • 行の残りの部分にはデスクトップの名前が含まれます (複数のスペースが含まれる場合もあります)。

wmctrl でできるさらにクールなこと

ウィンドウマネージャに関する情報を一覧表示する

$ wmctrl -m
Name: compiz
Class: N/A
PID: N/A
Window manager's "showing the desktop" mode: OFF

アクティブなウィンドウを一覧表示する

$ wmctrl -l
0x00c00028 -1 grinchy Top Expanded Edge Panel
0x0120001e  0 grinchy x-nautilus-desktop
0x06015fee  0 grinchy saml@grinchy:~
0x06000004  0 grinchy saml@grinchy:~
0x05a000d1  0 grinchy xorg - How can I get information about my virtual desktops via the command line? - Unix & Linux Stack Exchange - Google Chrome

各ウィンドウに対して 1 行が出力され、行はスペースで区切られた列に分割されます。

  • 最初の列には常にウィンドウ ID が 16 進整数として含まれます。
  • 2 番目の列には常にデスクトップ番号が含まれます (スティッキー ウィンドウを識別するには -1 が使用されます)。
  • オプションが指定されている場合、-p次の列にはウィンドウの PID が 10 進整数として含まれます。
  • オプションが指定されている場合は-G、x オフセット、y オフセット、幅、高さの 4 つの整数列が続きます。
  • 次の列には常にクライアント マシン名が含まれます。
  • 行の残りの部分にはウィンドウのタイトルが含まれます (タイトルに複数のスペースが含まれる場合もあります)。

-pスイッチの例

0x06015fee  0 3278   grinchy saml@grinchy:~
0x06000004  0 3278   grinchy saml@grinchy:~
0x05a000d1  0 4676   grinchy xorg - How can I get information about my virtual desktops via the command line? - Unix & Linux Stack Exchange - Google Chrome

-Gスイッチの例

0x06015fee  0 3378 128  941  361  grinchy saml@grinchy:~
0x06000004  0 900  142  947  397  grinchy saml@grinchy:~
0x05a000d1  0 0    50   1440 826  grinchy xorg - How can I get information about my virtual desktops via the command line? - Unix & Linux Stack Exchange - Google Chrome

*注記:とスイッチ-p-G組み合わせも可能!

別のデスクトップに切り替える

$ wmctrl -s 2

注記:デスクトップは 0 から番号が付けられるため、1 は 2 番目になります。

デスクトップの数を減らす

$ wmctrl -n 3

現在は 4 個ではなく 3 個になっています。

$ wmctrl -d | wc -l
3

今度は 4 に戻します。

$ wmctrl -n 4
$ wmctrl -d | wc -l
4

ウィンドウを閉じる

$ wmctrl -l | grep GVIM
0x02a00003  0 grinchy [No Name] - GVIM

$ wmctrl -c GVIM

$ wmctrl -l | grep GVIM
$ 

関連情報