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

Я просто переключился на Linux, и я настраиваю свой ноутбук. В окнах я использую ярлык AutoHotkey, чтобы сделать следующее:
- Откройте "хром", когда это не будет активно.
- Минимизируйте "хром" когда это на переднем плане.
- Принесите его к переднему плану, когда окно не будет активно.

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

#AutoKey script to toggle any windowed application, Nautilus as the example. Requires xdotool and wmctrl.
import subprocess
command = 'wmctrl -lx'
output = system.exec_command(command, getOutput=True)  

if 'google-chrome' in output:
    winClass = window.get_active_class()
    if winClass == 'google-chrome.Google-chrome':
        system.exec_command("xdotool windowminimize $(xdotool getactivewindow)")
    else:
        system.exec_command("wmctrl -x -a google-chrome")

else:
    system.exec_command("google-chrome")
#end script

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

if chrome is not open
   open chrome
else
   if chrome is on foreground
      minimize chrome
   else
      bring chrome to foreground
end

Я пытался сделать, получают это поведение в Linux при помощи сценария оболочки в приложении "ярлыка" Linux. Но до настоящего времени, я не смог найти способ проверить, находится ли Google Chrome на переднем плане. Я пытался использовать "xdotools" пакет, но это, кажется, не работает:

if ($(xdotool search --name "Google Chrome") -eq $(xdotool getactivewindow))
     xdotool windowminimize $(xdotool getactivewindow)
else
     wmctrl -x -a google-chrome
end

У Вас, возможно, есть некоторые подсказки относительно того, что лучший способ состоит в том, чтобы достигнуть этого? У меня теперь есть следующие компоненты:

Для открытия Google Chrome, я использую:

google-chrome &

Для уменьшения Google Chrome, я использую:

xdotool windowminimize $(xdotool getactivewindow)

Для максимизации Google Chrome, я использую:

wmctrl -x -a google-chrome

И я думаю, что должен использовать что-то вроде этого, чтобы проверить, находится ли хром на переднем плане:

wmctrl -lx
xdotool search --name "Google Chrome"
xdotool getactivewindow
enter code here

Большое спасибо заранее,
Поздравления, Rick,

Информация о системе: Рабочий стол: студийный идентификатор Дистрибьютора Hp Zbook G3: Описание Ubuntu: Ubuntu Бионический Бобр (ответвление разработки) Выпуск: 18.04 Кодовое название: бионический

1
задан 29 April 2018 в 16:44

1 ответ

Я получил ответ на свой вопрос от пользователя на другом форуме.

#!/bin/bash

chromefocus=$(xdotool getwindowfocus getwindowname | grep -c "Google Chrome")

if [ "$chromefocus" -gt "0" ]; then
        xdotool windowminimize $(xdotool getactivewindow)
    else
        wmctrl -xa "google-chrome.Google-chrome" || /usr/bin/google-chrome
fi
1
ответ дан 7 December 2019 в 15:20

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

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