Blog Linux Avante

Como instalar o menu Global FILDEM e HUD para Gnome Shell no Debian / Ubuntu, Fedora ou Arch Linux / Manjaro

23 de fevereiro de 2021

FILDEM é um menu global e HUD para o Gnome Shell. Foi bifurcado do projeto GNOME HUD e, em seguida, e também adicionou um menu global ao Gnome Shell. Este artigo explica como instalar isso no Debian/Ubuntu, Fedora e Arch Linux/Manjaro.

Usando isso, o menu geralmente incorporado na janela do aplicativo é exibido no painel de cima do Gnome Shell. Graças à funcionalidade do HUD (que é acessado usando o atalho de teclado Alt + Space), você também pode usar isso para pesquisar no menu do aplicativo, muito útil para aplicativos com vastos menus, como o GIMP, por exemplo.

O menu Global FILDEM é definido para se esconder automaticamente e só ficar visível com o mouse, mas isso pode ser alterado, para que você possa ter um menu global sempre visível, se quiser.

Este Menu Global para GNOME Shell e a implementação do HUD não são perfeitos e você encontrará erros. Também não funciona com todos os aplicativos. No entanto, Fildem ainda está em andamento, portanto, espero que melhore com o tempo.

Mais algumas imagens do menu global Fildem e HUD:

Fildem Hud Gnome Shell

FILDEM HUD (menu pesquisável) para VLC

Menu Global FILDEM no Manjaro com Audacious (interface QT)

Menu Global FILDEM no Fedora (Wayland) com LibreOffice

Menu Global FILDEM no Ubuntu 20.10 com VLC

Compatibilidade de aplicativos FILDEM

Menu Global FILDEM funciona em X11 e Wayland. No entanto, no Wayland, você precisará criar um atalho global nas configurações do sistema para acessar o HUD, porque não é possível criar um atalho do aplicativo. Além disso, no Wayland, há um problema com o menu que não está fechando ao clicar fora do menu - você precisará clicar no item de menu novamente para fechá-lo.

Embora isso seja feito para o GNOME Shell, ele não mostra um menu global ou permite pesquisar os menus para aplicativos que respeitam as diretrizes de design do GNOME 3 e que usam um menu de hambúrguer (como os aplicativos do GNOME padrão). Para isso funcionar, o aplicativo precisa ter um menu tradicional exibido sob a barra de título do aplicativo. Assim, o menu global e o HUD não funcionam com aplicativos GNOME como Nautilus (arquivos), Gedit, etc.

Então, usando isso, o menu será mostrado no painel superior para aplicativos suportados e na janela do aplicativo (como um menu tradicional - ainda há casos onde isso não funciona com FILDEM -, ou como um menu de hambúrguer Gnome) .

Mas mesmo sem um menu global, os menus do aplicativo não têm uma aparência consistente, então eu acho que você não está perdendo muito, enquanto a vantagem é que você pode maximizar um aplicativo que é suportado pela FILDEM e ter o menu no painel, Maximizar o espaço real da tela é ótimo para laptops com pequenas telas, bem como menus pesquisáveis.

O menu global FILDEM suporta:

  • gtk3 (contanto que eles tenham um menu tradicional), os aplicativos GTK2 e QT5
  • Aplicativos Flatpak, Snap e AppImage, contanto que eles atendam aos outros critérios (eu testei isso com o kdenlive em todos os 3 casos e funcionou, mas o GIMP compilado com GTK3 instalado a partir de um pacote Flatpak não funcionou para mim)
  • Aplicativos Electron
  • LibreOffice, Sublime Text / Merge (apenas em x11), as IDEs Jetbrain (você tem que instalar o plugin JavaFX Runtime para plugins), etc.

Firefox e Thunderbird não são suportados , a menos que você use o Firefox-Appmenu e o Thunderbird-Appmenu (disponível por exemplo, em AUR para Arch Linux/Manjaro).

Você pode ver uma lista de aplicativos conhecidos por funcionar ou não funcionar na Wiki do FILDEM. Além disso confira este relatório de bugs do FILDEM que contém relatórios de aplicativos para os quais o menu global e HUD não funcionam.

A lista Wiki mostra o Google Chrome como funcionando, mas não funcionou para mim. Além disso, no Wiki, menciona que o menu global/HUD não funciona em Manjaro para pedidos QT5, no entanto, funcionou para mim (testado com uma interface QT do Audacious e Kdiskmark).

Como instalar o FILDEM Global Menu e HUD para o Gnome Shell

Instalar o menu global FILDEM e o HUD não é difícil, e nem precisa compilar nada da fonte. No entanto, é um pouco demorado porque é um pouco como um quebra-cabeça nesta fase. Além disso, antes de tentar instalá-lo, certifique-se de ler a descrição completa no GitHub, bem como os problemas conhecidos.

O menu Global FILDEM deve funcionar com o GNOME 3.36 (como é definido na extensão metadata.json) e Gnome 3.38 (testado por mim). Provavelmente não funciona em versões mais antigas do GNOME, portanto, certifique-se de usar uma dessas duas versões do GNOME antes de prosseguir.

Isso significa que ele deve funcionar no Ubuntu 20.04 e 20.10, Debian Bullseye e Sid, e Fedora 32 e 33. E obviamente no Arch Linux/Manjaro até o GNOME 4.0 é liberado e adicionado aos repositórios do arch Linux.

Abaixo você encontrará instruções para instalar o Menu Global FILDEM e HUD no Debian/Ubuntu, Fedora e Arch Linux/Manjaro (e qualquer outra distribuição do Linux usando o Gnome Shell com base). As instruções funcionam em outras distribuições do Linux, mas você terá que descobrir o nome das dependências necessárias por você mesmo.

1. Instale as dependências necessárias

Ubuntu/Debian

Comandos para usar no terminal

sudo apt install bamfdaemon gir1.2-bamf-3 libbamf3-2 libkeybinder-3.0-0 gir1.2-keybinder-3.0 appmenu-gtk2-module appmenu-gtk3-module unity-gtk-module-common python3-pip git

Fedora

Não há pacotes appmenu-gtk*-module no Fedora, então vamos instalar os pacotes unity-gtk*-module, eu tentei isso e funciona:

Comandos para usar no terminal

sudo dnf install bamf bamf-daemon keybinder3 unity-gtk2-module unity-gtk3-module appmenu-qt5 appmenu-qt5-profile.d python3-pip git

Arch Linux/Manjaro

Comandos para usar no terminal

sudo pacman -S bamf appmenu-gtk-module libkeybinder3 libdbusmenu-gtk2 libdbusmenu-gtk3 libdbusmenu-qt5 git python-pip

Para todas estas distribuições do Linux, Você também precisará instalar um pacote via pip:

Comandos para usar no terminal

python3 -m pip install --user fuzzysearch

2. Clone o menu Global FILDEM

Clone o menu Global FILDEM do repositório GitHub, instale a extensão do Gnome Shell em ~/.local/share/gnome-shell/extensions e mova a pasta FILDEM para /opt.

Comandos para usar no terminal

git clone https://github.com/gonzaarcr/Fildemmkdir -p ~/.local/share/gnome-shell/extensionsmv Fildem/fildemGMenu@gonza.com ~/.local/share/gnome-shell/extensionssudo mv Fildem /opt/fildem

.

3. Carregue os módulos GTK necessários no login

Para obter aplicativos GTK2 para trabalhar com o FILDEM Global Menu (e HUD), aberto ~/.gtkrc-2.0 com um editor de texto, por exemplo, usaremos Gedit:

Comandos para usar no terminal

gedit ~/.gtkrc-2.0

E nesse arquivo, adicione a seguinte linha (sim, você pode usar o appmenu-gtk-module no Fedora, apesar de instalarmos unity-gtk*-module):

gtk-modules="appmenu-gtk-module"

Para para obter aplicativos gtk3 para trabalhar com o FILDEM Global Menu (e HUD), abra ~/.config/gtk-3.0/settings.ini com um editor de texto, por exemplo, usaremos Gedit:

Comandos para usar no terminal

gedit ~/.config/gtk-3.0/settings.ini

E nesse arquivo, se estiver vazio, cole:

[Settings]

gtk-modules="appmenu-gtk-module"

Se o arquivo não estiver vazio, e já tem uma seção [Settings], cole gtk-modules="appmenu-gtk-module" abaixo de [Settings].

Observe que, mesmo se esse arquivo não existir, se você executar os comandos do GEDIT, mencionei acima para abrir esses arquivos, o GEDIT criará os arquivos ao salvar.

4. Ative a extensão do shell do FILDEM GNOME

Abra o Gnome Tweaks ou Extensions Apps e ative a extensão "Menu Global Fildem". Não reinicie o GNOME Shell, desde que você precisará fazer logout e re-login de qualquer maneira no próximo passo.

5. Logout e re-login

Reiniciar o GNOME Shell não é suficiente, pois os novos módulos GTK precisam ser carregados para que isso funcione.

6. Execute FILDEM

Veja se funciona corretamente para você.

Abra um terminal e digite o seguinte comando para executar FILDEM:

Comandos para usar no terminal

/opt/fildem/run.sh

Agora abra uma das aplicações que mencionei acima como sendo apoiada pela FILDEM. Se você estiver satisfeito com o Menu Global Global da FILDEM GNOME e HUD, você pode prosseguir para o 8º passo para executá-lo automaticamente na inicialização.

7. Corrigir o preenchimento de menu global FILDEM

FILDEM desenha o menu global em cima do painel GNOME Shell e, em seguida, torna este menu transparente para que pareça que faz parte do painel. Devido a isso, os itens de menu exibidos do painel superior e os itens de menu reais podem não corresponder (consulte as capturas de tela um pouco mais abaixo deste artigo).

A página do projeto FILDEM tem uma solução para este espaçamento/problema de preenchimento, mas isso não funcionou para mim. Então, eu vou te dizer o que fiz para consertar isso.

Como o menu que é desenhado na parte superior do painel GNOME Shell é transparente, você não pode exatamente tirar onde cada item de menu está realmente. Para facilitar o menu real e fazer o texto do menu do painel superior corresponder, precisaremos desativar temporariamente a transparência do menu global FILDEM.

Isso pode ser feito editando o arquivo /opt/fildem/handlers/global_menu.py com um editor de texto (como root):

Comandos para usar no terminal

gedit admin:///opt/fildem/handlers/global_menu.py

Role até o final do arquivo e comente (coloque um # no início da linha) a última linha (self.window.make_transparent()).

Em seguida, mate FILDEM ou logout e re-login, depois execute FILDEM:

Comandos para usar no terminal

/opt/fildem/run.sh

Agora abra o arquivo de extensão do FILDEM GNOME Shell com um editor de texto, por exemplo, usndo Gedit:

Comandos para usar no terminal

gedit ~/.local/share/gnome-shell/extensions/fildemGMenu@gonza.com/extension.js

É neste arquivo extension.js que você precisará alterar o valor NAT_PADDING (está perto do topo do arquivo) para que os itens de menu do painel superior correspondam ao menu Global FILDEM. Eu não posso te dizer o que usar aqui, já que isso depende da fonte usada, o tema do Gnome Shell, etc.

Você não poderá fazer isso de uma só vez, então tente valores diferentes aqui e recarregue o GNOME Shell após editar o arquivo extension.js. Eu recomendo testar isso com o menu do VLC, já que parece que isso afeta mais o VLC do que talvez o LibreOffice.

Quando estiver satisfeito com isso, abra o arquivo /opt/fildem/handlers/global_menu.py mais uma vez e descomente a última linha, para tornar o menu transparente novamente.

Infelizmente não consegui encontrar uma maneira melhor de consertar isso.

Este é o menu global FILDEM com VLC usando o padrão NAT_PADDING de 10 no meu GNOME Shell 3.38 desktop (Ubuntu 20.10), com a transparência do menu desativada:

FILDEM Global Menu Espaçamento/Padding Bug

Depois de ajustar o valor NAT_PADDING (eu usei um valor de 0 aqui, mas isso pode ser diferente para você), o menu Global FILDEM agora corresponde ao texto do menu real a partir do top Painel do Gnome Shell:

Fildem Global Menu Spacing Bug Fixed

8. Adicionar menu global FILDEM para iniciar

Se você estiver satisfeito com como o FILDEM funciona, você pode adicioná-lo à inicialização, portanto, inicia automaticamente quando você faz o login.

No Ubuntu, abra aplicativos de inicialização e adicione um novo item com /opt/fildem/run.sh como o comando de inicialização.

Para Debian, Fedora e Arch Linux/Manjaro, se você não tiver uma GUI para adicionar novos comandos de inicialização (suporta apenas adicionar aplicativos, e não comandos), você pode criar um arquivo chamado fildem.desktop em ~/.config/autostart, e. Abra este arquivo para edição com GEDIT:

Comandos para usar no terminal

gedit ~/.config/autostart/fildem.desktop

E adicione isto ao arquivo fildem.desktop:

[Desktop Entry]
Type=Application
Exec=/opt/fildem/run.sh
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[en_US]=Fildem
Name=Fildem
Comment[en_US]=Fildem Global Menu and HUD
Comment=Fildem Global Menu and HUD

9. Apenas para os usuários do Wayland: Defina um atalho global de teclado para abrir o FILDEM HUD (menu pesquisável)

Se você estiver usando a Wayland (por exemplo, o Fedora usa o Wayland por padrão), o atalho de teclado HUD (Alt + Space) não funciona por padrão. Você precisará abrir Settings, clique em Keyboard Shortcuts no lado esquerdo e, em seguida, role para baixo até a parte inferior da janela de configurações Keyboard Shortcuts e clique no botão + para adicionar um novo atalho de teclado personalizado.

Use o /opt/fildem/inithud.sh como o comando de atalho, e defina qualquer atalho que você deseja para ele. Você pode usar Alt + Space como conjuntos de FILDEM para usuários não-Wayland, já que o HUD inclui ações de janela, que este atalho substitui.

inithud.sh não é executável, então vamos fazer isso:

Comandos para usar no terminal

sudo chmod +x /opt/fildem/inithud.sh

O desenvolvedor do FILDEM está trabalhando ativamente nisso. Caso algo não funcione, confira a página do repositório FILDEM e veja se algo mudou (e por favor me avise!). Devido a isso, o FILDEM também pode quebrar enquanto o desenvolvedor está trabalhando nisso.

Como configurar o menu global FILDEM e HUD

A. Sempre mostrar o menu global

Por padrão, o menu global é mostrado apenas no mouse, mas você pode configurá-lo para sempre visível. Para fazer isso, abra ~/.local/share/gnome-shell/extensions/fildemGMenu@gonza.com/extension.js com um editor de texto, por exemplo, abra este arquivo no GEDIT usando:

Comandos para usar no terminal

gedit /home/logix/.local/share/gnome-shell/extensions/fildemGMenu@gonza.com/extension.js

Neste arquivo, altere o valor de FORCE_SHOW_MENU de false para true, salve o arquivo e reinicie o GNOME Shell (se você estiver no X11, pressione Alt + F2, então digite r e pressione Enter para reiniciar o Gnome Shell; se você estiver Wayland você precisará fazer logout e re-login).

B. Menu é muito longo e o texto é truncado

Se o menu for muito longo e seu texto for truncado no painel Top GNOME Shell, você poderá instalar uma extensão como Unite, que pode ser usada para mover o widget de data/hora do meio do painel superior do Gnome Shell para o lado direito do painel. Esta extensão também pode ser usada para ocultar as barras de título da janela quando maximizada e mostra os botões da janela na barra superior.

C. Mostrar ou ocultar o gnome appmenu

Outra opção de menu global FILDEM permite exibir ou esconder o GNOME APPMENU (o menu que mostra o nome do aplicativo) no painel superior. Para mim, isso mudou o botão AppMenu de ter um ícone apenas, para ter um ícone e texto. Não tenho certeza se isso é devido a algumas alterações recentes e o wiki não foi atualizado ou algo mais. No entanto, após a instalação da extensão Unite GNOME Shell, esta opção funcionou conforme o esperado.

De qualquer forma, você pode alterar essa opção abrindo novamente o arquivo extension.js do FILDEM com um editor de texto:

Comandos para usar no terminal

gedit /home/logix/.local/share/gnome-shell/extensions/fildemGMenu@gonza.com/extension.js

E alterar o valor de SHOW_APPMENU_BUTTON de false para true e salvar o arquivo.

D. Corrigir nenhum menu disponível para GEDIT

Usando o menu Global FILDEM, Gedit não tem mais um menu no Ubuntu 20.04/20.10 e Manjaro (isso não acontece no Fedora), pelo menos no meu teste.

Isso pode ser corrigido copiando o arquivo de desktop GEDIT para ~/.local/share/applications (por isso não é sobrescrito em upgrades de pacotes, e afeta apenas o usuário) e editando as linhas Exec para usar env UBUNTU_MENUPROXY=0 antes do executável real. No mesmo arquivo de desktop, você também precisará alterar o DBusActivatable e alterar de true para false. Você pode fazer tudo isso usando os seguintes comandos:

Comandos para usar no terminal

cp /usr/share/applications/org.gnome.gedit.desktop ~/.local/share/applications/sed -i 's/^Exec=/Exec=env UBUNTU_MENUPROXY=0 /g' ~/.local/share/applications/org.gnome.gedit.desktopsed -i 's/DBusActivatable=.*/DBusActivatable=false/' ~/.local/share/applications/org.gnome.gedit.desktop

Vale a pena notar que isso faz com que Gedit use seu menu de hambúrguer padrão, e não um menu tradicional (para que ele não apareça no painel superior).

Caso você esteja encontrando problemas com outros menus de aplicativos, aplique esse mesmo passo.

Como remover o menu Global FILDEM

Remova a extensão do shell do FILDEM GNOME usando:

Comandos para usar no terminal

rm -r ~/.local/share/gnome-shell/extensions/fildemGMenu@gonza.com

Remova os arquivos FILDEM que foram instalados em /opt:

Comandos para usar no terminal

sudo rm -r /opt/fildem

Remova o arquivo FILDEM AutoStart (se você nomeou o arquivo de AutoStart fildem.desktop):

Comandos para usar no terminal

rm ~/.config/autostart/fildem.desktop

Também remova appmenu-gtk-module de ~/.gtkrc-2.0 e ~/.config/gtk-3.0/settings.ini abrindo esses arquivos:

Comandos para usar no terminal

gedit ~/.gtkrc-2.0gedit ~/.config/gtk-3.0/settings.ini

Você agora precisa remover gtk-modules="appmenu-gtk-module" desses dois arquivos.

Se você usou o ajuste que mencionei acima para corrigir o menu GEDIT, remova o arquivo desktop personalizado do Gedit usando:

Comandos para usar no terminal

rm ~/.local/share/applications/org.gnome.gedit.desktop

Se você também deseja remover as dependências instaladas (vou listar apenas os pacotes do AppMenu nos comandos Remover abaixo, caso os outros pacotes ainda forem necessários). Verifique a saída do comando para ver se ele tenta remover outra coisa (algo que você precisa), caso em que não remova esses pacotes:

  • Ubuntu/Debian:

Comandos para usar no terminal

sudo apt remove appmenu-gtk2-module appmenu-gtk3-module unity-gtk-module-common

  • Fedora:

Comandos para usar no terminal

sudo dnf remove unity-gtk2-module unity-gtk3-module appmenu-qt5 appmenu-qt5-profile.d

  • Arch Linux/Manjaro:

Comandos para usar no terminal

sudo pacman -Rs appmenu-gtk-module libdbusmenu-gtk2 libdbusmenu-gtk3 libdbusmenu-qt5

Confira a versão original desse post em inglês
Propaganda
Blog Comments powered by Disqus.