Как мне сказать, чтобы программа запуска была свернута?

19

Вот вопрос, который беспокоил меня. Вы знаете, как правильно настроить программу для запуска при запуске? Ну, как я могу сказать, чтобы начать сворачивать, как вы бы сделали в Windows?

TeamViewer начинает открываться, но мне нужно, чтобы он был минимизирован, а Tray - просто не выглядит элегантным способом сделать это.

пол-новичок
источник

Ответы:

21

Вы можете использовать инструмент под названием devilspie Установить Devilspie .

Этот инструмент может выполнять действия сразу после запуска программ, такие как отправка в рабочие области, закрепление, а также сворачивание. Учебник здесь .

  • Чтобы установить его из командной строки, выполните:

sudo apt-get install devilspie,

  • Чтобы настроить его так, чтобы Teamviewer минимизировался при каждом его выполнении:

    mkdir ~/.devilspie

Создайте файл с именем ~/.devilspie/teamviewer.dsи вставьте следующие строки:

(if  
(is (application_name) "Teamviewer")  
(begin (minimize) )  
)  

Если вам нужен графический интерфейс для более простой настройки, обратите внимание на gdevilspie Установите gdevilspie

(если GDevilspie не запускается, попробуйте залатать один ).

MJB
источник
1
Это работает, но когда я восстанавливаю свернутое окно, оно рисуется неправильно - фон окна TeamViewer становится копией всего, что находится под ним, и некоторый текст не виден, например, i.imgur.com/0p6yR.pngскрыл текст в трех текстовых полях). Другие винные приложения этого не делают (Notepad ++, Picasa).
Мистербен
5

Я наткнулся на этот пост с той же самой проблемой, когда TeamViewer не запускается свернутым при настройке на автоматический запуск при запуске системы Ubuntu.
Метод, описанный @MJB 27 января в 16:02, отлично работал для меня (я использую Ubuntu 10.10 32bit, все обновления установлены до этой даты, с teamviewer_linux_x32_v6.0.9224.deb).
Я не испытываю глюков, описанных @misterben 14 февраля в 18:50.
Я установил GDevilspie через Ubuntu Software Center, запустил его, создал новое правило и настроил GDevilspie для отображения следующего кода на вкладке «Raw»:

( if 
( begin 
( is ( application_name ) "Teamviewer" )
( is ( window_name ) "TeamViewer" )
) 
( begin 
( minimize )
( println "match" )
)
)

Демон devilspie настроен на автоматический запуск при запуске системы, а teamviewer настроен на автоматический запуск через «Система» -> «Настройки» -> «Запуск приложений» (нажмите «Добавить», команда: teamviewer).

Было бы здорово, если бы разработчики TeamViewer интегрировали минимизированный старт для Linux.

Спасибо MJB! :)

QWERTZ
источник
4

Минимизация программы зависит от программы, поддерживает она это или нет. Это также зависит от того, есть ли у программы опция в графическом интерфейсе или через командную строку. Например, в настройках vlc есть опция, позволяющая минимизировать запуск. Но у него также есть опция в командной строке, чтобы минимизировать запуск (например, параметры). Опция минимизации также меняется в зависимости от программы. Некоторые программы могут быть program -minдругими, могут быть program -systray, и т. Д. Убедитесь, что Teamviewer, например, имеет опцию для этого в опциях графического интерфейса. Если в программе есть параметр минимизации командной строки, просто добавьте его в диспетчер запуска.

Луис Альварадо
источник
Teamviewer использует Wine для поддержки работы в Linux. Поскольку версии для Windows не принимают никаких параметров командной строки, также как и версия для Linux. Кроме того, если кто-то сворачивает его в трей, он будет использовать значок Wine, если другой инструмент не используется вместе с другим.
Грег Чабала
1

Я также сворачиваю Teamviewer в трей при запуске, но я использую KDocker .

sudo apt-get install kdocker

Мой стартовый скрипт состоит из одной строки:

kdocker -n Teamviewer -i /opt/teamviewer/teamviewer/7/desktop/teamviewer.png -d 40 /usr/bin/teamviewer7 &
  • -n это имя окна
  • -i это значок файла
  • -d ограничение 40 секунд, после которого kdocker сдается, если не может найти подходящее окно
Грег Чабала
источник
0

Начиная с Teamviewer 8.0.20931 автоматически сворачивается функция панели задач. Но в Gnome classic он создаст Wine System Tray, и я не знаю, как его минимизировать. Я попробовал скрипт (сохраненный как ~ / .devilspie / wine.ds):

( if 
( begin 
( is ( application_name ) "Wine" )
( is ( window_name ) "Wine System Tray" )
) 
( begin 
( minimize )
( println "match" )
)
)

... но это не сработало

С новым Teamviewer 8.0.20931 для Linux работает даже вход в систему на экране входа в Linux - когда ни один пользователь еще не вошел в систему. Но через некоторое время, когда вы входите и выходите дважды или около того, вы не можете подключиться к Teamviewer. Вы должны иметь удаленный доступ через командную строку, чтобы перезагрузить компьютер - тогда он снова работает.

Zeroconf
источник
0

Devilspie по какой-то причине не работал в моей системе. В конце концов я нашел замену (не так элегантно). Я установил wmctrl:

sudo apt-get install wmctrl

Используя wmctrl -lнайденные имена окон, я хотел закрыть при запуске. После этого поместите эти команды в скрипт (создайте новый пустой файл и назовите его .<...>.sh. Точка в начале имени, чтобы скрыть его):

wmctrl -c <Window_1>
wmctrl -c <Window_2>
wmctrl -c <Window_3>

Наконец, добавили этот файл в автозагрузку приложений через пару секунд после цели.


Обратите внимание, что эта команда закрывает окна. Чтобы запустить свернутую программу, в разных рабочих местах найдите соответствующие опции в руководстве по программе.

Сергей
источник
Если вы не заставите его «ловко» ждать окно, успех будет зависеть от времени между появлением окна и командой, чтобы свести к минимуму. Как уже было сказано, лучше сделайте так, чтобы оно умело ждали окна, иначе оно не будет работать, когда ваша система занята (и, следовательно, медленнее). Кроме того, существует риск конфликта имен, поскольку вы используете не идентификатор окна, а (часть) имя в качестве идентификатора. см. askubuntu.com/a/663288/72216
Джейкоб Влейм
Я согласен. Я даже разместил там свою версию сценария. Я все еще использую это для наблюдателя команды все же.
Сергей
0

2017 рабочее решение!

Я из редакции Manjaro (XFCE), но так как это решение для кросс-линукс с devilspie, то это полное решение для запуска свернутого средства просмотра команды:

  1. Открытый терминал

  2. Установить devilspieпакет:

    apt-get install devilspie
  3. Создать домашнюю папку:

    mkdir ~/.devilspie
  4. Создайте следующий скрипт (используйте любой редактор, который вам нужен nano):

    nano ~/.devilspie/teamviewer.ds
  5. Вставьте следующий скрипт и сохраните файл (для nano- CTRL + x , затем Y , затем ENTER ):

    ( if
    ( begin
    ( is (application_name) "Teamviewer")
    ( is (window_name) "TeamViewer")
    )
    ( begin (close) )
    )
    1. В devilspieперспективе все шаги выполнены, но боковое окно «Компьютеры и контакты» будет отображаться при каждом запуске. Чтобы скрыть это, откройте:

TeamViewer -> Дополнительно -> Параметры -> Дополнительно -> «Показать дополнительные параметры» -> «Показать компьютеры и контакты при запуске» (находится в разделе «Дополнительные параметры для компьютеров и контактов») и снимите флажок.

Шаги для TeamViewer 12 . В последующих версиях они могут отличаться.

НОТА:

Использование (свернуть) вместо (закрыть) в сценарии devilspie привело к ошибке «TeamViewer не готов. Проверьте соединение», и без перезапуска службы средства просмотра команды это не сработало.

Erikas
источник
0

в новой версии программа уже имеет значок в трее, но при запуске появляются два основных окна программы. Так что я использую этот скрипт

#! /bin/sh

/opt/teamviewer/tv_bin/TeamViewer &
sleep 10
TV_WIN_ID=$(xdotool search --name TeamViewer)
TV_WIN_ID2=$(xdotool search --name 'Компьютеры и контакты')

if [ -n "$TV_WIN_ID" ] ; then
 sleep 1
 xdotool windowactivate $TV_WIN_ID
 xdotool key Alt+F4  
else
 exit 1
fi
if [ -n "$TV_WIN_ID2" ] ; then
 sleep 1
 xdotool windowactivate $TV_WIN_ID2
 xdotool key Alt+F4  
 else
exit 1
fi
Андрей
источник