Eu encontrei um script no fluxbox wiki que usa wmctrl
para encontrar um aplicativo e aumentar sua janela se ele já estiver em execução. Caso contrário, o script inicia o aplicativo. Eu estou usando esse script com ajustes para suportar argumentos, que tenho documentado em meu blog .
-
Certifique-se de que
wmctrl
esteja instalado.sudo apt-get install wmctrl
-
Adicione o seguinte script ao seu caminho (possivelmente em
$HOME/bin/find_app.sh
) e torne-o executável.#!/bin/bash # Find_app # Author: Lucas van Staden (lvs at dedmeet.com / http://www.dedmeet.com) # This little script will try and find the application attempting to start # in the running processes, and if found, focus the application # if not found, a new instance will start # usage: # find_app.sh <application with full path> # params # 1 - application to start (full path) # helper applications DOLLARONE=$(echo $1 | sed -e 's/[\t ]*$//') #Delete trailing spaces WMCTRL='which wmctrl'; GREP='which grep'; APPLICATION=$(echo $DOLLARONE | cut -d ' ' -f 1) if [ "x$APPLICATION" != "x$DOLLARONE" ]; then APPARGS=$(echo $DOLLARONE | cut -d ' ' -f 2) fi BASENAME='basename $APPLICATION'; BASENAME='echo $BASENAME | tr "[:upper:]" "[:lower:]"' FOUND=0; function findwindow { # 1 = BASENAME # 2 = WMCTRL # 3 = GREP IFS=$'\n'; for RUNNING in '$2 -l -x' do if [ 'echo $RUNNING | tr "[:upper:]" "[:lower:]" | $3 -c $DOLLARONE' -gt 0 ] then HOSTNAME='hostname' WINDOW=${RUNNING#*${HOSTNAME} } $2 -a $WINDOW FOUND=1; fi; done } if [ "x$APPARGS" = "x" ]; then findwindow $BASENAME $WMCTRL $GREP; if [ $FOUND -eq 0 ] then $APPLICATION & sleep 2; # Try and find the application, after opened findwindow $BASENAME $WMCTRL $GREP; if [ $FOUND -eq 0 ] then # Still not found, wait a bit more, and try again sleep 3; findwindow $BASENAME $WMCTRL $GREP; fi fi else $APPLICATION $APPARGS & fi
-
Atualize os arquivos de entrada da área de trabalho dos aplicativos nos quais você deseja ter um atalho singular para iniciar e elevar, para que os aplicativos sejam invocados por meio do script acima.
Por exemplo:
cp /usr/share/applications/firefox.desktop ~/.local/share/applications/
Edite
firefox.desktop
em~/.local/share/applications/
e altere a linhaExec
para se referir afind_app.sh
:Exec=find_app.sh "firefox %u"
-
Agora adicione um atalho de teclado para seu navegador padrão:
Configurações do sistema | Teclado | Atalhos | Lançadores | Inicie o navegador da Web
-
Reinicie o shell do gnome: Pressione
Alt r
para abrir o diálogo de execução. Digiter
e pressioneEnter
.
Agora você deve poder iniciar / aumentar seu navegador usando um único atalho de teclado.