Можно ли каким-либо образом переключить приложение, запущенное в одном рабочем пространстве, на другое в командной строке? Я использую Ubuntu 10.04
UPDATE1 В соответствии с предложениями ниже
wmctrl -l
0x02200003 -1 bond Bottom Expanded Edge Panel
0x02200049 -1 bond Top Expanded Edge Panel
0x02000020 0 bond x-nautilus-desktop
0x04e00004 0 bond bond@bond: ~
0x0482a380 0 bond OMG! Ubuntu! | wmctrl - Chromium
0x05000072 0 bond how to shift applications from workspace 1 to 2 using command - Ask Ubuntu - Stack Exchange - Google Chrome
теперь, когда я набираю
wmctrl -r :OMG! Ubuntu! | wmctrl - Chromium: -t 2 No window was specified.
Итак, как правильно использовать его в качестве ошибки в предыдущем?
UPDATE1 Я попробовал
wmctrl -r 0x05000072 -t 2, но окна не имели эффекта, и они оставались в одном рабочем пространстве.
Изменив бит сценария, который он дал в качестве решения этого вопроса, следующее «приносит» данное окно в текущее рабочее пространство (в compiz):
#!/bin/bash
SCREEN_W=$(xwininfo -root | sed -n 's/^ Width: \(.*\)$/\1/p')
SCREEN_H=$(xwininfo -root | sed -n 's/^ Height: \(.*\)$/\1/p')
NAME="$1"
wmctrl -xlG | awk -v NAME="$NAME" '$7==NAME {print $1}' | while read WINS; do wmctrl -ir "$WINS" -e "0,0,0,$SCREEN_W,$SCREEN_H"; done
exit 0
Если произвольное рабочее пространство желательно, то это вопрос добавления / вычитания соответствующего $SCREEN_W / $SCREEN_H, столько раз, сколько рабочих пространств, окно находится далеко от целевого.
Во-первых, двоеточие является частью магического токена :ACTIVE:, чтобы указать активное окно. Вы не хотите этого нормально. Во-вторых, вам нужно указать строки с пробелами в них.
Вы также можете получить идентификатор окна (0x... в начале каждой строки) и использовать это вместо того, чтобы пытаться заставить заголовок работать.
$ wmctrl -r 'OMG! Ubuntu! | wmctrl - Chromium' -t 2 # wherever it is, move it to 2
$ wmctrl -r 0x0482a380 -t 2 # same thing
Попробуйте:
wmctrl -r “window name(or any string in the title)” -t `wmctrl -d | grep “workspace name” | cut -d" " -f1`
позвольте мне объяснить: в помощи wmctrl показывает
-r <WIN> -t <DESK> Move the window to the specified desktop.
<DESK> A desktop number. Desktops are counted from zero.
<WIN> This argument specifies the window. By default it's
interpreted as a string. The string is matched
against the window titles and the first matching
window is used. The matching isn't case sensitive
and the string may appear in any position
of the title.
The -i option may be used to interpret the argument
as a numerical window ID represented as a decimal
number. If it starts with "0x", then
it will be interpreted as a hexadecimal number.
wmctrl -d может отображать все рабочие области, на моем компьютере теперь отображается как следующее:
0 - DG: 1600x900 VP: N/A WA: 0,0 1600x868 code 1 * DG: 1600x900 VP: 0,0 WA: 0,0 1600x868 play 2 - DG: 1600x900 VP: N/A WA: 0,01600x868 research* означает текущее рабочее пространство
BTW, wmctrl -l означает перечислить все окна (которые вы уже знаете), на моем компьютере теперь они: [ ! d4] 0x05400008 1 user-LinuxMint Terminal 0x03a0008e 0 user-LinuxMint Mozilla Firefox
, так как «DESK» должен быть числом, я использую grep “workspace name” | cut -d" " -f1, чтобы получить его.
Например, если я хочу переместить Firefox в «код» рабочей области, я может использовать:
wmctrl -r "firefox" -t 0
или
wmctrl -r "moz" -t `wmctrl -d | grep "code" | cut -d" " -f1`
, но
wmctrl -r -i 0x03a0008e -t `wmctrl -d | grep "code" | cut -d" " -f1`
Просто работайте со мной один раз, и я не знаю, почему!
Если вы используете совместимый оконный менеджер, например Metacity (Unity 2-d), вы можете использовать wmctrl для переключения окна на другой рабочий стол. Синтаксис wmctrl -r :ACTIVE: -t <DESKTOP>. Вы также можете изменить текущий рабочий стол, используя wmctrl -s <DESKTOP>. Номера настольных компьютеров начинаются с 0. В одной строке это будет:
wmctrl -r :ACTIVE: -t 1; wmctrl -s 1
Если вы хотите переключить окно, отличное от активного, на другой рабочий стол, используйте текст из заголовка в качестве аргумента для - р. Например:
wmctrl -r "Chromium" -t 1
В качестве альтернативы вы можете использовать wmctrl -l для отображения доступных окон и передачи идентификационного номера на -r вместо специальной строки :ACTIVE:. При передаче id вам также нужно добавить -i. Например:
$ wmctrl -l
0x03e00189 0 hostname Ask Ubuntu - Chromium
$ wmctrl -i -r 0x03e00189 -t 2
(wmctrl может быть установлен на Ubuntu с sudo apt-get install wmctrl.) В настоящее время это, похоже, не работает со стандартным Unity, к сожалению.
Вот мой сценарий, который реализует то, что вы просите: https://github.com/norswap/wmov/blob/master/wmov.sh
В текущей форме он может отправлять окна (выбирается путем сопоставления строки без учета регистра с заголовком подстрок, например, для опции wmctrl -r) на другие рабочие столы либо путем выбора явного номера рабочего стола, либо путем указания направления рабочего стола с текущего рабочего стола. [ ! d2]
Например:
./wmov.sh mov "Google Chrome" 3 # sends Chrome to desktop 3 (bottom left)
./mov.sh mov Skype right # sends Skype to the desktop to the right of
# the current desktop (if any)
Он работает, как описано в сообщении desgua. Это также возможность отправки окон в другие рабочие области.
Если вы используете compiz, посмотрите на вики-страницу compiz. Там вы найдете несколько примеров. Посмотрите на плагин «put».
Пример
./compiz-dbus-send.py put put_viewport_right_key
Это возможно с помощью xdotool, но если вы используете compiz, это решение может быть неприменимо, поэтому, пожалуйста, помните об этом.
Чтобы переключить конкретное окно ( активное окно) в другое рабочее пространство, вы можете использовать
xdotool getactivewindow set_desktop_for_window 1
. Или для сценария вы можете переключать окна конкретной программы на заданное рабочее пространство с помощью:
xdotool search --class firefox set_desktop_for_window %@ 1
Эта команда выполняет поиск и находит окно (ы) firefox и передает их в рабочее пространство 1, где они будут отображаться с минимальными значениями. Чтобы вернуть firefox на рабочий стол по умолчанию, просто замените 1 на 0 в конце команды. Чтобы отправить другое окно в другое рабочее пространство, просто замените firefox на другое имя программы.
Очень важно использовать %@ для представления окон, переданных из параметра --search, как если бы вы 't никакие окна не будут переданы.
Для получения дополнительной информации см. man xdotool и man-файлы Ubuntu онлайн.
Изменив бит сценария, который он дал в качестве решения этого вопроса, следующее «приносит» данное окно в текущее рабочее пространство (в compiz):
#!/bin/bash
SCREEN_W=$(xwininfo -root | sed -n 's/^ Width: \(.*\)$/\1/p')
SCREEN_H=$(xwininfo -root | sed -n 's/^ Height: \(.*\)$/\1/p')
NAME="$1"
wmctrl -xlG | awk -v NAME="$NAME" '$7==NAME {print $1}' | while read WINS; do wmctrl -ir "$WINS" -e "0,0,0,$SCREEN_W,$SCREEN_H"; done
exit 0
Если произвольное рабочее пространство желательно, то это вопрос добавления / вычитания соответствующего $SCREEN_W / $SCREEN_H, столько раз, сколько рабочих пространств, окно находится далеко от целевого.
Во-первых, двоеточие является частью магического токена :ACTIVE:, чтобы указать активное окно. Вы не хотите этого нормально. Во-вторых, вам нужно указать строки с пробелами в них.
Вы также можете получить идентификатор окна (0x... в начале каждой строки) и использовать это вместо того, чтобы пытаться заставить заголовок работать.
$ wmctrl -r 'OMG! Ubuntu! | wmctrl - Chromium' -t 2 # wherever it is, move it to 2
$ wmctrl -r 0x0482a380 -t 2 # same thing
Попробуйте:
wmctrl -r “window name(or any string in the title)” -t `wmctrl -d | grep “workspace name” | cut -d" " -f1`
позвольте мне объяснить: в помощи wmctrl показывает
-r <WIN> -t <DESK> Move the window to the specified desktop.
<DESK> A desktop number. Desktops are counted from zero.
<WIN> This argument specifies the window. By default it's
interpreted as a string. The string is matched
against the window titles and the first matching
window is used. The matching isn't case sensitive
and the string may appear in any position
of the title.
The -i option may be used to interpret the argument
as a numerical window ID represented as a decimal
number. If it starts with "0x", then
it will be interpreted as a hexadecimal number.
wmctrl -d может отображать все рабочие области, на моем компьютере теперь отображается как следующее:
0 - DG: 1600x900 VP: N/A WA: 0,0 1600x868 code 1 * DG: 1600x900 VP: 0,0 WA: 0,0 1600x868 play 2 - DG: 1600x900 VP: N/A WA: 0,01600x868 research* означает текущее рабочее пространство
BTW, wmctrl -l означает перечислить все окна (которые вы уже знаете), на моем компьютере теперь они: [ ! d4] 0x05400008 1 user-LinuxMint Terminal 0x03a0008e 0 user-LinuxMint Mozilla Firefox
, так как «DESK» должен быть числом, я использую grep “workspace name” | cut -d" " -f1, чтобы получить его.
Например, если я хочу переместить Firefox в «код» рабочей области, я может использовать:
wmctrl -r "firefox" -t 0
или
wmctrl -r "moz" -t `wmctrl -d | grep "code" | cut -d" " -f1`
, но
wmctrl -r -i 0x03a0008e -t `wmctrl -d | grep "code" | cut -d" " -f1`
Просто работайте со мной один раз, и я не знаю, почему!
Если вы используете совместимый оконный менеджер, например Metacity (Unity 2-d), вы можете использовать wmctrl для переключения окна на другой рабочий стол. Синтаксис wmctrl -r :ACTIVE: -t <DESKTOP>. Вы также можете изменить текущий рабочий стол, используя wmctrl -s <DESKTOP>. Номера настольных компьютеров начинаются с 0. В одной строке это будет:
wmctrl -r :ACTIVE: -t 1; wmctrl -s 1
Если вы хотите переключить окно, отличное от активного, на другой рабочий стол, используйте текст из заголовка в качестве аргумента для - р. Например:
wmctrl -r "Chromium" -t 1
В качестве альтернативы вы можете использовать wmctrl -l для отображения доступных окон и передачи идентификационного номера на -r вместо специальной строки :ACTIVE:. При передаче id вам также нужно добавить -i. Например:
$ wmctrl -l
0x03e00189 0 hostname Ask Ubuntu - Chromium
$ wmctrl -i -r 0x03e00189 -t 2
(wmctrl может быть установлен на Ubuntu с sudo apt-get install wmctrl.) В настоящее время это, похоже, не работает со стандартным Unity, к сожалению.
Вот мой сценарий, который реализует то, что вы просите: https://github.com/norswap/wmov/blob/master/wmov.sh
В текущей форме он может отправлять окна (выбирается путем сопоставления строки без учета регистра с заголовком подстрок, например, для опции wmctrl -r) на другие рабочие столы, либо путем выбора явного номера рабочего стола, либо путем указания направления рабочего стола с текущего рабочего стола. [ ! d2]
Например:
./wmov.sh mov "Google Chrome" 3 # sends Chrome to desktop 3 (bottom left)
./mov.sh mov Skype right # sends Skype to the desktop to the right of
# the current desktop (if any)
Он работает, как описано в сообщении desgua. Это также возможность отправки окон в другие рабочие области.
Если вы используете compiz, посмотрите на вики-страницу compiz. Там вы найдете несколько примеров. Посмотрите на плагин «put».
Пример
./compiz-dbus-send.py put put_viewport_right_key
Это возможно с помощью xdotool, но если вы используете compiz, это решение может быть неприменимо, поэтому, пожалуйста, помните об этом.
Чтобы переключить конкретное окно ( активное окно) в другое рабочее пространство, вы можете использовать
xdotool getactivewindow set_desktop_for_window 1
. Или для сценария вы можете переключать окна конкретной программы на заданное рабочее пространство с помощью:
xdotool search --class firefox set_desktop_for_window %@ 1
Эта команда выполняет поиск и находит окно (ы) firefox и передает их в рабочее пространство 1, где они будут отображаться с минимальными значениями. Чтобы вернуть firefox на рабочий стол по умолчанию, просто замените 1 на 0 в конце команды. Чтобы отправить другое окно в другое рабочее пространство, просто замените firefox на другое имя программы.
Очень важно использовать %@ для представления окон, переданных из параметра --search, как если бы вы 't никакие окна не будут переданы.
Для получения дополнительной информации см. man xdotool и man-файлы Ubuntu онлайн.
Изменив бит сценария, который он дал в качестве решения этого вопроса, следующее «приносит» данное окно в текущее рабочее пространство (в compiz):
#!/bin/bash
SCREEN_W=$(xwininfo -root | sed -n 's/^ Width: \(.*\)$/\1/p')
SCREEN_H=$(xwininfo -root | sed -n 's/^ Height: \(.*\)$/\1/p')
NAME="$1"
wmctrl -xlG | awk -v NAME="$NAME" '$7==NAME {print $1}' | while read WINS; do wmctrl -ir "$WINS" -e "0,0,0,$SCREEN_W,$SCREEN_H"; done
exit 0
Если произвольное рабочее пространство желательно, то это вопрос добавления / вычитания соответствующего $SCREEN_W / $SCREEN_H, столько раз, сколько рабочих пространств, окно находится далеко от целевого.
Во-первых, двоеточие является частью магического токена :ACTIVE:, чтобы указать активное окно. Вы не хотите этого нормально. Во-вторых, вам нужно указать строки с пробелами в них.
Вы также можете получить идентификатор окна (0x... в начале каждой строки) и использовать это вместо того, чтобы пытаться заставить заголовок работать.
$ wmctrl -r 'OMG! Ubuntu! | wmctrl - Chromium' -t 2 # wherever it is, move it to 2
$ wmctrl -r 0x0482a380 -t 2 # same thing
Попробуйте:
wmctrl -r “window name(or any string in the title)” -t `wmctrl -d | grep “workspace name” | cut -d" " -f1`
позвольте мне объяснить: в помощи wmctrl показывает
-r <WIN> -t <DESK> Move the window to the specified desktop.
<DESK> A desktop number. Desktops are counted from zero.
<WIN> This argument specifies the window. By default it's
interpreted as a string. The string is matched
against the window titles and the first matching
window is used. The matching isn't case sensitive
and the string may appear in any position
of the title.
The -i option may be used to interpret the argument
as a numerical window ID represented as a decimal
number. If it starts with "0x", then
it will be interpreted as a hexadecimal number.
wmctrl -d может отображать все рабочие области, на моем компьютере теперь отображается как следующее:
0 - DG: 1600x900 VP: N/A WA: 0,0 1600x868 code 1 * DG: 1600x900 VP: 0,0 WA: 0,0 1600x868 play 2 - DG: 1600x900 VP: N/A WA: 0,01600x868 research* означает текущее рабочее пространство
BTW, wmctrl -l означает перечислить все окна (которые вы уже знаете), на моем компьютере теперь они: [ ! d4] 0x05400008 1 user-LinuxMint Terminal 0x03a0008e 0 user-LinuxMint Mozilla Firefox
, так как «DESK» должен быть числом, я использую grep “workspace name” | cut -d" " -f1, чтобы получить его.
Например, если я хочу переместить Firefox в «код» рабочей области, я может использовать:
wmctrl -r "firefox" -t 0
или
wmctrl -r "moz" -t `wmctrl -d | grep "code" | cut -d" " -f1`
, но
wmctrl -r -i 0x03a0008e -t `wmctrl -d | grep "code" | cut -d" " -f1`
Просто работайте со мной один раз, и я не знаю, почему!
Если вы используете совместимый оконный менеджер, например Metacity (Unity 2-d), вы можете использовать wmctrl для переключения окна на другой рабочий стол. Синтаксис wmctrl -r :ACTIVE: -t <DESKTOP>. Вы также можете изменить текущий рабочий стол, используя wmctrl -s <DESKTOP>. Номера настольных компьютеров начинаются с 0. В одной строке это будет:
wmctrl -r :ACTIVE: -t 1; wmctrl -s 1
Если вы хотите переключить окно, отличное от активного, на другой рабочий стол, используйте текст из заголовка в качестве аргумента для - р. Например:
wmctrl -r "Chromium" -t 1
В качестве альтернативы вы можете использовать wmctrl -l для отображения доступных окон и передачи идентификационного номера на -r вместо специальной строки :ACTIVE:. При передаче id вам также нужно добавить -i. Например:
$ wmctrl -l
0x03e00189 0 hostname Ask Ubuntu - Chromium
$ wmctrl -i -r 0x03e00189 -t 2
(wmctrl может быть установлен на Ubuntu с sudo apt-get install wmctrl.) В настоящее время это, похоже, не работает со стандартным Unity, к сожалению.
Вот мой сценарий, который реализует то, что вы просите: https://github.com/norswap/wmov/blob/master/wmov.sh
В текущей форме он может отправлять окна (выбирается путем сопоставления строки без учета регистра с заголовком подстрок, например, для опции wmctrl -r) на другие рабочие столы либо путем выбора явного номера рабочего стола, либо путем указания направления рабочего стола с текущего рабочего стола. [ ! d2]
Например:
./wmov.sh mov "Google Chrome" 3 # sends Chrome to desktop 3 (bottom left)
./mov.sh mov Skype right # sends Skype to the desktop to the right of
# the current desktop (if any)
Он работает, как описано в сообщении desgua. Это также возможность отправки окон в другие рабочие области.
Если вы используете compiz, посмотрите на вики-страницу compiz. Там вы найдете несколько примеров. Посмотрите на плагин «put».
Пример
./compiz-dbus-send.py put put_viewport_right_key
Это возможно с помощью xdotool, но если вы используете compiz, это решение может быть неприменимо, поэтому, пожалуйста, помните об этом.
Чтобы переключить конкретное окно ( активное окно) в другое рабочее пространство, вы можете использовать
xdotool getactivewindow set_desktop_for_window 1
. Или для сценария вы можете переключать окна конкретной программы на заданное рабочее пространство с помощью:
xdotool search --class firefox set_desktop_for_window %@ 1
Эта команда выполняет поиск и находит окно (ы) firefox и передает их в рабочее пространство 1, где они будут отображаться с минимальными значениями. Чтобы вернуть firefox на рабочий стол по умолчанию, просто замените 1 на 0 в конце команды. Чтобы отправить другое окно в другое рабочее пространство, просто замените firefox на другое имя программы.
Очень важно использовать %@ для представления окон, переданных из параметра --search, как если бы вы 't никакие окна не будут переданы.
Для получения дополнительной информации см. man xdotool и man-файлы Ubuntu онлайн.
Изменив бит сценария, который он дал в качестве решения этого вопроса, следующее «приносит» данное окно в текущее рабочее пространство (в compiz):
#!/bin/bash
SCREEN_W=$(xwininfo -root | sed -n 's/^ Width: \(.*\)$/\1/p')
SCREEN_H=$(xwininfo -root | sed -n 's/^ Height: \(.*\)$/\1/p')
NAME="$1"
wmctrl -xlG | awk -v NAME="$NAME" '$7==NAME {print $1}' | while read WINS; do wmctrl -ir "$WINS" -e "0,0,0,$SCREEN_W,$SCREEN_H"; done
exit 0
Если произвольное рабочее пространство желательно, то это вопрос добавления / вычитания соответствующего $SCREEN_W / $SCREEN_H, столько раз, сколько рабочих пространств, окно находится далеко от целевого.
Во-первых, двоеточие является частью магического токена :ACTIVE:, чтобы указать активное окно. Вы не хотите этого нормально. Во-вторых, вам нужно указать строки с пробелами в них.
Вы также можете получить идентификатор окна (0x... в начале каждой строки) и использовать это вместо того, чтобы пытаться заставить заголовок работать.
$ wmctrl -r 'OMG! Ubuntu! | wmctrl - Chromium' -t 2 # wherever it is, move it to 2
$ wmctrl -r 0x0482a380 -t 2 # same thing
Попробуйте:
wmctrl -r “window name(or any string in the title)” -t `wmctrl -d | grep “workspace name” | cut -d" " -f1`
позвольте мне объяснить: в помощи wmctrl показывает
-r <WIN> -t <DESK> Move the window to the specified desktop.
<DESK> A desktop number. Desktops are counted from zero.
<WIN> This argument specifies the window. By default it's
interpreted as a string. The string is matched
against the window titles and the first matching
window is used. The matching isn't case sensitive
and the string may appear in any position
of the title.
The -i option may be used to interpret the argument
as a numerical window ID represented as a decimal
number. If it starts with "0x", then
it will be interpreted as a hexadecimal number.
wmctrl -d может отображать все рабочие области, на моем компьютере теперь отображается как следующее:
0 - DG: 1600x900 VP: N/A WA: 0,0 1600x868 code 1 * DG: 1600x900 VP: 0,0 WA: 0,0 1600x868 play 2 - DG: 1600x900 VP: N/A WA: 0,01600x868 research* означает текущее рабочее пространство
BTW, wmctrl -l означает перечислить все окна (которые вы уже знаете), на моем компьютере теперь они: [ ! d4] 0x05400008 1 user-LinuxMint Terminal 0x03a0008e 0 user-LinuxMint Mozilla Firefox
, так как «DESK» должен быть числом, я использую grep “workspace name” | cut -d" " -f1, чтобы получить его.
Например, если я хочу переместить Firefox в «код» рабочей области, я может использовать:
wmctrl -r "firefox" -t 0
или
wmctrl -r "moz" -t `wmctrl -d | grep "code" | cut -d" " -f1`
, но
wmctrl -r -i 0x03a0008e -t `wmctrl -d | grep "code" | cut -d" " -f1`
Просто работайте со мной один раз, и я не знаю, почему!
Если вы используете совместимый оконный менеджер, например Metacity (Unity 2-d), вы можете использовать wmctrl для переключения окна на другой рабочий стол. Синтаксис wmctrl -r :ACTIVE: -t <DESKTOP>. Вы также можете изменить текущий рабочий стол, используя wmctrl -s <DESKTOP>. Номера настольных компьютеров начинаются с 0. В одной строке это будет:
wmctrl -r :ACTIVE: -t 1; wmctrl -s 1
Если вы хотите переключить окно, отличное от активного, на другой рабочий стол, используйте текст из заголовка в качестве аргумента для - р. Например:
wmctrl -r "Chromium" -t 1
В качестве альтернативы вы можете использовать wmctrl -l для отображения доступных окон и передачи идентификационного номера на -r вместо специальной строки :ACTIVE:. При передаче id вам также нужно добавить -i. Например:
$ wmctrl -l
0x03e00189 0 hostname Ask Ubuntu - Chromium
$ wmctrl -i -r 0x03e00189 -t 2
(wmctrl может быть установлен на Ubuntu с sudo apt-get install wmctrl.) В настоящее время это, похоже, не работает со стандартным Unity, к сожалению.
Вот мой сценарий, который реализует то, что вы просите: https://github.com/norswap/wmov/blob/master/wmov.sh
В текущей форме он может отправлять окна (выбирается путем сопоставления строки без учета регистра с заголовком подстрок, например, для опции wmctrl -r) на другие рабочие столы, либо путем выбора явного номера рабочего стола, либо путем указания направления рабочего стола с текущего рабочего стола. [ ! d2]
Например:
./wmov.sh mov "Google Chrome" 3 # sends Chrome to desktop 3 (bottom left)
./mov.sh mov Skype right # sends Skype to the desktop to the right of
# the current desktop (if any)
Он работает, как описано в сообщении desgua. Это также возможность отправки окон в другие рабочие области.
Если вы используете compiz, посмотрите на вики-страницу compiz. Там вы найдете несколько примеров. Посмотрите на плагин «put».
Пример
./compiz-dbus-send.py put put_viewport_right_key
Это возможно с помощью xdotool, но если вы используете compiz, это решение может быть неприменимо, поэтому, пожалуйста, помните об этом.
Чтобы переключить конкретное окно ( активное окно) в другое рабочее пространство, вы можете использовать
xdotool getactivewindow set_desktop_for_window 1
. Или для сценария вы можете переключать окна конкретной программы на заданное рабочее пространство с помощью:
xdotool search --class firefox set_desktop_for_window %@ 1
Эта команда выполняет поиск и находит окно (ы) firefox и передает их в рабочее пространство 1, где они будут отображаться с минимальными значениями. Чтобы вернуть firefox на рабочий стол по умолчанию, просто замените 1 на 0 в конце команды. Чтобы отправить другое окно в другое рабочее пространство, просто замените firefox на другое имя программы.
Очень важно использовать %@ для представления окон, переданных из параметра --search, как если бы вы 't никакие окна не будут переданы.
Для получения дополнительной информации см. man xdotool и man-файлы Ubuntu онлайн.
Если вы используете compiz, посмотрите на compiz wiki . Там вы найдете несколько примеров. Посмотрите на плагин «put».
Пример
./ compiz-dbus-send.py put put_viewport_right_key
Это можно сделать с помощью xdotool
, но если вы используете compiz
, это решение может быть неприменимо, поэтому имейте это в виду.
Чтобы переключить конкретное окно (активное окно) в другое рабочее пространство, вы можете использовать
xdotool getactivewindow set_desktop_for_window 1
Или для скрипта вам может потребоваться переключить окна конкретной программы на заданное рабочее пространство с помощью:
xdotool search --class firefox set_desktop_for_window% @ 1
Эта команда выполняет поиск и находит окно firefox
и переносит их в рабочее пространство 1, где они будут отображаться с минимальными значениями. Чтобы вернуть firefox
на рабочий стол по умолчанию, просто замените 1 на 0 в конце команды. Чтобы отправить другое окно в другое рабочее пространство, просто замените firefox
на другое имя программы.
Очень важно, чтобы вы использовали % @
для представления окон, прошедших мимо из параметра - search
, как будто вы не переносите никаких окон.
Для получения дополнительной информации см. man xdotool
и Ubuntu manpages online.