domingo, 25 de janeiro de 2026

Instalando fontes no sistema Linux com script - Gnome Shell e Nautilus Scripts

Instalando fontes no sistema Linux com script - Gnome Shell e Nautilus Scripts

    Uma das grandes frustrações de usuários do Windows que experimentam ou mesmo usam Linux está na disparidade eventual de como um arquivo docx criado no Windows é visualizado no Linux e vice-versa e isso é devido a vários detalhes que não vem ao caso mas, a principal, é a falta de fontes usadas no documento na máquina que está abrindo o mesmo que não foi criado nela.

    Por exemplo, um docx criado no Word do Windows com uma fonte instalada no sistema fica (ou pode ficar) todo ferrado no LibreOffice do Linux que não tem essa fonte. Isso faz o "motor de renderização" no Linux escolher a fonte mais adequada para substituir a que não existe instalada e aí caga tudo, com linhas retiradas ou adicionadas, tabelas e imagens fora do lugar porque mudou a métrica de renderização do documento.

    Imagine o trabalho que dá pegar um documento docx no Linux, "consertar" os erros aparentes, fazer as edições necessárias e, ao "devolver" ao Windows, o usuário se vê eventualmente no trabalho de corrigir também as eventuais mudanças de layout no documento pois no Linux a fonte original - apesar de aparecer no documento - foi editada com a padrão do sistema, normalmente Noto Sans ou Cantarell que são as fontes "coringa".

    Olhe esse exemplo abaixo de um documento aberto COM a fonte original (Arial) no Linux:

    E agora o mesmo documento na mesma parte com a fonte substituta (Noto Sans no lugar da Segoe):

    Você pode instalar fontes dando uma lida nessa postagem, abaixo vou mostrar como fazer a instalação de fontes avulsas via script no Gnome. As fontes serão instaladas no sistema e não na pasta de usuário para deixar tudo mais universal. Primeiro vamos ver se a pasta necessária existe, abra o Terminal e digite o seguinte:

cd ~/.local/share/nautilus/scripts/

    Se der pasta não encontrada:

mkdir -p ~/.local/share/nautilus/scripts/

    De posse da pasta (criada agora ou já existente):

nano ~/.local/share/nautilus/scripts/Instalar\ fontes

    Coloque dentro:

 #!/bin/bash

TITLE="Instalador de Fontes"

# Verifica se há seleção
if [ -z "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" ]; then
    zenity --error --title="$TITLE" --text="Nenhuma fonte selecionada."
    exit 1
fi

# Escolha do destino
DEST_CHOICE=$(zenity --list --radiolist --title="$TITLE" \
    --column="Seleção" --column="Destino" \
    TRUE "Usuário (~/.local/share/fonts)" \
    FALSE "Sistema (/usr/local/share/fonts)")

[ $? -ne 0 ] && exit 1

if [[ "$DEST_CHOICE" == *"Usuário"* ]]; then
    BASE_DIR="$HOME/.local/share/fonts"
    USE_SUDO=false
else
    BASE_DIR="/usr/local/share/fonts"
    USE_SUDO=true
fi

# Função com tratamento de espaços
instalar_fontes() {
    TARGET_DIR="$1"
    # Lê a lista linha por linha, preservando espaços
    while IFS= read -r FILE_PATH; do
        [ -z "$FILE_PATH" ] && continue
        
        # Só processa se for arquivo de fonte
        if [[ "$FILE_PATH" =~ \.(ttf|otf|woff|woff2)$ ]]; then
            FILENAME=$(basename "$FILE_PATH")
            FIRST_LETTER=$(echo "${FILENAME:0:1}" | tr '[:upper:]' '[:lower:]')
            FINAL_DEST="$TARGET_DIR/$FIRST_LETTER"

            mkdir -p "$FINAL_DEST"
            cp "$FILE_PATH" "$FINAL_DEST/"
        fi
    done
    fc-cache -f
}

export -f instalar_fontes

if [ "$USE_SUDO" = true ]; then
    # O segredo: passar a lista via printf para o pkexec bash
    echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | pkexec bash -c "$(declare -f instalar_fontes); instalar_fontes '$BASE_DIR'"
else
    echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | instalar_fontes "$BASE_DIR"
fi

zenity --info --title="$TITLE" --text="Concluído! Fontes organizadas com sucesso."

    Salve com CTRL + O e feche com CTRL + X. Depois ainda no Terminal:

chmod +x ~/.local/share/nautilus/scripts/Instalar\ fontes

nautilus -q

    Pra usar o script, baixe umas fontes conforme a postagem que sugeri aqui, selecione as fontes, botão direito do mouse, escolha no menu de contexto scripts/Instalar fontes:


 escolha a opção de sistema e pronto, aguarde a janela de finalização.

     Para saber se a fonte está instalada (exemplo para a fonte Segoe):

fc-list | grep "Segoe"

    O script cria a pasta /usr/local/share/fonts e coloca lá as fontes desejadas em forma de índice, dentro de subpastas criadas com a primeira letra da fonte para deixar a bagaça mais organizada. Para desinstalar a fonte, basta entrar na pasta e apagar as fontes desejadas, digitando depois no Terminal:

sudo fc-cache -fv

para recriar os índices de fontes. 

 

Nenhum comentário:

Postar um comentário