O atalho da área de trabalho funciona para o script bash, mas não para o script real?

1

Eu preciso criar um script que eu possa vincular a um atalho de teclado. O script abre uma instância do mozilla se ele não estiver aberto e minimiza ou maximiza a janela. Tipo como o terminal suspenso.

O script está funcionando quando eu abri-lo de um atalho na área de trabalho, mas se eu abrir o script diretamente clicando nele ou macro-lo para um atalho de teclado não funciona como esperado. Ele só abre o mozilla, mas não minimiza ou maximiza

#!/bin/bash

touch memory.txt
myvar="$( xdotool search Mozilla )"
status="$(grep [0-1] memory.txt)"
run=0

if [ $(grep -c [0-9] <<< $myvar) -gt 0 ]
then
    pwd
else
    (firefox &)
fi

if [ $status = 0 ]
then
    $(xdotool windowminimize $myvar)
    echo -n "1" > memory.txt
    run=1   
fi

if [ $status = 1 ] && [ $run -eq 0 ]
then
    $(wmctrl -ia $myvar)
    echo -n "0" > memory.txt
fi
exit
    
por Carter Apas 09.08.2018 / 01:26

1 resposta

1

  • Que Ambiente de Área de Trabalho você está usando?
  • Como você está definindo os atalhos de teclado? Através de um script ou ferramenta de gui ou cli?

Em relação ao seu script, certifique-se de definir o caminho completo do seu script no gerenciador de atalhos. Não use ~ porque ele não será interpretado pelo shell gráfico. Além disso, certifique-se de definir o script como executável.

Aqui está um script que eu uso para realizar a mesma coisa que você está procurando: (eu uso para um aplicativo diferente e, portanto, alterei o código abaixo para representar "firefox" para corresponder à sua pergunta.) Nota: Estou usando o GNOME 3.28.2 e xdotool 3.20160805.1

#!/bin/bash
wid=$(xdotool search --onlyvisible --name 'firefox')
if test "$wid" = "" ; then exec firefox &
fi
actual=$(xdotool getactivewindow)
if test $wid = $actual ; then xdotool windowminimize $wid
else xdotool windowactivate $wid
fi
##EOF
    
por 09.08.2018 / 02:49

Tags