44 lines
1.3 KiB
EmacsLisp
44 lines
1.3 KiB
EmacsLisp
;;; 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
|