yeet
This commit is contained in:
46
.config/emacs/modules/editor/god/autoload.el
Normal file
46
.config/emacs/modules/editor/god/autoload.el
Normal file
@@ -0,0 +1,46 @@
|
||||
;;; editor/god/autoload.el -*- lexical-binding: t; -*-
|
||||
|
||||
(defvar +god-default-color (face-background 'cursor)
|
||||
"Default cursor and bar color.")
|
||||
|
||||
(defvar +god-read-only-mode-color "Gray"
|
||||
"Cursor and bar color when `read-only-mode' is enabled.")
|
||||
|
||||
(defvar +god-overwrite-mode-color "Yellow"
|
||||
"Cursor and bar color when `overwrite-mode' is enabled.")
|
||||
|
||||
(defvar +god-fill-overflow-color "IndianRed"
|
||||
"Cursor and bar color when fill column width has been exceeded.")
|
||||
|
||||
;;;###autoload
|
||||
(defun +god--configure-cursor-and-modeline-h ()
|
||||
"Configure cursor type, cursor color and doom-modeline bar color depending on mode."
|
||||
(let* ((is-fill-overflow (> (current-column) fill-column))
|
||||
(previous-cursor-color (face-background 'cursor))
|
||||
(previous-modeline-color (and (facep 'doom-modeline-bar)
|
||||
(face-background 'doom-modeline-bar)))
|
||||
(is-god-mode (bound-and-true-p god-local-mode))
|
||||
(next-cursor-type
|
||||
(cond (buffer-read-only 'box)
|
||||
((and overwrite-mode is-god-mode) 'hollow)
|
||||
((or is-god-mode overwrite-mode) 'box)
|
||||
(t 'bar)))
|
||||
(next-cursor-and-modeline-color
|
||||
(cond (buffer-read-only +god-read-only-mode-color)
|
||||
(is-fill-overflow +god-fill-overflow-color)
|
||||
(overwrite-mode +god-overwrite-mode-color)
|
||||
(t +god-default-color))))
|
||||
(setq cursor-type next-cursor-type)
|
||||
(unless (eq previous-cursor-color next-cursor-and-modeline-color)
|
||||
(set-cursor-color next-cursor-and-modeline-color))
|
||||
(when (and (facep 'doom-modeline-bar)
|
||||
(fboundp 'doom-modeline-refresh-bars)
|
||||
(not (eq previous-modeline-color next-cursor-and-modeline-color)))
|
||||
(set-face-attribute 'doom-modeline-bar nil :background next-cursor-and-modeline-color)
|
||||
(doom-modeline-refresh-bars))))
|
||||
|
||||
;;;###autoload
|
||||
(defun +god--toggle-on-overwrite-h ()
|
||||
(if (bound-and-true-p overwrite-mode)
|
||||
(god-local-mode-pause)
|
||||
(god-local-mode-resume)))
|
||||
10
.config/emacs/modules/editor/god/config.el
Normal file
10
.config/emacs/modules/editor/god/config.el
Normal file
@@ -0,0 +1,10 @@
|
||||
;;; editor/god/config.el -*- lexical-binding: t; -*-
|
||||
|
||||
(use-package! god-mode
|
||||
:hook (doom-after-init-modules . god-mode-all)
|
||||
:config
|
||||
(add-hook 'post-command-hook #'+god--configure-cursor-and-modeline-h)
|
||||
(add-hook 'overwrite-mode-hook #'+god--toggle-on-overwrite-h)
|
||||
|
||||
(after! which-key
|
||||
(which-key-enable-god-mode-support)))
|
||||
8
.config/emacs/modules/editor/god/doctor.el
Normal file
8
.config/emacs/modules/editor/god/doctor.el
Normal file
@@ -0,0 +1,8 @@
|
||||
;; -*- lexical-binding: t; no-byte-compile: t; -*-
|
||||
;;; editor/god/doctor.el
|
||||
|
||||
(when (featurep! :editor evil)
|
||||
(warn! "god-mode is not really compatible with evil"))
|
||||
|
||||
(when (featurep! :editor objed)
|
||||
(warn! "god-mode is not really compatible with objed"))
|
||||
4
.config/emacs/modules/editor/god/packages.el
Normal file
4
.config/emacs/modules/editor/god/packages.el
Normal file
@@ -0,0 +1,4 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; editor/god/packages.el
|
||||
|
||||
(package! god-mode :pin "d7e933095041aa32033d29f2c87d201b5b43c3b3")
|
||||
Reference in New Issue
Block a user