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;