From 3eeb9fb1a1a2ec814a63836ef8349d6cd71c6c5c Mon Sep 17 00:00:00 2001 From: Case Duckworth Date: Wed, 19 May 2021 10:14:02 -0500 Subject: Change `browse-url-browser-function' to alist --- init.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/init.el b/init.el index 06caede..d20e1ac 100644 --- a/init.el +++ b/init.el @@ -96,7 +96,8 @@ (global-auto-revert-mode +1)) (setup browse-url - (setq-default browse-url-browser-function 'eww-browse-url + (setq-default browse-url-browser-function ; can be alist (regex . function) + '(("." . eww-browse-url)) browse-url-secondary-browser-function (if (executable-find "firefox") 'browse-url-firefox -- cgit 1.4.1-21-gabe81 From 32959ca977b7b05bcbeef14c559de85ba7838243 Mon Sep 17 00:00:00 2001 From: Case Duckworth Date: Wed, 19 May 2021 12:37:57 -0500 Subject: Add variable-pitch-mode in Org and Info --- init.el | 12 +++++++++++- lisp/acdw-fonts.el | 45 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+), 1 deletion(-) diff --git a/init.el b/init.el index d20e1ac..a6e29a4 100644 --- a/init.el +++ b/init.el @@ -365,6 +365,9 @@ (setup imenu (:option imenu-auto-rescan t)) +(setup Info + (:hook variable-pitch-mode)) + (setup isearch (:option search-default-mode t)) @@ -578,6 +581,9 @@ uniquify-after-kill-buffer-p t uniquify-ignore-buffers-re "^\\*")) +(setup variable-pitch-mode + (:hook acdw-fonts/adapt-variable-pitch)) + (setup view (:option view-read-only t) @@ -936,7 +942,11 @@ if ripgrep is installed, otherwise `consult-grep'." (:bind "RET" acdw-org/return-dwim "" acdw-org/org-table-copy-down) - (add-hook 'before-save-hook #'acdw-org/fix-blank-lines-in-buffer) + (defun acdw/org-fix-lines-before-save () + (add-hook 'before-save-hook #'acdw-org/fix-blank-lines-in-buffer 0 :local)) + + (:hook variable-pitch-mode + acdw/org-fix-lines-before-save) (advice-add 'org-delete-backward-char :override #'acdw-org/delete-backward-char)) diff --git a/lisp/acdw-fonts.el b/lisp/acdw-fonts.el index 6c0cb8d..1b73af7 100644 --- a/lisp/acdw-fonts.el +++ b/lisp/acdw-fonts.el @@ -127,5 +127,50 @@ This is for emoji fonts." (set-fontset-font t 'symbol (font-spec :family font) nil 'append))))) + +;;; Variable-pitch +;; from https://github.com/turbana/emacs-config#variable-pitch + +(defcustom acdw-fonts/fixed-pitch-faces '(linum + org-block + org-block-begin-line + org-block-end-line + org-checkbox + org-code + org-date + org-document-info-keyword + org-hide + org-indent + org-link + org-meta-line + org-special-keyword + org-table + whitespace-space) + "Faces to keep fixed-pitch in `acdw/variable-pitch-mode'." + :type 'sexp + :group 'faces) + +(defun acdw-fonts//variable-pitch-add-inherit (attrs parent) + "Add `:inherit PARENT' to ATTRS unless already present. +Handles cases where `:inherit' is already specified." + (let ((current-parent (plist-get attrs :inherit))) + (unless (or (eq parent current-parent) + (and (listp current-parent) + (member parent current-parent))) + (plist-put attrs :inherit (if current-parent + (list current-parent parent) + parent))))) + +(defun acdw-fonts/adapt-variable-pitch () + "Adapt `variable-pitch-mode' to keep some fonts fixed-pitch." + (when variable-pitch-mode + (mapc (lambda (face) + (when (facep face) + (apply #'set-face-attribute + face nil (acdw-fonts//variable-pitch-add-inherit + (face-attr-construct face) + 'fixed-pitch)))) + acdw-fonts/fixed-pitch-faces))) + (provide 'acdw-fonts) ;;; acdw-fonts.el ends here -- cgit 1.4.1-21-gabe81 From 9c6be2e953c66bbda406854797d672976877603e Mon Sep 17 00:00:00 2001 From: Case Duckworth Date: Wed, 19 May 2021 12:38:23 -0500 Subject: Setup winum keys after frame is setup I should probably change this to `after-make-frame-functions' instead... --- init.el | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/init.el b/init.el index a6e29a4..31413a4 100644 --- a/init.el +++ b/init.el @@ -1072,21 +1072,27 @@ if ripgrep is installed, otherwise `consult-grep'." (global-whitespace-cleanup-mode +1)) (setup (:straight winum) - (:option winum-auto-setup-mode-line nil + (:option winum-scope 'frame-local + winum-auto-setup-mode-line nil winum-ignored-buffers '(" *which-key*")) - (when (display-graphic-p) - (:with-map winum-keymap - (:bind "M-0" winum-select-window-0-or-10 - "M-1" winum-select-window-1 - "M-2" winum-select-window-2 - "M-3" winum-select-window-3 - "M-4" winum-select-window-4 - "M-5" winum-select-window-5 - "M-6" winum-select-window-6 - "M-7" winum-select-window-7 - "M-8" winum-select-window-8 - "M-9" winum-select-window-9))) + (when-unfocused winum-map-keys + (defvar winum--keys-mapped nil + "Whether `winum' keys have been mapped already.") + (when (and (not winum--keys-mapped) + (display-graphic-p)) + (:with-map winum-keymap + (:bind "M-0" winum-select-window-0-or-10 + "M-1" winum-select-window-1 + "M-2" winum-select-window-2 + "M-3" winum-select-window-3 + "M-4" winum-select-window-4 + "M-5" winum-select-window-5 + "M-6" winum-select-window-6 + "M-7" winum-select-window-7 + "M-8" winum-select-window-8 + "M-9" winum-select-window-9)) + (setq winum--keys-mapped t))) (winum-mode +1)) -- cgit 1.4.1-21-gabe81 From 14f6bc67ffcfb06ad4970647e660bfa05645c311 Mon Sep 17 00:00:00 2001 From: Case Duckworth Date: Wed, 19 May 2021 12:39:43 -0500 Subject: Start flyspell automatically at home Free up the C-z s key for shell --- init.el | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/init.el b/init.el index 31413a4..09a864f 100644 --- a/init.el +++ b/init.el @@ -307,15 +307,18 @@ (unless (file-exists-p ispell-personal-dictionary) (write-region "" nil ispell-personal-dictionary nil 0)) - (defun flyspell-start () + (defun flyspell-start (&optional dont-warn-when-unknown-mode) "Start `flyspell-mode' or `flyspell-prog-mode', depending on current mode." (interactive) (cond ((derived-mode-p 'text-mode) (flyspell-mode)) ((derived-mode-p 'prog-mode) (flyspell-prog-mode)) - (t (message "Non-text or -prog mode. Run `flyspell-mode'.")))) - (:leader "s" flyspell-start) + ((not dont-warn-when-unknown-mode) ; god this is ugly + (message "Non-text or -prog mode. Run `flyspell-mode'.")))) + + (when (acdw/system :home) + (flyspell-start t)) (:when-loaded (setup (:straight flyspell-correct) -- cgit 1.4.1-21-gabe81 From 33632cc2838a20b8c77b73faa99654d31e6e21ed Mon Sep 17 00:00:00 2001 From: Case Duckworth Date: Wed, 19 May 2021 12:40:09 -0500 Subject: Add `eshell-pop-or-quit' for easier keybinding --- init.el | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/init.el b/init.el index 09a864f..6628b29 100644 --- a/init.el +++ b/init.el @@ -260,7 +260,8 @@ (setup eshell (:option eshell-directory-name (acdw/dir "eshell/" t) - eshell-aliases-file (acdw/dir "eshell/aliases" t)) + eshell-aliases-file (acdw/dir "eshell/aliases" t) + eshell-kill-on-exit nil) (defun eshell-quit-or-delete-char (arg) "Delete the character to the right, or quit eshell on an empty line." @@ -269,10 +270,16 @@ (eshell-life-is-too-much) (delete-forward-char arg))) - (global-set-key (kbd "") #'eshell) + (defun eshell-pop-or-quit (&optional buffer-name) + "Pop open an eshell buffer, or if in an eshell buffer, bury it." + (interactive) + (if (eq (current-buffer) (get-buffer (or buffer-name "*eshell*"))) + (eshell-life-is-too-much) + (eshell))) + + (:leader "s" eshell-pop-or-quit) (hook-defun eshell-setup 'eshell-mode-hook - (define-key eshell-mode-map (kbd "") #'bury-buffer) (define-key eshell-mode-map (kbd "C-d") #'eshell-quit-or-delete-char) (when (boundp 'simple-modeline--mode-line) (setq mode-line-format '(:eval simple-modeline--mode-line))))) -- cgit 1.4.1-21-gabe81 From bdc2c3c40e3cd394416dabad55d94ac5fc0016b6 Mon Sep 17 00:00:00 2001 From: Case Duckworth Date: Wed, 19 May 2021 12:40:53 -0500 Subject: Remove unused variables IDK --- init.el | 6 ------ 1 file changed, 6 deletions(-) diff --git a/init.el b/init.el index 6628b29..0d0284d 100644 --- a/init.el +++ b/init.el @@ -113,12 +113,6 @@ (setup completion (:option completion-ignore-case t read-buffer-completion-ignore-case t - icomplete-delay-completions-threshold 0 - icomplete-max-delay-chars 0 - icomplete-compute-delay 0 - icomplete-show-matches-on-no-input t - icomplete-with-buffer-completion-tables t - icomplete-in-buffer t completion-styles '(partial-completion substring flex) completion-category-defaults nil completion-category-overrides -- cgit 1.4.1-21-gabe81 From f8198ee81445476c8053bdfcd964d6d0ce5bd252 Mon Sep 17 00:00:00 2001 From: Case Duckworth Date: Wed, 19 May 2021 12:41:16 -0500 Subject: Add Firefox to exec-path /before/ checking if it's available --- init.el | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/init.el b/init.el index 0d0284d..6058eef 100644 --- a/init.el +++ b/init.el @@ -96,16 +96,17 @@ (global-auto-revert-mode +1)) (setup browse-url + (when (acdw/system :work) + (add-to-list 'exec-path "C:/Program Files/Mozilla Firefox")) + (setq-default browse-url-browser-function ; can be alist (regex . function) '(("." . eww-browse-url)) browse-url-secondary-browser-function - (if (executable-find "firefox") + (if (executable-find "firefox") ; prefer Firefox 'browse-url-firefox 'browse-url-default-browser) browse-url-new-window-flag t - browse-url-firefox-new-window-is-tab t) - (when (acdw/system :work) - (add-to-list 'exec-path "C:/Program Files/Mozilla Firefox"))) + browse-url-firefox-new-window-is-tab t)) (setup buffers (:global "C-x k" acdw/kill-a-buffer)) -- cgit 1.4.1-21-gabe81 From bb07f08067b0a4be7b480fc11bfef5a8c654556d Mon Sep 17 00:00:00 2001 From: Case Duckworth Date: Wed, 19 May 2021 12:55:12 -0500 Subject: Configure shell-command From http://www.nextpoint.se/?p=864 --- init.el | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/init.el b/init.el index 6058eef..17fac5b 100644 --- a/init.el +++ b/init.el @@ -569,6 +569,14 @@ (:hook flymake-mode flymake-shellcheck-load))) +(setup shell-command + (:option shell-command-switch (acdw/system + ;; I should be testing on some variable + (:home "-csi") + (:work "-c")) + shell-command-prompt-show-cwd t + shell-command-default-error-buffer "*shell-command-errors*")) + (setup shr (:option shr-width fill-column shr-max-width fill-column -- cgit 1.4.1-21-gabe81