Método abreviado de teclado personalizado para cambiar a una ventana específica en Unity Switcher

Método abreviado de teclado personalizado para cambiar a una ventana específica en Unity Switcher

¿Es posible vincular una clave personalizada para cambiar a una aplicación específica?

Por ejemplo:
super+1 cambia a la ventana de Chrome (no es la primera en la lista de ventanas).
super+2 cambia a la ventana nautilus

O al menos:
super+1 cambia a la primera ventana
super+2 cambia a la segunda ventana

Respuesta1

Esto requeriría un poco de trabajo, pero podría hacerlo con scripts y combinaciones de teclas.

Hay una herramienta llamadaxdotooly te permite simular pulsaciones de teclado. Puede vincular las teclas de su teclado para ejecutar scripts que utilicen esta herramienta.

Usando cualquier idioma que prefiera para canalizar comandos de terminal, puede encontrar ID de proceso específicos con ps aux | grep "process here"

Al usarlo xdotool search --pid "process ID here", obtendrá múltiples ID de ventana para una sola aplicación. No sé cómo ordenarlos para encontrar el correcto, así que lo que podría hacer es tener su script, iterar los ID encontrados en

xdotool windowactivate "window ID here"que abrirá su ventana.

Por ejemplo, mi clave 1 estará vinculada para ejecutar un script que encuentre el ID del proceso para "filezilla". Luego encontrará los ID de la ventana con xdotool, tomará esos ID y luego los pasará a través de xdotool para abrir la ventana. La clave 2, podría ser "google-chrome"

Respuesta2

Reuní lo que sugirió el Sr. Lee y creé este guión:

#!/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)" 

Básicamente ignora la posibilidad de cualquier error, pero funciona para mí.

información relacionada