Dicas e truques

Ocultar o navegador padrão (Firefox)

Se você estiver usando um navegador diferente do instalado por padrão (Firefox), poderá ocultar o navegador padrão da interface usando os seguintes comandos:

$ sudo mkdir -p /usr/local/share/applications
$ sudo cp /usr/share/applications/org.mozilla.firefox.desktop /usr/local/share/applications/
$ sudo sed -i "2a\\NotShowIn=GNOME;KDE" /usr/local/share/applications/org.mozilla.firefox.desktop
$ sudo update-desktop-database /usr/local/share/applications/

Reativar o navegador padrão (Firefox)

Se você deseja tornar o navegador padrão (Firefox) visível novamente após tê-lo ocultado, siga estes passos:

$ sudo rm -f /usr/local/share/applications/org.mozilla.firefox.desktop
$ sudo update-desktop-database /usr/local/share/applications

Quando um pacote é instalado com rpm-ostree, uma nova imagem do sistema operacional é criada adicionando o conteúdo RPM à imagem existente e gerando uma nova imagem combinada. Para visualizar os RPMs recém-instalados, é necessário reiniciar o sistema com a nova imagem. O rpm-ostree também se encarrega de recriar a imagem em camadas sempre que você atualiza a imagem base do sistema operacional.

Se você usa o Sway ou deseja ocultar o navegador padrão apenas para o seu usuário, pode fazer isso com os seguintes comandos:

$ mkdir -p ~/.local/share/applications
$ cp /usr/share/applications/org.mozilla.firefox.desktop ~/.local/share/applications/
$ sed -i "2a\\NotShowIn=GNOME;KDE;sway" ~/.local/share/applications/org.mozilla.firefox.desktop
$ update-desktop-database ~/.local/share/applications

e para reativar:

$ rm -f ~/.local/share/applications/org.mozilla.firefox.desktop
$ update-desktop-database ~/.local/share/applications

Habilitando repositórios RPM Fusion

Esta seção aborda softwares de terceiros que não são oficialmente afiliados ou endossados pelo Projeto Fedora. Use-os a seu próprio critério. O Fedora recomenda o uso de software livre e de código aberto e que se evite softwares sujeitos a patentes.

Os usuários podem querer aproveitar o software não livre disponibilizado através dos repositórios RPM Fusion para usar os drivers proprietários da NVIDIA, codecs multimídia ou outros softwares não distribuídos como parte do Fedora.

Primeira instalação

Na primeira vez que você instalar os repositórios RPM Fusion, será necessário instalar os RPMs versionados:

$ sudo rpm-ostree install \
https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \
https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
$ reboot

Em seguida, continue com a próxima seção para preparar seu sistema para as principais atualizações do Fedora.

Principais atualizações do Fedora

Após reiniciar o sistema na nova implantação, você pode executar o seguinte comando para remover o "bloqueio" dos pacotes versionados instalados anteriormente. Isso permitirá que os repositórios RPM Fusion sejam atualizados automaticamente e versionados corretamente em todas as atualizações de versão principal do Fedora:

$ sudo rpm-ostree update \
--uninstall rpmfusion-free-release \
--uninstall rpmfusion-nonfree-release \
--install rpmfusion-free-release \
--install rpmfusion-nonfree-release
$ reboot

Para obter mais informações, consulte este tópico na Discussão do Fedora.

Trabalhando com Toolbx

Descobrindo se você está atualmente em um contêiner Toolbx

Se você utiliza o Toolbx frequentemente para realizar diversas tarefas e usa vários contêineres do Toolbx, pode ser difícil controlar se você está executando comandos no host ou em um contêiner do Toolbx. Além disso, atualmente não existe um comando que indique em qual contêiner do Toolbx você está trabalhando.

Para atenuar isso, você pode adicionar o seguinte alias de shell ao final do seu arquivo ~/.bashrc:

alias istoolbx='[ -f "/run/.toolboxenv" ] && grep -oP "(?<=name=\")[^\";]+" /run/.containerenv'

Ao abrir um novo terminal, você agora tem acesso ao novo comando istoolbx. Ele funcionará da seguinte maneira:

  • Quando executado a partir do host, retorna um código de saída 1.

  • Quando executado a partir de um contêiner Toolbx, retorna um código de saída 0 e imprime o nome do contêiner Toolbx atual no console.

Se você preferir uma solução mais automatizada, adicione o seguinte ao seu arquivo ~/.bashrc para que o prompt do bash inclua "[toolbox <nome>]":

function is_toolbox() {

if [ -f "/run/.toolboxenv" ]

then

TOOLBOX_NAME=$(cat /run/.containerenv | grep -oP "(?<=name=\")[^\";]+")

echo "[${HOSTNAME} ${TOOLBOX_NAME}]"

fi
}

Agora você pode incluir is_toolbox na sua variável PS1 e não precisará executar nenhum comando extra para saber se está em uma caixa de ferramentas ou no shell do host.

Exemplo:
export PS1="\[\e[31m\]\`is_toolbox\`\]\e[m\]\[\e[32m\]\\$ \[\e[m\]\[\e[37m\]❱\[\e[m\] "

Isso resulta em um prompt que aparece da seguinte forma quando não está em uma caixa de ferramentas: $ ❱

No entanto, ao executar em uma caixa de ferramentas chamada "default", o resultado é: [toolbox default]$ ❱

Executando aplicativos de dentro do Toolbx no host

Isso pode ser necessário se você quiser interagir com ferramentas disponíveis no host, como podman, nmcli ou rpm-ostree, sem sair do contêiner Toolbx. Para isso, você pode usar o flatpak-spawn, incluído na instalação básica:

$ flatpak-spawn --host podman --help

Se o aplicativo que você deseja chamar exigir acesso sudo, a opção -S deve ser fornecida ao sudo, como abaixo:

$ flatpak-spawn --nost sudo -S rpm-ostre status

Se você costuma usar comandos como esses com frequência para acessar, por exemplo, o comando flatpak de dentro do contêiner Toolbx, você pode criar um pequeno script personalizado (dentro do contêiner Toolbx). Para fazer isso, siga os passos abaixo:

  1. Defina o alias istoolbx (para sua conveniência) executando o comando mencionado acima em seu terminal.

  2. Certifique-se de estar em um contêiner Toolbx. Se o comando a seguir não produzir nenhuma saída, é provável que você ainda esteja trabalhando no host!

    [toolbx]$ istoolbx
    <Nome do contêiner Toolbx aqui>
  3. Após certificar-se de que está em um contêiner Toolbx, execute o seguinte comando:

    [toolbx]$ echo -e '#!/bin/sh\nexec /usr/bin/flatpak-spawn --host flatpak "$@"' | \
    sudo tee /usr/local/bin/flatpak 1>/dev/null && sudo chmod +x /usr/local/bin/flatpak

Agora você tem um comando flatpak disponível que permite interagir com o flatpak como se estivesse executando o comando no host.

Trabalhando com ostree/rpm-ostree

Rastreamento de alterações no sistema operacional base.

Em sistemas operacionais baseados em ostree, alguns diretórios são graváveis pelo usuário, como /etc. Você pode obter uma visão geral rápida dos arquivos alterados em /etc usando o seguinte comando:

$ sudo sharper admin config-diff

Para obter uma comparação mais detalhada, você pode usar algo como isto:

$ sudo diff -yrW200 --suppress-common-lines --color=always /usr/etc /etc 2>/dev/null

Isso funciona porque o ostree mantém uma cópia inalterada do diretório /etc em /usr/etc. Todas as suas alterações vão diretamente para /etc.

Trabalhando com aplicativos Flatpak

Acesso direto a aplicativos Flatpak a partir da CLI

A mudança mais notável ao usar aplicativos Flatpak em vez de instalações convencionais é que os aplicativos não podem mais ser chamados diretamente pela linha de comando, como neste exemplo:

$ evince
bash: comando não encontrado: evince

Em vez disso, podemos chamá-los assim:

$ flatpak run org.gnome.Evince

Além disso, a maioria dos aplicativos Flatpak exporta seus binários internos para um local que depende da instalação:

  • Para aplicações Flatpak instaladas a partir de repositórios remotos do sistema, estes podem ser encontrados em /var/lib/flatpak/exports/bin/.

  • Para aplicações Flatpak instaladas a partir de repositórios remotos do usuário, estes podem ser encontrados em $HOME/.local/share/flatpak/exports/bin/.

Se você não tiver certeza a qual instalação um aplicativo Flatpak pertence, pode usar este comando para exibi-lo:

$ flatpak list --app --columns=name,installation

Em seguida, você pode adicionar esses diretórios ao seu $PATH:

$ org.gnome.Evince

ou configure aliases de shell conforme necessário para torná-los disponíveis para a CLI, da seguinte forma:

$ alias evince="flatpak run org.gnome.Evince"
### ou:
alias evince="org.gnome.Evince"
$ evident