Para automatizar a troca do papel de parede ao conectar no Wi-Fi especifica, vamos usar como exemplo: “Escritorio”, a forma mais eficiente de executar no Linux é usar um script de dispatcher do NetworkManager.
1. O Script
Crie o arquivo /etc/NetworkManager/dispatcher.d/99-wallpaper-escritorio:
#!/bin/bash
INTERFACE=$1
STATUS=$2
# Executa apenas quando a conexão é estabelecida
if [ "$STATUS" = "up" ]; then
# Captura o SSID atual
SSID=$(nmcli -t -f active,ssid dev wifi | grep '^yes' | cut -d: -f2)
if [ "$SSID" = "Escritorio" ]; then
USER="usuario"
USER_ID=$(id -u $USER)
IMG="file:///home/usuario/Imagens/corebase_bg.jpg"
# Comando para alterar o wallpaper (Modo Claro e Escuro)
sudo -u $USER DISPLAY=:0 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$USER_ID/bus \
gsettings set org.gnome.desktop.background picture-uri "$IMG"
sudo -u $USER DISPLAY=:0 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$USER_ID/bus \
gsettings set org.gnome.desktop.background picture-uri-dark "$IMG"
fi
fi2. Configuração
Para o script funcionar, você precisa dar permissão de execução:
- Salve o arquivo no diretório mencionado.
- No terminal, execute:
sudo chmod +x /etc/NetworkManager/dispatcher.d/99-wallpaper-escritorio
Por que isso é necessário?
- Dispatcher.d: É o local onde o Linux guarda scripts que “escutam” mudanças na rede.
- Variáveis DBUS: Como o script roda como
root, ele precisa dessas variáveis para saber em qual tela e em qual sessão de usuário ele deve aplicar a mudança do GNOME. - SSID: O
nmcligarante que a troca só ocorra na “Escritorio”, evitando que seu papel de parede mude em redes públicas ou no trabalho.