Ответы:
Благодаря Марко, я понял, как использовать 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-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
на ваше имя пользователя.
Откройте «Автозагрузка приложений», « Система» -> «Настройки» -> «Автозагрузка приложений» .
Нажмите кнопку « Добавить» и в поле « Command» введите запись /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 1
0 * DG: 4098x768 VP: 1366,0 WA: 0,24 1366x744 Workspace 1
0 * 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
РЕДАКТИРОВАТЬ: Ups, извините, только что увидел, что это то же самое, что и ответ @ wik - объединить / удалить, если это необходимо ..
wmctrl
все равно можете переключать видовой экран на рабочем столе. Смотрите мой ответ ниже.