Jawaban:
Berkat Marco, saya sudah menemukan cara menggunakannya wmctrl.
Karena ruang kerja compiz sebenarnya adalah viewport dari satu desktop, jadi solusinya adalah memindahkan viewport saat ini untuk menutupi wilayah tengah desktop.
Pertama, panggil wmctrl -duntuk mendapatkan informasi desktop saat ini:
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))
Lalu, hitung asal viewport tengah:
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
Dan pindahkan viewport ke sana:
wmctrl -o $center_viewport
ini untuk mengendalikan compiz dari baris perintah. Simpan sebagai compiz-send.pydi folder rumah Anda.python compiz-send.py vpswitch switch_to_5_keyuntuk memastikannya berfungsi dengan benar. Ini akan mengalihkan Anda ke ruang kerja pusat.Jika berhasil, buat file yang disebut .switch_to_center_workspace.shdi folder rumah Anda dan rekatkan di dalamnya:
#!/bin/bash
sleep 5 && python /home/user/compiz-send.py vpswitch switch_to_5_key
mengganti userdengan nama pengguna Anda.
Buka Aplikasi Startup, Sistem -> Preferensi -> Aplikasi Startup .
Klik Tambah dan di Command: entri put /home/user/.switch_to_center_workspace.sh. Masukkan apa pun yang Anda inginkan dalam entri Name: and Comment:.
Logout dan log in kembali dan verifikasi bahwa itu berhasil.
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.UnknownMethod: Method "activate" with signature "si" on interface "org.freedesktop.compiz" doesn't exist
sleep 5bagian skrip ke angka yang lebih tinggi seperti sleep 10untuk memastikan compiz sudah berjalan ketika skrip dijalankan. Anda menggunakan compiz kan?
Saya akan mengajukan pertanyaan serupa, tetapi untuk 3 ruang kerja horizontal dan saya juga menjalankan compiz, dan wmctrl -doutput (per ruang kerja) terlihat seperti ini:
0 * DG: 4098x768 VP: 0,0 WA: 0,24 1366x744 Workspace 10 * DG: 4098x768 VP: 1366,0 WA: 0,24 1366x744 Workspace 10 * DG: 4098x768 VP: 2732,0 WA: 0,24 1366x744 Workspace 1Daripada saya hanya menggunakan wmctrl -o 1366,0( nilai VP ) untuk menjadikan pusat sebagai ruang kerja default saya saat startup. Mungkin tidak bekerja untuk semua orang, tetapi untuk berjaga-jaga;)
sh -c "sleep 2;/usr/bin/wmctrl -o 1366,0
Hanya catatan singkat - Saya menggunakan Natty, dan terima kasih atas jawaban @ 谢 继 雷, saya perhatikan bahwa berikut ini dilaporkan dengan memindahkan terminal di masing-masing dari empat 'ruang kerja' di Unity:
$ 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
... yaitu mereka bukan desktop terpisah, atau ruang kerja - hanya perubahan viewport!
Jadi, untuk mengubah antara keempat viewports tersebut, cukup panggil wmctrl -operintah langsung dengan VPnilai - nilai yang tercantum di atas, yaitu:
wmctrl -o 0,0
wmctrl -o 0,600
wmctrl -o 1024,0
wmctrl -o 1024,600
EDIT: Ups, maaf, hanya melihat ini sama dengan jawaban @ wik - gabungkan / hapus yang sesuai ..
wmctrldapat pula memindahkan viewport di dalam desktop. Lihat jawaban saya di bawah ini.