Como criar um atalho para iniciar, minimizar e trazer programas para o primeiro plano

1

Acabei de mudar para o Linux e estou configurando meu laptop. No windows, eu uso um atalho AutoHotkey, para fazer o seguinte:  - Abra "chrome" quando não estiver ativo.
 - Minimize "chrome" quando estiver em primeiro plano.
 - Traga para o primeiro plano quando a janela não estiver ativa.

Eu uso o seguinte código em "Autokey", que funciona muito bem, mas eu adoraria se pudesse fazer isso com um simples script:

#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

Agora, tentei traduzir isso para o código bash, mas fiquei preso ao verificar se o Chrome está sendo executado em primeiro plano. Eu tive o seguinte pseudocódigo em mente, mas não consigo encontrar os comandos de shell certos:

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

Eu tentei obter esse comportamento no Linux usando um script de shell no aplicativo "atalho" do Linux. Mas até agora, não consegui encontrar uma maneira de verificar se o Google Chrome está em primeiro plano. Eu tentei usar o pacote "xdotools", mas isso não parece funcionar:

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

Você talvez tenha algumas dicas sobre qual é a melhor maneira de conseguir isso? Agora tenho os seguintes ingredientes:

Para abrir o google-chrome, uso:

google-chrome &

Para minimizar o google-chrome, uso:

xdotool windowminimize $(xdotool getactivewindow)

Para maximizar o google-chrome, uso:

wmctrl -x -a google-chrome

E eu acho que preciso usar algo assim para verificar se o cromo está em primeiro plano:

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

Muito obrigado antecipadamente,
Saudações, Rick,

Informação do sistema: Desktop: Estúdio Hp Zbook G3 ID do Distribuidor: Ubuntu Descrição: Bionic Beaver Ubuntu (ramo de desenvolvimento) Versão: 18.04 Codinome: bionic

    
por arcety 26.04.2018 / 22:10

1 resposta

1

Recebi a resposta da minha pergunta de um usuário em outro fórum .

#!/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
    
por arcety 30.04.2018 / 19:48