Atalho de teclado personalizado para mudar para uma janela específica no Unity Switcher

Atalho de teclado personalizado para mudar para uma janela específica no Unity Switcher

É possível vincular uma chave personalizada para mudar para um aplicativo específico?

Por exemplo:
super+1 muda para a janela cromada (não é a primeira na lista de janelas).
super+2 muda para a janela do nautilus

Ou pelo menos:
super+1 muda para a primeira janela
super+2 muda para a segunda janela

Responder1

Isso daria um pouco de trabalho, mas você poderia fazer isso com scripts e atalhos de teclado.

Existe uma ferramenta chamadaxdotoole permite simular pressionamentos de teclado. Você pode vincular as teclas do teclado para executar scripts que utilizam esta ferramenta.

Usando qualquer idioma de sua preferência para canalizar comandos de terminal, você pode encontrar IDs de processos específicos com ps aux | grep "process here"

Usando xdotool search --pid "process ID here"você receberá vários IDs de janela para um único aplicativo. Não sei como classificá-los para encontrar o correto, então o que você pode fazer é ter seu script, iterar os IDs encontrados em

xdotool windowactivate "window ID here"que abrirá sua janela.

Por exemplo, minha chave 1 será vinculada para executar um script que encontre o ID do processo para "filezilla". Em seguida, ele encontrará os IDs das janelas com xdotool, pegará esses IDs e os passará por xdotool para abrir a janela. A chave 2 pode ser "google-chrome"

Responder2

Juntei o que o Sr.Lee sugeriu e criei este script:

#!/bin/bash                                                                     

APP=$1                                                                          
if [ -z "$APP" ]; then                                                          
  echo Usage: $0 EXECUTABLE_NAME                                                
  exit 1                                                                        
fi                                                                              

PID=$(pgrep -f $APP | head -n 1)                                                
if [ -z "$PID" ]; then                                                          
  echo $APP executable not found                                                
  exit 2                                                                        
fi                                                                              

for WINDOW_ID in $(xdotool search --pid $PID); do                               
  xdotool windowactivate $WINDOW_ID                                             
done                                                                            

notify-send "Switched to $APP (PID=$PID)" 

Basicamente ignora a possibilidade de qualquer erro, mas funciona para mim.

informação relacionada