Dconf: Gerenciando Configurações no GNOME
dconf
é um sistema de configuração usado principalmente pelo GNOME para armazenar preferências de usuários e configurações do sistema. Ele funciona como um banco de dados binário eficiente, acessado principalmente por meio da API GSettings
.
Nesse guia vamos abordar sobre:
dconf
(CLI)dconf-editor
(GUI)
Dconf CLI (linha de comando)
A interface de linha de comando dconf
é útil para automação, scripting e acesso rápido às configurações.
Leitura de um valor
# Exibe o valor atual da chave especificada
dconf read /org/gnome/desktop/interface/clock-format
Escrita de um valor
dconf write /org/gnome/desktop/interface/clock-format "'12h'"
Importante
Note as aspas! O valor precisa estar formatado corretamente, incluindo aspas internas se for uma string, ou colchetes para listas, etc., tudo dentro das aspas externas que o shell interpreta.
- Exemplo Booleano:
dconf write /org/gnome/desktop/peripherals/touchpad/tap-to-click true
- Exemplo Inteiro:
dconf write /org/gnome/desktop/session/idle-delay 600
(sem aspas internas)
Resetando um valor
dconf reset /org/gnome/desktop/interface/clock-format
Listando chaves/subdiretórios
# Inclua uma barra "/" no final do caminho para listar o conteúdo.
dconf list /org/gnome/desktop/interface/
Monitorando alterações
# Observa e retorna as chaves e valores alterados no caminho especificado.
dconf watch /org/gnome/
Backup de configurações
# Exporta um ramo inteiro da árvore de configurações para um arquivo.
dconf dump /org/gnome/desktop/ > gnome-desktop-settings.dconf
Restaurando configurações
# Importa configurações de um arquivo previamente salvo.
dconf load /org/gnome/desktop/ < gnome-desktop-settings.dconf
Cuidado
Este comando sobrescreve as configurações existentes no caminho especificado. Use com cautela.
Dconf GUI (Interface grafica)
O dconf-editor
oferece uma maneira visual e intuitiva de interagir com o banco de dados dconf
.
Instalação
# Distros baseados em arch
sudo pacman -S dconf-editor
# Distros Fedora/CentOS/RHEL
sudo dnf install dconf-editor
# Distros Debian/Ubuntu
sudo apt install dconf-editor
A ferramenta permite visualizar e modificar as configurações facilmente.
Script para backup e restore
Para simplificar o backup e a restauração seletiva de configurações, incluindo extensões do GNOME Shell, você pode utilizar o seguinte conjunto de scripts.
Estrutura de Arquivos
- Diretorio: diretorio
backup
é onde vai armazenar cada configuração do backup individualmente. - Script de paths: onde vai armazenar todos os paths para o backup/restore.
- Script de backup: irá salvar suas configurações atuais dentro da pasta
backup
. - Script de restore: irá usar cada arquivo existe na pasta de
backup
para restaurar todos as configurações salvas.
Estrutra de arquivos fica
.
├── backup/ # Diretório para armazenar backups individuais
│ ├── app-switcher.conf
│ ├── background.conf
│ ├── ...
│ └── timepp.conf
├── config-backup.sh # Script para realizar o backup
├── config-paths.sh # Script para definir os caminhos de backup/restauração
└── config-restore.sh # Script para restaurar as configurações
Setup
Execute os comandos abaixo no terminal para configurar os scripts.
Crie a pasta de backup
mkdir backup
Crie o arquivo de paths
cat > config-paths.sh <<EOF
#!/bin/bash
declare -a paths=(
"/org/gnome/terminal/"
"/org/nemo/preferences/"
"/org/gnome/desktop/interface/"
"/org/gnome/shell/extensions/dash-to-dock/"
"/org/gnome/shell/extensions/just-perfection/"
"/org/gnome/shell/extensions/status-area-horizontal-spacing/"
"/org/gnome/shell/app-switcher/"
"/org/gnome/settings-daemon/plugins/power/"
"/org/gnome/desktop/input-sources/"
"/org/gnome/desktop/background/"
"/org/gnome/desktop/wm/preferences/"
"/org/gtk/gtk4/settings/file-chooser/"
"/org/gnome/nautilus/"
)
Atenção
Personalize o arraypaths
com os caminhos que deseja incluir no backup. Os caminhos fornecidos são apenas exemplos. Você pode descobrir os paths usando o comandodconf watch <caminho>
.
Criar o script de backup (config-backup.sh)
cat > config-backup.sh <<EOF
#!/bin/bash
# Backup configurações
source config-paths.sh
BACKUP_DIR=$(cd "$(dirname "$0")" && pwd)/backup
mkdir -p "$BACKUP_DIR"
for path in "${paths[@]}"
do
filename=$(echo "$path" | sed -r 's#.*\/([a-z-]+)\/?#\1.conf#g')
dconf dump "$path" > "$BACKUP_DIR/$filename"
done
EOF
Criar o script de restauração (config-restore.sh)
cat > config-restore.sh <<EOF
#!/bin/bash
# Restaura configurações
source config-paths.sh
BACKUP_DIR=$(cd "$(dirname "$0")" && pwd)/backup
for path in "${paths[@]}"
do
filename=$(echo "$path" | sed -r 's#.*\/([a-z-]+)\/?#\1.conf#g')
dconf load "$path" < "$BACKUP_DIR/$filename"
done
EOF
Tornar os Scripts Executáveis
chmod +x config-backup.sh config-paths.sh config-restore.sh
Uso
Após a configuração, edite o arquivo config-paths.sh
para incluir os caminhos das configurações que deseja salvar. Em seguida:
- Execute
./config-backup.sh
para criar o backup. - Execute
./config-restore.sh
para restaurar as configurações.