dotfiles/.emacs.d/lisp/init-ui.el

175 lines
5.2 KiB
EmacsLisp
Raw Normal View History

2021-08-17 11:49:19 +00:00
;;; init-ui.el --- UI Configuration File -*- lexical-binding: t -*-
;;; Commentary:
;; Some parts copied from prelude-ui.el and prelude-editor.el
;; Frame customisations, and disabling of {menu,tool,scoll}-bar-mode done in early-init.el, rather than here
2021-08-17 11:49:19 +00:00
;;; Code:
(use-package emacs
2023-01-16 16:07:34 +00:00
:hook
(emacs-startup . (lambda ()
(cond
((find-font (font-spec :name "iosevka comfy"))
(set-face-attribute 'default nil :font "iosevka comfy"))
((find-font (font-spec :name "iosevka"))
(set-face-attribute 'default nil :font "iosevka")))
2022-10-14 11:29:07 +00:00
2023-01-16 16:07:34 +00:00
(global-display-line-numbers-mode)
(global-hl-line-mode +1)
2022-10-14 11:29:07 +00:00
2023-01-16 16:07:34 +00:00
(global-set-key (kbd "C-x C-S-k") 'kill-this-buffer)))
(after-init . (lambda ()
(add-to-list 'custom-theme-load-path "~/.emacs.d/themes")
(load-theme 'non-modo t)))
2021-08-17 11:49:19 +00:00
2022-10-14 11:29:07 +00:00
:config
2021-08-17 11:49:19 +00:00
;; https://github.com/rougier/elegant-emacs/blob/master/sanity.el
(setq inhibit-startup-screen t
inhibit-startup-echo-area-message t
inhibit-startup-message t
initial-scratch-message nil)
(blink-cursor-mode -1)
2022-10-05 19:12:08 +00:00
(setq-default cursor-type 'bar)
2021-08-17 11:49:19 +00:00
(setq whitespace-line-column 120)
(setq show-trailing-whitespace t)
(setq-default indicate-empty-lines t)
2021-08-17 11:49:19 +00:00
(setq ring-bell-function 'ignore
visible-bell t)
;; TODO do we want these? (copied from prelude)
(setq scroll-margin 0
scroll-conservatively 100000
scroll-preserve-screen-position 1)
(fset 'yes-or-no-p 'y-or-n-p)
(setq frame-title-format
'("Emacs: " (:eval (if (buffer-file-name)
(abbreviate-file-name (buffer-file-name))
"%b"))))
(when (eq system-type 'darwin)
(setq mac-option-modifier 'meta)
(setq mac-right-option-modifier 'none)
(setq mac-command-modifier 'super)))
2022-08-31 15:45:58 +00:00
(use-package hl-todo
:bind
(:map hl-todo-mode-map
("C-c c t p" . hl-todo-previous)
("C-c c t n" . hl-todo-next)
("C-c c t o" . hl-todo-occur)
("C-c c t r" . hl-todo-rgrep)
("C-c c t i" . hl-todo-insert))
2023-01-16 16:07:34 +00:00
:custom
(hl-todo-keyword-faces
'(("TODO" . "red3")
("FIXME" . "red3")
("DEBUG" . "#A020F0")
("GOTCHA" . "#FF4500")
("HACK" . "#FF4500")
("STUB" . "#1E90FF")
("FAIL" . "red3")
("NOTE" . "DarkOrange2")
("DEPRECATED" . "yellow")))
2022-10-14 11:29:07 +00:00
:hook (emacs-startup . global-hl-todo-mode))
2022-08-31 15:45:58 +00:00
2021-08-17 11:49:19 +00:00
(use-package whitespace
:diminish
:custom
(whitespace-line-column 120)
(whitespace-style '(face tabs empty trailing lines-tail))
2022-10-25 15:37:07 +00:00
:config
(defun turn-off-whitespace-mode ()
(whitespace-mode -1))
(defvar-local whitespace-disabled-modes '(cider-repl-mode ielm-mode vterm-mode eshell-mode shell-mode term-mode ansi-term-mode))
(dolist (mode whitespace-disabled-modes)
(add-hook (intern (concat (symbol-name mode) "-hook")) #'turn-off-whitespace-mode))
2021-08-17 11:49:19 +00:00
:hook
(text-mode . (lambda () (whitespace-mode +1)))
2022-10-26 15:08:46 +00:00
(prog-mode . (lambda () (whitespace-mode +1))))
2021-08-17 11:49:19 +00:00
2022-11-04 16:38:09 +00:00
(use-package goggles
2021-08-17 11:49:19 +00:00
:diminish
2022-11-04 16:38:09 +00:00
:custom
(goggles-pulse-delay 0.1)
2022-11-11 12:11:30 +00:00
(goggles-pulse-iterations 15)
2022-11-04 16:38:09 +00:00
:hook ((prog-mode text-mode) . goggles-mode)
2021-08-17 11:49:19 +00:00
:config
2022-11-04 16:38:09 +00:00
(set-face-background 'goggles-removed "red4"))
2021-08-17 11:49:19 +00:00
(use-package idle-highlight-mode
:hook (prog-mode . idle-highlight-mode))
(use-package paren
:config
(show-paren-mode +1))
(use-package which-key
2022-08-30 11:53:46 +00:00
:defer 5
2021-08-17 11:49:19 +00:00
:diminish
:config (which-key-mode +1))
(use-package rainbow-delimiters
2022-07-08 06:47:33 +00:00
:hook
(text-mode . (lambda () (rainbow-delimiters-mode +1)))
(prog-mode . (lambda () (rainbow-delimiters-mode +1))))
2021-08-17 11:49:19 +00:00
(use-package rainbow-mode
:diminish)
2022-08-13 10:37:58 +00:00
(use-package repeat
2022-09-16 05:50:26 +00:00
:defer 5
2022-08-13 10:37:58 +00:00
:config
2022-10-06 15:30:41 +00:00
(let ((inhibit-message t))
(repeat-mode +1))
2022-08-13 10:37:58 +00:00
(defvar buffer-repeat-map
(let ((map (make-sparse-keymap)))
(define-key map (kbd "<left>") #'previous-buffer)
(define-key map (kbd "<right>") #'next-buffer)
map))
(dolist (cmd '(previous-buffer next-buffer))
(put cmd 'repeat-map 'buffer-repeat-map)))
2021-08-17 11:49:19 +00:00
2022-11-01 16:47:02 +00:00
(use-package beacon
2022-09-16 05:50:26 +00:00
:defer 5
2022-11-01 16:47:02 +00:00
:diminish
2022-06-07 08:30:21 +00:00
:custom
2022-11-01 16:47:02 +00:00
(beacon-color "yellow")
(beacon-push-mark 20)
2022-11-03 16:50:49 +00:00
(beacon-blink-when-point-moves-vertically 10)
2022-11-02 16:47:03 +00:00
(beacon-blink-when-focused t)
2022-11-01 16:47:02 +00:00
:bind ("C-c c b" . beacon-blink)
:config
(append-to-list* 'beacon-dont-blink-major-modes 'cider-repl-mode 'eshell-mode 'shell-mode 'vterm-mode 'term-mode 'ansi-term-mode)
2022-11-01 16:47:02 +00:00
(beacon-mode 1))
2022-06-07 08:30:21 +00:00
2022-10-11 15:48:05 +00:00
(use-package helpful
2022-11-11 12:11:52 +00:00
:bind (("C-h f" . helpful-function)
("C-h F" . helpful-callable)
("C-h x" . helpful-command)
2022-10-11 15:48:05 +00:00
("C-h v" . helpful-variable)
("C-h k" . helpful-key)
("C-h o" . helpful-symbol)
("C-h C-." . helpful-at-point)))
2022-10-12 12:28:10 +00:00
;; From https://github.com/jwiegley/dot-emacs/blob/master/init.el
(use-package eval-expr
:bind ("M-:" . eval-expr)
:config
(defun eval-expr-minibuffer-setup ()
(local-set-key (kbd "<tab>") #'lisp-complete-symbol)
2022-11-02 21:20:28 +00:00
(set-syntax-table emacs-lisp-mode-syntax-table)
(smartparens-strict-mode)))
2022-10-12 12:28:10 +00:00
2023-02-02 08:23:23 +00:00
(use-package highlight-sexp
:diminish
:custom (hl-sexp-background-color "grey10") ;; grey25 grey30 DarkBlue navy MidnightBlue DarkSlateBlue
:hook
(emacs-lisp-mode . highlight-sexp-mode)
(clojure-mode . highlight-sexp-mode))
2021-08-17 11:49:19 +00:00
(provide 'init-ui)
;;; init-ui.el ends here