web-dev-qa-db-ja.com

ログイン時に中央のワークスペースに配置

3x3のワークスペーススイッチャーを設定しましたが、デフォルトで自分の位置を中央の位置にしたいです。出来ますか?

12
Xiè Jìléi

マルコのおかげで、wmctrlを使用する方法を見つけました。

Compizワークスペースは実際には単一のデスクトップのビューポートであるため、解決策は現在のビューポートを移動してデスクトップの中央領域をカバーすることです。

まず、wmctrl -dを呼び出して、現在のデスクトップの情報を取得します。

read desktop_id _ast \
    DG_ geometry \
    VP_ viewport \
    WA_ wa_off wa_size \
    title \
    < <(LANG=C wmctrl -d | grep '*')

geom_w=${geometry%x*}
geom_h=${geometry#*x}

# The workarea size isn't accurate, because the top/bottom panel is excluded. 
viewport_w=${wa_size%x*}
viewport_h=${wa_size#*x}

rows=$((geom_w / viewport_w))
cols=$((geom_h / viewport_h))

# Fix the viewport size
viewport_w=$((geom_w / rows))
viewport_h=$((geom_h / cols))

次に、中央のビューポートの原点を計算します。

center_row=$((rows / 2))
center_col=$((cols / 2))

center_x=$((center_col * viewport_w))
center_y=$((center_row * viewport_h))

center_viewport=$center_x,$center_y

そしてビューポートをそこに移動します:

wmctrl -o $center_viewport
7
Xiè Jìléi

はい:インストール wmctrl

Sudo apt-get install wmctrl

次のファイルを~/.config/autostart/wmctrl.desktopに作成します:

[Desktop Entry]
Name=Desktop Switcher
Exec=/usr/bin/wmctrl -s 4
Type=Application
6
Chipaca

同様の質問をするつもりでしたが、3つの水平ワークスペースでcompizを実行し、wmctrl -d出力(ワークスペースごと)は次のようになります。

  • ワークスペース1で:0 * DG: 4098x768 VP: 0,0 WA: 0,24 1366x744 Workspace 1
  • ワークスペース2で:0 * DG: 4098x768 VP: 1366,0 WA: 0,24 1366x744 Workspace 1
  • ワークスペース3で:0 * DG: 4098x768 VP: 2732,0 WA: 0,24 1366x744 Workspace 1

私は単にwmctrl -o 1366,0[〜#〜] vp [〜#〜] values)起動時にセンターをデフォルトのワークスペースにします。皆のために働くわけではないかもしれませんが、念のため;)

2
wik
  1. 最初にこれをダウンロード ヘルパースクリプト alt text コマンドラインからcompizを制御します。ホームフォルダーにcompiz-send.pyとして保存します。
  2. コマンドpython compiz-send.py vpswitch switch_to_5_keyを実行して、正しく機能することを確認します。中央のワークスペースに切り替えられます。
  3. 動作する場合は、.switch_to_center_workspace.shというファイルをホームフォルダーに作成し、その中に以下を貼り付けます。

    #!/bin/bash
    sleep 5 && python /home/user/compiz-send.py vpswitch switch_to_5_key
    

    userをユーザー名に置き換えます。

  4. スタートアップアプリケーションを開きますシステム->設定->スタートアップアプリケーション

  5. Addをクリックし、Command:エントリに/home/user/.switch_to_center_workspace.shを入力します。 Name:およびComment:エントリに必要なものを入力します。

  6. ログアウトしてから再度ログインし、機能することを確認します。

2
Isaiah

簡単なメモ-私はNattyを使用しています。@谢继雷の回答のおかげで、Unityの4つの「ワークスペース」のそれぞれで端末を移動すると、次のことが報告されます。

$ wmctrl -d
# top left
0  * DG: 2048x1200  VP: 0,0  WA: 0,24 1024x576  Workspace 1
# bottom left
0  * DG: 2048x1200  VP: 0,600  WA: 0,24 1024x576  Workspace 1
# top right
0  * DG: 2048x1200  VP: 1024,0  WA: 0,24 1024x576  Workspace 1
# bottom right 
0  * DG: 2048x1200  VP: 1024,600  WA: 0,24 1024x576  Workspace 1

...つまり、それらは別個のデスクトップでもワークスペースでもありません-単にビューポートが変更されます!

したがって、これら4つのビューポート間で変更するには、単にwmctrl -oコマンドは、上記のVP値を直接使用して、つまり:

wmctrl -o 0,0
wmctrl -o 0,600
wmctrl -o 1024,0
wmctrl -o 1024,600

編集:申し訳ありませんが、これは@wikの答えと同じであることがわかりました-必要に応じてマージ/削除.

0
sdaau