asdpofiuasdpfoiasjdpfoiajsdf

This commit is contained in:
Case Duckworth 2022-05-27 13:26:19 -05:00
parent 41b2867466
commit 80abceb212
8 changed files with 83 additions and 115 deletions

130
init.el
View File

@ -38,7 +38,8 @@
;; good functioning. In this block, I add extra things or more "experimental"
;; ones that might not belong in a separate file.
(:also-load +lisp)
(:option truncate-string-ellipsis "")
(:option truncate-string-ellipsis ""
ring-bell-function 'ignore)
;; Bindings
(:global "C-x C-k" #'kill-current-buffer
"C-x 4 n" #'clone-buffer
@ -52,7 +53,7 @@
"C-x C-m" #'execute-extended-command ; original: coding systems
"C-<backspace>" #'+backward-kill-word
"C-x TAB" #'+indent-rigidly
"C-x C-c" nil)
"C-x C-c" #'+save-buffers-quit)
;; C-h deletes backward - see https://idiomdrottning.org/bad-emacs-defaults
(global-set-key (kbd "C-h") 'delete-backward-char)
(keyboard-translate ?\C-h ?\C-?)
@ -105,8 +106,8 @@
(dolist (var '(safe-local-variable-values
warning-suppress-types))
(add-to-list '+custom-variable-allowlist var))
(+ensure-after-init
(+custom-load-ignoring-most-customizations))
(+with-ensure-after-init
(+custom-load-ignoring-most-customizations))
(advice-add #'custom-buffer-create-internal :after #'+cus-edit-expand-widgets)
(:with-mode Custom-mode
(:local-set imenu-generic-expression +cus-edit-imenu-generic-expression)))
@ -147,7 +148,7 @@
(+ensure-after-init #'+key-global-mode))
(setup _work
(+with-ensure-after-init
(with-eval-after-load 'bbdb
(require '_work)))
(setup abbrev
@ -672,12 +673,13 @@
(:global [f8] #'org-clock-in
[f9] #'org-clock-out
"C-c l" #'org-store-link)
(:hook #'variable-pitch-mode
(+with-ensure-after-init
(:hook #'variable-pitch-mode
#'visual-fill-column-mode
#'turn-off-auto-fill
#'org-indent-mode
#'prettify-symbols-mode
#'+org-wrap-on-hyphens)
#'+org-wrap-on-hyphens))
(:local-set prettify-symbols-alist '(("DEADLINE:" . ?→)
("SCHEDULED:" . ?↷)
("CLOSED:" . ?✓))
@ -974,12 +976,10 @@
(setq affe-regexp-compiler (defun affe-orderless-regexp-compiler (input &rest _)
(setq input (orderless-pattern-compiler input))
(cons input (lambda (str) (orderless--highlight input str)))))
(+with-eval-after-loads (affe vertico-multiform)
(+with-eval-after-loads (affe)
(setq affe-regexp-compiler (defun affe-orderless-regexp-compiler (input &rest _)
(setq input (orderless-pattern-compiler input))
(cons input (lambda (str) (orderless--highlight input str)))))
(setf (alist-get 'affe-grep vertico-multiform-commands) nil
(alist-get 'affe-find vertico-multiform-commands) nil)
(:+key "M-s g" #'affe-grep
"M-s f" #'affe-find)))
@ -1262,10 +1262,7 @@
column-number-mode nil
file-percentage-mode nil
visual-fill-column-extra-text-width
(cons +circe-left-margin 0))
(with-eval-after-load 'vertico-multiform
(setf (alist-get 'lui-next-button-or-complete vertico-multiform-commands)
'(flat))))
(cons +circe-left-margin 0)))
(tracking-mode +1)
(:with-mode tracking-mode
@ -1383,41 +1380,10 @@
(comint-mode-map . comint-mode-hook)
(sly-mrepl-mode-map . sly-mrepl-hook)))
(with-eval-after-load 'orderless
(:option consult--regexp-compiler #'consult--orderless-regexp-compiler))
(with-eval-after-load 'vertico-multiform
(setf (alist-get 'consult-buffer vertico-multiform-commands) '(flat))
(dolist (buf-cmd '(consult-find
consult-flymake
consult-focus-lines
consult-git-grep
consult-grep
consult-imenu
consult-imenu-multi
consult-keep-lines
consult-line
consult-line-multi
consult-locate
consult-multi-occur
consult-outline
consult-ripgrep
consult-yank-pop))
(setf (alist-get buf-cmd vertico-multiform-commands) nil)))))
(setup (:straight consult-dir)
(:load-after consult)
(:+key "C-x C-d" #'consult-dir)
(:with-map vertico-map
(:bind "C-x C-d" #'consult-dir
"C-x C-j" #'consult-dir-jump-file)))
(setup (:straight consult-notmuch)
(:load-after consult notmuch)
(with-eval-after-load 'vertico-multiform
(setf (alist-get 'consult-notmuch vertico-multiform-commands) nil
(alist-get 'consult-notmuch-tree vertico-multiform-commands) nil)))
(:option consult--regexp-compiler #'consult--orderless-regexp-compiler))))
(setup (:straight corfu)
(corfu-global-mode +1))
(global-corfu-mode +1))
(setup (:straight crossword)
;; This isn't the perfect Emacs crossword puzzle, but it's the only one I
@ -1587,11 +1553,7 @@
(:bind "C-." #'embark-act
"M-." #'embark-dwim))
(:with-map embark-file-map
(:bind "l" #'vlf))
;; Integrations
(with-eval-after-load 'vertico-multiform
(setf (alist-get 'embark-prefix-help-command vertico-multiform-commands)
nil)))
(:bind "l" #'vlf)))
(setup (:straight embark-consult)
(:load-after consult embark)
@ -1687,9 +1649,7 @@
(:option flyspell-correct--cr-key ";")
(:bind-into flyspell
"C-;" #'flyspell-correct-wrapper
"<f7>" #'+flyspell-correct-buffer)
(with-eval-after-load 'vertico-multiform
(setf (alist-get 'flyspell vertico-multiform-categories) nil)))
"<f7>" #'+flyspell-correct-buffer))
(setup (:straight focus)
(:require)
@ -1765,12 +1725,6 @@
"<f1> v" #'helpful-variable
"<f1> k" #'helpful-key
"<f1> ." #'helpful-at-point)
(with-eval-after-load 'vertico-multiform
(dolist (cmd '(describe-symbol ; describe-* included here for completeness
describe-function describe-variable
helpful-function helpful-macro helpful-callable
helpful-variable))
(setf (alist-get cmd vertico-multiform-commands) nil)))
;; Load faster on first invocation by pre-loading a slow function
;; (see https://github.com/Wilfred/helpful/issues/236)
(run-with-idle-timer 1 nil (lambda ()
@ -1778,8 +1732,8 @@
(info-lookup-setup-mode 'symbol 'emacs-lisp-mode))))
(setup (:straight (hippie-completing-read
:host github
:repo "duckwork/hippie-completing-read"))
:host nil
:repo "https://codeberg.org/acdw/hippie-completing-read.el"))
(:+key "M-/" #'hippie-completing-read))
(setup (:straight hungry-delete)
@ -1918,10 +1872,7 @@
(keychain-refresh-environment))
(setup (:straight lacarte)
(:+key "<f10>" #'lacarte-execute-menu-command)
(with-eval-after-load 'vertico-multiform
(setf (alist-get 'lacarte-execute-menu-command vertico-multiform-commands)
'(buffer grid (vertico-sort-function . vertico-sort-length-alpha)))))
(:+key "<f10>" #'lacarte-execute-menu-command))
(setup (:straight (lin :host nil
:repo "https://git.sr.ht/~protesilaos/lin"))
@ -1967,7 +1918,11 @@
lisp-interaction-mode-map))
(define-key (symbol-value m) (kbd "C-c e") #'macrostep-expand)))
(setup (:straight (magit :host github :repo "magit/magit")))
(setup (:straight (magit :host github :repo "magit/magit"
:build (:not compile))
(:straight (transient :host github :repo "magit/transient"
:build (:not compile))))
(autoload 'transient--with-suspended-override "transient"))
(setup (:straight marginalia)
(marginalia-mode +1))
@ -2098,12 +2053,13 @@
((,class :inherit font-lock-comment-face
:foreground ,fg-header
:background ,yellow-intense-bg)))
`(mode-line
((,class :height 100)))
`(mode-line-inactive
((,class :height 100)))
`(tab-bar
((,class :height 100)))))))
;; `(mode-line
;; ((,class :height 100)))
;; `(mode-line-inactive
;; ((,class :height 100)))
;; `(tab-bar
;; ((,class :height 100)))
))))
(require 'dawn)
(dawn-schedule #'modus-themes-load-operandi
@ -2140,6 +2096,13 @@
(:hook #'visual-fill-column-mode)
(:file-match (rx ".epub" eos)))
(setup (:straight nyan-mode)
(:require)
;; For some reason, in some modes the mode-line isn't updated after these
;; commands. I think it might have to do with `+modeline-position-function'.
(advice-add 'end-of-buffer :after #'force-mode-line-update)
(advice-add 'beginning-of-buffer :after #'force-mode-line-update))
(setup (:straight ol-notmuch))
(setup (:straight orderless)
@ -2342,6 +2305,7 @@
+modeline-major-mode
(lambda () (+modeline-vc " : "))
+modeline-anzu
+modeline-nyan-on-focused
)
( ; right
simple-modeline-segment-process
@ -2350,7 +2314,6 @@
(+modeline-concat
'(+modeline-track
simple-modeline-segment-misc-info))))
simple-modeline-segment-process
,(+modeline-concat
'(+modeline-god-mode
+modeline-kmacro-indicator
@ -2360,7 +2323,7 @@
+modeline-input-method)
" ")
+modeline-position
;; +modeline-spacer
+modeline-spacer
)))
(simple-modeline-mode +1))
@ -2483,7 +2446,8 @@
(setup (:straight (twtxt
:fork (:repo "duckwork/twtxt-el")))
(:option twtxt-file "/sshx:hetzner:/var/www/acdw.casa/tw.txt"
twtxt-following '(("acdw" "https://acdw.casa/tw.txt"))))
twtxt-following '(("acdw" "https://acdw.casa/tw.txt")))
(+with-ensure-after-init (:require)))
(setup (:straight undo-fu)
(:option undo-fu-allow-undo-in-region t)
@ -2533,20 +2497,8 @@
;; Extensions
(:also-load vertico-directory
vertico-mouse
vertico-unobtrusive
vertico-multiform
vertico-quick)
(vertico-mouse-mode +1)
(vertico-multiform-mode +1)
;; I `setf' these so they don't override the other setfs elsewhere in init.el.
(setf (alist-get 'execute-extended-command vertico-multiform-commands) '(flat))
(setf (alist-get 'completion-at-point vertico-multiform-commands) '(flat))
(setf (alist-get 'indent-for-tab-command vertico-multiform-commands) '(flat))
(setf (alist-get 'insert-char vertico-multiform-commands) nil)
(setf (alist-get 'file vertico-multiform-categories) nil)
(setf (alist-get 'bookmark vertico-multiform-categories) nil)
;; Default. Needs to be `add-to-list' so that it appears at the end.
(add-to-list 'vertico-multiform-categories '(t flat) :append)
(:with-map vertico-map
(:bind "RET" #'vertico-directory-enter
"DEL" #'vertico-directory-delete-char

View File

@ -46,20 +46,24 @@ If multiple items are selected, don't advance."
(message "[Elfeed] Update in progress")
'ignore)
(defvar +elfeed--update-running nil "Whether an update is currently running.")
(defvar +elfeed--update-running-p nil "Whether an update is currently running.")
(defvar +elfeed--update-count 0 "How many times `+elfeed-update-command' has run.")
(defcustom +elfeed-update-niceness 15
"How \"nice\" `+elfeed-update-command' should be."
:type 'integer
:group 'elfeed)
(defcustom +elfeed-update-lockfile
(expand-file-name "+elfeed-update-lock" (temporary-file-directory))
"The file to ")
(defun +elfeed-update-command ()
(interactive)
(unless (or +elfeed--update-running
(unless (or +elfeed--update-running-p
(derived-mode-p 'elfeed-show-mode 'elfeed-search-mode))
(let ((script (expand-file-name "/tmp/elfeed-update.el"))
(update-message-format "[Elfeed] Background update: %s"))
(setq +elfeed--update-running t)
(setq +elfeed--update-running-p t)
(elfeed-db-save)
(advice-add 'elfeed :override #'+elfeed--update-message)
(ignore-errors (kill-buffer "*elfeed-search*"))
@ -128,7 +132,7 @@ If multiple items are selected, don't advance."
script))
(lambda (proc stat)
(advice-remove 'elfeed #'+elfeed--update-message)
(setq +elfeed--update-running nil)
(setq +elfeed--update-running-p nil)
(unless (string= stat "killed")
(setq +elfeed--update-count (1+ +elfeed--update-count)))
(message update-message-format (string-trim stat)))))))
@ -152,7 +156,7 @@ non-nil, proceed."
(defun +elfeed--cancel-update-timer ()
"Cancel `+elfeed--update-timer'."
(unless +elfeed--update-running
(unless +elfeed--update-running-p
(ignore-errors (cancel-timer +elfeed--update-timer))
(setq +elfeed--update-timer nil)))

View File

@ -121,7 +121,7 @@ Do this only if the buffer is not visiting a file."
show-paren-when-point-inside-paren t
;;show-trailing-whitespace t
tab-bar-show 1
tab-width 4
tab-width 8 ; so alignment expecting the default looks right
tramp-backup-directory-alist backup-directory-alist
undo-limit 100000000 ; 10 MB
use-dialog-box nil

View File

@ -9,6 +9,7 @@
;;; Code:
(require '+util)
(require 'actually-selected-window)
(require 'simple-modeline)
(require 'minions)
@ -472,5 +473,13 @@ to a function in the current buffer, call that function instead."
(kmacro-end-macro nil)))))
'mouse-face 'mode-line-highlight))))
(defun +modeline-nyan-on-focused (&optional spacer)
"Display the cat from `nyan-mode', but only on the focused window."
(require 'nyan-mode)
(when (actually-selected-window-p)
(concat (or spacer "") (nyan-create)
(propertize "."
'face 'font-lock-comment-face))))
(provide '+modeline)
;;; +modeline.el ends here

View File

@ -80,21 +80,22 @@ If PATH does not exist, abort the evaluation."
;;; Straight.el
(with-eval-after-load 'straight
(defun setup--straight-handle-arg (arg var)
(cond
((and (boundp var) (symbol-value var)) t)
((keywordp arg) (set var t))
((functionp arg) (set var nil) (funcall arg))
((listp arg) (set var nil) (eval arg :lexical))))
(defun setup--straight-handle-arg (arg var)
(cond
((and (boundp var) (symbol-value var)) t)
((keywordp arg) (set var t))
((functionp arg) (set var nil) (funcall arg))
((listp arg) (set var nil) arg)))
(with-eval-after-load 'straight
(setup-define :straight
(lambda (recipe &rest predicates)
(let* ((skp (make-symbol "straight-keyword-p"))
(straight-use-p
(cl-every (lambda (f) (setup--straight-handle-arg f skp))
predicates))
(form `(unless (and ,straight-use-p
(cl-mapcar
(lambda (f) (setup--straight-handle-arg f skp))
predicates))
(form `(unless (and ,@straight-use-p
(condition-case e
(straight-use-package ',recipe)
(error

View File

@ -7,6 +7,7 @@
;;; Code:
(require 'acdw)
(require 'tab-bar)
(defface +tab-bar-extra
@ -35,7 +36,7 @@
"Display `tracking-mode-line-buffers' in the tab-bar."
;; TODO: write something to convert a mode-line construct to a tab-bar
;; construct.
(when (and tracking-mode
(when (and (bound-and-true-p tracking-mode)
(not (and +tracking-hide-when-org-clocking
(bound-and-true-p org-clock-current-task))))
(cons (when (> (length tracking-mode-line-buffers) 0)
@ -261,14 +262,8 @@ name to the left."
(require 'shr) ; `shr-string-pixel-width'
(let* ((rest (cdr (memq '+tab-bar-format-align-right tab-bar-format)))
(rest (tab-bar-format-list rest))
(rest (mapconcat (lambda (item) x(nth 2 item)) rest ""))
(hpos
;; I have to rewrite `shr-string-pixel-width' to take the tab-bar face
;; into account.
(let ((pt (point)))
(prog1 (with-temp-buffer (insert (propertize rest 'face 'tab-bar))
(shr-pixel-column))
(goto-char pt))))
(rest (mapconcat (lambda (item) (nth 2 item)) rest ""))
(hpos (shr-string-pixel-width rest))
(str (propertize " " 'display `(space :align-to (- right (,hpos))))))
`((align-right menu-item ,str ignore))))

View File

@ -288,6 +288,13 @@ always nil; this function is mostly intended for use in init."
:type '(repeat function)
:group 'applications)
(defun +string-repeat (n str)
"Repeat STR N times."
(let ((r ""))
(dotimes (_ n)
(setq r (concat r str)))
r))
(defun chat-disconnect ()
"Disconnect from all chats."
(interactive)

View File

@ -13,7 +13,7 @@
(italic-face nil)
;; (bold-face nil)
(mono-face nil)
(var-face "IBM Plex Serif")
(var-face "IBM Plex Sans")
(var-size 1.0))
(+set-faces
`((default