Как запустить приложение на другой рабочей области?

Проверьте отладочную информацию (-vvv) видеть, ожидает ли это протоколов, которые не существуют на том сервере. У меня были подобные признаки с gssapi аутентификацией. Посмотрите, где программа зависает, и попытайтесь выключить ту аутентификацию, например, добавив -o GSSAPIAuthentication=no к командной строке или к файлу конфигурации.

13
17.12.2011, 17:06
6 ответов

Проверьте Круг дьявола (хотя я не уверен, что он работал бы с Gnome3), и можно найти более полезную информацию об ударе stackoverflow.

В основном необходимо сделать следующее:

#!/bin/bash
wmctrl -n 8

firefox &
thunderbird &
/usr/bin/netbeans --locale en &
amsn &
gnome-terminal &
sleep 15

wmctrl -r firefox -t 0
wmctrl -r netbeans -t 1 
wmctrl -r terminal -t 2 
wmctrl -r amsn -t 6 
wmctrl -r thunderbird -t 7

#focus on terminal
wmctrl -a terminal 

(я имею просто копию и поэтапно осуществляю вышеупомянутый код из ссылки StackOverFlow выше, так как я думаю, что это сам объяснительное).

ОБНОВЛЕНИЕ:

Посмотрите здесь для более легкого решения на лучшем сайте для Gnome 3 расширения, необходимо установить Автоматическое расширение Windows Перемещения для Gnome 3. В случае, если это не работает на Вас (как Вы видите в ссылке существуют некоторые дистрибутивы, что автоматизация установки не работает правильно, получите более подробную эксплуатацию здесь о том, как получить его работа.

8
27.01.2020, 19:53

Исходное сообщение касалось использования сценария для отображения приложения в определенной рабочей области, например, в сценарии запуска можно было использовать другой сценарий, чтобы позволить пользователю продолжать работу, в то время как очень медленно запускающееся приложение загружается в другую рабочую область. Мой сценарий отлично работает в качестве интерфейса -для довольно громоздкого синтаксиса wmctrl, чтобы запускать любое приложение в любой заданной рабочей области из любой командной строки. Таким образом, следующий сценарий, который просто перечисляет что-то вроде lh 1 thunderbird; lh 2 firefox; lh 3 calculator.... или что-то еще, теперь прост. Однако есть некоторые трудности с синхронизацией, поэтому в моем сценарии есть сон. Ниже представлена ​​обновленная версия, которую я больше не буду поддерживать и публиковать. Используйте КАК ЕСТЬ, никаких гарантий пригодности для любого конкретного использования. Измените, как вам угодно. Я предлагаю сохранить как /usr/local/bin/lhпросто потому, что lhне является никаким другим известным именем программы, по крайней мере, не в Mint 18. Что касается переменных — я цитировал переменные, которые считал необходимыми.

#!/bin/sh
## Author: B.A. Computer Services www.ba-computer.com
## Purpose: Frontend to launch anything on a specific desktop/workspace.
##  lh is short for LaunchHere

USAGE="USAGE: $(basename $0) [-r] workspace(1,2,..) command\
    LaunchHere launches COMMAND on specific workspace.\
    -r option returns to current workspace"
[ -z "$1" ] && echo $USAGE && exit 0
ISRETURN=$(false); [ "$1" = "-r" ] && ISRETURN=true && shift;  
WRKSPC=$1;[ -z "$WRKSPC" ] && echo $USAGE && exit 0
WSN=$(expr $WRKSPC - 1)  ## wmctrl starts with 0 as first wrkspc
shift; CMD="$*"; [ -z "$CMD" ] && echo $USAGE && exit 0

WM=$(which wmctrl);[ -z "$WM" ] && echo MISSING wmctrl && exit 1
CURRENT=$(wmctrl -d | grep '*' | cut -c1)


# Switch to desired workspace
$WM -s $WSN
$CMD &
PID=$!
echo Executed $CMD on workspace $WRKSPC,  PID=$PID
sleep 3

# Return to CURRENT workspace ?
# [ $ISRETURN ] && echo TRUE || echo FALSE
[ $ISRETURN ] && $WM -s $CURRENT
2
20.08.2021, 13:30

Бета -, но у меня работает на Linux Mint.

#!/bin/sh
## Author: B.A. Computer Services www.ba-computer.com
## Purpose: Frontend to launch anything on a specific desktop/workspace.
##  lh is short for LaunchHere

USAGE="USAGE: $(basename $0) workspace(0,1,2,..) command"
WRKSPC=$1;[ -z "$WRKSPC" ] && echo $USAGE && exit 0
shift; CMD="$*"; [ -z "$CMD" ] && echo $USAGE && exit 0

WM=$(which wmctrl);[ -z "$WM" ] && echo MISSING wmctrl && exit 1

echo Executing $CMD on workspace $WRKSPC
$WM -s $WRKSPC
eval $CMD &
sleep 1
$WM -r :ACTIVE: -t $WRKSPC
0
20.08.2021, 13:30

Я обнаружил, что мне нужно вставить задержку, иначе это не работает, с sleep 10это работает. Убунту 20.04.

bash -c 'sleep 10; wmctrl -s 1; gnome-terminal; wmctrl -s 1'
0
20.08.2021, 13:30

Установить wmctrl

sudo apt install wmctrl

И создайте скрипт (в этом примере Thunderbird во второй рабочей области(-t 1)):

#!/bin/sh

 (thunderbird &)  & sleep 5 && 
sh -c "wmctrl -i -r `wmctrl -l | grep Thunderbird` -t 1"

Чтобы узнать имя вашего приложения на wmctrl, вы можете просмотреть его, нажав на свой терминал:

wmctrl -l

И замените его правильным именем в скрипте.

Будьте осторожны с заглавной буквой ("Thunderbird", а не "thunderbird" )!!

Другой пример с Firefox в 3D рабочей области(-t 2):

#!/bin/sh
(firefox &)  & sleep 5 && 
sh -c "wmctrl -i -r `wmctrl -l | grep Firefox` -t 2"

Бонус:

Вот команда для выполнения при запуске -up:

sh -c "thunderbird  & sleep 5 && wmctrl -i -r `wmctrl -l | grep Thunderbird` -t 1"

Работа над Дебаином 10 с корицей. Но должно работать у всех

1
20.08.2021, 13:30

Для достижения подобных целей я создал небольшую библиотеку сценариев Python. Вы можете найти его на gitHub как Launch on workspace . Для большинства программ его можно использовать так же просто, как

import launch_on_workspace as low

low.launch_and_move(['cmd','option1','option2',...], 3)

для запуска cmdс заданными параметрами на рабочем столе 3 (пронумерованы как в wmctrl, так что в GNOME будет 4 ).

Некоторым программам требуются определенные настройки (, когда они используют больше процессов для запуска ), а библиотека уже предлагает несколько пользовательских стартеров. Например, новое окно firefox можно запустить в рабочей области 3 с помощью firefox(3, url).

Кроме того, библиотека предлагает возможность перемещать окна на определенные экраны в настройках нескольких -мониторов.

1
20.08.2021, 13:30

Теги

Похожие вопросы