Есть ли область Amarok для музыкальной линзы?

Некоторые из кода оболочки из этого источника не выполняют то, что он утверждает; в основном тип, который идет:

if [ -n $(pgrep -f vlc) ]; then (vlc &); fi

Это выполняется vlc & в двух случаях. Если нет процессов, соответствующих «vlc», и если есть ровно один процесс, соответствующий «vlc». Если существует более одного процесса, соответствующего «vlc», vlc & не будет запущен. Таким образом, эти блоки являются бесполезными. Просто vlc &, скорее всего, будет более корректным.

В Интернете, к сожалению, часто встречается плохой совет.

Из вашего описания проблемы, что вы хотите получить, это программа запускается, если она еще не запущена, и если она запущена, принесите это окно на передний план и придайте ей фокус. Для этого можно использовать wmctrl.

wmctrl -a 'Mozilla Firefox' найдет в своем названии окно, содержащее «Mozilla Firefox», и «активирует» его. То есть, перейдите к рабочему пространству, в котором он находится, выведите его на передний план и придайте ему фокус. Во-вторых, если никакие окна не совпадают, wmctrl ничего не сделает и не выйдет с ненулевым (ложным) статусом выхода, и в этом случае мы можем предположить, что программа не запущена, и запустите ее.

wmctrl -a 'Mozilla Firefox' || firefox &
[d6 ] Это все еще не идеально. Другие окна, кроме окон firefox, потенциально могут содержать эту строку в заголовке, поэтому мы должны найти более надежный способ определения правильного окна в этом случае.

С -x, wmctrl будет работать на VM_CLASS которое обычно имеет уникальное значение для каждой программы. Все окна firefox будут иметь VM_CLASS «Navigator.Firefox», как видно из запуска wmctrl -lx при запуске firefox

$ wmctrl -lx
...
0x03ba3d43  3 gnome-terminal.Gnome-terminal  pilot Terminal
0x04c000bc  0 Navigator.Firefox     pilot Group #1 - Speed Dial - Mozilla Firefox

С помощью этого мы можем выбрать окно с точно «Navigator.Firefox» как VM_CLASS

wmctrl -Fxa Navigator.Firefox || firefox &

То же самое, мы надеемся, будет применимо и к другим программам.

1
задан 27 April 2012 в 08:37

1 ответ

Пока нет. Но вы можете легко написать один!

1
ответ дан 25 May 2018 в 12:22
  • 1
    хорошо, что это всегда вариант и, вероятно, что я буду делать, если еще ничего не готово. Вы проверите свой артикул! – sulaweyo 27 April 2012 в 00:03
  • 2
    Это очень легко, даже если вы не знаете, как программировать, Python вполне дружелюбен к новичкам; прыгать в учебник. – Jjed 27 April 2012 в 00:05
  • 3
    Нет проблем, я могу программировать, но не использовал python в течение некоторого времени (обычно для Windows) Thx – sulaweyo 27 April 2012 в 00:14

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

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