Cualquier forma de abrir ventanas desde la barra de ventanas usando un acceso directo

Cualquier forma de abrir ventanas desde la barra de ventanas usando un acceso directo

¿Alguna forma de abrir ventanas desde la barra de ventanas usando un acceso directo? por ejemplo para abrir la primera ventana a la izquierda Ctrl+1, para abrir la segunda ventana a la izquierda Ctrl+2.

Estoy usando xfce4 en este momento, pero si no es posible bajo xfce4, ¿existe algún otro entorno de escritorio que lo permita?

Como tengo varias ventanas abiertas para la misma aplicación, no busco sortcuts relacionados con la aplicación sino, como digo a continuación, con la ventana.

Respuesta1

Con un pequeño guión y una pequeña cirugía en su sistema, se puede arreglar exactamente como lo describe.

Ingredientes

  1. wmctrl; posiblemente sea necesario instalarlo.
  2. El guión a continuación
  3. xprop, para obtener las propiedades de la ventana. Esto ya está instalado en su sistema.
  4. Cambios de configuración en la configuración del panel xfce
  5. Atajos de teclado adicionales

Como instalar

  • Instalar wmctrl:

    sudo apt-get install wmctrl
    
  • Cree un directorio ~/bin( /home/<yourname>/bin). Copie el siguiente script en un archivo vacío, guárdelo como panel_navigate(sin extensión) en ~/binyhacerlo ejecutable.

  • Cambiar la configuración del panel:
    Vaya al Administrador de configuración > "Panel" > "Elementos" (pestaña) > "Botones de ventana" >

    • "Orden de clasificación" > Elegir:Marca de tiempo
    • "Agrupación de ventanas" > Elija: "Nunca"
    • Asegúrese de que "Mostrar ventanas de todos los espacios de trabajo o ventanas gráficas" esté seleccionado.Naciones Unidasmarcado

    ingrese la descripción de la imagen aquí

  • Agregar atajos de teclado:
    vaya al Administrador de configuración > "Teclado" > "Atajos de aplicaciones", elija "Agregar". Agregue el comando:

    panel_navigate 1
    

    Configúrelo con la combinación de teclas Ctrl+1

    ingrese la descripción de la imagen aquí

  • Ahora puedes elegir:

    • repetir este procedimiento para agregar panel_navigate 2debajo de Ctrl+ 2y así sucesivamente (hasta 9)

    (guardar opción)o(si no tienes miedo de editar los archivos de configuración manualmente):

    • puedes editar el archivo:

      ~/.config/xfce4/xfconf/xfce-perchanel-xml/xfce4-keyboard-shortcuts.xml
      

      xfceen el que se almacenan los atajos de teclado (en ). Abra el archivo mousepady busque una línea como:

      <property name="&lt;Primary&gt;1" type="string" value="panel_navigate 1"/>
      

      Copie la línea, péguela en la siguiente línea (insertar) y cambie ambas apariciones de 1 a 2, así obtendrá:

      <property name="&lt;Primary&gt;1" type="string" value="panel_navigate 1"/>
      <property name="&lt;Primary&gt;2" type="string" value="panel_navigate 2"/>
      

    etcétera..

    Asegúrate de que la sangría sea exactamente la misma. Repita el procedimiento hasta las 9.

Cierre sesión y vuelva a iniciarla y debería funcionar:

Ctrl+1

ingrese la descripción de la imagen aquí

Ctrl+3

ingrese la descripción de la imagen aquí

Etcétera...

La secuencia de comandos

#!/usr/bin/env python3

import subprocess
import sys

def get_value(command):
    return subprocess.check_output(["/bin/bash", "-c", command]).decode("utf-8").strip()

def run_command(command):
    subprocess.Popen(["/bin/bash", "-c", command])

current_workspace = [l for l in get_value("wmctrl -d").splitlines() if l.split(" ")[2] == "*"][0][0]
wlist_ids = [item.split()[0:4] for item in get_value("wmctrl -l").splitlines()]
relevant = [item for item in wlist_ids if item[1] == current_workspace]
panel = []
for item in relevant:
    data = get_value("xprop -id "+item[0])
    if ("_TYPE_NORMAL" in data, "TYPE_DIALOG" in data).count(True) == 1:
        panel.append(item)
try:
    window = panel[int(sys.argv[1])-1][0]
    run_command("wmctrl -ia "+window)
except IndexError:
    pass

Explicación

La solución es oportunista. Se me ocurrió que la lista de ventanas, llamada por el comando wmcrl -l, está ordenada por la antigüedad de las ventanas. Al hacer que el panel xfce haga lo mismo (configuraciones), ambos pedidos se corresponden perfectamente. Lo que hace el script es crear una lista de ventanas, filtrar las ventanas "reales" visibles (con xprop) y cambiar a una ventana elegida mediante el comando panel_navigate, con el número de la ventana (de izquierda a derecha) como elemento.

Asuntos

Noté una excepción: las ventanas IDLE (intérprete de Python) tienen pid 0 y sus propiedades no pueden ser "investigadas" por xprop. Las ventanas no aparecen en la lista de ventanas y el script las omite.

Nota

Aunque la combinación de teclas Ctrl+ <number>no generó ningún error durante la prueba, podría entrar en conflicto con algunas aplicaciones. Podría ser más seguro elegir (por ejemplo) Ctrl+ Alt+1

Respuesta2

No estoy seguro para la misma aplicación, pero Unitypuede cambiar de aplicación con super+number, como por ejemplo, super + 1= primer elemento del iniciador, super + 2= el segundo elemento del iniciador, super + n= el enésimo elemento del iniciador. Esto también ayuda a abrir cualquier elemento colocado en el iniciador, por ejemplo, si nautilus es el primer elemento del iniciador, super + 1se abrirá el administrador de archivos de nautilus.

información relacionada