Управление рабочей областью и открытыми программами с помощью сценария bash

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

#!/bin/bash xdotool set_num_desktops 5 & xdotool set_desktop 0 & nohup opera --new-window https://duo.dur.ac.uk > /dev/null xdotool set_desktop 1 & nohup opera --new-window http://tomato.es > /dev/null xdotool set_desktop 2 & nohup spotify > /dev/null xdotool set_desktop 3 & nohup opera --new-window > /dev/null

Однако это не работает, скрипт создает 5 рабочих областей по мере необходимости, однако он останавливается после создания первого окна Opera. Чтобы создать другие окна, я должен закрыть первый.

0
задан 16 August 2017 в 14:12

2 ответа

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

& на многих ваших линиях скажите ему сделать команду в фоновом режиме (т. е. не ждать), которая не находится в опере, выделить строки, что означает, что сценарий приостанавливается до тех пор, пока эти строки не закончатся.

0
ответ дан 18 July 2018 в 08:26

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

& на многих ваших линиях скажите ему сделать команду в фоновом режиме (т. е. не ждать), которая не находится в опере, выделить строки, что означает, что сценарий приостанавливается до тех пор, пока эти строки не закончатся.

0
ответ дан 24 July 2018 в 19:05
  • 1
    Я попытался добавить & на другие строки, но сценарий в этом случае не работает. – daljit97 16 August 2017 в 15:04
  • 2
    в конце команды и перед перенаправлением? (или у вас есть & как часть перенаправления?) – guiverc 16 August 2017 в 15:12
  • 3
    Итак, я добавил & в конце каждой строки (кроме последней). Однако иногда скрипт открывает все окна на одном рабочем столе, а иногда просто ничего не делает (он пытается открыть некоторые окна, но они очень быстро закрываются). – daljit97 16 August 2017 в 17:38
  • 4
    Я не использовал xdotool, поэтому я не хочу комментировать его. когда я сделал что-то подобное, я обычно использовал wmctl, о котором я знаю, не работает с каждым DE или WM. Я предполагаю, что вам может потребоваться добавить паузу (sleep или equiv.), Чтобы заставить сценарий задерживаться до тех пор, пока ваша рабочая станция не выполнит требуемую задачу gui.app.load, но это будет аппаратно-аппаратная (более длинная для более медленного оборудования ..) – guiverc 17 August 2017 в 06:22
  • 5
    Хорошо, я попробую с wmctrl – daljit97 17 August 2017 в 17:12

Другие вопросы по тегам:

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