about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--early-init.el6
-rw-r--r--init.el185
-rw-r--r--lisp/+ace-window.el17
-rw-r--r--lisp/+modeline.el142
-rw-r--r--lisp/+org-drawer-list.el41
-rw-r--r--lisp/+org.el1
-rw-r--r--lisp/+setup.el2
-rw-r--r--lisp/+tab-bar.el19
-rw-r--r--machines/bob.el2
-rw-r--r--snippets/org-mode/sc2
-rw-r--r--snippets/scheme-mode/chicken8
11 files changed, 314 insertions, 111 deletions
diff --git a/early-init.el b/early-init.el index e50d99e..d2097b3 100644 --- a/early-init.el +++ b/early-init.el
@@ -78,8 +78,10 @@ See `no-littering' for examples.")
78 window-resize-pixelwise t 78 window-resize-pixelwise t
79 inhibit-x-resources t 79 inhibit-x-resources t
80 indicate-empty-lines nil 80 indicate-empty-lines nil
81 indicate-buffer-boundaries '((top . right) 81 indicate-buffer-boundaries nil
82 (bottom . right))) 82 ;; '((top . right)
83 ;; (bottom . right))
84 )
83 85
84;;; No littering! 86;;; No littering!
85;; We install `no-littering' package below, but we can set the variables now. 87;; We install `no-littering' package below, but we can set the variables now.
diff --git a/init.el b/init.el index c1a1cd2..4e353df 100644 --- a/init.el +++ b/init.el
@@ -45,9 +45,15 @@
45 ;; "C-x t" #'beginning-of-buffer 45 ;; "C-x t" #'beginning-of-buffer
46 ;; "C-x e" #'end-of-buffer 46 ;; "C-x e" #'end-of-buffer
47 ) 47 )
48 ;; C-h deletes backward - see https://idiomdrottning.org/bad-emacs-defaults 48 ;; ;; C-h deletes backward - see https://idiomdrottning.org/bad-emacs-defaults
49 (global-set-key (kbd "C-h") 'delete-backward-char) 49 (global-set-key (kbd "C-h") 'delete-backward-char)
50 (keyboard-translate ?\C-h ?\C-?) 50 (keyboard-translate ?\C-h ?\C-?)
51 ;; Faces
52 (dolist (face '(line-number
53 line-number-major-tick
54 line-number-minor-tick
55 line-number-current-line))
56 (:face face '((t (:inherit fixed-pitch)))))
51 ;; Hooks 57 ;; Hooks
52 (add-hook 'prog-mode-hook #'turn-on-auto-fill) 58 (add-hook 'prog-mode-hook #'turn-on-auto-fill)
53 (add-hook 'prog-mode-hook #'font-lock-todo-insinuate) 59 (add-hook 'prog-mode-hook #'font-lock-todo-insinuate)
@@ -72,6 +78,9 @@
72 (:local-set truncate-lines t))) 78 (:local-set truncate-lines t)))
73 79
74(setup (:require autoinsert) 80(setup (:require autoinsert)
81 (auto-insert-mode +1))
82
83(setup (:require autoinsert)
75 (setf (alist-get "\\.scm" auto-insert-alist nil nil #'equal) 84 (setf (alist-get "\\.scm" auto-insert-alist nil nil #'equal)
76 '(insert "#!/bin/sh\n#| -*- scheme -*-\nexec csi -s $0 \"$@\"\n|#\n")) 85 '(insert "#!/bin/sh\n#| -*- scheme -*-\nexec csi -s $0 \"$@\"\n|#\n"))
77;; (auto-insert-mode +1) 86;; (auto-insert-mode +1)
@@ -91,7 +100,8 @@
91 (dolist (var '(safe-local-variable-values 100 (dolist (var '(safe-local-variable-values
92 warning-suppress-types)) 101 warning-suppress-types))
93 (add-to-list '+custom-variable-allowlist var)) 102 (add-to-list '+custom-variable-allowlist var))
94 (+custom-load-ignoring-most-customizations) 103 (+ensure-after-init
104 (+custom-load-ignoring-most-customizations))
95 (advice-add #'custom-buffer-create-internal :after #'+cus-edit-expand-widgets) 105 (advice-add #'custom-buffer-create-internal :after #'+cus-edit-expand-widgets)
96 (:with-mode Custom-mode 106 (:with-mode Custom-mode
97 (:local-set imenu-generic-expression +cus-edit-imenu-generic-expression))) 107 (:local-set imenu-generic-expression +cus-edit-imenu-generic-expression)))
@@ -107,7 +117,7 @@
107 pulse-delay 0.5 117 pulse-delay 0.5
108 pulse-iterations 1) 118 pulse-iterations 1)
109 (dolist (command '(+ace-window-or-switch-buffer 119 (dolist (command '(+ace-window-or-switch-buffer
110 pop-mark pop-globl-mark 120 pop-mark pop-global-mark
111 Info-history-back Info-history-forward)) 121 Info-history-back Info-history-forward))
112 (add-to-list '+pulse-location-commands command)) 122 (add-to-list '+pulse-location-commands command))
113 (+ensure-after-init #'+pulse-location-mode)) 123 (+ensure-after-init #'+pulse-location-mode))
@@ -126,9 +136,9 @@
126(setup +key 136(setup +key
127 (+ensure-after-init #'+key-global-mode)) 137 (+ensure-after-init #'+key-global-mode))
128 138
129;;(setup _work 139(setup _work
130;; (+with-ensure-after-init 140 (+with-ensure-after-init
131;; (require '_work))) 141 (require '_work)))
132 142
133(setup abbrev 143(setup abbrev
134 (:option abbrev-file-name (sync/ "abbrev.el") 144 (:option abbrev-file-name (sync/ "abbrev.el")
@@ -486,7 +496,7 @@
486 496
487(setup notmuch 497(setup notmuch
488 (:load-from "~/usr/share/emacs/site-lisp/") 498 (:load-from "~/usr/share/emacs/site-lisp/")
489 (:load-after org-contacts) 499 (:load-after bbdb)
490 (:also-load +notmuch +message) 500 (:also-load +notmuch +message)
491 (+define-dir notmuch/ (sync/ "emacs/notmuch") 501 (+define-dir notmuch/ (sync/ "emacs/notmuch")
492 "Notmuch configuration and data.") 502 "Notmuch configuration and data.")
@@ -530,7 +540,9 @@
530 (list :name "drafts" :query "tag:draft" :key "d") 540 (list :name "drafts" :query "tag:draft" :key "d")
531 (list :name "all mail" :query "*" :key "a")))) 541 (list :name "all mail" :query "*" :key "a"))))
532 (:+leader "m" #'+notmuch-goto "C-m" #'+notmuch-goto 542 (:+leader "m" #'+notmuch-goto "C-m" #'+notmuch-goto
533 "n" #'notmuch "C-n" #'notmuch)) 543 "n" #'notmuch "C-n" #'notmuch)
544 ;; For `focus'
545 (put 'notmuch-message 'bounds-of-thing-at-point 'notmuch-show-message-extent))
534 546
535(setup org 547(setup org
536 ;; Plain org with the `setup' form for sorting, but I install with straight. 548 ;; Plain org with the `setup' form for sorting, but I install with straight.
@@ -552,6 +564,7 @@
552 (cl-remove-if (lambda (path) (string-match-p "lisp/org\\'" path)) load-path)) 564 (cl-remove-if (lambda (path) (string-match-p "lisp/org\\'" path)) load-path))
553 (:also-load +org) 565 (:also-load +org)
554 (:option org-adapt-indentation nil 566 (:option org-adapt-indentation nil
567 org-auto-align-tags t
555 org-archive-mark-done t 568 org-archive-mark-done t
556 org-catch-invisible-edits 'show-and-error 569 org-catch-invisible-edits 'show-and-error
557 org-clock-clocked-in-display 'mode-line 570 org-clock-clocked-in-display 'mode-line
@@ -575,6 +588,7 @@
575 org-imenu-depth 3 588 org-imenu-depth 3
576 org-indent-indentation-per-level 0 589 org-indent-indentation-per-level 0
577 org-indent-mode-turns-on-hiding-stars nil 590 org-indent-mode-turns-on-hiding-stars nil
591 org-insert-heading-respect-content t
578 org-list-demote-modify-bullet '(("-" . "+") 592 org-list-demote-modify-bullet '(("-" . "+")
579 ("+" . "-")) 593 ("+" . "-"))
580 org-log-done 'time 594 org-log-done 'time
@@ -595,7 +609,7 @@
595 org-src-window-setup 'current-window 609 org-src-window-setup 'current-window
596 org-startup-truncated nil 610 org-startup-truncated nil
597 org-startup-with-inline-images t 611 org-startup-with-inline-images t
598 org-tags-column (- (- fill-column (length org-ellipsis))) 612 org-tags-column 1 ;; (- (- fill-column (length org-ellipsis)))
599 org-todo-keywords '((sequence "TODO(t)" "WAIT(w@/!)" "ONGOING(o@)" 613 org-todo-keywords '((sequence "TODO(t)" "WAIT(w@/!)" "ONGOING(o@)"
600 "|" "DONE(d!)") 614 "|" "DONE(d!)")
601 (sequence "|" "CANCELED(k@)") 615 (sequence "|" "CANCELED(k@)")
@@ -621,13 +635,25 @@
621 "C-c l" #'org-store-link) 635 "C-c l" #'org-store-link)
622 (:hook #'variable-pitch-mode 636 (:hook #'variable-pitch-mode
623 #'turn-off-auto-fill 637 #'turn-off-auto-fill
624 #'org-indent-mode) 638 #'org-indent-mode
639 #'prettify-symbols-mode
640 ;; TODO: This is only the beginning of a larger idea: I really want the
641 ;; "buffer stats" section of the mode-line to change depending on the
642 ;; mode. So like, org-mode would be a word count (maybe other text
643 ;; modes?), lui-modes could be .... something? etc.
644 (defun turn-off-column-number-mode () (setq-local column-number-mode nil)))
645 (:local-set prettify-symbols-alist '(("DEADLINE:" . ?⏰)
646 ("SCHEDULED:" . ?📅)
647 ("CLOSED:" ?✅))
648 ;;+modeline-position-function #'+org-count-words-stupidly
649 )
625 (:local-hook user-save-hook #'+org-before-save@prettify-buffer) 650 (:local-hook user-save-hook #'+org-before-save@prettify-buffer)
626 (advice-add #'org-delete-backward-char :override #'+org-delete-backward-char) 651 (advice-add #'org-delete-backward-char :override #'+org-delete-backward-char)
627 ;; (define-advice org-open-at-point (:around (fn &rest r) open-external) 652 ;; (define-advice org-open-at-point (:around (fn &rest r) open-external)
628 ;; "Open links from org externally." 653 ;; "Open links from org externally."
629 ;; (let ((browse-url-browser-function browse-url-secondary-browser-function)) 654 ;; (let ((browse-url-browser-function browse-url-secondary-browser-function))
630 ;; (apply fn r))) 655 ;; (apply fn r)))
656 ;; (add-to-list '+custom-variable-allowlist 'org-agenda-files)
631 (with-eval-after-load 'org 657 (with-eval-after-load 'org
632 (setf (alist-get "\\.x?html?\\'" org-file-apps nil nil #'equal) 658 (setf (alist-get "\\.x?html?\\'" org-file-apps nil nil #'equal)
633 #'+org-open-html) 659 #'+org-open-html)
@@ -653,11 +679,10 @@
653 (0 ;; (progn (compose-region (match-beginning 1) (match-end 1) "→") 'fixed-pitch) 679 (0 ;; (progn (compose-region (match-beginning 1) (match-end 1) "→") 'fixed-pitch)
654 'fixed-pitch t)) 680 'fixed-pitch t))
655 ;; Fancy numbered lists (well, monospaced) 681 ;; Fancy numbered lists (well, monospaced)
656 ("^[ \t]*\\(\\(?:[0-9]+\\|[A-Za-z]\\)[.)]\\) " 0 'fixed-pitch t))) 682 ("^[ \t]*\\(\\(?:[0-9]+\\|[A-Za-z]\\)[.)]\\) " 0 'fixed-pitch t)
657 ;; Make nobreak-space fixed-pitch as well, for better alignment (is this the 683 ;; Make leading org-heading stars fixed-pitch
658 ;; best way to do this? probably not!) 684 ("^\*+ " 0 'fixed-pitch t)
659 (:face org-indent ((t (:inherit (fixed-pitch)))) 685 ))
660 nobreak-space ((t (:inherit (fixed-pitch)))))
661 (with-eval-after-load 'form-feed 686 (with-eval-after-load 'form-feed
662 ;; Horizontal lines 687 ;; Horizontal lines
663 (font-lock-add-keywords 688 (font-lock-add-keywords
@@ -672,6 +697,13 @@
672 (:option org-agenda-skip-deadline-if-done t 697 (:option org-agenda-skip-deadline-if-done t
673 org-agenda-skip-scheduled-if-done t 698 org-agenda-skip-scheduled-if-done t
674 org-agenda-span 10 699 org-agenda-span 10
700 org-agenda-block-separator ?─
701 org-agenda-time-grid
702 '((daily today require-timed)
703 (800 1000 1200 1400 1600 1800 2000)
704 " ┄┄┄┄┄ " "┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄")
705 org-agenda-current-time-string
706 "← now ─────────────────────────────────────────────────"
675 org-agenda-include-diary nil ; I use the org-diary features 707 org-agenda-include-diary nil ; I use the org-diary features
676 org-agenda-todo-ignore-deadlines 'near 708 org-agenda-todo-ignore-deadlines 'near
677 org-agenda-todo-ignore-scheduled 'future 709 org-agenda-todo-ignore-scheduled 'future
@@ -679,12 +711,12 @@
679 org-deadline-warning-days 0 711 org-deadline-warning-days 0
680 org-agenda-show-future-repeats 'next 712 org-agenda-show-future-repeats 'next
681 org-agenda-window-setup 'current-window) 713 org-agenda-window-setup 'current-window)
714 (unless after-init-time
715 (:option org-agenda-files (list (sync/ "org/"))))
682 (dolist (var '(org-agenda-files 716 (dolist (var '(org-agenda-files
683 org-agenda-file-regexp 717 org-agenda-file-regexp
684 org-agenda-templates)) 718 org-agenda-templates))
685 (add-to-list '+custom-variable-allowlist var)) 719 (add-to-list '+custom-variable-allowlist var))
686 (with-eval-after-load 'org
687 (add-to-list 'org-agenda-files (sync/ "org/" t)))
688 (:+leader "a" #'org-agenda "C-a" #'org-agenda) 720 (:+leader "a" #'org-agenda "C-a" #'org-agenda)
689 (:hook #'hl-line-mode) 721 (:hook #'hl-line-mode)
690 (add-hook 'org-agenda-after-show-hook 'org-narrow-to-subtree)) 722 (add-hook 'org-agenda-after-show-hook 'org-narrow-to-subtree))
@@ -764,6 +796,9 @@
764 (:option password-cache t 796 (:option password-cache t
765 password-cache-expiry (* 60 60))) 797 password-cache-expiry (* 60 60)))
766 798
799(setup prettify-symbols-mode
800 (:option prettify-symbols-unprettify-at-point t))
801
767(setup prog 802(setup prog
768 (:local-set comment-auto-fill-only-comments t) 803 (:local-set comment-auto-fill-only-comments t)
769 (:hook #'prettify-symbols-mode)) 804 (:hook #'prettify-symbols-mode))
@@ -809,7 +844,7 @@
809 tab-bar-format-tabs 844 tab-bar-format-tabs
810 tab-bar-separator 845 tab-bar-separator
811 tab-bar-format-add-tab 846 tab-bar-format-add-tab
812 tab-bar-format-align-right 847 +tab-bar-format-align-right
813 ;;+tab-bar-misc-info 848 ;;+tab-bar-misc-info
814 +tab-bar-org-clock 849 +tab-bar-org-clock
815 +tab-bar-bongo 850 +tab-bar-bongo
@@ -846,9 +881,10 @@ They are completed by \"M-x TAB\" only in Tramp debug buffers."
846 (:require +ace-window) 881 (:require +ace-window)
847 (:option aw-keys '(?a ?s ?d ?f ?g ?h ?j ?k ?l) 882 (:option aw-keys '(?a ?s ?d ?f ?g ?h ?j ?k ?l)
848 aw-display-mode-overlay nil 883 aw-display-mode-overlay nil
849 aw-scope 'frame) 884 aw-scope 'frame
885 aw-minibuffer-flag t)
850 (:+key "M-o" #'+ace-window-or-switch-buffer) 886 (:+key "M-o" #'+ace-window-or-switch-buffer)
851 (:face aw-mode-line-face ((t (:foreground "red")))) 887 (:face 'aw-mode-line-face '((t (:foreground "red"))))
852 (+ace-window-display-mode +1)) 888 (+ace-window-display-mode +1))
853 889
854(setup (:straight (actually-selected-window 890(setup (:straight (actually-selected-window
@@ -896,8 +932,8 @@ They are completed by \"M-x TAB\" only in Tramp debug buffers."
896 '(avy-lead-face 932 '(avy-lead-face
897 avy-lead-face-1 avy-lead-face-1 avy-lead-face-1 933 avy-lead-face-1 avy-lead-face-1 avy-lead-face-1
898 avy-lead-face-1 avy-lead-face-1 avy-lead-face-1)) 934 avy-lead-face-1 avy-lead-face-1 avy-lead-face-1))
899 (:face avy-background-face 935 (:face 'avy-background-face
900 ((t (:foreground "#888888")))) 936 '((t (:foreground "#888888"))))
901 (:+key "M-j" #'avy-goto-char-timer) 937 (:+key "M-j" #'avy-goto-char-timer)
902 (:bind-into isearch 938 (:bind-into isearch
903 "M-j" #'avy-isearch) 939 "M-j" #'avy-isearch)
@@ -1120,11 +1156,11 @@ They are completed by \"M-x TAB\" only in Tramp debug buffers."
1120 (0x0-upload-text (0x0--choose-server))) 1156 (0x0-upload-text (0x0--choose-server)))
1121 (current-kill 0))) 1157 (current-kill 0)))
1122 (add-to-list '+pulse-location-commands #'lui-track-jump-to-indicator) 1158 (add-to-list '+pulse-location-commands #'lui-track-jump-to-indicator)
1123 (:face lui-track-bar ((t (:height 10 1159 (:face 'lui-track-bar '((t ( :height 10
1124 :underline (:color foreground-color 1160 :underline ( :color foreground-color
1125 :style line 1161 :style line
1126 :position line) 1162 :position line)
1127 :extend t :inhert (default))))) 1163 :extend t :inhert (default)))))
1128 (:hook #'visual-line-mode 1164 (:hook #'visual-line-mode
1129 #'enable-lui-track 1165 #'enable-lui-track
1130 #'visual-fill-column-mode 1166 #'visual-fill-column-mode
@@ -1300,9 +1336,9 @@ They are completed by \"M-x TAB\" only in Tramp debug buffers."
1300 (:hook #'turn-off-+key-mode) 1336 (:hook #'turn-off-+key-mode)
1301 (:option crossword-save-path (sync/ "emacs/crosswords/" t) 1337 (:option crossword-save-path (sync/ "emacs/crosswords/" t)
1302 crossword-empty-position-char "=") 1338 crossword-empty-position-char "=")
1303 (:face crossword-grid-face ((t :inherit 'font-lock-string-face)) 1339 (:face 'crossword-grid-face '((t :inherit 'font-lock-string-face))
1304 crossword-current-face ((t :inherit 'highlight)) 1340 'crossword-current-face '((t :inherit 'highlight))
1305 crossword-other-dir-face ((t :inherit 'font-lock-keyword-face)))) 1341 'crossword-other-dir-face '((t :inherit 'font-lock-keyword-face))))
1306 1342
1307(setup (:straight crux) 1343(setup (:straight crux)
1308 ;; yes it's silly I have an addon to this addon. 1344 ;; yes it's silly I have an addon to this addon.
@@ -1527,7 +1563,7 @@ See also `crux-reopen-as-root-mode'."
1527(setup (:straight (filldent 1563(setup (:straight (filldent
1528 :host github 1564 :host github
1529 :repo "duckwork/filldent.el")) 1565 :repo "duckwork/filldent.el"))
1530 (:+key "M-q" #'filldent-dwim)) 1566 (:+key "M-q" #'filldent-unfill-toggle))
1531 1567
1532(setup (:straight (flymake-collection 1568(setup (:straight (flymake-collection
1533 :host github 1569 :host github
@@ -1546,8 +1582,23 @@ See also `crux-reopen-as-root-mode'."
1546 (with-eval-after-load 'vertico-multiform 1582 (with-eval-after-load 'vertico-multiform
1547 (setf (alist-get 'flyspell vertico-multiform-categories) nil))) 1583 (setf (alist-get 'flyspell vertico-multiform-categories) nil)))
1548 1584
1585(setup (:straight focus)
1586 (:require)
1587 (add-hook 'modus-themes-after-load-theme-hook
1588 (defun focus-update@after-modus-load ()
1589 (modus-themes-with-colors
1590 (:face 'focus-unfocused `((t ( :foreground ,fg-inactive
1591 :background ,bg-inactive
1592 :weight normal
1593 :slant normal
1594 :extend t)))))))
1595 ;; XXX: This doesn't work, because notmuch overlays shit on the buffer
1596 (setf (alist-get 'notmuch-show-mode focus-mode-to-thing)
1597 'notmuch-message)
1598 (:hook-into notmuch-show-mode))
1599
1549(setup (:straight (forge 1600(setup (:straight (forge
1550 :host github :repo "magit/forge") 1601 :host github :repo "magit/forge")
1551 (eq system-type 'gnu/linux)) 1602 (eq system-type 'gnu/linux))
1552 (require 'forge) 1603 (require 'forge)
1553 (add-to-list 'forge-alist 1604 (add-to-list 'forge-alist
@@ -1578,7 +1629,9 @@ See also `crux-reopen-as-root-mode'."
1578 (:straight scheme-complete) 1629 (:straight scheme-complete)
1579 (:require +chicken) 1630 (:require +chicken)
1580 (setf (alist-get "\\.scm\\'" auto-mode-alist nil nil #'string=) 1631 (setf (alist-get "\\.scm\\'" auto-mode-alist nil nil #'string=)
1581 'scheme-mode)) 1632 'scheme-mode)
1633 (setf (alist-get "\\.scm\\'" auto-mode-alist nil nil #'string=)
1634 '(insert "#!/bin/sh\n#| -*- scheme -*-\nexec csi -s $0 \"$@\"\n|#\n")))
1582 1635
1583(setup (:straight (git-modes 1636(setup (:straight (git-modes
1584 :host github :repo "magit/git-modes")) 1637 :host github :repo "magit/git-modes"))
@@ -1678,9 +1731,9 @@ See also `crux-reopen-as-root-mode'."
1678 :host nil))) 1731 :host nil)))
1679 (:also-load +jabber) 1732 (:also-load +jabber)
1680 (:option jabber-account-list '(("acdw@hmm.st")) 1733 (:option jabber-account-list '(("acdw@hmm.st"))
1681 jabber-groupchat-buffer-format "xmpp:%n" 1734 jabber-groupchat-buffer-format "X:%n"
1682 jabber-chat-buffer-format "xmpp:%n" 1735 jabber-chat-buffer-format "X:%n"
1683 jabber-muc-private-buffer-format "xmpp:%n(%g)" 1736 jabber-muc-private-buffer-format "X:%n(%g)"
1684 jabber-activity-show-p #'ignore 1737 jabber-activity-show-p #'ignore
1685 jabber-muc-decorate-presence-patterns 1738 jabber-muc-decorate-presence-patterns
1686 '(("\\( enters the room ([^)]+)\\| has left the chatroom\\)$") 1739 '(("\\( enters the room ([^)]+)\\| has left the chatroom\\)$")
@@ -1805,7 +1858,7 @@ See also `crux-reopen-as-root-mode'."
1805 :fork (:host github :repo "duckwork/mode-line-bell" 1858 :fork (:host github :repo "duckwork/mode-line-bell"
1806 :branch "remap-face"))) 1859 :branch "remap-face")))
1807 ;; This is still, annoyingly, not quite working right. 1860 ;; This is still, annoyingly, not quite working right.
1808 (:face mode-line-bell ((t (:inherit mode-line-highlight)))) 1861 (:face 'mode-line-bell '((t (:inherit mode-line-highlight))))
1809 (:option mode-line-bell-flash-time 0.1) 1862 (:option mode-line-bell-flash-time 0.1)
1810 (mode-line-bell-mode +1)) 1863 (mode-line-bell-mode +1))
1811 1864
@@ -1813,11 +1866,10 @@ See also `crux-reopen-as-root-mode'."
1813 :host gitlab 1866 :host gitlab
1814 :repo "protesilaos/modus-themes")) 1867 :repo "protesilaos/modus-themes"))
1815 (require 'modus-themes (.etc "straight/build/modus-themes/modus-themes")) 1868 (require 'modus-themes (.etc "straight/build/modus-themes/modus-themes"))
1816 (:also-load dawn)
1817 (:option modus-themes-mixed-fonts t 1869 (:option modus-themes-mixed-fonts t
1818 modus-themes-bold-constructs t 1870 modus-themes-bold-constructs t
1819 modus-themes-italic-constructs t 1871 modus-themes-italic-constructs t
1820 modus-themes-headings '((t . (background regular rainbow)))) 1872 modus-themes-headings '((t t)))
1821 (dotimes (facen-1 8) 1873 (dotimes (facen-1 8)
1822 (let ((facen (1+ facen-1))) 1874 (let ((facen (1+ facen-1)))
1823 (custom-set-faces 1875 (custom-set-faces
@@ -1826,9 +1878,16 @@ See also `crux-reopen-as-root-mode'."
1826 (,(intern (format "modus-themes-heading-%s" facen)) 1878 (,(intern (format "modus-themes-heading-%s" facen))
1827 fixed-pitch)) 1879 fixed-pitch))
1828 :now))))) 1880 :now)))))
1829 (:face modus-themes-tab-active ((t :bold nil)) 1881 (:face 'modus-themes-tab-active '((t :bold nil))
1830 modus-themes-tab-inactive ((t :italic t))) 1882 'modus-themes-tab-inactive '((t :italic t)))
1883
1884 ;; Fix a "nil is not a Modus theme" error
1885 ;; XXX: Need to register a bug report
1886 (define-advice modus-themes--current-theme (:around (fn &rest r))
1887 (or (apply fn r)
1888 'modus-operandi))
1831 1889
1890 ;; This needs to be after the themes are loaded, I think.
1832 (add-hook 'modus-themes-after-load-theme-hook 1891 (add-hook 'modus-themes-after-load-theme-hook
1833 (defun +modus-themes-mostly-monochrome () 1892 (defun +modus-themes-mostly-monochrome ()
1834 "Set up mdous-themes to be mostly monochrome." 1893 "Set up mdous-themes to be mostly monochrome."
@@ -1862,6 +1921,7 @@ See also `crux-reopen-as-root-mode'."
1862 :foreground ,fg-header 1921 :foreground ,fg-header
1863 :background ,yellow-intense-bg))))))) 1922 :background ,yellow-intense-bg)))))))
1864 1923
1924 (require 'dawn)
1865 (dawn-schedule #'modus-themes-load-operandi 1925 (dawn-schedule #'modus-themes-load-operandi
1866 #'modus-themes-load-vivendi)) 1926 #'modus-themes-load-vivendi))
1867 1927
@@ -1915,6 +1975,12 @@ See also `crux-reopen-as-root-mode'."
1915 (:else 'url-retrieve))) 1975 (:else 'url-retrieve)))
1916 (add-hook 'dired-mode-hook 'org-download-enable)) 1976 (add-hook 'dired-mode-hook 'org-download-enable))
1917 1977
1978(setup (:straight (org-drawer-list
1979 :host github
1980 :repo "d12frosted/org-drawer-list"))
1981 (:load-after org)
1982 (:also-load +org-drawer-list))
1983
1918(setup (:straight org-mime) 1984(setup (:straight org-mime)
1919 (:option org-mime-export-ascii 'utf-8) 1985 (:option org-mime-export-ascii 'utf-8)
1920 (add-hook 'message-mode-hook 1986 (add-hook 'message-mode-hook
@@ -1924,9 +1990,19 @@ See also `crux-reopen-as-root-mode'."
1924 (defun org-mime-setup@org-mode () 1990 (defun org-mime-setup@org-mode ()
1925 (local-set-key (kbd "C-c M-o") 'org-mime-org-buffer-htmlize)))) 1991 (local-set-key (kbd "C-c M-o") 'org-mime-org-buffer-htmlize))))
1926 1992
1927(setup (:straight org-sticky-header) 1993(setup (:straight org-modern)
1928 ;; (:hook-into org-mode) 1994 (:option org-modern-hide-stars nil
1929 ) 1995 org-modern-star nil
1996 org-modern-list nil)
1997 (:face 'org-modern-label '((t ( :height 1.0
1998 :weight regular
1999 :underline nil
2000 :inherit fixed-pitch))))
2001 (advice-add 'org-modern--update-label-face :override #'ignore)
2002 (:hook-into org-mode))
2003
2004(setup (:straight org-sticky-header) (:quit)
2005 (:hook-into org-mode))
1930 2006
1931(setup (:straight (org-taskwise 2007(setup (:straight (org-taskwise
1932 :host github 2008 :host github
@@ -2008,6 +2084,8 @@ See also `crux-reopen-as-root-mode'."
2008(setup (:straight rainbow-mode) 2084(setup (:straight rainbow-mode)
2009 (:hook-into prog-mode)) 2085 (:hook-into prog-mode))
2010 2086
2087(setup (:straight restart-emacs))
2088
2011(setup (:straight (shell-command+ 2089(setup (:straight (shell-command+
2012 :host nil 2090 :host nil
2013 :repo "https://git.sr.ht/~pkal/shell-command-plus")) 2091 :repo "https://git.sr.ht/~pkal/shell-command-plus"))
@@ -2027,14 +2105,10 @@ See also `crux-reopen-as-root-mode'."
2027 (readonly . "=") 2105 (readonly . "=")
2028 (modified . "+") 2106 (modified . "+")
2029 (t . "-")) 2107 (t . "-"))
2030 ;; '((ephemeral . "🥞")
2031 ;; (special . "🥐")
2032 ;; (readonly . "🦞")
2033 ;; (modified . "🥪")
2034 ;; (t . "🍞"))
2035
2036 +modeline-minions-icon ";" 2108 +modeline-minions-icon ";"
2037 simple-modeline-segments 2109 +modeline-buffer-name-max-length 0.35)
2110 ;; Segments
2111 (:option simple-modeline-segments
2038 `(( ; left 2112 `(( ; left
2039 +modeline-ace-window-display 2113 +modeline-ace-window-display
2040 +modeline-modified 2114 +modeline-modified
@@ -2060,10 +2134,7 @@ See also `crux-reopen-as-root-mode'."
2060 +modeline-narrowed) 2134 +modeline-narrowed)
2061 ",") 2135 ",")
2062 +modeline-input-method 2136 +modeline-input-method
2063 ,(+modeline-concat 2137 +modeline-position
2064 '(+modeline-region
2065 +modeline-line-column
2066 +modeline-file-percentage))
2067 ))) 2138 )))
2068 (simple-modeline-mode +1)) 2139 (simple-modeline-mode +1))
2069 2140
@@ -2314,7 +2385,9 @@ See also `crux-reopen-as-root-mode'."
2314 "https://invidious.snopyta.org")) 2385 "https://invidious.snopyta.org"))
2315 (:bind "y" #'+ytdious-watch)) 2386 (:bind "y" #'+ytdious-watch))
2316 2387
2317(setup (:straight zoom-frm)) 2388(setup (:straight zoom-frm)
2389 (:+key "M-+" #'zoom-frm-in
2390 "M-_" #'zoom-frm-out))
2318 2391
2319(setup (:straight zzz-to-char) 2392(setup (:straight zzz-to-char)
2320 (:require +zzz-to-char) 2393 (:require +zzz-to-char)
diff --git a/lisp/+ace-window.el b/lisp/+ace-window.el index fca27d9..9e631a2 100644 --- a/lisp/+ace-window.el +++ b/lisp/+ace-window.el
@@ -10,15 +10,21 @@
10 ;; This is stolen from ace-window.el but with the mode-line stuff ripped out. 10 ;; This is stolen from ace-window.el but with the mode-line stuff ripped out.
11 :global t 11 :global t
12 (if +ace-window-display-mode 12 (if +ace-window-display-mode
13 (progn 13 (progn ; Enable
14 (aw-update) 14 (aw-update)
15 (force-mode-line-update t) 15 (force-mode-line-update t)
16 (add-hook 'window-configuration-change-hook 'aw-update) 16 (add-hook 'window-configuration-change-hook 'aw-update)
17 (add-hook 'after-make-frame-functions 'aw--after-make-frame t) 17 (add-hook 'after-make-frame-functions 'aw--after-make-frame t)
18 (advice-add 'aw--lead-overlay :override 'ignore)) 18 (advice-add 'aw--lead-overlay :override 'ignore))
19 (remove-hook 'window-configuration-change-hook 'aw-update) 19 (progn ; Disable
20 (remove-hook 'after-make-frame-functions 'aw--after-make-frame) 20 (remove-hook 'window-configuration-change-hook 'aw-update)
21 (advice-remove 'aw--lead-overlay 'ignore))) 21 (remove-hook 'after-make-frame-functions 'aw--after-make-frame)
22 (advice-remove 'aw--lead-overlay 'ignore))))
23
24;; (defun +ace-window--mode-line-hint (path leaf)
25;; (let ((wnd (cdr leaf)))
26;; (with-selected-window wnd
27;; ())))
22 28
23;;;###autoload 29;;;###autoload
24(defun +ace-window-or-switch-buffer (arg) 30(defun +ace-window-or-switch-buffer (arg)
@@ -30,8 +36,5 @@ Switch to most recent buffer otherwise."
30 (switch-to-buffer nil) 36 (switch-to-buffer nil)
31 (ace-window arg))) 37 (ace-window arg)))
32 38
33(defun +ace-window@disable-overlay (_fn &rest _args)
34 "ADVICE for FN `aw--lead-overlay' (and ARGS) to not show overlays.")
35
36(provide '+ace-window) 39(provide '+ace-window)
37;;; +ace-window.el ends here 40;;; +ace-window.el ends here
diff --git a/lisp/+modeline.el b/lisp/+modeline.el index 3cc8806..3a922e3 100644 --- a/lisp/+modeline.el +++ b/lisp/+modeline.el
@@ -32,7 +32,7 @@ functions), though it can also contain cons cells of the
32form (SEGMENT . PREDICATE). 32form (SEGMENT . PREDICATE).
33 33
34Segments are separated from each other using SEPARATOR, which 34Segments are separated from each other using SEPARATOR, which
35defaults to a \" \". space. Only segments that evaluate to a 35defaults to a \" \". Only segments that evaluate to a
36non-trivial string (that is, a string not equal to \"\") will be 36non-trivial string (that is, a string not equal to \"\") will be
37separated, for a cleaner look. 37separated, for a cleaner look.
38 38
@@ -42,18 +42,18 @@ This function makes a lambda, so you can throw it straight into
42 (lambda () 42 (lambda ()
43 (apply #'concat 43 (apply #'concat
44 (let (this-sep result-list) 44 (let (this-sep result-list)
45 (dolist (segment segments) 45 (dolist (segment segments)
46 (push (funcall (or (car-safe segment) segment) 46 (push (funcall (or (car-safe segment) segment)
47 this-sep) 47 this-sep)
48 result-list) 48 result-list)
49 (if (or (cdr-safe segment) 49 (if (or (cdr-safe segment)
50 (and (car result-list) 50 (and (car result-list)
51 (not (equal (car result-list) "")))) 51 (not (equal (car result-list) ""))))
52 (setq this-sep separator) 52 (setq this-sep separator)
53 (setq this-sep nil))) 53 (setq this-sep nil)))
54 (unless (seq-some #'null result-list) 54 (unless (seq-some #'null result-list)
55 (push +modeline-default-spacer result-list)) 55 (push +modeline-default-spacer result-list))
56 (nreverse result-list))))) 56 (nreverse result-list)))))
57 57
58;;; Modeline segments 58;;; Modeline segments
59 59
@@ -62,14 +62,36 @@ This function makes a lambda, so you can throw it straight into
62 (when string 62 (when string
63 (string-replace "%" "%%" string))) 63 (string-replace "%" "%%" string)))
64 64
65(defcustom +modeline-buffer-name-max-length 0
66 "Maximum length of `+modeline-buffer-name'.
67If > 0 and < 1, use that portion of the window's width. If > 1,
68use that many characters. If anything else, don't limit. If the
69buffer name is longer than the max length, it will be shortened
70and appended with `truncate-string-ellipsis'."
71 :type '(choice (const :tag "No maximum length" 0)
72 (natnum :tag "Number of characters")
73 (float :tag "Fraction of window's width")))
74
65(defun +modeline-buffer-name (&optional spacer) ; gonsie 75(defun +modeline-buffer-name (&optional spacer) ; gonsie
66 "Display the buffer name." 76 "Display the buffer name."
67 (let ((bufname (string-trim (string-replace "%" "" (buffer-name))))) 77 (let ((bufname (string-trim (string-replace "%" "" (buffer-name)))))
68 (concat (or spacer +modeline-default-spacer) 78 (concat (or spacer +modeline-default-spacer)
69 (propertize bufname 79 (propertize (cond
70 'help-echo (or (buffer-file-name) 80 ((ignore-errors
71 (buffer-name)) 81 (and (> +modeline-buffer-name-max-length 0)
72 'mouse-face 'mode-line-highlight)))) 82 (< +modeline-buffer-name-max-length 1)))
83 (truncate-string-to-width bufname
84 (* (window-total-width) +modeline-buffer-name-max-length)
85 nil nil t))
86 ((ignore-errors
87 (> +modeline-buffer-name-max-length 1))
88 (truncate-string-to-width bufname
89 +modeline-buffer-name-max-length
90 nil nil t))
91 (t bufname))
92 'help-echo (or (buffer-file-name)
93 (buffer-name))
94 'mouse-face 'mode-line-highlight))))
73 95
74(defcustom +modeline-minions-icon "&" 96(defcustom +modeline-minions-icon "&"
75 "The \"icon\" for `+modeline-minions' button." 97 "The \"icon\" for `+modeline-minions' button."
@@ -188,20 +210,49 @@ The order of elements matters: whichever one matches first is applied."
188 "Toggle the percentage display in the mode line (File Percentage Mode)." 210 "Toggle the percentage display in the mode line (File Percentage Mode)."
189 :init-value t :global t :group 'mode-line) 211 :init-value t :global t :group 'mode-line)
190 212
213(defun +modeline--percentage ()
214 "Return point's progress through current file as a percentage."
215 (let ((tot (count-screen-lines (point-min) (point-max) :ignore-invisible)))
216 (floor (* 100 (/ (float (line-number-at-pos)) tot)))))
217
218(defun +modeline--buffer-contained-in-window-p ()
219 "Whether the buffer is totally contained within its window."
220 (let ((window-min (save-excursion (move-to-window-line 0) (point)))
221 (window-max (save-excursion (move-to-window-line -1) (point))))
222 (and (<= window-min (point-min))
223 (>= window-max (point-max)))))
224
191(defun +modeline-file-percentage (&optional spacer) 225(defun +modeline-file-percentage (&optional spacer)
192 "Display the position in the current file." 226 "Display the position in the current file."
193 (when file-percentage-mode 227 (when file-percentage-mode
194 (let* ((tot (count-lines (point-min) (point-max) :ignore-invisible)) 228 ;; (let ((perc (+modeline--percentage)))
195 (perc (/ (* 100 (line-number-at-pos)) tot)) 229 ;; (propertize (concat (or spacer +modeline-default-spacer)
196 (window-min (save-excursion (move-to-window-line 0) 230 ;; (cond
197 (point))) 231 ;; ((+modeline--buffer-contained-in-window-p) "All")
198 (window-max (save-excursion (move-to-window-line -1) 232 ;; ((= (line-number-at-pos) (line-number-at-pos (point-min))) "Top")
199 (point)))) 233 ;; ((= (line-number-at-pos) (line-number-at-pos (point-max))) "Bot")
234 ;; ;; Why the 10 %s? Not sure. `format' knocks them
235 ;; ;; down to 5, then `format-mode-line' kills all but
236 ;; ;; two. If I use only 8, the margin is much too
237 ;; ;; large. Something else is obviously going on, but
238 ;; ;; I'm at a loss as to what it could be.
239 ;; (t (format "%d%%%%%%%%%%" perc))))
240 ;; ;; TODO: add scroll-up and scroll-down bindings.
241 ;; ))
242 (let ((perc (format-mode-line '(-3 "%p"))))
243 (concat (or spacer +modeline-default-spacer)
244 perc
245 (unless (seq-some (lambda (s) (string= perc s))
246 '("Top" "Bot" "All"))
247 "%%%%")))))
248
249(defun +modeline-file-percentage-icon (&optional spacer)
250 "Display the position in the current file as an icon."
251 (when file-percentage-mode
252 (let ((perc (+modeline--percentage)))
200 (propertize (concat (or spacer +modeline-default-spacer) 253 (propertize (concat (or spacer +modeline-default-spacer)
201 (cond 254 (cond
202 ((and (<= window-min (point-min)) 255 ((+modeline--buffer-contained-in-window-p) "⏹")
203 (>= window-max (point-max)))
204 "█")
205 ((= perc 0) "▇") 256 ((= perc 0) "▇")
206 ((< perc 20) "▆") 257 ((< perc 20) "▆")
207 ((< perc 40) "▅") 258 ((< perc 40) "▅")
@@ -231,24 +282,37 @@ The order of elements matters: whichever one matches first is applied."
231 'font-lock-face 'font-lock-variable-name-face)) 282 'font-lock-face 'font-lock-variable-name-face))
232 "")) 283 ""))
233 284
285(defun +modeline-line (&optional spacer)
286 (when line-number-mode
287 (concat (or spacer +modeline-default-spacer) "%2l")))
288
289(defun +modeline-column (&optional spacer)
290 (when column-number-mode
291 (concat (or spacer +modeline-default-spacer)
292 (if column-number-indicator-zero-based "%2c" "%2C"))))
293
234(defun +modeline-line-column (&optional spacer) ; adapted from `simple-modeline' 294(defun +modeline-line-column (&optional spacer) ; adapted from `simple-modeline'
235 "Display the current cursor line and column depending on modes." 295 "Display the current cursor line and column depending on modes."
236 (let ((sep "|") (before "") (after "") 296 (funcall (+modeline-concat '(+modeline-line
237 (line-fmt (if line-number-mode "%2l" "")) 297 +modeline-column)
238 (col-fmt (if column-number-mode 298 "|")))
239 (if column-number-indicator-zero-based 299
240 "%2c" 300(defcustom +modeline-position-function nil
241 "%2C") 301 "Function to use instead of `+modeline-position' in modeline."
242 ""))) 302 :type '(choice (const :tag "None" nil)
243 (concat (or spacer +modeline-default-spacer) 303 function)
244 before line-fmt sep col-fmt after))) 304 :local t)
245 305
246(defun +modeline-position (&optional _) 306(defun +modeline-position (&optional _)
247 "Display the current cursor position. 307 "Display the current cursor position.
248See `line-number-mode', `column-number-mode', `file-percentage-mode'" 308See `line-number-mode', `column-number-mode', and
249 (append (+modeline-line-column) 309`file-percentage-mode'. If `+modeline-position-function' is set
250 (+modeline-region) 310to a function in the current buffer, call that function instead."
251 (+modeline-file-percentage))) 311 (funcall (if +modeline-position-function
312 +modeline-position-function
313 (+modeline-concat '(+modeline-region
314 +modeline-line-column
315 +modeline-file-percentage)))))
252 316
253(defun +modeline-vc (&optional spacer) 317(defun +modeline-vc (&optional spacer)
254 "Display the version control branch of the current buffer in the modeline." 318 "Display the version control branch of the current buffer in the modeline."
diff --git a/lisp/+org-drawer-list.el b/lisp/+org-drawer-list.el new file mode 100644 index 0000000..2fc7234 --- /dev/null +++ b/lisp/+org-drawer-list.el
@@ -0,0 +1,41 @@
1;;; +org-drawer-list.el --- Add stuff to org drawers easy-style -*- lexical-binding: t; -*-
2
3;;; Commentary:
4
5;;; Code:
6
7(require 'org)
8(require '+org)
9(require 'ol)
10(require 'org-drawer-list)
11
12(defcustom +org-drawer-list-resources-drawer "RESOURCES"
13 "Where to add links with `+org-drawer-list-add-resource'.")
14
15(defun +org-drawer-list-add-resource (url &optional title)
16 "Add URL to the resource drawer of the current tree.
17The resource drawer is given by the variable
18`+org-drawer-list-resources-drawer'. If optional TITLE is given,
19format the list item as an Org link."
20 (interactive
21 (let* ((clipboard-url (if (string-match-p (rx (sequence bos
22 (or "http"
23 "gemini"
24 "gopher"
25 "tel"
26 "mailto")))
27 (current-kill 0))
28 (string-trim (current-kill 0))
29 (read-string "URL: ")))
30 (url-title (let ((clipboard-headings
31 (+org-insert--get-title-and-headings clipboard-url)))
32 (read-string "title (edit): "
33 (completing-read
34 "title: " clipboard-headings
35 nil nil nil nil (car clipboard-headings))))))
36 (list clipboard-url url-title)))
37 (org-drawer-list-add +org-drawer-list-resources-drawer
38 (org-link-make-string url title)))
39
40(provide '+org-drawer-list)
41;;; +org-drawer-list.el ends here
diff --git a/lisp/+org.el b/lisp/+org.el index 2a57fe2..e39bdc1 100644 --- a/lisp/+org.el +++ b/lisp/+org.el
@@ -338,6 +338,7 @@ Return as a list."
338 (save-mark-and-excursion 338 (save-mark-and-excursion
339 (mark-whole-buffer) 339 (mark-whole-buffer)
340 ;;(org-fill-paragraph nil t) 340 ;;(org-fill-paragraph nil t)
341 (+org-unsmartify)
341 (+org-fix-blank-lines t) 342 (+org-fix-blank-lines t)
342 (org-align-tags t)))) 343 (org-align-tags t))))
343 344
diff --git a/lisp/+setup.el b/lisp/+setup.el index 975bcde..db59223 100644 --- a/lisp/+setup.el +++ b/lisp/+setup.el
@@ -36,7 +36,7 @@ Good for commenting.")
36 36
37(setup-define :face 37(setup-define :face
38 (lambda (face spec) 38 (lambda (face spec)
39 `(custom-set-faces '(,face ,spec 'now "Customized by `setup'."))) 39 `(custom-set-faces (list ,face ,spec 'now "Customized by `setup'.")))
40 :documentation "Customize FACE with SPEC using `custom-set-faces'." 40 :documentation "Customize FACE with SPEC using `custom-set-faces'."
41 :repeatable t) 41 :repeatable t)
42 42
diff --git a/lisp/+tab-bar.el b/lisp/+tab-bar.el index 1f4745d..2c39dae 100644 --- a/lisp/+tab-bar.el +++ b/lisp/+tab-bar.el
@@ -99,10 +99,10 @@
99 emms-player-playing-p) 99 emms-player-playing-p)
100 (let ((now-playing (+string-truncate (emms-mode-line-playlist-current) 100 (let ((now-playing (+string-truncate (emms-mode-line-playlist-current)
101 (- +tab-bar-emms-max-length 2)))) 101 (- +tab-bar-emms-max-length 2))))
102 `((emms-now-playing menu-item 102 `(emms-now-playing menu-item
103 ,(concat "{" now-playing "}" " ") 103 ,(concat "{" now-playing "}" " ")
104 emms-pause 104 emms-pause
105 :help ,(emms-mode-line-playlist-current)))))) 105 ( :help ,(emms-mode-line-playlist-current))))))
106 106
107(defun +tab-bar-bongo () 107(defun +tab-bar-bongo ()
108 "Display Bongo now playing information." 108 "Display Bongo now playing information."
@@ -218,6 +218,17 @@ name to the left."
218 (max 0 (- l-name tab-bar-tab-name-truncated-max l-ell)))) 218 (max 0 (- l-name tab-bar-tab-name-truncated-max l-ell))))
219 'help-echo tab-name)))) 219 'help-echo tab-name))))
220 220
221(defun +tab-bar-format-align-right ()
222 "Align the rest of tab bar items to the right, pixel-wise."
223 ;; XXX: ideally, wouldn't require `shr' here
224 (require 'shr) ; `shr-string-pixel-width'
225 (let* ((rest (cdr (memq '+tab-bar-format-align-right tab-bar-format)))
226 (rest (tab-bar-format-list rest))
227 (rest (mapconcat (lambda (item) (nth 2 item)) rest ""))
228 (hpos (shr-string-pixel-width rest))
229 (str (propertize " " 'display `(space :align-to (- right (,hpos))))))
230 `((align-right menu-item ,str ignore))))
231
221 232
222;;; Menu bar 233;;; Menu bar
223;; stole from https://github.com/emacs-mirror/emacs/blob/master/lisp/tab-bar.el 234;; stole from https://github.com/emacs-mirror/emacs/blob/master/lisp/tab-bar.el
diff --git a/machines/bob.el b/machines/bob.el index 77034d2..912659e 100644 --- a/machines/bob.el +++ b/machines/bob.el
@@ -28,7 +28,7 @@
28 :weight normal 28 :weight normal
29 :slant italic) 29 :slant italic)
30 (fixed-pitch :family ,(or mono-face base-face) 30 (fixed-pitch :family ,(or mono-face base-face)
31 :height ,base-size) 31 :height 1.0)
32 (variable-pitch 32 (variable-pitch
33 :family ,(or var-face base-face) 33 :family ,(or var-face base-face)
34 :height ,var-size) 34 :height ,var-size)
diff --git a/snippets/org-mode/sc b/snippets/org-mode/sc index afc7faf..f536dae 100644 --- a/snippets/org-mode/sc +++ b/snippets/org-mode/sc
@@ -1,4 +1,4 @@
1# key: sc 1# key: sc
2# name: sc 2# name: sc
3# -- 3# --
4[sc name="${1: $(yas-choose-value '("total-recovery" "br-location-page" "_locationnameslisted" "organizations-helped" "other-results" "truck-accident-results" "car-wreck-results" "personal-injury-results" "number-locations" "experience" "employees" "mon-number" "mon-address" "lc-number" "lc-address" "ham-number" "ham-address" "zac-number" "zac-address" "liv-number" "liv-address" "asc-number" "asc-address" "shrev-number" "shrev-address" "alx-address" "alx-number" "laf-number" "laf-address" "toll-free" "br-number" "br-address" "gmia"))}"][/sc] $0 \ No newline at end of file 4[sc name="${1: $(yas-choose-value '("total-recovery" "br-location-page" "_locationnameslisted" "organizations-helped" "other-results" "truck-accident-results" "car-wreck-results" "personal-injury-results" "number-locations" "experience" "employees" "mon-number" "mon-address" "lc-number" "lc-address" "ham-number" "ham-address" "zac-number" "zac-address" "liv-number" "liv-address" "asc-number" "asc-address" "shrev-number" "shrev-address" "alx-address" "alx-number" "laf-number" "laf-address" "toll-free" "br-number" "br-address" "gmia" "g-guarantee" "ds-number"))}"][/sc] $0 \ No newline at end of file
diff --git a/snippets/scheme-mode/chicken b/snippets/scheme-mode/chicken new file mode 100644 index 0000000..19a98e1 --- /dev/null +++ b/snippets/scheme-mode/chicken
@@ -0,0 +1,8 @@
1# -*- mode: snippet -*-
2# name: chicken
3# key: chicken
4# --
5\#!/bin/sh
6\#| -*- scheme -*-
7exec csi -s $0 \"$@\"
8|#