Skip to content

Instantly share code, notes, and snippets.

@wellwelwel
Last active August 11, 2022 03:25
Show Gist options
  • Save wellwelwel/a9fecc20f7a171ce606c6c930f5f1da5 to your computer and use it in GitHub Desktop.
Save wellwelwel/a9fecc20f7a171ce606c6c930f5f1da5 to your computer and use it in GitHub Desktop.

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.

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 em xfce4-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.

  • 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;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment