(provide 'my/init-god-mode) (eval-after-load "god-mode" '(progn ;; TODO: only do this on the Thinkpad (global-set-key (kbd "") 'god-mode-all) (defadvice god-mode-lookup-key-sequence (before my-swap-x-t) "Swap ?x and ?t KEY arguments." (case (ad-get-arg 0) (?x (ad-set-arg 0 ?t)) (?t (ad-set-arg 0 ?x)))) (ad-activate 'god-mode-lookup-key-sequence) (defvar original-color (frame-parameter nil 'cursor-color)) (defun my-update-cursor () (if god-local-mode (set-cursor-color "Red") (set-cursor-color original-color))) (define-key god-local-mode-map (kbd ".") 'repeat) (add-hook 'god-mode-enabled-hook 'my-update-cursor) (add-hook 'god-mode-disabled-hook 'my-update-cursor) ;; reliably toggle god-mode for all modes (setq god-exempt-major-modes nil) (setq god-exempt-predicates nil) (defun god-toggle-on-overwrite () "Toggle god-mode on overwrite-mode." (if (bound-and-true-p overwrite-mode) (god-local-mode-pause) (god-local-mode-resume))) (add-hook 'overwrite-mode-hook 'god-toggle-on-overwrite) (define-key god-local-mode-map (kbd "i") 'god-local-mode) (global-set-key (kbd "C-x C-k") 'kill-this-buffer) (global-set-key (kbd "C-x C-1") 'delete-other-windows) (global-set-key (kbd "C-x C-2") 'split-window-below) (global-set-key (kbd "C-x C-3") 'split-window-right) (global-set-key (kbd "C-x C-0") 'delete-window))) (require 'god-mode)