Introdução
Suponha que, no Ubuntu, ícones apareceram no menu de aplicativos que você deseja:
- Remover junto com o aplicativo — será abordado separadamente.
- Remover apenas o ícone — é o foco deste guia.
Neste exemplo, desejo remover apenas o ícone do Telegram ou do Telegram Desktop, sem afetar o próprio aplicativo.
Métodos de Instalação
Como você não lembra como realizou a instalação, pode ser um dos seguintes métodos:
| Nº | Método de Instalação | Como identificar | Como remover (terminal) | Observações / Riscos |
|---|---|---|---|---|
| 1 | Repositório integrado | apt policy nome → archive.ubuntu.com |
sudo apt remove --purge nome && sudo apt autoremove |
Seguro, mas autoremove pode afetar outros pacotes — verifique. |
| 2 | Repositório adicionado (PPA etc.) | apt policy nome → URL externoArquivo em /etc/apt/sources.list.d/ |
1. sudo apt remove nome2. Remover .list + chave3. sudo apt update |
Remova o pacote antes do repositório — caso contrário, erros no apt. |
| 3 | Pacote .deb |
`dpkg -l | grep nome` | sudo apt remove --purge nome (melhor que dpkg -P) |
| 4 | Snap | `snap list | grep nome<br>which nome→/snap/bin/nome` |
sudo snap remove nome |
| 5 | Flatpak | `flatpak list | grep nome` | flatpak uninstall nome && flatpak remove --unused |
| 6 | Binário pronto (AppImage, .tar.gz) |
Não está em apt/dpkg/snapBinário em ~/Apps/, /opt/, ~/.local/bin/ |
rm -rf /caminho/para/o/programa ~/.local/share/applications/nome.desktop ~/.config/nome/ |
Sem gerenciamento centralizado — fácil “esquecer” algo. |
| 7 | Instalador .run |
Foi executado sudo ./nome.runExiste /opt/nome/, uninstall.sh |
1. sudo /opt/nome/uninstall.sh2. Caso contrário, manualmente — /opt/, /usr/bin/, .desktop, systemd, ~/.config/ |
Método mais “sujo”. Muitas vezes não deixa script de desinstalação. |
| 8 | Compilação (make install) |
which nome → /usr/local/bin/ |
1. make uninstall (se existir)2. Caso contrário — manualmente |
A remoção ou checkinstall no futuro |
| 9 | Gerenciadores (pipx, cargo, npm -g) |
which nome → ~/.local/bin/, ~/.cargo/bin/ |
pipx uninstall nome, cargo uninstall nome, npm uninstall -g nome |
Não quebra o sistema, mas pode conflitar com versões do apt (ex: node). |
Essa é uma lista incompleta, e espero que você não use outras opções ![]()
go install,gem install- Imagens Docker / Podman com GUI
- Instalação via linuxbrew / nix / guix
O que não é considerado um método de instalação separado
apt install ./file.deb→ é a instalação do pacote.deb, apenas viaapt, e nãodpkg.- Instaladores gráficos (Software Center, Discover) → frontend para
apt/snap/flatpak. - “Adicionar ao carregamento automático” /
systemd --user→ é uma configuração pós-instalação, e não um método de instalação.
Como identificar rapidamente o método de instalação de um programa desconhecido?
# 1. Onde está o binário?
which nome
# 2. De onde veio o pacote (se for apt/dpkg)
dpkg -S $(which nome) 2>/dev/null || echo "Não está no dpkg"
# 3. Verificar snap/flatpak
snap list | grep -i nome
flatpak list | grep -i nome
# 4. Verificar se está em ~/.local/bin ou /opt
ls -l $(which nome)
# 5. Histórico de instalação (se recente)
grep "install.*nome" /var/log/apt/history.log 2>/dev/null
journalctl --since "2 weeks ago" | grep -i "install.*nome"
Dicas para sistemas limpos:
- Para programas
.runno futuro — considere AppImage ou isolamento viabubblewrap/toolbox. - Em vez de
make install, usecheckinstall→ cria um.deb, fácil de remover viaapt. - Gerencie arquivos
.desktoppessoais em~/.local/share/applications/— eles sempre sobrescrevem os sistemas.
Onde estão todos os arquivos de ícones do menu de aplicativos?
Isso não é um ícone, mas um script de inicialização. Similar aos usados para iniciar serviços (lembra?)
Um dos locais:
/usr/share/applications/
Análise do aplicativo Telegram
ls -l /usr/share/applications/ | grep -i tele
-rw-r--r-- 1 root root 371 Mar 6 2020 telegram.desktop
cat /usr/share/applications/telegram.desktop
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=false
Name=Telegram Desktop
Exec=/opt/telegram/Telegram -- %u
Comment=Versão oficial do aplicativo de mensagens Telegram para desktop
Icon=/opt/telegram/telegram.svg
StartupWMClass=Telegram
Categories=GNOME;GTK;Network;
MimeType=application/x-xdg-protocol-tg;x-scheme-handler/tg;
X-Desktop-File-Install-Version=0.22
Dessa forma, vemos que o executável está em
ls -l /opt/telegram/
total 190652
-rwxr-xr-x 1 root root 55 Mar 6 2020 Telegram
-rwxrwxr-x 1 root root 2184648 Nov 8 14:17 Updater
-rwxrwxr-x 1 root root 193023296 Nov 8 14:17 telegram
-rw-r--r-- 1 root root 4762 Mar 6 2020 telegram.svg
Agora fica claro que a assinatura do ícone é Telegram Desktop.
O caminho aponta para o arquivo /opt/telegram/Telegram. Ele é muito pequeno, 55 bytes — vamos ver o conteúdo:
cat /opt/telegram/Telegram
#!/usr/bin/env bash
/opt/telegram/telegram -noupdate $@
Esse é um script wrapper (wrap=embalagem), que por sua vez chama /opt/telegram/telegram com a flag de linha de comando que diz ao Telegram não verificar nem instalar atualizações automaticamente.
$@ é uma variável especial que se expande em argumentos individuais passados ao script. Recomenda-se usar essa construção entre aspas duplas para evitar problemas quando o argumento contiver espaços. Mas parece que aqui isso não é necessário, pois o nome de usuário ou login usado não contém espaços ou caracteres especiais.
O arquivo /opt/telegram/telegram é executável — ele tem o atributo x (para pastas, esse atributo significa que é possível atravessá-las, mesmo sem permissão de leitura do conteúdo da pasta).
Isso é apenas um dos ícones e o que está relacionado a ele. Ainda não está claro como o aplicativo foi instalado. De acordo com a tabela, parece ter sido um instalador .run, mas não é exatamente isso. O Telegram é fornecido ou como snap na loja de aplicativos, ou como arquivo tar.gz. Parece mais o segundo caso.
Para encontrar os arquivos do segundo aplicativo, use a comando whence.
whence
Na verdade, isso não é um comando, mas um alias (quando uma palavra de comando esconde várias linhas de código).
Abra seu ~/.bash_aliases — se o arquivo não existir, crie-o. Adicione essas linhas:
# whence — verificação rápida do método de instalação
whence() {
local prog="$1"
[ -z "$prog" ] && { echo "Uso: whence <programa>"; return 1; }
echo "=== $prog ==="
echo "• which: $(which \"$prog\" 2>/dev/null || echo '—')"
echo "• snap: $(snap list 2>/dev/null | grep "^$prog " || echo '—')"
echo "• flatpak: $(flatpak list --app 2>/dev/null | awk -v p=\"$prog\" '$1==p {print $1\":\"$3}' || echo '—')"
echo "• dpkg: $(dpkg -S \"$(which \"$prog\" 2>/dev/null)\" 2>/dev/null | cut -d: -f1 || echo '—')"
echo "• .desktop: $(find ~/.local/share/applications /usr/share/applications -name \"*$prog*.desktop\" 2>/dev/null | head -1 || echo '—')"
Assim está configurado, que .bash_aliases é chamado no arquivo ~/.bashrc. Portanto, após fazer alterações no arquivo, aplique-as (essas alterações só serão aplicadas no terminal onde você executar o comando abaixo (ou ao fazer um novo login no sistema):
source ~/.bashrc
Nada mudará externamente, mas na sessão aparecerão novas variáveis e aliases.
Verifique:
whence telegram
=== telegram ===
• which: —
• snap: —
• flatpak:
• dpkg:
• .desktop: /home/ivan/.local/share/applications/org.telegram.desktop._18faa92ddda377ceaa5a576303af9e59.desktop
Você pode notar que o arquivo .desktop aqui está localizado no diretório pessoal, e não no diretório de sistema /usr/share/applications/ (veja quantos existem lá):
ls -l ~/.local/share/applications/
-rwxrwxr-x 1 ivan ivan 579 Nov 8 16:22 org.telegram.desktop._18faa92ddda377ceaa5a576303af9e59.desktop
Por enquanto, nos interessa o conteúdo desse arquivo:
cat ~/.local/share/applications/org.telegram.desktop*
[Desktop Entry]
Name=Telegram
Comment=New era of messaging
TryExec=/opt/telegram/telegram
Exec=/opt/telegram/telegram -- %u
Icon=org.telegram.desktop
Terminal=false
StartupWMClass=TelegramDesktop
Type=Application
Categories=Chat;Network;InstantMessaging;Qt;
MimeType=x-scheme-handler/tg;x-scheme-handler/tonsite;
Keywords=tg;chat;im;messaging;messenger;sms;tdesktop;
Actions=quit;
DBusActivatable=true
SingleMainWindow=true
X-GNOME-UsesNotifications=true
X-GNOME-SingleWindow=true
[Desktop Action quit]
Exec=/opt/telegram/telegram -quit
Name=Quit Telegram
Icon=application-exit
O nome do ícone é Telegram (sem “Desktop”).
O script aponta … para o mesmo executável /opt/telegram/telegram, apenas sem passar a variável e a chave “não atualizar”. Não sei por quê. A voz interna diz que o desenvolvedor deve ter uma abordagem uniforme em qualquer tipo de implantação. Mas aqui, provavelmente esse ponto não é crítico. A passagem do login não é obrigatória, isso será carregado das configurações. A diferença será apenas na atualização automática do software. E, curiosamente, o usuário em um caso verá uma notificação dizendo que o Telegram precisa ser atualizado, enquanto no outro o aplicativo atualizará sozinho e aguardará reinicialização (mas isso não é garantido).
Em resumo, descobrimos que ambos os ícones levam ao mesmo instância do Telegram, o que é o mais importante. Agora podemos remover um deles, já que o programa e as configurações (perfil) são os mesmos.
Vamos remover o menos bonito:
~/.local/share/applications/org.telegram.desktop._18faa92ddda377ceaa5a576303af9e59.desktop
NÃO REMOVA o arquivo. O esconder do ícone é feito de outra forma!
Remoção apenas do ícone do Telegram do menu (mantendo o programa e o serviço)
Adicione o parâmetro Hidden=true na seção [Desktop Entry] do script:
sed -i '/^\\[Desktop Entry\\]$/a Hidden=true' ~/.local/share/applications/org.telegram.desktop._18faa92ddda377ceaa5a576303af9e59.desktop
Observe que essa é uma comando simplificado. Ele não considera se essa linha já existe no arquivo (em caso de reexecução) ou ainda não existe. Mas duplicações não são um problema.
A alteração será aplicada imediatamente — o ícone desaparecerá do menu. Para restaurar o ícone, apenas remova a linha adicionada (indicada pela seta).

