AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / ubuntu / Perguntas / 1107496
Accepted
Lexible
Lexible
Asked: 2019-01-07 11:00:58 +0800 CST2019-01-07 11:00:58 +0800 CST 2019-01-07 11:00:58 +0800 CST

Como minimizar rapidamente todas as janelas de um único aplicativo?

  • 772

Eu sei como minimizar/ocultar todas as janelas no Cosmic Cuttlefish/GNOME Shell usando SUPER+ D, mas gostaria de poder minimizar rapidamente apenas todas as janelas de um único aplicativo (digamos, aquele que atualmente tem o foco do cursor). Por exemplo, gostaria de minimizar todos os documentos do LibreOffice ou todas as janelas do Terminal.

Não estou vendo ou reconhecendo uma maneira de fazer isso em Configurações> Dispositivos> Teclado. Isso é possível?

shortcuts shortcut-keys window-manager gnome-shell
  • 2 2 respostas
  • 2094 Views

2 respostas

  • Voted
  1. pomsky
    2019-01-07T11:11:28+08:002019-01-07T11:11:28+08:00

    Este não é um atalho de teclado, mas outra maneira de minimizar todas as janelas de um aplicativo. Você pode habilitar ' minimizar ao clicar ' no dock do Ubuntu. Então, quando você clicar em um ícone de aplicativo no dock, ele minimizará todas as janelas (ou aumentará, se já estiverem minimizadas) desse aplicativo.

    Para ativar esta opção, execute o seguinte comando no Terminal:

    gsettings set org.gnome.shell.extensions.dash-to-dock click-action 'minimize'
    

    (Referência: Como habilito 'minimizar ao clicar' no dock do Ubuntu no Ubuntu 17.10 e posterior? )

    • 7
  2. Best Answer
    Jacob Vlijm
    2019-01-07T11:56:10+08:002019-01-07T11:56:10+08:00

    OK, apenas um rápido para se divertir :)

    ###Minimize as janelas do aplicativo atualmente ativo Você pode usar uma versão simplificada/editada deste script , que vem com uma instalação padrão do Ubuntu Budgie. Enquanto o script original alterna a área de trabalho, o editado abaixo minimiza todas as janelas, no espaço de trabalho atual, do arquivo WM_CLASS.

    ###O script, como usar

    • Certifique-se de ter ambos xdotoole wmctrlinstalados:

        sudo apt install wmctrl xdotool
      
    • Copie o script abaixo em um arquivo vazio, salve-o comominimize_current.py

    • Crie um atalho de teclado para executar o script e pronto :). Use o comando:

        python3 /path/to/minimize_current.py
      

    ###O roteiro

    #!/usr/bin/env python3
    import subprocess
    
    ignore = [
        "= _NET_WM_WINDOW_TYPE_DOCK",
        "= _NET_WM_WINDOW_TYPE_DESKTOP",
    ]
    
    
    def get(cmd):
        return subprocess.check_output(cmd).decode("utf-8").strip()
    
    
    def get_currws():
        return [l.split()[0] for l in get(
            ["wmctrl", "-d"]).splitlines() if "*" in l][0]
    
    
    def get_valid(w_id):
        # see if the window is a valid one (type)
        w_data = get(["xprop", "-id", w_id])
        if w_data:
            return True if not any([t in w_data for t in ignore]) else False
        else:
            return False
    
    def get_wmclass(w_id):
        return get(["xprop", "-id", w_id, "WM_CLASS"])
    
    
    def get_state(w_id):
        return "window state: Iconic" in get(["xprop", "-id", w_id, "WM_STATE"])
    
    
    currws = get_currws()
    allwinsdata = [w.split() for w in get(["wmctrl", "-l"]).splitlines()]
    winsoncurr = [w[0] for w in allwinsdata if w[1] == currws]
    
    active_w = get(["xdotool", "getactivewindow"])
    activeclass = get_wmclass(active_w)   
    relevant = [w for w in winsoncurr if get_valid(w)]
    
    
    # windows on current workspace, normal state
    tominimize = [
        w for w in relevant if all(
            [not get_state(w), get_wmclass(w) == activeclass]
        )
    ]
      
    for w in tominimize:
        subprocess.Popen(["xdotool", "windowminimize", w])
    

    ###Observação Observe que nem xdotoolnem wmctrl, conforme usado neste script, funcionará em Wayland.

    • 6

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Existe um comando para listar todos os usuários? Também para adicionar, excluir, modificar usuários, no terminal?

    • 9 respostas
  • Marko Smith

    Como excluir um diretório não vazio no Terminal?

    • 4 respostas
  • Marko Smith

    Como descompactar um arquivo zip do Terminal?

    • 9 respostas
  • Marko Smith

    Como instalo um arquivo .deb por meio da linha de comando?

    • 11 respostas
  • Marko Smith

    Como instalo um arquivo .tar.gz (ou .tar.bz2)?

    • 14 respostas
  • Marko Smith

    Como listar todos os pacotes instalados

    • 24 respostas
  • Martin Hope
    Flimm Como posso usar o docker sem sudo? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    led-Zepp Como faço para salvar a saída do terminal em um arquivo? 2014-02-15 11:49:07 +0800 CST
  • Martin Hope
    ubuntu-nerd Como descompactar um arquivo zip do Terminal? 2011-12-11 20:37:54 +0800 CST
  • Martin Hope
    TheXed Como instalo um arquivo .deb por meio da linha de comando? 2011-05-07 09:40:28 +0800 CST
  • Martin Hope
    Ivan Como listar todos os pacotes instalados 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    David Barry Como determino o tamanho total de um diretório (pasta) na linha de comando? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher "Os seguintes pacotes foram retidos:" Por que e como resolvo isso? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford Como os PPAs podem ser removidos? 2010-07-30 01:09:42 +0800 CST

Hot tag

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve