Сценарий запуска на Debian 8 (Jessie) с etherwake не работает

Причина довольно проста: когда вы запускаете хром , он не возвращается до завершения, то есть после закрытия Хром . Таким образом, sleep и i3-msg будут запускаться только после того, как окно уже исчезнет.

Чтобы решить эту проблему, вам просто нужно запустить хром в фоновом режиме, это можно сделать, добавив к команде & .Требуется спящий режим , без него i3-msg может быть запущен до того, как Chromium даже инициализирует свое окно. Пять секунд могут быть немного длинными, но на самом деле это зависит от того, как быстро Chromium открывается в вашей системе.

Кроме того, я бы предложил добавить критерии к i3-msg . Таким образом, он работает с любым окном Chromium , а не только с текущим сфокусированным окном, которое на самом деле может не быть желаемым окном Chromium (очевидно, это может быть нежелательным поведением, если вы хотите, чтобы некоторые окна Chromium были полноэкранными).

#!/bin/sh
i3-msg workspace web
/bin/chromium --start-fullscreen &
sleep 2
i3-msg '[instance="^chromium$"] fullscreen disable'

В качестве альтернативы , если вы хотите, чтобы окна Chromium всегда отображались в рабочей области «Интернет», вы можете использовать директивы конфигурации assign и for_window . в вашей конфигурации i3 для выполнения работы:

assign [instance="^chromium$"] web
for_window [instance="^chromium$"] exec "sh -c 'sleep 2; i3-msg \[instance=chromium\] fullscreen disable'"

При этом вам больше не нужен скрипт, и каждый раз, когда вы запускаете chromium i3 , он будет размещать его в сети и через две секунды окно выйдет из полноэкранного режима.
Примечание: Хотя теоретически можно использовать полноэкранный режим напрямую с for_window , он не работает с Chromium , потому что окно фактически начать в полноэкранном режиме. Chromium просто очень быстро включает полноэкранный режим; к сожалению, i3 работает еще быстрее при запуске for_window . Таким образом, i3 отключит полноэкранный режим до того, как Chromium даже попытается его включить.Поэтому необходим обход с запущенными sleep и i3-msg через exec .

3
27.02.2017, 13:14
1 ответ

Проблема в том, что update-rc.d etherwake по умолчанию может не работать. Попробуйте включить службу через systemctl , запустите:

systemctl enable etherwake
0
27.01.2020, 21:38

Теги

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