¿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
wmctrl
; posiblemente sea necesario instalarlo.- El guión a continuación
xprop
, para obtener las propiedades de la ventana. Esto ya está instalado en su sistema.- Cambios de configuración en la configuración del panel xfce
- 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 comopanel_navigate
(sin extensión) en~/bin
yhacerlo 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
- "Orden de clasificación" > Elegir:Marca de tiempo
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
Ahora puedes elegir:
- repetir este procedimiento para agregar
panel_navigate 2
debajo 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
xfce
en el que se almacenan los atajos de teclado (en ). Abra el archivomousepad
y busque una línea como:<property name="<Primary>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="<Primary>1" type="string" value="panel_navigate 1"/> <property name="<Primary>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.
- repetir este procedimiento para agregar
Cierre sesión y vuelva a iniciarla y debería funcionar:
Ctrl+1
Ctrl+3
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 Unity
puede 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 + 1
se abrirá el administrador de archivos de nautilus.