[emacs] Update old packages

This commit is contained in:
2022-11-17 22:02:55 -05:00
parent e6aff26e7d
commit 5884c26f26
7 changed files with 22 additions and 610 deletions

View File

@ -1,18 +0,0 @@
;;; ~/.doom.d/+magit.el -*- lexical-binding: t; -*-
(setq +magit-hub-features t ;; I want the PR/issue stuff too!
+magit-hub-enable-by-default t) ;; And I want it on by default!
(after! magit
(magit-wip-after-save-mode t)
(magit-wip-after-apply-mode t)
(setq magit-save-repository-buffers 'dontask
magit-circleci-token "097bf0dd808ad9103d489844e37cecffdf967837"
magit-repository-directories '(("~/src/" . 3)
("~/dotfiles/" . 0))
magit-popup-display-buffer-action nil ;; Not sure why this is here, wonder what it does
magit-display-file-buffer-function #'switch-to-buffer-other-window
magithub-clone-default-directory "~/src" ;; I want my stuff to clone to ~/projects
magithub-preferred-remote-method 'ssh_url)) ;; HTTPS cloning is awful, i authenticate with ssh keys.

View File

@ -1,459 +0,0 @@
;;; -*- lexical-binding: t; -*-
;;; Config is mostly from https://kkatsuyuki.github.io/notmuch-conf/ aadsa
;;; This is all modified from
;;; https://github.com/fuxialexander/doom-emacs-private-xfu/
;;;; Notmuch
(use-package! notmuch
:commands (notmuch
notmuch-tree
notmuch-tree-mode
notmuch-search
notmuch-search-mode
notmuch-hello
notmuch-hello-mode
notmuch-show
notmuch-show-mode
notmuch-message-mode)
:init
(map!
(:leader
(:prefix "e"
:desc "Send queued mail" "s" #'smtpmail-send-queued-mail
:desc "Open (i)nbox" "i" #'=notmuch
:desc "Open (n)otmuch" "n" #'notmuch
:desc "(C)ompose mail" "c" #'notmuch-mua-new-mail))))
(set-evil-initial-state! '(notmuch-hello-mode
notmuch-show-mode
notmuch-search-mode
notmuch-tree-mode
notmuch-message-mode) 'normal)
;; (add-hook 'notmuch-tree-mode-hook '+mail/buffer-face-mode-notmuch)
;; (add-hook 'notmuch-search-mode-hook '+mail/buffer-face-mode-notmuch)
;; (add-hook 'notmuch-message-mode-hook '+mail/buffer-face-mode-notmuch)
(add-hook 'notmuch-message-mode-hook (lambda () (set (make-local-variable 'company-backends) '(notmuch-company (company-ispell :with company-yasnippet)))))
(add-hook 'notmuch-tree-mode-hook (lambda () (setq-local line-spacing nil)))
;;(remove-hook 'message-mode-hook #'turn-on-auto-fill)
;;(remove-hook 'notmuch-message-mode-hook #'turn-on-auto-fill)
;; (push 'notmuch-tree-mode evil-snipe-disabled-modes)
;; (push 'notmuch-hello-mode evil-snipe-disabled-modes)
;; (push 'notmuch-search-mode evil-snipe-disabled-modes)
;; (push 'notmuch-show-mode evil-snipe-disabled-modes)
(advice-add #'notmuch-start-notmuch-sentinel :override #'+mail/notmuch-start-notmuch-sentinel)
(advice-add #'notmuch-show :override #'+mail/notmuch-show-reuse-buffer)
(advice-add #'notmuch-hello-insert-searches :override #'+mail/notmuch-hello-insert-searches)
(advice-add #'notmuch-hello-insert-saved-searches :override #'+mail/notmuch-hello-insert-saved-searches)
(advice-add #'notmuch-hello-insert-buttons :override #'+mail/notmuch-hello-insert-buttons)
;; (set! :popup "\\*notmuch-hello\\*" '((size . 20) (side . left)) '((quit . t) (modeline . nil)))
(push (lambda (buf) (string-match-p "^\\*notmuch" (buffer-name buf)))
doom-real-buffer-functions)
(map! (:after notmuch
(:map notmuch-show-mode-map
:nmv "o" #'ace-link-notmuch-show
:nmv "i" #'+mail/open-message-with-mail-app-notmuch-show
:nmv "I" #'notmuch-show-view-all-mime-parts
:nmv "q" #'notmuch-bury-or-kill-this-buffer
(:when (featurep! :completion ivy)
:nmv "s" #'counsel-notmuch)
(:when (featurep! :completion helm)
:nmv "s" #'helm-notmuch)
:nmv "t" #'notmuch-tree-from-show-current-query
:nmv "N" #'notmuch-mua-new-mail
:nmv "n" #'notmuch-show-next-thread-show
:nmv "r" #'notmuch-show-reply
:nmv "<tab>" #'notmuch-show-toggle-visibility-headers
:nmv "R" #'notmuch-show-reply-sender
:nmv "p" #'notmuch-show-previous-thread-show)
(:map notmuch-hello-mode-map
:nmv "o" #'ace-link-notmuch-hello
:nmv "t" #'notmuch-tree
:nmv "k" #'widget-backward
:nmv "n" #'notmuch-mua-new-mail
:nmv "N" #'notmuch-mua-new-mail
:nmv "j" #'widget-forward
(:when (featurep! :completion ivy)
:nmv "s" #'counsel-notmuch)
(:when (featurep! :completion helm)
:nmv "s" #'helm-notmuch)
:nmv "q" #'+mail/quit
:nmv "r" #'notmuch-hello-update)
(:map notmuch-search-mode-map
:nmv "j" #'notmuch-search-next-thread
:nmv "k" #'notmuch-search-previous-thread
:nmv "t" #'notmuch-tree-from-search-thread
;; :nmv "RET" #'notmuch-tree-from-search-thread
:nmv "RET" #'notmuch-search-show-thread
:nmv "N" #'notmuch-mua-new-mail
:nmv "T" #'notmuch-tree-from-search-current-query
:nmv ";" #'notmuch-search-tag
:nmv "," #'notmuch-jump-search
:nmv "d" #'+mail/notmuch-search-delete
:nmv "a" #'notmuch-search-archive-thread
;; :nmv "q" #'notmuch
:nmv "q" #'+mail/quit
:nmv "R" #'notmuch-search-reply-to-thread-sender
:nmv "r" #'notmuch-search-reply-to-thread
:nmv "go" #'+notmuch-exec-offlineimap
(:when (featurep! :completion ivy)
:nmv "s" #'counsel-notmuch)
(:when (featurep! :completion helm)
:nmv "s" #'helm-notmuch)
:nmv "x" #'+mail/notmuch-search-spam)
(:map notmuch-tree-mode-map
:nmv "j" #'notmuch-tree-next-message
:nmv "k" #'notmuch-tree-prev-message
:nmv "S" #'notmuch-search-from-tree-current-query
(:when (featurep! :completion ivy)
:nmv "s" #'counsel-notmuch)
(:when (featurep! :completion helm)
:nmv "s" #'helm-notmuch)
:nmv "t" #'notmuch-tree
:nmv ";" #'notmuch-tree-tag
:nmv "RET" #'notmuch-tree-show-message
:nmv "q" #'notmuch-tree-quit
:nmv "s-n" #'notmuch-mua-new-mail
:nmv "r" #'notmuch-search-reply-to-thread-sender
:nmv "a" #'notmuch-tree-archive-message-then-next
:nmv "A" #'notmuch-tree-archive-thread
:nmv "i" #'+mail/open-message-with-mail-app-notmuch-tree
:nmv "d" #'+mail/notmuch-tree-delete
:nmv "x" #'+mail/notmuch-tree-spam)
(:map notmuch-message-mode-map
:localleader
:desc "Send and Exit" doom-localleader-key #'notmuch-mua-send-and-exit
:desc "Kill Message Buffer" "k" #'notmuch-mua-kill-buffer
:desc "Save as Draft" "s" #'message-dont-send
:desc "Attach file" "f" #'mml-attach-file)))
; Use w3m to parse HTML email
(setq mm-text-html-renderer 'w3m)
(setq w3m-fill-column 72)
;;;; counsel-notmuch
(when (featurep! :completion ivy)
(use-package! counsel-notmuch
:commands counsel-notmuch
:after notmuch))
;;;; helm-notmuch
(when (featurep! :completion helm)
(use-package! helm-notmuch
:commands helm-notmuch
:after notmuch))
;;;; org-mime
(use-package! org-mime
:after (org notmuch))
:config (setq org-mime-library 'mml)
;;;###autoload
(defun =mail ()
"Activate (or switch to) `notmuch' in its workspace."
(interactive)
(if-let* ((buf (cl-find-if (lambda (it) (string-match-p "^\\*notmuch" (buffer-name (window-buffer it))))
(doom-visible-windows))))
(select-window (get-buffer-window buf))
(notmuch-search "tag:inbox")))
;; (call-interactively 'notmuch-hello-sidebar))
;;;###autoload
(defun +mail/quit ()
(interactive)
;; (+popup/close (get-buffer-window "*notmuch-hello*"))
(doom-kill-matching-buffers "^\\*notmuch"))
;;;###autoload
(defun +mail/notmuch-search-delete ()
(interactive)
(notmuch-search-add-tag
(list "+deleted" "-inbox" "-unread"))
(notmuch-search-next-thread))
;;;###autoload
(defun +mail/notmuch-tree-delete ()
(interactive)
(notmuch-tree-add-tag
(list "+trash" "-inbox" "-unread"))
(notmuch-tree-next-message))
;;;###autoload
(defun +mail/notmuch-search-spam ()
(interactive)
(notmuch-search-add-tag
(list "+spam" "-inbox" "-unread"))
(notmuch-search-next-thread))
;;;###autoload
(defun +mail/notmuch-tree-spam ()
(interactive)
(notmuch-tree-add-tag
(list "+spam" "-inbox" "-unread"))
(notmuch-tree-next-message))
;;;###autoload
(defun +mail/open-message-with-mail-app-notmuch-tree ()
(interactive)
(let* ((msg-path (car (plist-get (notmuch-tree-get-message-properties) :filename)))
(temp (make-temp-file "notmuch-message-" nil ".eml")))
(shell-command-to-string (format "cp '%s' '%s'" msg-path temp))
(start-process-shell-command "email" nil (format "thunderbird '%s'" temp))))
;; Override
;;;###autoload
(defun +mail/notmuch-start-notmuch-sentinel (proc event)
"Process sentinel function used by `notmuch-start-notmuch'."
(let* ((err-file (process-get proc 'err-file))
(err-buffer (or (process-get proc 'err-buffer)
(find-file-noselect err-file)))
(err (when (not (zerop (buffer-size err-buffer)))
(with-current-buffer err-buffer (buffer-string))))
(sub-sentinel (process-get proc 'sub-sentinel))
(real-command (process-get proc 'real-command)))
(condition-case err
(progn
;; Invoke the sub-sentinel, if any
(when sub-sentinel
(funcall sub-sentinel proc event))
;; Check the exit status. This will signal an error if the
;; exit status is non-zero. Don't do this if the process
;; buffer is dead since that means Emacs killed the process
;; and there's no point in telling the user that (but we
;; still check for and report stderr output below).
(when (buffer-live-p (process-buffer proc))
(notmuch-check-async-exit-status proc event real-command err))
;; If that didn't signal an error, then any error output was
;; really warning output. Show warnings, if any.
(let ((warnings
(when err
(with-current-buffer err-buffer
(goto-char (point-min))
(end-of-line)
;; Show first line; stuff remaining lines in the
;; errors buffer.
(let ((l1 (buffer-substring (point-min) (point))))
(skip-chars-forward "\n")
(cons l1 (unless (eobp)
(buffer-substring (point) (point-max)))))))))
(when warnings
(notmuch-logged-error (car warnings) (cdr warnings)))))
(error
;; Emacs behaves strangely if an error escapes from a sentinel,
;; so turn errors into messages.
(message "%s" (error-message-string err))))
(when err-buffer
(set-process-query-on-exit-flag (get-buffer-process err-buffer) nil)
(kill-buffer err-buffer))
(when err-file (ignore-errors (delete-file err-file)))))
;;;###autoload
(defun +mail/notmuch-show-reuse-buffer (thread-id &optional elide-toggle parent-buffer query-context buffer-name)
"Run \"notmuch show\" with the given thread ID and display results.
ELIDE-TOGGLE, if non-nil, inverts the default elide behavior.
The optional PARENT-BUFFER is the notmuch-search buffer from
which this notmuch-show command was executed, (so that the
next thread from that buffer can be show when done with this
one).
The optional QUERY-CONTEXT is a notmuch search term. Only
messages from the thread matching this search term are shown if
non-nil.
The optional BUFFER-NAME provides the name of the buffer in
which the message thread is shown. If it is nil (which occurs
when the command is called interactively) the argument to the
function is used.
Returns the buffer containing the messages, or NIL if no messages
matched."
(interactive "sNotmuch show: \nP")
(let ((buffer-name (generate-new-buffer-name
(or (concat "*notmuch-" buffer-name "*")
(concat "*notmuch-" thread-id "*"))))
;; We override mm-inline-override-types to stop application/*
;; parts from being displayed unless the user has customized
;; it themselves.
(mm-inline-override-types
(if (equal mm-inline-override-types
(eval (car (get 'mm-inline-override-types 'standard-value))))
(cons "application/*" mm-inline-override-types)
mm-inline-override-types)))
(switch-to-buffer (get-buffer-create buffer-name))
;; No need to track undo information for this buffer.
(setq buffer-undo-list t)
(notmuch-show-mode)
;; Set various buffer local variables to their appropriate initial
;; state. Do this after enabling `notmuch-show-mode' so that they
;; aren't wiped out.
(setq notmuch-show-thread-id thread-id
notmuch-show-parent-buffer parent-buffer
notmuch-show-query-context (if (or (string= query-context "")
(string= query-context "*"))
nil query-context)
notmuch-show-process-crypto notmuch-crypto-process-mime
;; If `elide-toggle', invert the default value.
notmuch-show-elide-non-matching-messages
(if elide-toggle
(not notmuch-show-only-matching-messages)
notmuch-show-only-matching-messages))
(add-hook 'post-command-hook #'notmuch-show-command-hook nil t)
(jit-lock-register #'notmuch-show-buttonise-links)
(notmuch-tag-clear-cache)
(let ((inhibit-read-only t))
(if (notmuch-show--build-buffer)
;; Messages were inserted into the buffer.
(current-buffer)
;; No messages were inserted - presumably none matched the
;; query.
(kill-buffer (current-buffer))
(ding)
(message "No messages matched the query!")
nil))))
;;;###autoload
;(defun +mail/notmuch-hello-insert-searches (title query-list &rest options)
; "Insert a section with TITLE showing a list of buttons made from QUERY-LIST.
;QUERY-LIST should ideally be a plist but for backwards
;compatibility other forms are also accepted (see
;`notmuch-saved-searches' for details). The plist should
;contain keys :name and :query; if :count-query is also present
;then it specifies an alternate query to be used to generate the
;count for the associated search.
;Supports the following entries in OPTIONS as a plist:
;:initially-hidden - if non-nil, section will be hidden on startup
;:show-empty-searches - show buttons with no matching messages
;:hide-if-empty - hide if no buttons would be shown
; (only makes sense without :show-empty-searches)
;:filter - This can be a function that takes the search query as its argument and
; returns a filter to be used in conjuction with the query for that search or nil
; to hide the element. This can also be a string that is used as a combined with
; each query using \"and\".
;:filter-count - Separate filter to generate the count displayed each search. Accepts
; the same values as :filter. If :filter and :filter-count are specified, this
; will be used instead of :filter, not in conjunction with it."
; (widget-insert (propertize title 'face 'org-agenda-structure))
; (if (and notmuch-hello-first-run (plist-get options :initially-hidden))
; (add-to-list 'notmuch-hello-hidden-sections title))
; (let ((is-hidden (member title notmuch-hello-hidden-sections))
; (widget-push-button-prefix "")
; (widget-push-button-suffix "")
; (start (point)))
; (if is-hidden
; (widget-create 'push-button
; :notify `(lambda (widget &rest ignore)
; (setq notmuch-hello-hidden-sections
; (delete ,title notmuch-hello-hidden-sections))
; (notmuch-hello-update))
; (propertize " +" 'face 'org-agenda-structure))
; (widget-create 'push-button
; :notify `(lambda (widget &rest ignore)
; (add-to-list 'notmuch-hello-hidden-sections
; ,title)
; (notmuch-hello-update))
; " -"))
; (widget-insert "\n")
; (when (not is-hidden)
; (let ((searches (apply 'notmuch-hello-query-counts query-list options)))
; (when (or (not (plist-get options :hide-if-empty))
; searches)
; (widget-insert "\n")
; (notmuch-hello-insert-buttons searches)
; (indent-rigidly start (point) notmuch-hello-indent))))))
;
;;;;###autoload
;(defun +mail/notmuch-hello-insert-saved-searches ()
; "Insert the saved-searches section."
; (let ((searches (notmuch-hello-query-counts
; (if notmuch-saved-search-sort-function
; (funcall notmuch-saved-search-sort-function
; notmuch-saved-searches)
; notmuch-saved-searches)
; :show-empty-searches notmuch-show-empty-saved-searches)))
; (when searches
; (widget-insert (propertize "Notmuch" 'face 'org-agenda-date-today))
; (widget-insert "\n\n")
; (widget-insert (propertize "Saved searches" 'face 'org-agenda-structure))
; (widget-insert "\n\n")
; (let ((start (point)))
; (notmuch-hello-insert-buttons searches)
; (indent-rigidly start (point) notmuch-hello-indent)))))
;
;;;;###autoload
;(defun +mail/notmuch-hello-insert-buttons (searches)
; "Insert buttons for SEARCHES.
;SEARCHES must be a list of plists each of which should contain at
;least the properties :name NAME :query QUERY and :count COUNT,
;where QUERY is the query to start when the button for the
;corresponding entry is activated, and COUNT should be the number
;of messages matching the query. Such a plist can be computed
;with `notmuch-hello-query-counts'."
; (let* ((widest (notmuch-hello-longest-label searches))
; (tags-and-width (notmuch-hello-tags-per-line widest))
; (tags-per-line (car tags-and-width))
; (column-width (cdr tags-and-width))
; (column-indent 0)
; (count 0)
; (reordered-list (notmuch-hello-reflect searches tags-per-line))
; ;; Hack the display of the buttons used.
; (widget-push-button-prefix "")
; (widget-push-button-suffix ""))
; ;; dme: It feels as though there should be a better way to
; ;; implement this loop than using an incrementing counter.
; (mapc (lambda (elem)
; ;; (not elem) indicates an empty slot in the matrix.
; (when elem
; (if (> column-indent 0)
; (widget-insert (make-string column-indent ? )))
; (let* ((name (plist-get elem :name))
; (query (plist-get elem :query))
; (oldest-first (case (plist-get elem :sort-order)
; (newest-first nil)
; (oldest-first t)
; (otherwise notmuch-search-oldest-first)))
; (search-type (eq (plist-get elem :search-type) 'tree))
; (msg-count (plist-get elem :count)))
; (widget-insert (format "\n%5s "
; (notmuch-hello-nice-number msg-count)))
; (widget-create 'push-button
; :notify #'notmuch-hello-widget-search
; :notmuch-search-terms query
; :notmuch-search-oldest-first oldest-first
; :notmuch-search-type search-type
; name)
; (setq column-indent
; (1+ (max 0 (- column-width (length name)))))))
; (setq count (1+ count))
; (when (eq (% count tags-per-line) 0)
; (setq column-indent 0)
; (widget-insert "\n")))
; reordered-list)
;
; ;; If the last line was not full (and hence did not include a
; ;; carriage return), insert one now.
; (unless (eq (% count tags-per-line) 0)
; (widget-insert "\n"))))
; Kill email message buffers when you close them
(setq message-kill-buffer-on-exit t)
(setq message-default-mail-headers "Cc: \nBcc: \n")
(setq message-auto-save-directory "~/Mail/colin@unbl.ink/Drafts/")
(setq message-directory "~/Mail/colin@unbl.ink/")
;;; Setup sending email with msmtp
(setq send-mail-function 'sendmail-send-it
sendmail-program "/usr/local/bin/msmtp"
smtpmail-queue-mail t
mail-specify-envelope-from t
message-sendmail-f-is-evil t
message-sendmail-envelope-from 'header
message-sendmail-extra-arguments '("--read-envelope-from")
mail-envelope-from 'header)

View File

@ -1 +0,0 @@
;;; ~/devel/dotfiles/config/doom/+python.el -*- lexical-binding: t; -*-

View File

@ -1,30 +0,0 @@
;;; -*- lexical-binding: t; -*-
(def-package! reason-mode
:mode "\\.rei?$"
:commands (reason-mode)
:config
(let* (
(refmt-bin (executable-find "refmt"))
(merlin-bin (executable-find "ocamlmerlin"))
(merlin-base-dir (when merlin-bin
(replace-regexp-in-string "bin/ocamlmerlin$" "" merlin-bin))))
;; Add npm merlin.el to the emacs load path and tell emacs where to find ocamlmerlin
(when merlin-bin
(add-to-list 'load-path (concat merlin-base-dir "share/emacs/site-lisp/"))
(setq merlin-command merlin-bin))
(when refmt-bin
(setq refmt-command refmt-bin))
(require 'merlin)
(add-hook! reason-mode
(add-hook 'before-save-hook #'refmt-before-save nil t)
(merlin-mode))
(setq-hook! reason-mode
indent-region-function #'apply-refmt)
(set-electric! 'some-mode :chars '(?|))
(set-lookup-handlers! 'reason-mode
:definition #'merlin-locate
:references #'merlin-occurrences
:documentation #'merlin-document)
(set-company-backend! 'reason-mode 'merlin-company-backend)))

View File

@ -236,13 +236,6 @@ easier. I just need to level up with Zettels and web publishing of my notes.
#+BEGIN_SRC emacs-lisp
(setq org-roam-directory "~/var/org/")
(setq org-roam-dailies-directory "")
(setq org-roam-dailies-capture-templates
'(("d" "default" entry
#'org-roam-capture--get-point
"* %?"
:file-name "%<%Y-%m-%d>"
:head "#+title: %<%Y-%m-%d>\n\n")))
#+END_SRC
* Novel
@ -364,7 +357,7 @@ Handful of fun aliases to make working in Eshell almost like a /real/ shell :smi
* Coding
LSP doesn't like big projects and I can't blame it. This forces it to index huge
projects without warning us everytime.
projects without warning us every time.
#+begin_src emacs-lisp
(setq lsp-lens-enable 1
@ -392,7 +385,8 @@ projects without warning us everytime.
* Mastodon
There's gotta be a way to get the token out of password-store for this.
#+BEGIN_SRC emacs-lisp
(setq mastodon-instance-url "https://mastodon.technology")
(setq mastodon-instance-url "https://fosstodon.org"
mastodon-active-user "colin@unbl.ink")
(map! :leader
(:prefix "="
@ -401,68 +395,6 @@ There's gotta be a way to get the token out of password-store for this.
:desc "More Mastodon timeline" "m" #'mastodon-tl--more
:desc "Toot to Mastodon" "t" #'mastodon-toot))
#+END_SRC
* Slack
** Configure teams
#+BEGIN_SRC emacs-lisp
(use-package! slack
:commands (slack-start)
:init
(setq slack-buffer-emojify t)
(setq slack-prefer-current-team t)
:config
(slack-register-team
:name "15five"
:token (auth-source-pick-first-password
:host "15five.slack.com"
:user "colin.powell@15five.com")
:subscribed-channels '(squad-partnerships water-cooler))
(slack-register-team
:name "RAB"
:token (auth-source-pick-first-password
:host "randomaccessbrewery.slack.com"
:user "colin@onec.me")
:subscribed-channels '(the_taps random))
(evil-define-key 'normal slack-info-mode-map
",u" 'slack-room-update-messages)
(evil-define-key 'normal slack-mode-map
",c" 'slack-buffer-kill
",ra" 'slack-message-add-reaction
",rr" 'slack-message-remove-reaction
",rs" 'slack-message-show-reaction-users
",pl" 'slack-room-pins-list
",pa" 'slack-message-pins-add
",pr" 'slack-message-pins-remove
",mm" 'slack-message-write-another-buffer
",me" 'slack-message-edit
",md" 'slack-message-delete
",u" 'slack-room-update-messages
",2" 'slack-message-embed-mention
",3" 'slack-message-embed-channel
"\C-n" 'slack-buffer-goto-next-message
"\C-p" 'slack-buffer-goto-prev-message)
(evil-define-key 'normal slack-edit-message-mode-map
",k" 'slack-message-cancel-edit
",s" 'slack-message-send-from-buffer
",2" 'slack-message-embed-mention
",3" 'slack-message-embed-channel))
(use-package! alert
:commands (alert)
:init
(setq alert-default-style 'libnotify))
#+END_SRC
** Key bindings
#+BEGIN_SRC emacs-lisp
(map! :leader
(:prefix "o"
(:prefix ("s" . "+slack")
:desc "Slack channels" "S" #'slack-start
:desc "Slack channels" "s" #'slack-channel-select
:desc "Slack IMs" "i" #'slack-im-select
:desc "Slack groups" "g" #'slack-group-select
:desc "Slack threads" "t" #'slack-all-threads)))
#+END_SRC
* Beancount
Use Emacs and plain text files for your accounting!
@ -496,9 +428,8 @@ Here we are trying to auto-translate Word and PDF files to be viewed in Emacs.
(magit-wip-after-apply-mode t)
(setq magit-save-repository-buffers 'dontask
magit-circleci-token "097bf0dd808ad9103d489844e37cecffdf967837"
magit-repository-directories '(("~/src/" . 3)
("~/dotfiles/" . 0))
("~/.dotfiles/" . 0))
magit-popup-display-buffer-action nil ;; Not sure why this is here, wonder what it does
magit-display-file-buffer-function #'switch-to-buffer-other-window
magithub-clone-default-directory "~/src" ;; I want my stuff to clone to ~/projects

View File

@ -25,11 +25,11 @@
:ui
doom ; what makes DOOM look the way it does
doom-dashboard ; a nifty splash screen for Emacs
(emoji +github +unicode) ;
(emoji +unicode) ;
hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
ligatures ;
modeline ; snazzy, Atom-inspired modeline, plus API
nav-flash ; blink cursor line after big motions
;;nav-flash ; blink cursor line after big motions
ophints ; highlight the region an operation acts on
(popup +defaults) ; tame sudden yet inevitable temporary windows
unicode ; extended unicode support for various languages
@ -48,7 +48,7 @@
:emacs
(dired +icons) ; making dired pretty [functional]
electric ; smarter, keyword-based electric-indent
(undo +tree) ; persistent, smarter undo for your inevitable mistakes
undo ;+tree) ; persistent, smarter undo for your inevitable mistakes
vc ; version-control and Emacs, sitting in a tree
:term
@ -61,29 +61,29 @@
grammar ; tasing grammar mistake every you make
:tools
ansible
;;ansible
;;debugger ; FIXME stepping through code, to help you add bugs
direnv
docker
editorconfig ; let someone else argue about tabs vs spaces
(eval +overlay) ; run code, run (also, repls)
gist ; interacting with github gists
(lookup +dictionary +docsets)
;;gist ; interacting with github gists
lookup
lsp
(magit +forge) ; a git porcelain for Emacs
make ; run make tasks from Emacs
(pass +auth) ; password manager for nerds
;;(pass +auth) ; password manager for nerds
pdf ; pdf enhancements
:os
(:if IS-MAC macos) ; improve compatibility with macOS
tty ; improve the terminal Emacs experience
;;tty ; improve the terminal Emacs experience
:lang
;;crystal ; ruby at the speed of c
data ; config/data formats
;;(dart +flutter) ; paint ui and not much else
(elixir +lsp) ; erlang done right
;;(elixir +lsp) ; erlang done right
emacs-lisp ; drown in parentheses
(go +lsp) ; the hipster dialect
json ; At least it ain't XML
@ -91,7 +91,7 @@
ledger ; an accounting system in Emacs
lua ; one-based indices? one-based indices
markdown ; writing docs for people to ignore
nim ; python + lisp at the speed of c
;;nim ; python + lisp at the speed of c
;;nix ; I hereby declare "nix geht mehr!"
;;ocaml ; an objective camel
(org ; organize your plain life in plain text
@ -107,15 +107,16 @@
+present) ; using Emacs for presentations
;;perl ; write code no one else can comprehend
;;php ; perl's insecure younger brother
plantuml ; diagrams for confusing people more
;;plantuml ; diagrams for confusing people more
;;purescript ; javascript, but functional
(python +poetry +lsp +pyright) ; beautiful is better than ugly
(graphql +lsp)
(python +lsp +pyright) ; beautiful is better than ugly
;;qt ; the 'cutest' gui framework ever
;;racket ; a DSL for DSLs
rest ; Emacs as a REST client
rst ; ReST in peace
(ruby +rails +lsp) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
(rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
;;(ruby +rails +lsp) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
;;(rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
sh ; she sells {ba,z,fi}sh shells on the C xor
(web +lsp) ; the tubes
yaml ; JSON, but readable

View File

@ -1,18 +1,12 @@
;; -*- no-byte-compile: t; -*-
;;; $DOOMDIR/packages.el
;;;
;; Snippets! From hlissner!
(package! emacs-snippets
:recipe (:host github
:repo "hlissner/emacs-snippets"
:files ("*")))
; For making Nov.el look nice
(package! justify-kp
:recipe (:host github
:repo "Fuco1/justify-kp"))
(package! hydra)
;(package! hydra)
;; python stuffs
(package! blacken)
@ -21,27 +15,24 @@
;; org stuffs
(package! ob-http)
(package! org-web-tools)
(package! org-snooze)
(package! org-alert)
(package! org-fancy-priorities)
;; handy tools
(package! w3m)
(package! nov)
(package! git-link)
(package! ivy-lobsters)
;(package! ivy-lobsters)
(package! web-search)
(package! mpdel)
(package! ivy-mpdel)
(package! elfeed-protocol)
(package! deadgrep)
(package! mastodon)
(package! magit-circleci)
(package! wordgen)
(package! openwith)
(package! pdf-tools)
;; slack ... okay one more time
(package! slack)
;(package! slack)
(package! direnv)
(package! frameshot)
(package! keycast)
@ -50,6 +41,3 @@
(package! srcery-theme)
(package! kaolin-themes)
(package! nyan-mode)
;https://github.com/hlissner/doom-emacs/issues/5530
(unpin! magit forge)