LINUX.ORG.RU

Скрипт запуска viber

 , , ,


0

1

Так как viber не умеет запускаться свёрнутым в трей, решил сделать скрипт запуска закрывающий его окно:

#!/bin/bash

/usr/bin/flatpak run --branch=stable --arch=x86_64 --command=viber --file-forwarding com.viber.Viber @@u %u@@
sleep 5
wmctrl -c Viber

Этот скрипт запускает viber, но не закрывает его. wmctrl тупо не отрабатывает. При этом в консоли wmctrl -c Viber отрабатывает хорошо (при открытом окне viber). В скрипте не работает. Пробовал и с viber установленным через flatpak, и через deb и appimage, это не влияет.

Перемещено hobbit из general

★★

Последнее исправление: KOT040188 (всего исправлений: 1)

Ответ на: комментарий от anonymous

символ & в скрипте небось забыл?

anonymous
()

# /usr/bin/flatpak run... – погоди, ты закоммитил строку в скрипте и ждешь что она заработает?

anonymous
()
Ответ на: комментарий от anonymous

s/закоммитил/закомментировал/

anonymous
()
Ответ на: комментарий от anonymous

Не, решетка случайно попалась в процессе экспериментов. Поправил.

KOT040188 ★★
() автор топика
Последнее исправление: KOT040188 (всего исправлений: 1)
Ответ на: комментарий от KOT040188

Вопрос в том, запускается ли приложение в фоне или нет. Если нет, то скрипт просто останавливается на первой строке, пока Вайбер работает. Советую попробовать запустить его в консоли, и посмотреть переходит ли оно в фон. Если нет, то нужно добавить соотв. перевод в фоновый режим. Как рекомендовали выше.

thegoldone
()
Ответ на: комментарий от PPP328

Я же написал в первом сообщении, что пробовал и с установленным deb, и appimage, и тут не было никаких path, но ситуацию это не меняет.

KOT040188 ★★
() автор топика
Ответ на: комментарий от thegoldone

Я не знаю ничего про фоновый режим, но указал в первом сообщении, что если просто запустить команду wmctrl -c Viber в консоли при открытом окне Viber, он закрывается. В скрипта я использовал те же елманды, что были в главном меню для запуска Viber установленного через deb и через flatpak. Appimage естественно просто скачан и запущен.

KOT040188 ★★
() автор топика
Ответ на: комментарий от KOT040188

Попробуй так:

#!/bin/bash

/usr/bin/flatpak run --branch=stable --arch=x86_64 --command=viber --file-forwarding com.viber.Viber @@u %u@@ &
sleep 5
wmctrl -c Viber

Aoka
()

Видимо flatpak run запускает приложение в фоне и окно появляется в другой момент.

for i in {0..10}; do
    wmctrl -c Viber && exit
    sleep $((2**i))
done
fumanchez
()
Ответ на: комментарий от Aoka

Да, так работает. Но оказалось, если открыта эта тема в вивальди, в её названии есть Viber и команда wmctrl -c Viber пытается закрыть вивальди. Как ей указать конкретно окно Viber?

KOT040188 ★★
() автор топика
Последнее исправление: KOT040188 (всего исправлений: 1)
Ответ на: комментарий от KOT040188

Суть одна - команда отработала, а окно ещё на подходе. Это бред делать sleep и надеяться, что окно должно уже быть на экране.

fumanchez
()
Ответ на: комментарий от KOT040188

Я и 10 ставил, но без & вторая команда не отрабатывала.

Потому что без &, у тебя скрипт на первой строчке останавливается пока ты из Viber не выйдешь. А из отдельного терминала понятно, что срабатывало, т.к. это другой терминал.

Чтобы работало только с окном Viber, попробуй

-x                   Include WM_CLASS in the window list or
                       interpret <WIN> as the WM_CLASS name.

Но надо будет указывать WM_CLASS, какой он там у него, я не знаю, ищи.

Ещё как вариант

-F                   Modifies the behavior of the window title matching
                       algorithm. It will match only the full window title
                       instead of a substring, when this option is used.
                       Furthermore it makes the matching case sensitive.

Но я фиг знаю какое там полное имя окна у твоего viber, одно там слово или нет. Ну и надежнее всё же WM_CLASS.

Loki13 ★★★★★
()
Последнее исправление: Loki13 (всего исправлений: 1)
Ответ на: комментарий от KOT040188

Ну да. Я установил вайбер, у меня так получилось, попробуй. Только у меня не через флатпак установлен и пришлось xdotool использовать.

#!/bin/bash

/usr/bin/viber &
sleep 5
pid=`pidof Viber`
wid=`xdotool  search --pid $pid`
xdotool windowminimize $wid
Aoka
()
Ответ на: комментарий от PPP328

Ты пробовал? Во первых, это для сворачивания в панель задач, во вторых, не работает.

KOT040188 ★★
() автор топика

переменную DISPLAY надо указывать перед запуском команды, если дело в Xorg происходит

Ygor ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.