[ BSPWM ] Script para setar wallpaper aleatório

Depêndencias Utilizadas

Obrigatório:

  • feh Para setar os wallpapers

Opcional:

  • Para mostrar as notificações, eu recomendo o dunst ou qualquer outro daemon de notificações.

Script

  • Abra um terminal e crie o script: > Wallchanger.sh
  • Dê permissão de execução: chmod +x Wallchanger.sh
  • Adicione o código que está abaixo no Wallchanger.sh
#!/bin/env bash

# Diretório que contém suas imagens de papel de parede
wallpaper_dir="$HOME/Images/"

# Lista de arquivos de imagem no diretório
wallpapers=("$wallpaper_dir"/*)

# Escolha aleatoriamente um papel de parede da lista
random_wallpaper="${wallpapers[RANDOM % ${#wallpapers[@]}]}"

# Verifica se o arquivo de imagem existe
if [ -f "$random_wallpaper" ]; then
    # Configura o papel de parede usando o feh
    feh --bg-fill "$random_wallpaper"

    # Exibe uma notificação para indicar a mudança do papel de parede (opcional)
    notify-send "Papel de parede alterado para $random_wallpaper"
else
    # Se o arquivo de imagem não existir, exibe uma mensagem de erro
    echo "Erro: O arquivo de imagem não foi encontrado em $random_wallpaper"
    notify-send "Erro: O arquivo de imagem não foi encontrado em $random_wallpaper"
fi

Configure o seu feh no .config/bspwm/bspwmrc

  • A utilidade do arquivo .fehbg, geralmente localizado no seu diretório $HOME, é restaurar a imagem definida, ou seja, toda vez que você der reboot, o feh automaticamente setará o wallpaper que você setou antes de ter dado reboot.
  • OBS: Isso é opcional, apenas se quiser restaurar a imagem setada.

Exemplo:

#! /bin/sh

# Config inicialização {{{
~/.fehbg & # Irá inicializar em segundo plano
# }}}

Configure a tecla de atalho do Wallchanger.sh no sxhkd

  • Abra o seu .config/sxhkd/sxhkdrc com qualquer editor.
  • Adicione sua Keybind lá.
  • OBS: Adicione o diretório onde está o seu script, no meu caso está no diretório scripts.

Exemplo:

# Session Applications
super + v # muda a tecla de atalho para sua preferência
  ~/scripts/wallChange.sh
  • Após setar a keybind, digite no terminal: pkill -USR1 -x sxhkd
    Isso irá renicializar a config do sxhkd ou use a tecla de atalho padrão super + esc no meu caso.
4 curtidas

O feh tem o parâmetro --randomize para fazer este processo:

feh --bg-fill --randomize caminho_da_pasta

5 curtidas

Bem mais prático :P, valeu!