Ao tentar instalar o Flameshot no Arch (kernel 6.15.3-arch1-1; GNOME 48.3), surge um erro ao tentar utilizá-lo. Ao abrir o software o gnome notifications mostra:

Unable to capture screen

e o journalctl:

Jun 26 22:53:09 HAL9000-DESK xdg-desktop-por[1989]: Failed to associate portal window with parent window Jun 26 22:53:09 HAL9000-DESK xdg-desktop-por[1877]: Failed to show access dialog: GDBus.Error:org.freedesktop.DBus.Error.AccessDenied: GDBus.Error:org.freedesktop.DBus.Error.AccessDenied: Only the focused app is allowed to show a system access dialog Jun 26 22:53:09 HAL9000-DESK org.flameshot.Flameshot.desktop[5732]: flameshot: error: Unable to capture screen Jun 26 22:53:09 HAL9000-DESK org.flameshot.Flameshot.desktop[5732]: flameshot: error: Unable to capture screen

Pelo que li, existe uma limitação do GNOME + Wayland: ferramentas que não são nativas (como o Flameshot) precisam passar por um portal (DBUS) e pedir permissão para capturar tela, mas o GNOME barra isso para proteger o usuário, dando esses erros.


✅ Solução recomendada

  1. Instalar os pacotes necessários

    sudo pacman -S flameshot xdg-desktop-portal xdg-desktop-portal-gnome

O portal do GNOME (xdg-desktop-portal-gnome) é essencial para que o sistema gerencie corretamente as permissões.

  1. Criar um script “wrapper” para iniciar o Flameshot Criar o arquivo /usr/local/bin/flameshot-wl.sh (como root) com este conteúdo:

    #!/bin/bash
    env QT_QPA_PLATFORM=wayland flameshot gui

    E dar permissão de execução:

    sudo chmod +x /usr/local/bin/flameshot-wl.sh

    Isso força o Flameshot a iniciar corretamente no Wayland.

  2. Configurar um atalho no GNOME para usar esse script

    • Vá em Configurações → Teclado → Atalhos personalizados

    • Adicione um atalho (por exemplo, Print) com o comando:

      /usr/local/bin/flameshot-wl.sh
      

Isso evita os erros de “Only the focused app…” ao iniciar diretamente do menu.


🔄 Por que isso funciona?

  • O GNOME no Wayland só permite captura de tela se o app pedir permissão via portal e estiver em foco.
  • Usar env QT_QPA_PLATFORM=wayland flameshot gui com um script:
    • Garante que o portal reconheça a janela ativa e mostre a caixa de diálogo.
    • Evita iniciar de atalhos diretos ou menu, o que gera erro de acesso negado.

✅ Resumo:

EtapaAção
1Instalar flameshot, xdg-desktop-portal, xdg-desktop-portal-gnome
2Criar script wrapper com QT_QPA_PLATFORM=wayland
3Criar atalho customizado para esse script

Após isso, executar no terminal

flameshot-wl.sh

ou pressionar a tecla de atalho configurada (ex: Print) vai funcionar.