diff options
-rw-r--r-- | init.el | 109 | ||||
-rw-r--r-- | lisp/+emacs.el | 13 | ||||
-rw-r--r-- | lisp/+org.el | 37 | ||||
-rw-r--r-- | lisp/+titlecase.el | 12 | ||||
-rw-r--r-- | machines/bob.el | 27 |
5 files changed, 128 insertions, 70 deletions
diff --git a/init.el b/init.el index 6c88148..d1eb3ec 100644 --- a/init.el +++ b/init.el | |||
@@ -53,7 +53,10 @@ | |||
53 | "C-<backspace>" #'+backward-kill-word | 53 | "C-<backspace>" #'+backward-kill-word |
54 | "C-x TAB" #'+indent-rigidly | 54 | "C-x TAB" #'+indent-rigidly |
55 | "<f7>" #'flyspell-mode | 55 | "<f7>" #'flyspell-mode |
56 | "C-x C-c" #'+save-buffers-quit) | 56 | "C-x C-c" #'+save-buffers-quit |
57 | "C-\\" nil ; original: toggle-input-method | ||
58 | "C-/" #'undo-only | ||
59 | "C-?" #'undo-redo) | ||
57 | ;; Disable bindings | 60 | ;; Disable bindings |
58 | (:global "M-j" nil | 61 | (:global "M-j" nil |
59 | "<Scroll_Lock>" nil) | 62 | "<Scroll_Lock>" nil) |
@@ -479,6 +482,9 @@ | |||
479 | ;; (+kmacro-recording-indicator-mode +1) | 482 | ;; (+kmacro-recording-indicator-mode +1) |
480 | (+kmacro-block-undo-mode +1))) | 483 | (+kmacro-block-undo-mode +1))) |
481 | 484 | ||
485 | (setup midnight | ||
486 | (midnight-mode +1)) | ||
487 | |||
482 | (setup minibuffer | 488 | (setup minibuffer |
483 | (:require +minibuffer) | 489 | (:require +minibuffer) |
484 | (:with-map minibuffer-local-map | 490 | (:with-map minibuffer-local-map |
@@ -898,6 +904,8 @@ | |||
898 | (add-hook 'kill-buffer-query-functions #'+scratch-immortal)) | 904 | (add-hook 'kill-buffer-query-functions #'+scratch-immortal)) |
899 | 905 | ||
900 | (setup sh | 906 | (setup sh |
907 | (:option sh-indentation tab-width) | ||
908 | (:hook #'indent-tabs-mode) | ||
901 | (:apheleia shfmt '("shfmt"))) | 909 | (:apheleia shfmt '("shfmt"))) |
902 | 910 | ||
903 | (setup shell | 911 | (setup shell |
@@ -993,8 +1001,7 @@ | |||
993 | (:face 'aw-mode-line-face '((t (:foreground "red")))) | 1001 | (:face 'aw-mode-line-face '((t (:foreground "red")))) |
994 | (+ace-window-display-mode +1)) | 1002 | (+ace-window-display-mode +1)) |
995 | 1003 | ||
996 | (setup (:straight (actually-selected-window | 1004 | (setup (:straight (actually-selected-window :host github |
997 | :host github | ||
998 | :repo "duckwork/actually-selected-window.el")) | 1005 | :repo "duckwork/actually-selected-window.el")) |
999 | (actually-selected-window-mode +1)) | 1006 | (actually-selected-window-mode +1)) |
1000 | 1007 | ||
@@ -1121,8 +1128,7 @@ | |||
1121 | browse-kill-ring-separator "") | 1128 | browse-kill-ring-separator "") |
1122 | (:hook #'form-feed-mode)) | 1129 | (:hook #'form-feed-mode)) |
1123 | 1130 | ||
1124 | (setup (:straight (cape | 1131 | (setup (:straight (cape :host github :repo "minad/cape")) |
1125 | :host github :repo "minad/cape")) | ||
1126 | (let | 1132 | (let |
1127 | ;; All available cape capfs listed here. Add them to the front since | 1133 | ;; All available cape capfs listed here. Add them to the front since |
1128 | ;; they're reversed with `add-to-list'. | 1134 | ;; they're reversed with `add-to-list'. |
@@ -1327,8 +1333,7 @@ | |||
1327 | (add-hook 'modus-themes-after-load-theme-hook #'circe-nick-color-reset)) | 1333 | (add-hook 'modus-themes-after-load-theme-hook #'circe-nick-color-reset)) |
1328 | (add-hook 'kill-emacs-hook #'+circe-quit-all@kill-emacs)) | 1334 | (add-hook 'kill-emacs-hook #'+circe-quit-all@kill-emacs)) |
1329 | 1335 | ||
1330 | (setup (:straight (clean-kill-ring | 1336 | (setup (:straight (clean-kill-ring :host github |
1331 | :host github | ||
1332 | :repo "NicholasBHubbard/clean-kill-ring.el")) | 1337 | :repo "NicholasBHubbard/clean-kill-ring.el")) |
1333 | (:require) | 1338 | (:require) |
1334 | (:option clean-kill-ring-prevent-duplicates t) | 1339 | (:option clean-kill-ring-prevent-duplicates t) |
@@ -1481,8 +1486,7 @@ | |||
1481 | "TAB" #'dired-subtree-cycle | 1486 | "TAB" #'dired-subtree-cycle |
1482 | "i" #'dired-subtree-toggle)) | 1487 | "i" #'dired-subtree-toggle)) |
1483 | 1488 | ||
1484 | (setup (:straight (discord | 1489 | (setup (:straight (discord :host github |
1485 | :host github | ||
1486 | :repo "davep/discord.el" | 1490 | :repo "davep/discord.el" |
1487 | :fork (:repo "duckwork/discord.el")))) | 1491 | :fork (:repo "duckwork/discord.el")))) |
1488 | 1492 | ||
@@ -1574,6 +1578,20 @@ | |||
1574 | (file+olp ,(car rmh-elfeed-org-files) "Feeds") | 1578 | (file+olp ,(car rmh-elfeed-org-files) "Feeds") |
1575 | "* %? %^g"))) | 1579 | "* %? %^g"))) |
1576 | 1580 | ||
1581 | (setup (:straight (elfeed-tube :host github :repo "karthink/elfeed-tube") | ||
1582 | (or (executable-find "youtube-dl") | ||
1583 | (executable-find "yt-dlp"))) | ||
1584 | (:straight (elfeed-tube-mpv :host github :repo "karthink/elfeed-tube")) | ||
1585 | (:load-after elfeed) | ||
1586 | (with-eval-after-load 'elfeed | ||
1587 | (elfeed-tube-setup) | ||
1588 | (:bind-into (elfeed-show-mode-map elfeed-search-mode-map) | ||
1589 | "F" #'elfeed-tube-fetch | ||
1590 | [remap save-buffer] #'elfeed-tube-save) | ||
1591 | (:bind-into elfeed-show-mode-map | ||
1592 | "C-c C-f" #'elfeed-tube-mpv-follow-mode | ||
1593 | "C-c C-w" #'elfeed-tube-mpv-where))) | ||
1594 | |||
1577 | (setup (:straight elpher) | 1595 | (setup (:straight elpher) |
1578 | (:bind "l" #'elpher-back)) | 1596 | (:bind "l" #'elpher-back)) |
1579 | 1597 | ||
@@ -1603,8 +1621,7 @@ | |||
1603 | :inherit font-lock-keyword-face)))) | 1621 | :inherit font-lock-keyword-face)))) |
1604 | (:+key "C-," #'embrace-commander)) | 1622 | (:+key "C-," #'embrace-commander)) |
1605 | 1623 | ||
1606 | (setup (:straight (ement | 1624 | (setup (:straight (ement :host github |
1607 | :host github | ||
1608 | :repo "alphapapa/ement.el") | 1625 | :repo "alphapapa/ement.el") |
1609 | ;; `plz' is a requirement, but isn't on an elpa. | 1626 | ;; `plz' is a requirement, but isn't on an elpa. |
1610 | (setup (:straight (plz :host github | 1627 | (setup (:straight (plz :host github |
@@ -1661,19 +1678,11 @@ | |||
1661 | (:+key "C-=" #'er/expand-region | 1678 | (:+key "C-=" #'er/expand-region |
1662 | "C--" #'+er/contract-or-negative-argument)) | 1679 | "C--" #'+er/contract-or-negative-argument)) |
1663 | 1680 | ||
1664 | (setup (:straight (fill-sentences-correctly | 1681 | (setup (:straight (filldent :host nil |
1665 | :host github | 1682 | :repo "https://codeberg.org/acdw/filldent.el")) |
1666 | :repo "duckwork/fill-sentences-correctly.el")) | ||
1667 | (:quit "I don't think this works like how I want.") | ||
1668 | (fill-sentences-correctly-mode +1)) | ||
1669 | |||
1670 | (setup (:straight (filldent | ||
1671 | :host github | ||
1672 | :repo "duckwork/filldent.el")) | ||
1673 | (:+key "M-q" #'filldent-unfill-toggle)) | 1683 | (:+key "M-q" #'filldent-unfill-toggle)) |
1674 | 1684 | ||
1675 | (setup (:straight (flymake-collection | 1685 | (setup (:straight (flymake-collection :host github |
1676 | :host github | ||
1677 | :repo "mohkale/flymake-collection")) | 1686 | :repo "mohkale/flymake-collection")) |
1678 | (+ensure-after-init #'flymake-collection-hook-setup)) | 1687 | (+ensure-after-init #'flymake-collection-hook-setup)) |
1679 | 1688 | ||
@@ -1702,8 +1711,7 @@ | |||
1702 | 'notmuch-message) | 1711 | 'notmuch-message) |
1703 | (:hook-into notmuch-show-mode)) | 1712 | (:hook-into notmuch-show-mode)) |
1704 | 1713 | ||
1705 | (setup (:straight (forge | 1714 | (setup (:straight (forge :host github :repo "magit/forge") |
1706 | :host github :repo "magit/forge") | ||
1707 | (eq system-type 'gnu/linux)) | 1715 | (eq system-type 'gnu/linux)) |
1708 | (:quit) ; XXX: Somehow missing compat-26 | 1716 | (:quit) ; XXX: Somehow missing compat-26 |
1709 | (add-to-list 'forge-alist | 1717 | (add-to-list 'forge-alist |
@@ -1715,9 +1723,8 @@ | |||
1715 | (:face 'form-feed-line '((t (:strike-through t)))) | 1723 | (:face 'form-feed-line '((t (:strike-through t)))) |
1716 | (global-form-feed-mode +1)) | 1724 | (global-form-feed-mode +1)) |
1717 | 1725 | ||
1718 | (setup (:straight (frowny | 1726 | (setup (:straight (frowny :host nil |
1719 | :host github | 1727 | :repo "https://codeberg.org/acdw/frowny.el")) |
1720 | :repo "duckwork/frowny.el")) | ||
1721 | (:option frowny-eyes (rx (any ":=") (opt "'") (? "-"))) | 1728 | (:option frowny-eyes (rx (any ":=") (opt "'") (? "-"))) |
1722 | (global-frowny-mode +1)) | 1729 | (global-frowny-mode +1)) |
1723 | 1730 | ||
@@ -1738,8 +1745,7 @@ | |||
1738 | (setf (alist-get "\\.scm\\'" auto-insert-alist nil nil #'equal) | 1745 | (setf (alist-get "\\.scm\\'" auto-insert-alist nil nil #'equal) |
1739 | '(insert "#!/bin/sh\n#| -*- scheme -*-\nexec csi -s $0 \"$@\"\n|#\n"))) | 1746 | '(insert "#!/bin/sh\n#| -*- scheme -*-\nexec csi -s $0 \"$@\"\n|#\n"))) |
1740 | 1747 | ||
1741 | (setup (:straight (git-modes | 1748 | (setup (:straight (git-modes :host github :repo "magit/git-modes")) |
1742 | :host github :repo "magit/git-modes")) | ||
1743 | (:require git-modes)) | 1749 | (:require git-modes)) |
1744 | 1750 | ||
1745 | (setup (:straight god-mode | 1751 | (setup (:straight god-mode |
@@ -1763,8 +1769,7 @@ | |||
1763 | (require 'info-look) | 1769 | (require 'info-look) |
1764 | (info-lookup-setup-mode 'symbol 'emacs-lisp-mode)))) | 1770 | (info-lookup-setup-mode 'symbol 'emacs-lisp-mode)))) |
1765 | 1771 | ||
1766 | (setup (:straight (hippie-completing-read | 1772 | (setup (:straight (hippie-completing-read :host nil |
1767 | :host nil | ||
1768 | :repo "https://codeberg.org/acdw/hippie-completing-read.el")) | 1773 | :repo "https://codeberg.org/acdw/hippie-completing-read.el")) |
1769 | (:+key "M-/" #'hippie-completing-read)) | 1774 | (:+key "M-/" #'hippie-completing-read)) |
1770 | 1775 | ||
@@ -1825,8 +1830,8 @@ | |||
1825 | (define-key isearch-mb-minibuffer-map (kbd key) command))))))) | 1830 | (define-key isearch-mb-minibuffer-map (kbd key) command))))))) |
1826 | (isearch-mb-mode +1)) | 1831 | (isearch-mb-mode +1)) |
1827 | 1832 | ||
1828 | (setup (:straight (jabber :repo "https://codeberg.org/emacs-jabber/emacs-jabber" | 1833 | (setup (:straight (jabber :host nil |
1829 | :host nil | 1834 | :repo "https://codeberg.org/emacs-jabber/emacs-jabber" |
1830 | :files ("*.el" "*.texi" | 1835 | :files ("*.el" "*.texi" |
1831 | ("jabber-fallback-lib" | 1836 | ("jabber-fallback-lib" |
1832 | "jabber-fallback-lib/hexrgb.el" | 1837 | "jabber-fallback-lib/hexrgb.el" |
@@ -1896,8 +1901,8 @@ | |||
1896 | (remove-hook 'jabber-alert-muc-hooks 'jabber-muc-echo) | 1901 | (remove-hook 'jabber-alert-muc-hooks 'jabber-muc-echo) |
1897 | (remove-hook 'jabber-alert-presence-hooks 'jabber-presence-echo)) | 1902 | (remove-hook 'jabber-alert-presence-hooks 'jabber-presence-echo)) |
1898 | 1903 | ||
1899 | (setup (:straight (keepassxc-shim | 1904 | (setup (:straight (keepassxc-shim :host nil |
1900 | :host github :repo "duckwork/keepassxc-shim.el")) | 1905 | :repo "https://codeberg.org/acdw/keepassxc-shim.el")) |
1901 | (keepassxc-shim-activate)) | 1906 | (keepassxc-shim-activate)) |
1902 | 1907 | ||
1903 | (setup (:straight keychain-environment | 1908 | (setup (:straight keychain-environment |
@@ -1926,8 +1931,8 @@ | |||
1926 | "M-c" #'+link-hint-open-chrome "c" #'+link-hint-open-chrome))) | 1931 | "M-c" #'+link-hint-open-chrome "c" #'+link-hint-open-chrome))) |
1927 | 1932 | ||
1928 | (setup (:straight (machine | 1933 | (setup (:straight (machine |
1929 | :host github | 1934 | :host nil |
1930 | :repo "duckwork/machine.el")) | 1935 | :repo "https://codeberg.org/acdw/machine.el")) |
1931 | (+with-ensure-after-init ; So that they override anything here. | 1936 | (+with-ensure-after-init ; So that they override anything here. |
1932 | ;; Emoji fonts | 1937 | ;; Emoji fonts |
1933 | (let ((ffl (font-family-list)) | 1938 | (let ((ffl (font-family-list)) |
@@ -2008,7 +2013,10 @@ | |||
2008 | (:option modus-themes-mixed-fonts t | 2013 | (:option modus-themes-mixed-fonts t |
2009 | modus-themes-bold-constructs t | 2014 | modus-themes-bold-constructs t |
2010 | modus-themes-italic-constructs t | 2015 | modus-themes-italic-constructs t |
2011 | modus-themes-headings '((t t))) | 2016 | modus-themes-headings '((1 monochrome bold overline) |
2017 | (2 monochrome bold) | ||
2018 | (3 monochrome italic) | ||
2019 | (t monochrome))) | ||
2012 | (dotimes (facen-1 8) | 2020 | (dotimes (facen-1 8) |
2013 | (let ((facen (1+ facen-1))) | 2021 | (let ((facen (1+ facen-1))) |
2014 | (custom-set-faces | 2022 | (custom-set-faces |
@@ -2178,8 +2186,8 @@ | |||
2178 | (local-set-key (kbd "C-c M-o") 'org-mime-org-buffer-htmlize)))) | 2186 | (local-set-key (kbd "C-c M-o") 'org-mime-org-buffer-htmlize)))) |
2179 | 2187 | ||
2180 | (setup (:straight (org-taskwise | 2188 | (setup (:straight (org-taskwise |
2181 | :host github | 2189 | :host nil |
2182 | :repo "duckwork/org-taskwise.el")) | 2190 | :repo "https://codeberg.org/acdw/org-taskwise.el.git")) |
2183 | (with-eval-after-load 'org | 2191 | (with-eval-after-load 'org |
2184 | (require 'org-taskwise) | 2192 | (require 'org-taskwise) |
2185 | (define-key org-mode-map (kbd "C-x n t") #'org-taskwise-narrow-to-task))) | 2193 | (define-key org-mode-map (kbd "C-x n t") #'org-taskwise-narrow-to-task))) |
@@ -2264,9 +2272,8 @@ | |||
2264 | persistent-scratch-scratch-buffer-p-function)) | 2272 | persistent-scratch-scratch-buffer-p-function)) |
2265 | 2273 | ||
2266 | (setup (:straight (plancat | 2274 | (setup (:straight (plancat |
2267 | :host github | 2275 | :host nil |
2268 | :repo "duckwork/plancat.el" | 2276 | :repo "https://codeberg.org/acdw/plancat.el")) |
2269 | :local-repo "~/src/emacs-packages/plancat.el/")) | ||
2270 | (:option plancat-user "acdw")) | 2277 | (:option plancat-user "acdw")) |
2271 | 2278 | ||
2272 | (setup (:straight pocket-reader) | 2279 | (setup (:straight pocket-reader) |
@@ -2287,8 +2294,6 @@ | |||
2287 | (setup (:straight rainbow-mode) | 2294 | (setup (:straight rainbow-mode) |
2288 | (:hook-into prog-mode)) | 2295 | (:hook-into prog-mode)) |
2289 | 2296 | ||
2290 | (setup (:straight restart-emacs)) | ||
2291 | |||
2292 | (setup (:straight (shell-command+ | 2297 | (setup (:straight (shell-command+ |
2293 | :host nil | 2298 | :host nil |
2294 | :repo "https://git.sr.ht/~pkal/shell-command-plus")) | 2299 | :repo "https://git.sr.ht/~pkal/shell-command-plus")) |
@@ -2375,8 +2380,8 @@ | |||
2375 | (:hook-into prog-mode)) | 2380 | (:hook-into prog-mode)) |
2376 | 2381 | ||
2377 | (setup (:straight (sophomore | 2382 | (setup (:straight (sophomore |
2378 | :host github | 2383 | :host nil |
2379 | :repo "duckwork/sophomore.el")) | 2384 | :repo "https://codeberg.org/acdw/sophomore.el")) |
2380 | (sophomore-enable #'narrow-to-region) | 2385 | (sophomore-enable #'narrow-to-region) |
2381 | (sophomore-disable ; These are mostly annoying commands | 2386 | (sophomore-disable ; These are mostly annoying commands |
2382 | #'view-hello-file | 2387 | #'view-hello-file |
@@ -2389,8 +2394,8 @@ | |||
2389 | (sophomore-mode +1)) | 2394 | (sophomore-mode +1)) |
2390 | 2395 | ||
2391 | (setup (:straight (spongebob-case | 2396 | (setup (:straight (spongebob-case |
2392 | :host github | 2397 | :host nil |
2393 | :repo "duckwork/spongebob-case.el"))) | 2398 | :repo "https://codeberg.org/acdw/spongebob-case.el"))) |
2394 | 2399 | ||
2395 | (setup (:straight ssh-config-mode) | 2400 | (setup (:straight ssh-config-mode) |
2396 | (:file-match (rx "/.ssh/config" eos) | 2401 | (:file-match (rx "/.ssh/config" eos) |
@@ -2414,8 +2419,8 @@ | |||
2414 | (:option systemd-man-function 'woman)) | 2419 | (:option systemd-man-function 'woman)) |
2415 | 2420 | ||
2416 | (setup (:straight (titlecase | 2421 | (setup (:straight (titlecase |
2417 | :host github | 2422 | :host nil |
2418 | :repo "duckwork/titlecase.el" | 2423 | :repo "https://codeberg.org/acdw/titlecase.el" |
2419 | :files ("*"))) | 2424 | :files ("*"))) |
2420 | (:require titlecase +titlecase) | 2425 | (:require titlecase +titlecase) |
2421 | (:with-map +casing-map | 2426 | (:with-map +casing-map |
@@ -2466,7 +2471,7 @@ | |||
2466 | (:option twtxt-file _twtxt-file | 2471 | (:option twtxt-file _twtxt-file |
2467 | twtxt-following _twtxt-following)) | 2472 | twtxt-following _twtxt-following)) |
2468 | 2473 | ||
2469 | (setup (:straight undo-fu) | 2474 | (setup (:straight undo-fu) (:quit "Trying native undo functionality") |
2470 | (:option undo-fu-allow-undo-in-region t) | 2475 | (:option undo-fu-allow-undo-in-region t) |
2471 | (:global "C-/" #'undo-fu-only-undo | 2476 | (:global "C-/" #'undo-fu-only-undo |
2472 | "C-?" #'undo-fu-only-redo)) | 2477 | "C-?" #'undo-fu-only-redo)) |
diff --git a/lisp/+emacs.el b/lisp/+emacs.el index 533d438..b4742da 100644 --- a/lisp/+emacs.el +++ b/lisp/+emacs.el | |||
@@ -206,8 +206,17 @@ Do this only if the buffer is not visiting a file." | |||
206 | 206 | ||
207 | ;;; Hooks | 207 | ;;; Hooks |
208 | 208 | ||
209 | (add-hook 'after-save-hook 'executable-make-buffer-file-executable-if-script-p) | 209 | (add-hook 'after-save-hook #'executable-make-buffer-file-executable-if-script-p) |
210 | (add-hook 'minibuffer-setup-hook 'cursor-intangible-mode) | 210 | (add-hook 'minibuffer-setup-hook #'cursor-intangible-mode) |
211 | |||
212 | (defun +auto-create-missing-dirs () | ||
213 | "Automatically create missing directories when finding a file." | ||
214 | ;; https://emacsredux.com/blog/2022/06/12/auto-create-missing-directories/ | ||
215 | (let ((target-dir (file-name-directory buffer-file-name))) | ||
216 | (unless (file-exists-p target-dir) | ||
217 | (make-directory target-dir t)))) | ||
218 | |||
219 | (add-hook 'find-file-not-found-functions #'+auto-create-missing-dirs) | ||
211 | 220 | ||
212 | 221 | ||
213 | ;;; Better-default functions ... | 222 | ;;; Better-default functions ... |
diff --git a/lisp/+org.el b/lisp/+org.el index 0d6e300..6b956ae 100644 --- a/lisp/+org.el +++ b/lisp/+org.el | |||
@@ -729,5 +729,42 @@ When called with a prefix ARG, will still unconditionally call | |||
729 | ((org-at-table-p) #'org-table-wrap-region) | 729 | ((org-at-table-p) #'org-table-wrap-region) |
730 | (t #'org-return))))) | 730 | (t #'org-return))))) |
731 | 731 | ||
732 | |||
733 | ;;; el-patch | ||
734 | |||
735 | (el-patch-defun org-format-outline-path (path &optional width prefix separator) | ||
736 | "Format the outline path PATH for display. | ||
737 | WIDTH is the maximum number of characters that is available. | ||
738 | PREFIX is a prefix to be included in the returned string, | ||
739 | such as the file name. | ||
740 | SEPARATOR is inserted between the different parts of the path, | ||
741 | the default is \"/\"." | ||
742 | (setq width (or width 79)) | ||
743 | (setq path (delq nil path)) | ||
744 | (unless (> width 0) | ||
745 | (user-error "Argument `width' must be positive")) | ||
746 | (setq separator (or separator "/")) | ||
747 | (let* ((org-odd-levels-only nil) | ||
748 | (fpath (concat | ||
749 | prefix (and prefix path separator) | ||
750 | (mapconcat | ||
751 | (lambda (s) (replace-regexp-in-string "[ \t]+\\'" "" s)) | ||
752 | (cl-loop for head in path | ||
753 | for n from 0 | ||
754 | collect (el-patch-swap | ||
755 | (org-add-props | ||
756 | head nil 'face | ||
757 | (nth (% n org-n-level-faces) org-level-faces)) | ||
758 | head)) | ||
759 | separator)))) | ||
760 | (when (> (length fpath) width) | ||
761 | (if (< width 7) | ||
762 | ;; It's unlikely that `width' will be this small, but don't | ||
763 | ;; waste characters by adding ".." if it is. | ||
764 | (setq fpath (substring fpath 0 width)) | ||
765 | (setf (substring fpath (- width 2)) ".."))) | ||
766 | fpath)) | ||
767 | |||
768 | |||
732 | (provide '+org) | 769 | (provide '+org) |
733 | ;;; +org.el ends here | 770 | ;;; +org.el ends here |
diff --git a/lisp/+titlecase.el b/lisp/+titlecase.el index 1366a46..655ebe1 100644 --- a/lisp/+titlecase.el +++ b/lisp/+titlecase.el | |||
@@ -4,10 +4,14 @@ | |||
4 | 4 | ||
5 | ;;; Code: | 5 | ;;; Code: |
6 | 6 | ||
7 | (defun +titlecase-sentence-style-dwim () | 7 | (defun +titlecase-sentence-style-dwim (&optional arg) |
8 | "Titlecase a sentence." | 8 | "Titlecase a sentence. |
9 | (interactive) | 9 | With prefix ARG, toggle the value of |
10 | (titlecase-dwim 'sentence)) | 10 | `titlecase-downcase-sentences' before sentence-casing." |
11 | (interactive "P") | ||
12 | (let ((titlecase-downcase-sentences (if arg (not titlecase-downcase-sentences) | ||
13 | titlecase-downcase-sentences))) | ||
14 | (titlecase-dwim 'sentence))) | ||
11 | 15 | ||
12 | (defun +titlecase-org-headings () | 16 | (defun +titlecase-org-headings () |
13 | (interactive) | 17 | (interactive) |
diff --git a/machines/bob.el b/machines/bob.el index 06e605a..40db7b0 100644 --- a/machines/bob.el +++ b/machines/bob.el | |||
@@ -8,33 +8,36 @@ | |||
8 | (require 'machine) | 8 | (require 'machine) |
9 | 9 | ||
10 | (defun +bob-set-faces (&rest _) | 10 | (defun +bob-set-faces (&rest _) |
11 | (let ((base-face "IBM Plex Mono") | 11 | (let (;;(base-face "IBM Plex Mono") |
12 | (base-size 110) | 12 | (base-face "Iosevka Comfy Wide") |
13 | (base-size 100) | ||
13 | (italic-face nil) | 14 | (italic-face nil) |
14 | ;; (bold-face nil) | 15 | ;; (bold-face nil) |
15 | (mono-face nil) | 16 | (mono-face nil) |
16 | (var-face "IBM Plex Sans") | 17 | ;; (var-face "IBM Plex Sans") |
18 | (var-face "Iosevka Comfy Duo") | ||
17 | (var-size 1.0)) | 19 | (var-size 1.0)) |
18 | (+set-faces | 20 | (+set-faces |
19 | `((default | 21 | `((default |
20 | :family ,base-face | 22 | :family ,base-face |
21 | :height ,base-size | 23 | :height ,base-size |
22 | :weight normal) | 24 | :weight regular) |
23 | ;; (bold :family ,(or bold-face base-face) | 25 | (bold :family ,(or (bound-and-true-p bold-face) base-face) |
24 | ;; :weight bold) | 26 | :weight extra-bold) |
25 | (italic :family ,(or italic-face base-face) | 27 | (italic :family ,(or (bound-and-true-p italic-face) base-face) |
26 | :weight normal | 28 | :weight normal |
27 | :slant italic) | 29 | :slant italic) |
28 | (fixed-pitch :family ,(or mono-face base-face) | 30 | (fixed-pitch :family ,(or (bound-and-true-p mono-face) base-face) |
29 | :height 1.0) | 31 | :height 1.0) |
30 | (variable-pitch | 32 | (variable-pitch |
31 | :family ,(or var-face base-face) | 33 | :family ,(or var-face base-face) |
32 | :height ,var-size) | 34 | :height ,var-size) |
33 | (org-italic | 35 | ;; (org-italic |
34 | :family ,(or var-face base-face) | 36 | ;; :family ,(or var-face base-face) |
35 | :slant italic))))) | 37 | ;; :slant italic) |
38 | )))) | ||
36 | 39 | ||
37 | ;; Other ideas: [[https://twitter.com/NPRougier/status/1488570192561160195][from Nic Rougier]] | 40 | ;; Other ideas: [[https://twitter.com/NPRougier/status/1488570192561160195][from Nic Rougier]] |
38 | (add-function :after machine-after-load-theme #'+bob-set-faces) | 41 | (add-hook 'machine-after-load-theme-hook #'+bob-set-faces) |
39 | 42 | ||
40 | ;; bob.el ends here (+bob-set-faces) | 43 | ;; bob.el ends here (+bob-set-faces) |