Qualquer maneira de abrir janelas na barra do Windows usando um atalho

Qualquer maneira de abrir janelas na barra do Windows usando um atalho

Existe alguma maneira de abrir janelas na barra do Windows usando um atalho? por exemplo, para abrir a primeira janela à esquerda Ctrl+1, para abrir a segunda janela à esquerda Ctrl+2.

Estou usando o xfce4 neste momento, mas se no xfce4 não for possível, existe algum outro ambiente de desktop que permita isso?

Como tenho várias janelas abertas para o mesmo aplicativo, não procuro sortcuts relacionados ao aplicativo, mas como digo abaixo, à janela.

Responder1

Com um pequeno script e uma pequena cirurgia em seu sistema, tudo pode ser organizado exatamente como você descreve.

Ingredientes

  1. wmctrl; possivelmente precisa ser instalado.
  2. O roteiro abaixo
  3. xprop, para obter as propriedades da janela. Isso já está instalado em seu sistema.
  4. Mudanças nas configurações do painel xfce
  5. Atalhos de teclado adicionais

Como configurar

  • Instalar wmctrl:

    sudo apt-get install wmctrl
    
  • Crie um diretório ~/bin( /home/<yourname>/bin). Copie o script abaixo em um arquivo vazio, salve-o como panel_navigate(sem extensão) ~/binetorná-lo executável.

  • Alterar as configurações do painel:
    Vá para Gerenciador de configurações > "Painel" > "Itens" (guia) > "Botões da janela" >

    • "Ordem de classificação" > Escolha:Carimbo de data e hora
    • "Agrupamento de janelas" > Escolha: "Nunca"
    • Certifique-se de que "Mostrar janelas de todos os espaços de trabalho ou viewports" estejaunmarcado

    insira a descrição da imagem aqui

  • Adicionar atalhos de teclado:
    vá para Gerenciador de configurações > "Teclado" > "Atalhos de aplicativos", escolha "Adicionar". Adicione o comando:

    panel_navigate 1
    

    Defina-o para a combinação de teclas Ctrl+1

    insira a descrição da imagem aqui

  • Agora você pode escolher:

    • repetir este procedimento para adicionar panel_navigate 2em Ctrl+ 2e assim por diante (até 9)

    (opção salvar)ou(se você não tem medo de editar os arquivos de configuração manualmente):

    • você pode editar o arquivo:

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

      no qual os atalhos de teclado (em xfce) são armazenados. Abra o arquivo com mousepade procure uma linha como:

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

      Copie a linha, cole-a na próxima linha (insert) e altere ambas as ocorrências de 1 para 2, para obter:

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

    e assim por diante..

    Certifique-se de que o recuo seja exatamente o mesmo. Repita o procedimento até às 9.

Saia e entre novamente e deve funcionar:

Ctrl+1

insira a descrição da imagem aqui

Ctrl+3

insira a descrição da imagem aqui

E assim por diante...

O roteiro

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

Explicação

A solução é oportunista. Ocorreu-me que a lista de janelas, chamada pelo comando wmcrl -l, é ordenada pela idade das janelas. Ao fazer o painel xfce fazer o mesmo (configurações), ambos os pedidos correspondem perfeitamente. O que o script faz é criar uma lista de janelas, filtrar as janelas "reais" visíveis (com xprop) e mudar para uma janela escolhida pelo comando panel_navigate, com o número da janela (da esquerda para a direita) como argumento.

Problemas

Notei uma exceção: as janelas IDLE (intérprete python) possuem pid 0 e suas propriedades não podem ser "pesquisadas" pelo xprop. As janelas não aparecem na lista de janelas e são ignoradas pelo script.

Observação

Embora a combinação de teclas Ctrl+ <number>não tenha gerado erros durante o teste, ela pode entrar em conflito com alguns aplicativos. Talvez seja mais seguro escolher (por exemplo) Ctrl+ Alt+1

Responder2

Não tenho certeza para o mesmo aplicativo, mas Unityvocê pode alternar aplicativos com super+number, como por exemplo, super + 1= primeiro item do inicializador, super + 2= o segundo item do inicializador, super + n= o enésimo item do inicializador. Isso também ajuda a abrir qualquer item colocado no inicializador, como se o nautilus fosse o primeiro item do inicializador, super + 1abriria o gerenciador de arquivos do nautilus.

informação relacionada