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


12

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

回答:


7

マルコのおかげで、私はを使用する方法を見つけました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

6

はい:wmctrlをインストールします

sudo apt-get install wmctrl

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

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

1
compizにはデスクトップが1つしかありません。しかしwmctrl、とにかくデスクトップ内でビューポートを切り替えることができます。以下の私の答えをご覧ください。
謝Jìléi

2
  1. 最初に、コマンドラインから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. [ 追加]をクリックし、[ コマンド:]エントリに「put」と入力し/home/user/.switch_to_center_workspace.shます。Name:およびComment:エントリに必要なものを入力します。

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


残念ながら、このスクリプトは動作しませんdbus.exceptions.DBusException: org.freedesktop.DBus.Error.UnknownMethod: Method "activate" with signature "si" on interface "org.freedesktop.compiz" doesn't exist
謝Jìléi

@谢继雷sleep 5スクリプトのsleep 10実行時にcompizがすでに実行されていることを確認するために、スクリプトの一部をより大きな数値に変更します。compizを使用していますか?
イザヤ

gnome-terminalでスクリプトを実行しようとすると、例外が発生します。compiz 0.8.6を使用しています。
謝Jìléi

このスクリプトでは、それのは、メソッドのシグネチャ「SI」は、存在しないと述べた私は、アクティブにするために渡される引数(文字列、int)を()かもしれないが正しい..推測するので
謝Jìléi

2

同様の質問をするつもりでしたが、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,0VP値)を使用して、起動時にセンターをデフォルトのワークスペースとして作成しました。皆のために働くわけではないかもしれませんが、念のため;)


「システム->設定->スタートアップアプリケーション」で使用しているコマンド:sh -c "sleep 2;/usr/bin/wmctrl -o 1366,0
wik

...あなたは、例えば、10、15、などを試してみてください、スリープ値を調整する必要があるかもしれません
WIK

このメモをありがとう-あなたの答えを読む前にそれを読んでいませんでした申し訳ありません:
-sdaau

0

ちょっとしたメモ-私はNattyを使用していますが、@ answer雷の回答のおかげで、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の答えと同じであることがわかりました-必要に応じてマージ/削除してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.