Відповіді:
Завдяки Марко я придумав спосіб використання 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
для керування compiz з командного рядка. Збережіть його як compiz-send.pyу своїй домашній папці.python compiz-send.py vpswitch switch_to_5_keyщоб переконатися, що вона працює правильно. Він повинен переключити вас на центральну робочу область.Якщо це працює, створіть файл, який називається .switch_to_center_workspace.shу вашій домашній папці, і вставте його всередину:
#!/bin/bash
sleep 5 && python /home/user/compiz-send.py vpswitch switch_to_5_key
заміни userсвоїм іменем користувача.
Відкрийте програми запуску, система -> налаштування -> програми запуску .
Клацніть Додати і в команді: введіть запис /home/user/.switch_to_center_workspace.sh. Введіть все, що завгодно, у записи Ім'я: та Коментар: записи.
Вийдіть та увійдіть назад та переконайтеся, що він працює.
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.UnknownMethod: Method "activate" with signature "si" on interface "org.freedesktop.compiz" doesn't exist
sleep 5частину сценарію на більшу кількість, наприклад, sleep 10щоб переконатися, що compiz вже запущений під час запуску сценарію. Ви використовуєте compiz правильно?
Я збирався задати подібне питання, але для 3-х горизонтальних робочих просторів я також працюю compiz, і wmctrl -dвихід (на робочу область) виглядає так:
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 1Чим я просто користувався wmctrl -o 1366,0( значення VP ), щоб зробити центр як мою робочу область за замовчуванням при запуску. Може працювати не для всіх, але про всяк випадок;)
sh -c "sleep 2;/usr/bin/wmctrl -o 1366,0
Лише коротка примітка - я використовую Natty, і завдяки відповіді @ 谢 继 雷 я помітив, що повідомляється про наступне, переміщуючи термінал у кожній з чотирьох «робочих областей» в 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
... тобто вони не є ні окремими робочими, ні робочими просторами - просто змінюється вікно перегляду!
Отже, щоб перейти між цими чотирма оглядами, просто зателефонуйте wmctrl -oкоманді безпосередньо зі VPзначеннями, переліченими вище, тобто:
wmctrl -o 0,0
wmctrl -o 0,600
wmctrl -o 1024,0
wmctrl -o 1024,600
РЕДАКТУВАННЯ: Джерело, вибачте, щойно це побачила відповідь @ wik - злиття / видалення відповідно.
wmctrlможна будь-коли перемикати вікно перегляду всередині робочого столу. Дивіться мою відповідь нижче.