Mudar Tema e Ícones do XFCE4 pelo Terminal
Se você gosta de usar o terminal e tem muitos temas instalados, usar comandos é uma ótima solução para mudar o tema e ícones do XFCE4.
Para saber o nome do tema, é só ir ao programa nativo de temas do xfce4, chamado Aparência ou
xfce4-appearance-settings
.
Leia também:
- Comentário feito pelo @wellwelwel sobre personalização do XFCE4 pelo terminal
- Syncthing: Sincronização de Arquivos entre PC, Celular e Outros Dispositivos
Como alterar
Alterando o tema GTK:
xfconf-query -c xsettings -p /Net/ThemeName -s "THEME_NAME"
Alterar o tema do XFWM4:
xfconf-query -c xfwm4 -p /general/theme -s "THEME_NAME"
Alterar os ícones:
xfconf-query -c xsettings -p /Net/IconThemeName -s "ICON_NAME"
Alterar o tema e os ícones dos programas Flatpak:
sudo flatpak override --env=GTK_THEME="THEME_NAME"
sudo flatpak override --env=ICON_THEME="ICON_NAME"
No lugar de “THEME_NAME” e “ICON_NAME” coloque o nome do tema e ícone desejado.
Script em Bash para automação
- Crie um arquivo onde e com o nome que desejar.
touch PATH_DO_ARQUIVO
- Dê permissão de execução para o arquivo:
chmod +x PATH_DO_ARQUIVO
- Adicione esse script no arquivo:
#!/bin/bash
tema="NOME_DO_TEMA"
icone="NOME_DO_ICONE"
xfconf-query -c xsettings -p /Net/ThemeName -s "$tema"
xfconf-query -c xfwm4 -p /general/theme -s "$tema"
xfconf-query -c xsettings -p /Net/IconThemeName -s "$icone"
sudo flatpak override --env=GTK_THEME="$tema"
sudo flatpak override --env=ICON_THEME="$icone"
- Altere “NOME_DO_TEMA” e “NOME_DO_ICONE” para o tema desejado.
Alguns anos atrás tentei achar algo parecido, mas focado em personalizar absolutamente tudo do XFCE4 pelo terminal.
A ideia era criar máquinas com temas exatamente iguais via script e foi tão difícil encontrar que acabei criando um Gist com a solução.
Se alguém se interessar, vou deixar como um complemento para a publicação 🤝
Listando os canais disponíveis para alteração
xfconf-query -l
Listando as propriedades por canal
xfconf-query -c $PROPERTY -l -v
# Por exemplo, a propriedade "xfce4-desktop":
xfconf-query -c xfce4-desktop -l -v
-v
: mostra o valor das propriedades.- Cada
/
é uma subpropriedade.
Monitorando as alterações em tempo real
xfconf-query -c $PROPERTY -m
# Por exemplo, a propriedade "xfce4-desktop":
xfconf-query -c xfce4-desktop -m
- Por exemplo, se o plano de fundo do
workspace0
for alterado, o monitoramento irá mostrar o caminho completo da propriedade alterada:/backdrop/screen0/monitorrdp0/workspace0/last-image
. - Você pode iniciar a monitoração e fazer as alterações via GUI, onde todas as alterações serão exibidas no
Terminal
para usar posteriormente via Linha de Comando.
Criando ou atualizando uma propriedade
xfconf-query -c $CHANNEL -np $PROPERTY -t 'bool' -s 'true';
# Por exemplo, o canal "xfce4-panel" e a propriedade "/panels/dark-mode":
xfconf-query -c xfce4-panel -np '/panels/dark-mode' -t 'bool' -s 'true';
-n
: garante que se a propriedade não existir, ela será criada.- Você precisa informar o tipo do valor da propriedade:
[ 'string', 'int', 'bool', 'double' ]
-s
: define o valor da propriedade.- Para inserir um
array
com múltiplos elementos, basta inserir o tipo e valor em sequência:-t int -s 0 -t int -s 1 -t int -s 2 #...
- Para forçar um único item como
array
:-t int -s 0 -a
Removendo uma propriedade
xfconf-query -c $CHANNEL -p $PROPERTY -r -R;
# Por exemplo, removendo o "Panel 2" completamente:
xfconf-query -c xfce4-panel -p '/panels/panel-2' -r -R;
-r
: indica a remoção.-R
: garante que todas as subpropriedades serão excluídas junto com a propriedade.
Xfce Terminal
- Você pode editar as preferências do Xfce Terminal em:
~/.config/xfce4/terminal/terminalrc
. - Você pode realizar as alterações via GUI e copiar o arquivo para uso posterior.
- Apenas feche e reabra o
Terminal
para visualizar as alterações.
- Apenas feche e reabra o
Whisker Menu
- Se você usa o Whisker Menu, você pode editar as preferências em:
~/.config/xfce4/panel/whiskermenu-**.rc
.- Substitua
**
pela a ordem do plugin:Busque pelo plugin
whistermenu
emxfce4-panel/plugins
para visualizar a ordem do plugin.Por exemplo, se o Whister Menu for o
plugin-19
, então:~/.config/xfce4/panel/whiskermenu-19.rc
.
- Substitua
- Você pode realizar as alterações via GUI e copiar o arquivo para uso posterior.
Considerações:
- A maioria das alterações que afetam o frontend necessitam deslogar e logar novamente para visualizar as alterações, especialmente o
panel
. - O comando
xfconf-query
só funciona com o display ativo.
Abaixo, uma solução completa como exemplo:
#!/bin/sh
# Check the display's availability
if [ -z $DISPLAY ]; then exit 1; fi;
# Prevent suspend and lock the sreen
xfconf-query -c xfce4-screensaver -np '/lock/enabled' -t 'bool' -s 'false';
xfconf-query -c xfce4-screensaver -np '/lock/saver-activation/enabled' -t 'bool' -s 'false';
xfconf-query -c xfce4-screensaver -np '/saver/enabled' -t 'bool' -s 'false';
xfconf-query -c xfce4-power-manager -np '/xfce4-power-manager/inactivity-on-ac' -t int -s 0;
xfconf-query -c xfce4-power-manager -np '/xfce4-power-manager/blank-on-ac' -t int -s 0;
xfconf-query -c xfce4-power-manager -np '/xfce4-power-manager/dpms-on-ac-sleep' -t int -s 0;
xfconf-query -c xfce4-power-manager -np '/xfce4-power-manager/dpms-on-ac-off' -t int -s 0;
xfconf-query -c xfce4-power-manager -np '/xfce4-power-manager/lock-screen-suspend-hibernate' -t 'bool' -s 'false';
xfconf-query -c xfce4-power-manager -np '/xfce4-power-manager/dpms-enabled' -t 'bool' -s 'false';
# Remove dock
xfconf-query -c xfce4-panel -p '/panels/panel-2' -r -R;
xfconf-query -c xfce4-panel -np '/panels' -t int -s 1 -a;
# Removing wallpaper
xfconf-query -c xfce4-desktop -np '/backdrop/screen0/monitorrdp0/workspace0/color-style' -t int -s 0;
xfconf-query -c xfce4-desktop -np '/backdrop/screen0/monitorrdp0/workspace0/image-style' -t int -s 0;
xfconf-query -c xfce4-desktop -np '/backdrop/screen0/monitorrdp0/workspace0/rgba1' -t double -s 0.184314 -t double -s 0.207843 -t double -s 0.258824 -t double -s 1.000000;
# Personal settings
xfconf-query -c xfce4-desktop -np '/desktop-icons/tooltip-size' -t 'double' -s 48.000000;
xfconf-query -c xfce4-desktop -np '/desktop-icons/gravity' -t int -s 0;
xfconf-query -c xfwm4 -np '/general/workspace_count' -t int -s 1;
# Put menu in bottom
xfconf-query -c xfce4-panel -np '/panels/dark-mode' -t 'bool' -s 'true';
xfconf-query -c xfce4-panel -np '/panels/panel-1/position' -t 'string' -s 'p=10;x=0;y=0';
xfconf-query -c xfce4-panel -np '/plugins/plugin-1/show-tooltips' -t 'bool' -s 'true';
# Grouping tasklist
xfconf-query -c xfce4-panel -np '/plugins/plugin-2/grouping' -t int -s 1;
# Logout settings
xfconf-query -c xfce4-session -np '/shutdown/ShowSuspend' -t 'bool' -s 'false';
xfconf-query -c xfce4-session -np '/shutdown/LockScreen' -t 'bool' -s 'false';
xfconf-query -c xfce4-session -np '/shutdown/ShowHibernate' -t 'bool' -s 'false';
xfconf-query -c xfce4-session -np '/general/PromptOnLogout' -t 'bool' -s 'false';
# Logout to save changes
xfce4-session-logout --logout --fast;