;;; dconf-mode.el --- Edit dconf settings in an emacs buffer ;;;###autoload (add-to-list 'auto-mode-alist '("\\.gsets" . dconf-mode)) ;;; Commentary: ;; I haven't completely given up on GNOME. This is a little wrapper I've ported ;; from my vim config to modify and save the running GNOME state to files. ;; The relevant vim settings: ;; autocmd BufReadPre *.gsets silent !dconf dump /org/gnome/%:t:r/ > % ;; autocmd BufReadPost *.gsets set ft=dosini ;; autocmd BufWritePost *.gsets silent !cat % | dconf load /org/gnome/%:t:r/ ;;; Code: (defun dconf-load-current-file () "Load the current file into dconf's live registry." (interactive) (shell-command (concat "cat " buffer-file-name " | dconf load /org/gnome/" (file-name-base buffer-file-name) "/"))) (defun dconf-dump-current-file () "Load dconf's live registry into the current file." (interactive) (erase-buffer) (shell-command (concat "dconf dump /org/gnome/" (file-name-base buffer-file-name) "/") (current-buffer))) (if (string-match "*.gsets" buffer-file-name) (progn ;; (add-hook) ;BufReadPre (conf-windows-mode) ;BufReadPost might be default ) ) (define-derived-mode dconf-mode conf-mode "Dconf" (add-hook after-save-hook #'dconf-load-current-file) ) (provide 'dconf-mode) ;;; dconf-mode.el ends here