about summary refs log tree commit diff stats
path: root/.emacs.d/lisp/init-ui.el
diff options
context:
space:
mode:
Diffstat (limited to '.emacs.d/lisp/init-ui.el')
-rw-r--r--.emacs.d/lisp/init-ui.el96
1 files changed, 61 insertions, 35 deletions
diff --git a/.emacs.d/lisp/init-ui.el b/.emacs.d/lisp/init-ui.el
index 0c12934..50e9cdb 100644
--- a/.emacs.d/lisp/init-ui.el
+++ b/.emacs.d/lisp/init-ui.el
@@ -8,6 +8,8 @@
   :hook
   (elpaca-after-init . (lambda ()
                          (cond
+                          ((find-font (font-spec :name "aporetic serif mono"))
+                           (set-face-attribute 'default nil :font "aporetic serif mono"))
                           ((find-font (font-spec :name "iosevka comfy"))
                            (set-face-attribute 'default nil :font "iosevka comfy"))
                           ((find-font (font-spec :name "iosevka"))
@@ -16,37 +18,11 @@
                          (global-display-line-numbers-mode)
                          (global-hl-line-mode +1)
 
-                         (global-set-key (kbd "C-x C-S-k") 'kill-this-buffer)
-
                          (add-to-list 'custom-theme-load-path "~/.emacs.d/themes")
                          (load-theme 'non-modo t)))
-  ;; http://yummymelon.com/devnull/enhancing-navigation-in-emacs-view-mode.html
-  (view-mode . (lambda ()
-                 (cond ((derived-mode-p 'org-mode)
-                        (define-key view-mode-map (kbd "p") 'org-previous-visible-heading)
-                        (define-key view-mode-map (kbd "n") 'org-next-visible-heading))
-                       ((derived-mode-p 'markdown-mode)
-                        (define-key view-mode-map (kbd "p") 'markdown-outline-previous)
-                        (define-key view-mode-map (kbd "n") 'markdown-outline-next))
-                       ((derived-mode-p 'html-mode)
-                        (define-key view-mode-map (kbd "p") 'sgml-skip-tag-backward)
-                        (define-key view-mode-map (kbd "n") 'sgml-skip-tag-forward))
-                       ((derived-mode-p 'emacs-lisp-mode)
-                        (define-key view-mode-map (kbd "p") 'backward-sexp)
-                        (define-key view-mode-map (kbd "n") 'forward-sexp))
-                       ((derived-mode-p 'clojure-mode)
-                        (define-key view-mode-map (kbd "p") 'backward-sexp)
-                        (define-key view-mode-map (kbd "n") 'forward-sexp))
-                       ((derived-mode-p 'makefile-mode)
-                        (define-key view-mode-map (kbd "p") 'makefile-previous-dependency)
-                        (define-key view-mode-map (kbd "n") 'makefile-next-dependency))
-                       ((derived-mode-p 'c-mode)
-                        (define-key view-mode-map (kbd "p") 'c-beginning-of-defun)
-                        (define-key view-mode-map (kbd "n") 'c-end-of-defun))
-                       (t
-                        (define-key view-mode-map (kbd "p") 'scroll-down-command)
-                        (define-key view-mode-map (kbd "n") 'scroll-up-command)))))
+  :bind ("C-x C-S-k" . kill-buffer)
   :config
+  (setq-default display-line-numbers-widen t)
   ;; https://github.com/rougier/elegant-emacs/blob/master/sanity.el
   (setq inhibit-startup-screen t
         inhibit-startup-echo-area-message t
@@ -65,13 +41,22 @@
                              (run-with-timer 0.05 nil 'invert-face 'mode-line))
         visible-bell t)
 
-  ;; TODO do we want these? (copied from prelude)
+  ;; A combination of settings from prelude and minimal-emacs.d, may need tweaking
   (setq scroll-margin 0
         scroll-conservatively 100000
-        scroll-preserve-screen-position 1)
+        scroll-preserve-screen-position 1
+        hscroll-margin 2
+        hscroll-step 1
+        auto-window-vscroll nil)
   (setq pixel-scroll-precision-mode t)
+  (setq-default word-wrap t
+                truncate-lines t
+                fill-column 80)
+  ;; If enabled and `truncate-lines' is disabled, soft wrapping will not occur
+  ;; when the window is narrower than `truncate-partial-width-windows' characters.
+  (setq truncate-partial-width-windows nil)
 
-  (fset 'yes-or-no-p 'y-or-n-p)
+  (setq use-short-answers t)
 
   (setq frame-title-format
         '("Emacs: " (:eval (if (buffer-file-name)
@@ -79,9 +64,41 @@
                              "%b"))))
 
   (when (eq system-type 'darwin)
-    (setq mac-option-modifier 'meta)
-    (setq mac-right-option-modifier 'none)
-    (setq mac-command-modifier 'super)))
+    (setq mac-option-modifier 'meta
+          mac-right-option-modifier 'none)
+    ;; After swapping control and command, this works nicely,
+    ;; otherwise use (setq mac-command-modifier 'super)
+    (setq mac-command-modifier 'control
+          mac-control-modifier 'super)))
+
+(use-feature view
+  ;; http://yummymelon.com/devnull/enhancing-navigation-in-emacs-view-mode.html
+  :hook
+  (view-mode . (lambda ()
+                 (cond ((derived-mode-p 'org-mode)
+                        (define-key view-mode-map (kbd "p") 'org-previous-visible-heading)
+                        (define-key view-mode-map (kbd "n") 'org-next-visible-heading))
+                       ((derived-mode-p 'markdown-mode)
+                        (define-key view-mode-map (kbd "p") 'markdown-outline-previous)
+                        (define-key view-mode-map (kbd "n") 'markdown-outline-next))
+                       ((derived-mode-p 'html-mode)
+                        (define-key view-mode-map (kbd "p") 'sgml-skip-tag-backward)
+                        (define-key view-mode-map (kbd "n") 'sgml-skip-tag-forward))
+                       ((derived-mode-p 'emacs-lisp-mode)
+                        (define-key view-mode-map (kbd "p") 'backward-sexp)
+                        (define-key view-mode-map (kbd "n") 'forward-sexp))
+                       ((derived-mode-p 'clojure-mode)
+                        (define-key view-mode-map (kbd "p") 'backward-sexp)
+                        (define-key view-mode-map (kbd "n") 'forward-sexp))
+                       ((derived-mode-p 'makefile-mode)
+                        (define-key view-mode-map (kbd "p") 'makefile-previous-dependency)
+                        (define-key view-mode-map (kbd "n") 'makefile-next-dependency))
+                       ((derived-mode-p 'c-mode)
+                        (define-key view-mode-map (kbd "p") 'c-beginning-of-defun)
+                        (define-key view-mode-map (kbd "n") 'c-end-of-defun))
+                       (t
+                        (define-key view-mode-map (kbd "p") 'scroll-down-command)
+                        (define-key view-mode-map (kbd "n") 'scroll-up-command))))))
 
 (use-package hl-todo
   :bind
@@ -116,7 +133,7 @@
   (dolist (mode whitespace-disabled-modes)
     (add-hook (intern (concat (symbol-name mode) "-hook")) #'turn-off-whitespace-mode))
   :hook
-  ((text-mode prog-mode) . (lambda () (whitespace-mode +1))))
+  ((text-mode prog-mode) . whitespace-mode))
 
 (use-package goggles
   :diminish
@@ -131,6 +148,9 @@
   :hook (prog-mode . idle-highlight-mode))
 
 (use-feature paren
+  :custom
+  (show-paren-when-point-inside-paren t)
+  (show-paren-when-point-in-periphery t)
   :config
   (show-paren-mode +1))
 
@@ -194,6 +214,9 @@
     ;; Run setup hook for `eval-expression' (calls `eldoc--eval-expression-setup')
     (run-hooks 'eval-expression-minibuffer-setup-hook)
 
+    (mono-complete-mode +1)
+    (setq-local mono-complete-fallback-command 'dabbrev-expand)
+
     ;; smartparens, but don't insert pairs of '
     (smartparens-strict-mode)
     (setq-local sp-pair-list (assoc-delete-all "'" sp-pair-list))
@@ -217,5 +240,8 @@
   (set-face-foreground 'highlight-indent-guides-character-face "grey25")
   :hook ((prog-mode text-mode conf-mode) . highlight-indent-guides-mode))
 
+;; Main causal collection package; the individual packages are configured in the appropriate places
+(use-package casual)
+
 (provide 'init-ui)
 ;;; init-ui.el ends here