segunda-feira, 6 de abril de 2026

Consertando o erro no Brave de webgl

Hoje em dia está cada vez mais difícil usar máquina modesta devido aos avanços das tecnologias e a eventual perda de suporte a certos recursos.

O navegador Brave acima da versão 1.70 não consegue mais criar um "contexto opengl" pois precisa do OpenGL acima da versão 3.0 para rodar. O navegador funciona mas para coisas como joguinhos 3D no navegador e mesmo ver vídeos o desempenho pode diminuir ou mesmo não funcionar, com a página aparecendo mas não carregando, ou tudo lento ou aparecendo uma mensagem tipo:

error - could not initialize webgl - sorry

Você pode ver isso indo no Brave e digitando isso aqui no campo de endereços:

brave://gpu/

Atenção aos itens destacados:

Linux: Consertando o erro no Brave de webgl
Se estiverem "disable" já era, mesmo que nas configurações de aceleração a mesma esteja habilitada. Vamos então usar uma versão anterior do navegador. No terminal (Debian e agregados):

wget https://github.com/brave/brave-browser/releases/download/v1.64.122/brave-browser_1.64.122_amd64.deb

Depois disso, desinstale a versão anterior, apague a pasta ~/.cache/BraveSoftware e depois:
  • sudo dpkg -i brave-browser_1.64.122_amd64.deb
  • sudo apt install -f (atenção: NÃO atualize!)
  • sudo apt-mark hold brave-browser

Esses comandos vão instalar o navegador, corrigir as dependências (mas NÃO atualize!) e marcar o pacote como "retido" (não será atualizado futuramente pelo apt).

Vão dizer para usar outro navegador mas pode ocorrer de alguns recursos, como localização, não sejam reconhecidos nos outros navegadores ou o usuário gosta do navegador e quer ficar com ele, então essa é uma "solução temporária" para quando houver possibilidade de um upgrade de hardware, como placa de vídeo mesmo sendo onboard - nesse caso, placa nova e/ou processador novo.


terça-feira, 31 de março de 2026

Zoxide e fzf no bash para incrementar o uso do Terminal

zoxide e o fzf são programas externos que são usados junto do shell (terminal) para acelerar a entrada de pastas e listar possibilidades de entradas disponíveis no histórico. Combinando os dois é possível achar comandos e "entradas cd" (de pastas) para deixar o uso do terminal mais agradável. O problema é que implementar isso acaba deixando o usuário preguiçoso mas vamos lá assim mesmo. Isso pode ser feito também no zsh mas vou mostrar primeiro como fazer no bash.

No Debian e agregados:

sudo apt install fzf zoxide

Abra o arquivo ~/.bashrc:

nano ~/.bashrc

Cole dentro, lá no final do arquivo:

eval "$(zoxide init bash)"

Salve e feche o arquivo. Recarregue o bash:

source ~/.bashrc


Agora todas as pastas em que você entrar no terminal usando bash serão guardadas num banco de dados e dota o seu terminal de um "acelerador". Digamos que você já tenha entrado na pasta .config; basta você digitar sem as aspas "z .config" (nem precisa ser o .config completo, .conf já serve já que é pasta e não arquivo) e o prompt vai aparecer o .config mais novo que você entrou. Se digitar zi config  você vai habilitar o modo de procura caso haja mais de uma entrada disponível:

Linux: Usando o zoxide e fzf no bash do Terminal

 Basta então escolher na listagem qual o que você quer usando as setas de direção. E o interessante é que você não precisa digitar o nome da pasta completo, basta digitar "z pasta ou parte do nome" e o zoxide vai direto na última entrada. A única necessidade é que você já tenha entrado na pasta individualmente via cd anteriormente. E, na listagem, ainda mostra as eventuais subpastas presentes nas entradas como ilustra a imagem acima.

Veja os exemplos:

  • z share = Vai entrar na pasta mas recente com a entrada share, por exemplo, /usr/local/share;
  • zi share = vai listar as entradas do histórico do bash que possuem "share" e pode ser escolhida a entrada com as setas de direção;
  • z local = Mesmo que a pasta exista (por exemplo, /usr/local) se você não tiver entrado nela anteriormente via cd (cd /usr/local) não vai achar nada. O zoxide não completa caminhos sozinho e sim se baseia no histórico do shell;

  • zi con = Vai listar as pastas já visitadas que tenham "con", como no exemplo abaixo.

  • Linux: Usando o zoxide e fzf no bash do Terminal

     Lembrando, a pasta TEM que estar no histórico. Se você tiver entrado na /usr/local ou /usr/local/share (atenção ao negrito de ambas) o comando z local ou z share vai achar as entradas MAS NÃO VAI entrar em z usr pois você não entrou nenhuma vez na pasta /usr individualmente.

    Depois de instalado o programa precisa "aprender" as pastas que você entra pois ele "linka" ao ~/.bash_history. Para saber o que o zoxide já "aprendeu", abra o terminal e digite:

    zoxide query -l

    Devem aparecer algumas entradas de comandos de pastas que você já tenha feito. Se estiver em branco é necessário "ensinar" para já "pegar" o que você já tem. Para acelerar o aprendizado, no terminal:

    cat ~/.bash_history \
    | sed 's/^: [0-9]*:[0-9]*;//' \
    | grep -E '^cd ' \
    | sed 's/^cd //' \
    | while read -r dir; do
        dir="${dir/#\~/$HOME}"
        [ -d "$dir" ] && zoxide add "$dir"
    done

    Pronto, o zoxide já está "esperto" para listar o que está no seu histórico. Se precisar apagar o banco de dados:

    rm -rf ~/.local/share/zoxide/db.zo

    e refaça o penúltimo comando mostrado aqui para "ensinar" o seu histórico de pastas ao zoxide.

    Só pra deixar claro, o "z" é o substituto do "cd", é como um alias para o comando "cd"; o "z" mais o resto faz o zoxide saber que você está querendo entrar em pastas e esse "z" é o zoxide que determina; poderia ser configurado o j, p ou qualquer outra letra mas vamos ficar no z mesmo.

    E lembrando:
    • z pasta ou nome parcial: entra na mais recente;
    • zi pasta ou nome parcial: mostra as pastas acessadas numa lista e que pode ser escolhida a entrada desejada via setas do teclado.

    segunda-feira, 30 de março de 2026

    As diferencas entre o clipboard comum e a selecao ativa

    Fiquei um bom tempo tentando dar uma descrição "mais ou menos" para um comportamento interessante para o "selection-based data transfer" que é a opção do sistema (X11) de copiar dados para uma "área de transferência primária" que é mais volátil do que a área de transferência normal ou clipboard. Volátil porque essa área é sobrescrita assim que um novo conteúdo é inserido, não é gerenciável em camadas como clipboard convencional. Então o tal "primary" (que vou chamar de seleção ativa) funciona assim:
    • Copia simplesmente por seleção sem usar CTRL+C ou botão direito na seleção/Copiar-Colar;
    • Conteúdo único: os dados são substituídos se feita outra seleção;
    • O conteúdo some se o programa que "detém" os dados é fechado;
    • Os dados dessa seleção ativa ficam disponíveis MAS o conteúdo copiado pro clipboard não vai para esse espaço primário;
    • O conteúdo da seleção ativa está acessível para colar usando o botão do meio do mouse.

    Você pode fazer o teste aí, selecione parte deste texto (apenas selecione), abra um bloco de notas, crie um arquivo de texto novo e clique com o botão do meio do mouse nesse documento aberto e você verá os dados aparecendo. Agora copie outra parte desse texto, dessa vez selecione e copie na base do CTRL+C e cole com CTRL+V: o segundo texto será copiado MAS o texto selecionado via seleção ativa ainda estará no "buffer" pois o clipboard não substitui essa seleção direta apesar dessa seleção ser listada no clipboard. E se você der mais uma selecionada então o conteúdo primário anterior será sobrescrito pelo que selecionou agora. E fechando o navegador esses dados da seleção primária somem desse espaço.

    Quem usa algum sistema de gerenciamento de clipboard pode ver uma listagem do que está copiado e como foi copiado. No Clipman aparece assim:

    Linux: As diferencas entre o clipboard comum e a selecao ativa
    Veja que há um ícone de mouse (seleção primária) e outro de prancheta (clipboard) e sempre só haverá um ícone de mouse porque essa cópia é única, o conteúdo é substituído assim que é feita outra seleção a não ser que você use CTRL+C.

    Esse tipo de recurso é bem útil para quando se usa o Terminal e curiosamente isso não existe no Windows ou MacOS, pelo menos não diretamente como no Linux. No Linux/X11 a seleção tem dados compartilháveis automaticamente; já no Windows/macOS a seleção é só visual e a cópia precisa ser uma ação explícita (via CTRL+C e CTRL+V) e, inclusive, o XTerm só trabalha com esse espaço primário, não tem atalhos pelo teclado para copiar ou colar.

    sábado, 28 de março de 2026

    Habilitando o "modo Quake" no XFCE4 Terminal

    terminal é algo que muitos usuários detestam usar mas, basicamente, é como saber andar de bike: não é necessário saber mas altamente recomendável fazer o básico. Cedo ou tarde o terminal acaba tendo que ser usado para eventuais erros de sistema ou mesmo pequenas configurações que podem estar indisponíveis graficamente.

    E pensando nisso, há vários deles além dos já presentes no ambiente gráfico escolhido, como o Konsole no Plasma, o Gnome Terminal no Gnome e o XFCE4-Terminal no XFCE. Mas há outros como o Tilix, o Guake e o Yakuake onde neles há uma "nobre" opção chamada "efeito Quake" ou menu drop-down.

    Esse "efeito" vem do jogo Quake onde os jogadores, para conversarem via chat ou outras coisas, apertam uma tecla e uma tela "desce" durante o jogo, o jogador digita o que precisa e apertando de novo uma tecla ou simplesmente voltando ao jogo  essa tela "sobe" e some. Esse recurso está presente em muitos jogos e dá um charme todo especial (e funcional) aos terminais que você está usando na sua máquina. Aqui vou falar desse recurso no XFCE4 Terminal.

    Basta usar o comando:

    xfce4-terminal --drop-down

    que o Xfce4 Terminal vai abrir em modo drop-down; terminado o uso, se clicar fora do terminal ele "some" mas dá pra fazer isso via atalho do teclado. No XFCE é fácil, abra o Configurações, Teclado, aba Atalhos para Aplicativos.

    Linux: Ativando o modo Quake no XFCE4-Terminal
    Clique em Adicionar e cole o comando mostrado acima, dê OK e logo depois defina uma tecla que não esteja em uso, como F12. Dê OK em tudo e pronto. Apertando F12 o terminal aparece.

    Linux: Ativando o modo Quake no XFCE4-Terminal
    Apertando F12 de novo OU clicando fora do terminal ele some. Você pode configurar opções separadas entre o modo Quake e o modo normal, como transparências, tamanho, foco e tal, só lembre de fazer isso estando no modo Quake para não afetar o modo normal.

    quinta-feira, 26 de março de 2026

    Copiar Para e Mover Para no menu de contexto do Nautilus e Dolphin

    Nessa dica eu mostrei como implementar no Thunar as opções de menu de contexto Copiar Para e Mover Para e assim economizar uns cliques nessas ações corriqueiras de trabalhar com arquivos. Agora vamos ver isso no Nautilus e no Dolphin cujas configurações já existem mas ficam meio escondidas.

    Nautilus

    O Nautilus anda vacilando com uma política de "vamos tirar sem perguntar nada" e com isso vemos extensões legais como o Nautilus Image Converter simplesmente sair dos repositórios (ou não disponibilizadas) e outras que deveriam já existir por padrão e a 'copiar/mover para' deveria ser uma delas. Para ter acesso à opção veja se o seu sistema tem os pacotes libnautilus-extension4 e python3-nautilus (nome do pacote no Debian). Se não o tiver:

    sudo apt install libnautilus-extension4
    sudo apt install python3-nautilus

    Reinicie a sessão e as opções deverão estar disponíveis no botão direito do mouse:

    Linux: Copiar Para e Mover Para no menu de contexto do Nautilus e Dolphin
    Dolphin

    No Dolphin há a necessidade do pacote dolphin-plugins. Se não o possuir:

    sudo apt install dolphin-plugins

    No Dolphin você pode baixar mais opções de menu de contexto (que se chama Service Menu) indo nos "3 pontinhos" do lado superior esquerdo, Configurar/Configurar Dolphin, Menu de Contexto; a opção Comandos 'Copiar e Mover para' deverá estar disponível (marque-a e clique em Aplicar).

    Linux: Copiar Para e Mover Para no menu de contexto do Nautilus e Dolphin
    Se não estiver, nessa janela clique em Baixar Novos Serviços e procure por lá, há bastante coisa para complementar o uso do Dolphin.
    Uma vez instalados, as opções escolhidas estarão disponíveis.

    Linux: Copiar Para e Mover Para no menu de contexto do Nautilus e Dolphin

    "Keep It simple" não significa ter as coisas funcionais adequadamente...

     


     

     

    quarta-feira, 25 de março de 2026

    Dotando o Thunar das opcoes Copiar para e Mover para no menu de contexto

     Aqui vou mostrar como criar as opções de Copiar para e Mover para no menu de contexto do mouse, que existe no Nautilus e no Dolphin e que também deveria ter no Thunar.

    Copiar para:
    Abra o terminal e crie o arquivo:

    sudo nano /usr/local/bin/thunar-copiar-para.sh

    Coloque dentro:

    #!/bin/bash
    
    # Escolher destino
    destino=$(zenity --file-selection --directory --title="Escolha a pasta de destino")
    [ -z "$destino" ] && exit 0
    
    # Perguntar sobre sobrescrever
    zenity --question --text="Deseja sobrescrever arquivos existentes?"
    sobrescrever=$?
    
    # Monta opção do rsync
    if [ $sobrescrever -eq 0 ]; then
        OPTS="--ignore-existing"
    else
        OPTS=""
    fi
    
    # Lista total de arquivos para progresso mais preciso
    total=$(printf "%s\n" "$@" | wc -l)
    count=0
    
    (
    for item in "$@"; do
        count=$((count+1))
    
        echo "# Copiando: $(basename "$item") ($count de $total)"
    
        rsync -a --info=progress2 $OPTS "$item" "$destino" 2>/dev/null
    
        echo $((count * 100 / total))
    done
    ) | zenity --progress \
               --title="Copiando arquivos" \
               --percentage=0 \
               --auto-close \
               --width=400
    
    zenity --info --text="Cópia concluída!"

    Salve com CTRL+O e feche com CTRL+X. Depois:

    sudo chmod +x /usr/local/bin/thunar-copiar-para.sh

    Mover para:
    Abra o terminal e crie o arquivo:

    sudo nano /usr/local/bin/thunar-mover-para.sh

    Cole dentro:

    #!/bin/bash
    
    destino=$(zenity --file-selection --directory --title="Escolha a pasta de destino")
    [ -z "$destino" ] && exit 0
    
    zenity --question --text="Deseja sobrescrever arquivos existentes?"
    sobrescrever=$?
    
    if [ $sobrescrever -eq 0 ]; then
        OPTS="--ignore-existing"
    else
        OPTS=""
    fi
    
    total=$(printf "%s\n" "$@" | wc -l)
    count=0
    
    (
    for item in "$@"; do
        count=$((count+1))
    
        echo "# Movendo: $(basename "$item") ($count de $total)"
    
        rsync -a --remove-source-files --info=progress2 $OPTS "$item" "$destino" 2>/dev/null
    
        # Remove diretórios vazios após mover
        [ -d "$item" ] && find "$item" -type d -empty -delete
    
        echo $((count * 100 / total))
    done
    ) | zenity --progress \
               --title="Movendo arquivos" \
               --percentage=0 \
               --auto-close \
               --width=400
    
    zenity --info --text="Movimentação concluída!"

    Salve com CTRL+O e feche com CTRL+X. Depois:

    sudo chmod +x /usr/local/bin/thunar-mover-para.sh

    Abra o Thunar e vá em Editar/Configurar Ações Personalizadas. Na janela que aparecer, clique em + e complete conforme abaixo.

    Copiar para:
    • Nome: Copiar para...
    • Descrição: Ação de copiar pastas e arquivos para determinada pasta ou lugar
    • Comando: /usr/local/bin/thunar-copiar-para.sh %F

    Linux: Dotando o Thunar das opcoes Copiar para e Mover para no menu de contexto
    Na aba Condições Para Aparecer, marque tudo.

    Linux: Dotando o Thunar das opcoes Copiar para e Mover para no menu de contexto
    Mover para:
    Crie outra entrada agora como Mover para... e repita os procedimentos, mudando a linha de comando (e a descrição) para:

    sudo nano /usr/local/bin/thunar-mover-para.sh

    OK em tudo e fecha as janelas. Para usar o menu de contexto, abra o Thunar e escolha um ou mais arquivos e pastas (podem ser misturados), escolha a opção Copiar para... ou Mover para... e selecione a pasta ou local de destino.

    Linux: Dotando o Thunar das opcoes Copiar para e Mover para no menu de contexto
    E aguarde a cópia/movimentação do que foi selecionado. Há uma barra de progresso por item e pergunta se é para sobrescrever se algo já existir.

    Linux: Dotando o Thunar das opcoes Copiar para e Mover para no menu de contexto
    Mais simples do que ganhar da "selessão barasileira de futibóu", hehehe...

    Usando o ble.sh (Bash Line Editor) no lugar do bash completion

     BASH é um excelente interpretador de comandos mas deixa um pouco a desejar no uso diário se for comparado com o ZSH. Aqui vou mostrar a instalação e uso do "ble.sh" para o bash e que tem mais funcionalidades que o bash completion disponível nos repositórios.

    O ble.sh tenta reproduzir as funções mais modernas do zsh, como completar comandos, sugerir comandos com parte já digitada e até a colorir conteúdos como pastas e arquivos mas o achei limitado, pois o autosuggestions dele de comandos já digitados é apenas (pelo que eu experimentei) para o comando mais próximo do histórico. Por exemplo, se você já tiver digitado e está no histórico do bash:

    • sudo apt install gawk
    • sudo apt autoremove
    • sudo apt remove ri-li

    ao digitar "sudo apt", em vez de poder navegar com as setas para acessar as 3 opções mostradas (install gawk, autoremove e remove ri-li) ele "vai" na entrada mais nova (de baixo pra cima) e ignora as outras. O zsh consegue via "meio comando" (como no nosso exemplo) navegar pelas opções já digitadas anteriormente através das setas.

    Mas enfim, para experimentar, faça assim:

    git clone https://github.com/akinomyoga/ble.sh ~/.ble.sh
    sudo apt install gawk
    cd ~/.ble.sh
    make

    Depois:

    nano ~/.bashrc

    Coloque no final do arquivo:

    # ble.sh
    if [ -f ~/.ble.sh/out/ble.sh ]; then
      source ~/.ble.sh/out/ble.sh
    fi

    E finalmente:

    source ~/.bashrc

    O bash fica mais "alegrinho" e cheio de fru-fru mas, sinceramente, ainda prefiro o zsh e os "3 milhões" de plugins que ele tem.

    Pelos testes que eu fiz o bash/ble.sh tem mesmo essa limitação de sugerir comandos "meio digitados" mas já digitados anteriormente. Se alguém descobrir uma forma de fazer isso no ble.sh ou mesmo no bash aos moldes do zsh por favor coloque nos comentários.

    Vou explicar de novo esse lance de auto-complete e auto-suggestions. O auto-complete funciona, você digita o comando pela metade e as opções de comando ficam disponíveis. Por exemplo, digitando apenas "apt" e apertando TAB aparecerão os complementos ao comando disponíveis: 

    apt                   apt-extracttemplates  apt-mark            
    apt-cache             apt-ftparchive        apt-sortpkgs        
    apt-cdrom             apt-get                                   
    apt-config            apt-listchanges   

    Já o auto-suggestions quando, se você já tiver digitado e estiver no histórico:

    sudo apt install gawk
    sudo apt autoremove
    sudo apt remove ri-li

    ao digitar apenas sudo apt TUDO em termos de comandos que estejam no histórico do bash (no caso, no zsh) DEPOIS do sudo apt podem ser acessados via setas do teclado. No zsh isso funciona assim; no bash só mostra o comando mais novo e ignora o resto.