diff options
-rw-r--r-- | TODO.org | 116 | ||||
-rw-r--r-- | init.el | 89 | ||||
-rw-r--r-- | lisp/acdw-org.el | 37 | ||||
-rw-r--r-- | lisp/acdw.el | 6 |
4 files changed, 177 insertions, 71 deletions
diff --git a/TODO.org b/TODO.org index 081ba03..1759aca 100644 --- a/TODO.org +++ b/TODO.org | |||
@@ -10,18 +10,18 @@ | |||
10 | - [X] and =▬▬▬▬▬▬▬▋ Ò╭╮Ó= | 10 | - [X] and =▬▬▬▬▬▬▬▋ Ò╭╮Ó= |
11 | - [X] Clean up code and package it properly | 11 | - [X] Clean up code and package it properly |
12 | 12 | ||
13 | *** TODO FIX the damn thing Ò╭╮Ó | 13 | *** DONE FIX the damn thing Ò╭╮Ó |
14 | 14 | ||
15 | I just have to make sure it's loading correctly in my own config… bleh | 15 | I just have to make sure it's loading correctly in my own config… bleh |
16 | 16 | ||
17 | - and add: | 17 | - and add: |
18 | - [ ] =ヽ(°〇°)ノ= | 18 | - [X] =ヽ(°〇°)ノ= |
19 | - [ ] =୧((#Φ益Φ#))୨= | 19 | - [X] =୧((#Φ益Φ#))୨= |
20 | - [ ] =(╥﹏╥)= | 20 | - [X] =(╥﹏╥)= |
21 | - [ ] =Σ ◕ ◡ ◕= | 21 | - [X] =Σ ◕ ◡ ◕= |
22 | - [ ] =╭∩╮(︶_︶)╭∩╮= | 22 | - [X] =╭∩╮(︶_︶)╭∩╮= |
23 | - [ ] =(งツ)ว= | 23 | - [X] =(งツ)ว= |
24 | - [ ] =ʕ ᴖᴥᴖʔ= | 24 | - [X] =ʕ ᴖᴥᴖʔ= |
25 | 25 | ||
26 | ** TODO =append-scratch= mode or something | 26 | ** TODO =append-scratch= mode or something |
27 | 27 | ||
@@ -54,7 +54,7 @@ allow more configuration of where the mouse goes: | |||
54 | 54 | ||
55 | * Configuring | 55 | * Configuring |
56 | 56 | ||
57 | ** TODO Install =el-patch=? | 57 | ** DONE Install =el-patch=? |
58 | 58 | ||
59 | ** DONE Look at [[https://gitlab.com/ideasman42/emacs-mode-line-idle][ideasman42 / emacs-mode-line-idle]] | 59 | ** DONE Look at [[https://gitlab.com/ideasman42/emacs-mode-line-idle][ideasman42 / emacs-mode-line-idle]] |
60 | 60 | ||
@@ -66,11 +66,11 @@ from karthink (and prot) | |||
66 | 66 | ||
67 | ** TODO [[https://github.com/ahungry/md4rd][md4rd]] | 67 | ** TODO [[https://github.com/ahungry/md4rd][md4rd]] |
68 | 68 | ||
69 | ** TODO [[https://github.com/gRastello/ytel][ytel]] | 69 | ** DONE [[https://github.com/gRastello/ytel][ytel]] |
70 | 70 | ||
71 | ** TODO [[https://passionsplay.com/blog/create-minimal-emacs-environments-with-a-shell-script/][Create Minimal Emacs Environments with a Shell Script]] | 71 | ** TODO [[https://passionsplay.com/blog/create-minimal-emacs-environments-with-a-shell-script/][Create Minimal Emacs Environments with a Shell Script]] |
72 | 72 | ||
73 | ** TODO Twitch IRC | 73 | ** DONE Twitch IRC |
74 | 74 | ||
75 | - [[https://gist.github.com/hunterbridges/ab095066d40f2e1a243e][How to connect to Twitch with an IRC client (As of Oct 2015) · GitHub]] | 75 | - [[https://gist.github.com/hunterbridges/ab095066d40f2e1a243e][How to connect to Twitch with an IRC client (As of Oct 2015) · GitHub]] |
76 | - irc.twitch.tv | 76 | - irc.twitch.tv |
@@ -99,25 +99,41 @@ e.g., “A gold watch” title-cases to “A gold Watch” | |||
99 | *** Inspo: From wsinatra | 99 | *** Inspo: From wsinatra |
100 | 100 | ||
101 | #+begin_src emacs-lisp | 101 | #+begin_src emacs-lisp |
102 | ;; Custom capture templates (setq org-capture-templates '(("t" "Todo" entry | 102 | ;; Custom capture templates |
103 | (file org-default-notes-file) "* TODO %?\n%u\n%a\n" :clock-in t :clock-resume | 103 | (setq org-capture-templates |
104 | t) ("e" "Event" entry (file org-default-notes-file) "* EVENT %? :EVENT:\n%t" | 104 | '(("t" "Todo" entry (file org-default-notes-file) |
105 | :clock-in t :clock-resume t) ("i" "Idea" entry (file org-default-notes-file) | 105 | "* TODO %?\n%u\n%a\n" |
106 | "* %? :IDEA: \n%t" :clock-in t :clock-resume t) ("p" "Project" entry (file | 106 | :clock-in t :clock-resume t) |
107 | org-default-notes-file) "* PROJ %?\n%u\n%a\n" :clock-in t :clock-resume t) | 107 | ("e" "Event" entry (file org-default-notes-file) |
108 | ("n" "Next Task" entry (file+headline org-default-notes-file "Tasks") "** | 108 | "* EVENT %? :EVENT:\n%t" |
109 | NEXT %? \nDEADLINE: %t"))) #+end_src | 109 | :clock-in t :clock-resume t) |
110 | ("i" "Idea" entry (file org-default-notes-file) | ||
111 | "* %? :IDEA: \n%t" | ||
112 | :clock-in t :clock-resume t) | ||
113 | ("p" "Project" | ||
114 | entry (file org-default-notes-file) | ||
115 | "* PROJ %?\n%u\n%a\n" | ||
116 | :clock-in t :clock-resume t) | ||
117 | ("n" "Next Task" | ||
118 | entry (file+headline org-default-notes-file "Tasks") | ||
119 | "** NEXT %? \nDEADLINE: %t"))) | ||
120 | #+end_src | ||
110 | 121 | ||
111 | *** Also cf. [[https://blog.jethro.dev/posts/org_mode_workflow_preview/][Org-mode Workflow: A Preview · Jethro Kuan]] | 122 | *** Also cf. [[https://blog.jethro.dev/posts/org_mode_workflow_preview/][Org-mode Workflow: A Preview · Jethro Kuan]] |
112 | 123 | ||
113 | * Buffer display stuff | 124 | * Buffer display stuff |
114 | 125 | ||
115 | #+begin_src emacs-lisp | 126 | #+begin_src emacs-lisp |
116 | ;; from alphapapa (cl-defun ap/display-buffer-in-side-window (&optional | 127 | ;; from alphapapa |
117 | (buffer (current-buffer))) "Display BUFFER in dedicated side window." | 128 | (cl-defun ap/display-buffer-in-side-window (&optional (buffer (current-buffer))) |
118 | (interactive) (let ((display-buffer-mark-dedicated t)) | 129 | "Display BUFFER in dedicated side window." |
119 | (display-buffer-in-side-window buffer '((side . right) (window-parameters | 130 | (interactive) |
120 | (no-delete-other-windows . t)))))) #+end_src | 131 | (let ((display-buffer-mark-dedicated t)) |
132 | (display-buffer-in-side-window buffer | ||
133 | '((side . right) | ||
134 | (window-parameters | ||
135 | (no-delete-other-windows . t)))))) | ||
136 | #+end_src | ||
121 | 137 | ||
122 | - [[https://old.reddit.com/r/emacs/comments/pka1sm/my_first_package_aside_for_easier_configuration/][My first package: Aside, for easier configuration and use of side windows : | 138 | - [[https://old.reddit.com/r/emacs/comments/pka1sm/my_first_package_aside_for_easier_configuration/][My first package: Aside, for easier configuration and use of side windows : |
123 | emacs]] | 139 | emacs]] |
@@ -137,30 +153,44 @@ e.g., “A gold watch” title-cases to “A gold Watch” | |||
137 | ** A way to map over buffers | 153 | ** A way to map over buffers |
138 | 154 | ||
139 | #+begin_src emacs-lisp | 155 | #+begin_src emacs-lisp |
140 | (dolist (buf (mapcan (lambda (buf) (with-current-buffer buf | 156 | (dolist (buf (mapcan |
141 | (circe-server-chat-buffers))) (circe-server-buffers))) | 157 | (lambda (buf) |
142 | (with-current-buffer buf ;; whatever u wanna do on | 158 | (with-current-buffer buf |
143 | each buffer goes here (lui-set-prompt (concat | 159 | (circe-server-chat-buffers))) |
144 | (propertize (acdw-irc/margin-format (buffer-name) "" | 160 | (circe-server-buffers))) |
145 | ">") 'face 'circe-prompt-face 'read-only t 'intangible | 161 | (with-current-buffer buf ;; whatever u wanna do on each buffer goes here |
146 | t 'cursor-intangible t) " ")) (setq-local | 162 | (lui-set-prompt (concat |
147 | fringes-outside-margins t right-margin-width 5 | 163 | (propertize |
148 | scroll-margin 0 word-wrap t wrap-prefix (repeat-string | 164 | (acdw-irc/margin-format (buffer-name) |
149 | acdw-irc/left-margin " ") line-number-mode nil))) | 165 | "" |
150 | #+end_src | 166 | ">") |
167 | 'face 'circe-prompt-face | ||
168 | 'read-only t | ||
169 | 'intangible t | ||
170 | 'cursor-intangible t) | ||
171 | " ")) | ||
172 | (setq-local fringes-outside-margins t | ||
173 | right-margin-width 5 | ||
174 | scroll-margin 0 | ||
175 | word-wrap t | ||
176 | wrap-prefix (repeat-string acdw-irc/left-margin " ") | ||
177 | line-number-mode nil))) | ||
178 | #+end_src | ||
151 | 179 | ||
152 | ** ZNC Connecting (from #systemcrafters) | 180 | ** ZNC Connecting (from #systemcrafters) |
153 | 181 | ||
154 | #+begin_quote | 182 | #+begin_quote |
155 | daviwil | minikN: I connect to the hostname/port of my ZNC server, but the | 183 | daviwil | minikN: I connect to the hostname/port of my ZNC server, but the |
156 | trick is that the username is the nick you want to use on the | 184 | trick is that the username is the nick you want to use on the |
157 | server and the password is your znc username and password joined | 185 | server and the password is your znc username and password joined |
158 | with a colon, like daviwil:b4dp4ssw0rd minikN | so you don't | 186 | with a colon, like daviwil:b4dp4ssw0rd |
159 | specify the network in your password? like user/network:password? | 187 | minikN | so you don't specify the network in your password? like |
160 | benoitj | daviwil: nice password you have there daviwil | minikN: | 188 | user/network:password? |
161 | nope, I only have one network anyway | 189 | benoitj | daviwil: nice password you have there |
162 | - acdw > daviwil: I just see ******* | 190 | daviwil | minikN: nope, I only have one network anyway |
163 | benoitj | I use two networks #+end_quote | 191 | - acdw > daviwil: I just see ******* |
192 | benoitj | I use two networks | ||
193 | #+end_quote | ||
164 | 194 | ||
165 | ** Teach =link-hint= about =lui-buttons= | 195 | ** Teach =link-hint= about =lui-buttons= |
166 | 196 | ||
diff --git a/init.el b/init.el index efcf846..d3ad238 100644 --- a/init.el +++ b/init.el | |||
@@ -87,7 +87,7 @@ | |||
87 | (:also-load acdw-compat | 87 | (:also-load acdw-compat |
88 | acdw-lisp | 88 | acdw-lisp |
89 | acdw-reading) | 89 | acdw-reading) |
90 | (acdw/require-private) | 90 | (require 'acdw-private (acdw/sync-dir "private.el") :noerror) |
91 | 91 | ||
92 | (:option user-full-name "Case Duckworth" | 92 | (:option user-full-name "Case Duckworth" |
93 | user-mail-address (rot13-string "npqj@npqj.arg")) | 93 | user-mail-address (rot13-string "npqj@npqj.arg")) |
@@ -579,13 +579,21 @@ specific to most general, they are these: | |||
579 | - `flymake-inhibit-major-modes': a list of major-modes in which | 579 | - `flymake-inhibit-major-modes': a list of major-modes in which |
580 | to inhibit `flymake-mode'. Really only useful if you want to | 580 | to inhibit `flymake-mode'. Really only useful if you want to |
581 | generally add `flymake-mode' to `prog-mode-hook'." | 581 | generally add `flymake-mode' to `prog-mode-hook'." |
582 | (unless (or (bound-and-true-p flymake-inhibit) ; file-local variable | 582 | ;; The name of this hook tells you pretty much everything you need to know |
583 | (list-string-match-p (buffer-name) | 583 | ;; for this little thing right here. |
584 | flymake-inhibit-buffer-name-regexps) | 584 | (add-hook 'hack-local-variables-hook |
585 | (list-string-match-p (buffer-file-name) | 585 | (defun flymake-unless@hack-local-variables () |
586 | flymake-inhibit-file-name-regexps) | 586 | (unless (or (cdr (assoc 'flymake-inhibit |
587 | (apply #'derived-mode-p flymake-inhibit-major-modes)) | 587 | file-local-variables-alist)) |
588 | (flymake-mode-on))) | 588 | (list-string-match-p |
589 | (buffer-name) | ||
590 | flymake-inhibit-buffer-name-regexps) | ||
591 | (list-string-match-p | ||
592 | (buffer-file-name) | ||
593 | flymake-inhibit-file-name-regexps) | ||
594 | (apply #'derived-mode-p | ||
595 | flymake-inhibit-major-modes)) | ||
596 | (flymake-mode-on))))) | ||
589 | 597 | ||
590 | (add-hook 'prog-mode-hook #'flymake-unless) | 598 | (add-hook 'prog-mode-hook #'flymake-unless) |
591 | 599 | ||
@@ -714,20 +722,57 @@ specific to most general, they are these: | |||
714 | 722 | ||
715 | (setup mu4e | 723 | (setup mu4e |
716 | (:load-from "/usr/share/emacs/site-lisp/mu4e") | 724 | (:load-from "/usr/share/emacs/site-lisp/mu4e") |
717 | (:option mu4e-change-filenames-when-moving t | 725 | (:autoload (mu4e :interactive t) |
718 | mu4e-update-interval (* 10 60) | 726 | make-mu4e-context) |
727 | (:option message-kill-buffer-on-exit t | ||
728 | message-send-mail-function #'smtpmail-send-it | ||
729 | mu4e-change-filenames-when-moving t | ||
730 | mu4e-contexts | ||
731 | (list | ||
732 | ;; Work | ||
733 | (make-mu4e-context | ||
734 | :name "Work" | ||
735 | :match-func (lambda (msg) | ||
736 | (when msg | ||
737 | (string-prefix-p | ||
738 | work-mail-dir | ||
739 | (mu4e-message-field msg :maildir)))) | ||
740 | :vars `((user-mail-address . ,work-email) | ||
741 | (smtpmail-smtp-server . ,work-smtp-server) | ||
742 | (mu4e-compose-format-flowed . nil) | ||
743 | (mu4e-drafts-folder | ||
744 | . ,(concat work-mail-dir "/[Gmail]/Drafts")) | ||
745 | (mu4e-sent-folder | ||
746 | . ,(concat work-mail-dir "/[Gmail]/Sent Mail")) | ||
747 | (mu4e-refile-dir | ||
748 | . ,(concat work-mail-dir "/[Gmail]/All Mail")) | ||
749 | (mu4e-trash-folder | ||
750 | . ,(concat work-mail-dir "/[Gmail]/Trash")))) | ||
751 | ;; Home | ||
752 | (make-mu4e-context | ||
753 | :name "Home" | ||
754 | :match-func (lambda (msg) | ||
755 | (when msg | ||
756 | (string-prefix-p | ||
757 | home-mail-dir | ||
758 | (mu4e-message-field msg :maildir)))) | ||
759 | :vars `((user-mail-address . ,home-email) | ||
760 | (smtpmail-smtp-server . ,home-smtp-server) | ||
761 | (mu4e-compose-format-flowed . nil) | ||
762 | (mu4e-drafts-folder | ||
763 | . ,(concat home-mail-dir "/Drafts")) | ||
764 | (mu4e-sent-folder | ||
765 | . ,(concat home-mail-dir "/Sent")) | ||
766 | (mu4e-refile-folder | ||
767 | . ,(concat home-mail-dir "/Archive")) | ||
768 | (mu4e-trash-folder | ||
769 | . ,(concat home-mail-dir "/Trash"))))) | ||
719 | mu4e-get-mail-command "mbsync -a" | 770 | mu4e-get-mail-command "mbsync -a" |
720 | mu4e-maildir "~/mail/clickhere") | 771 | mu4e-maildir "~/mail" |
721 | (:option mu4e-drafts-folder "/[Gmail]/Drafts" | 772 | mu4e-update-interval (* 10 60) |
722 | mu4e-sent-folder "/[Gmail]/Sent Mail" | 773 | send-mail-function #'smtpmail-send-it |
723 | mu4e-refile-folder "/[Gmail]/All Mail" | 774 | smtpmail-smtp-service 465 |
724 | mu4e-trash-folder "/[Gmail]/Trash" | 775 | smtpmail-stream-type 'ssl)) |
725 | mu4e-maildir-shortcuts | ||
726 | `((:maildir "/Inbox" :key ?i) | ||
727 | (:maildir ,mu4e-drafts-folder :key ?d) | ||
728 | (:maildir ,mu4e-sent-folder :key ?s) | ||
729 | (:maildir ,mu4e-refile-folder :key ?a) | ||
730 | (:maildir ,mu4e-trash-folder :key ?t)))) | ||
731 | 776 | ||
732 | (setup page | 777 | (setup page |
733 | (:option page-delimiter | 778 | (:option page-delimiter |
@@ -2437,7 +2482,7 @@ the default is \"/\"." | |||
2437 | (list | 2482 | (list |
2438 | (propertize " " | 2483 | (propertize " " |
2439 | 'display | 2484 | 'display |
2440 | '((space | 2485 | `((space |
2441 | :align-to | 2486 | :align-to |
2442 | ,(unless | 2487 | ,(unless |
2443 | (bound-and-true-p visual-fill-column-mode) | 2488 | (bound-and-true-p visual-fill-column-mode) |
diff --git a/lisp/acdw-org.el b/lisp/acdw-org.el index 05e6409..a1558a2 100644 --- a/lisp/acdw-org.el +++ b/lisp/acdw-org.el | |||
@@ -471,6 +471,43 @@ probably abandon it at some point for a better solution (see: | |||
471 | (org-narrow-to-subtree)))) | 471 | (org-narrow-to-subtree)))) |
472 | 472 | ||
473 | 473 | ||
474 | ;;; Hide everything but the current headline | ||
475 | ;; https://stackoverflow.com/questions/25161792/ | ||
476 | |||
477 | (defun acdw-org/show-next-heading-tidily () | ||
478 | "Show next entry, keeping other entries closed." | ||
479 | (interactive) | ||
480 | (if (save-excursion (end-of-line) (outline-invisible-p)) | ||
481 | (progn (org-show-entry) (outline-show-children)) | ||
482 | (outline-next-heading) | ||
483 | (unless (and (bolp) (org-at-heading-p)) | ||
484 | (org-up-heading-safe) | ||
485 | (outline-hide-subtree) | ||
486 | (error "Boundary reached")) | ||
487 | (org-overview) | ||
488 | (org-reveal t) | ||
489 | (org-show-entry) | ||
490 | (recenter-top-bottom) | ||
491 | (outline-show-children) | ||
492 | (recenter-top-bottom))) | ||
493 | |||
494 | (defun acdw-org/show-previous-heading-tidily () | ||
495 | "Show previous entry, keeping other entries closed." | ||
496 | (interactive) | ||
497 | (let ((pos (point))) | ||
498 | (outline-previous-heading) | ||
499 | (unless (and (< (point) pos) (bolp) (org-at-heading-p)) | ||
500 | (goto-char pos) | ||
501 | (outline-hide-subtree) | ||
502 | (error "Boundary reached")) | ||
503 | (org-overview) | ||
504 | (org-reveal t) | ||
505 | (org-show-entry) | ||
506 | (recenter-top-bottom) | ||
507 | (outline-show-children) | ||
508 | (recenter-top-bottom))) | ||
509 | |||
510 | |||
474 | (provide 'acdw-org) | 511 | (provide 'acdw-org) |
475 | ;;; acdw-org.el ends here | 512 | ;;; acdw-org.el ends here |
476 | 513 | ||
diff --git a/lisp/acdw.el b/lisp/acdw.el index 489b808..df2962a 100644 --- a/lisp/acdw.el +++ b/lisp/acdw.el | |||
@@ -665,12 +665,6 @@ ARGS." | |||
665 | (custom-set-faces '(fringe | 665 | (custom-set-faces '(fringe |
666 | ((t (:foreground "dim gray")))))) | 666 | ((t (:foreground "dim gray")))))) |
667 | 667 | ||
668 | (defun acdw/require-private () | ||
669 | "Load \"~/.emacs.d/private.el\". | ||
670 | It's called 'require-private' for historical reasons." | ||
671 | (load (expand-file-name "private.el" user-emacs-directory) | ||
672 | :noerror :nomessage)) | ||
673 | |||
674 | 668 | ||
675 | ;;; Recentf renaming with dired | 669 | ;;; Recentf renaming with dired |
676 | ;; from ... somewhere. 'rjs', apparently? | 670 | ;; from ... somewhere. 'rjs', apparently? |