[emacs] MOve back to a config structure
This commit is contained in:
@ -18,9 +18,9 @@ I change my default theme almost as often as the weather. I tend to revert back
|
|||||||
to Doom One most of the time, but I like the Kaolin themes, as well as Nimbus
|
to Doom One most of the time, but I like the Kaolin themes, as well as Nimbus
|
||||||
for it's retro charm. Nimbus just doesn't look great when I'm tired though.
|
for it's retro charm. Nimbus just doesn't look great when I'm tired though.
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(setq doom-theme 'doom-challenger-deep
|
(setq doom-theme 'srcery
|
||||||
doom-font (font-spec :family "JetBrains Mono NL" :size 12 :weight 'semi-light)
|
doom-font (font-spec :family "JetBrains Mono" :size 14 :weight 'semi-light)
|
||||||
doom-big-font (font-spec :family "JetBrains Mono NL" :size 16)
|
doom-big-font (font-spec :family "JetBrains Mono" :size 18)
|
||||||
doom-variable-pitch-font (font-spec :family "Overpass" :size 16))
|
doom-variable-pitch-font (font-spec :family "Overpass" :size 16))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
** Borders
|
** Borders
|
||||||
@ -173,6 +173,14 @@ How I went about [[file:/usr/home/powellc/var/org/20200916134500-vale_prose_lint
|
|||||||
)
|
)
|
||||||
(add-to-list 'flycheck-checkers 'vale 'append)
|
(add-to-list 'flycheck-checkers 'vale 'append)
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(setq +format-on-save-enabled-modes
|
||||||
|
'(not emacs-lisp-mode ; elisp's mechanisms are good enough
|
||||||
|
sql-mode ; sqlformat is currently broken
|
||||||
|
tex-mode ; latexindent is broken
|
||||||
|
org-mode
|
||||||
|
latex-mode))
|
||||||
|
#+end_src
|
||||||
* Org-mode
|
* Org-mode
|
||||||
** Basic configuration
|
** Basic configuration
|
||||||
A handful of mods here clean up org mode. Line numbers don’t mean much when
|
A handful of mods here clean up org mode. Line numbers don’t mean much when
|
||||||
@ -495,11 +503,6 @@ Here we are trying to auto-translate Word and PDF files to be viewed in Emacs.
|
|||||||
#+END_SRC
|
#+END_SRC
|
||||||
* Magit
|
* Magit
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
;;(add-hook 'magit-mode-hook #'doom-disable-line-numbers-h)
|
|
||||||
|
|
||||||
(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
|
(after! magit
|
||||||
(magit-wip-after-save-mode t)
|
(magit-wip-after-save-mode t)
|
||||||
(magit-wip-after-apply-mode t)
|
(magit-wip-after-apply-mode t)
|
||||||
@ -513,9 +516,12 @@ Here we are trying to auto-translate Word and PDF files to be viewed in Emacs.
|
|||||||
magithub-clone-default-directory "~/src" ;; I want my stuff to clone to ~/projects
|
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.
|
magithub-preferred-remote-method 'ssh_url)) ;; HTTPS cloning is awful, i authenticate with ssh keys.
|
||||||
|
|
||||||
|
; Show gravatars in magit
|
||||||
|
(setq magit-revision-show-gravatars '("^Author: " . "^Commit: "))
|
||||||
|
|
||||||
(setq lsp-enable-links nil)
|
; (setq lsp-enable-links nil)
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
* Openwith
|
* Openwith
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(when (require 'openwith nil 'noerror)
|
(when (require 'openwith nil 'noerror)
|
||||||
12
emacs/.config/doom/custom.el
Normal file
12
emacs/.config/doom/custom.el
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
(custom-set-variables
|
||||||
|
;; custom-set-variables was added by Custom.
|
||||||
|
;; If you edit it by hand, you could mess it up, so be careful.
|
||||||
|
;; Your init file should contain only one such instance.
|
||||||
|
;; If there is more than one, they won't work right.
|
||||||
|
'(package-selected-packages '(modus-vivendi-theme)))
|
||||||
|
(custom-set-faces
|
||||||
|
;; custom-set-faces was added by Custom.
|
||||||
|
;; If you edit it by hand, you could mess it up, so be careful.
|
||||||
|
;; Your init file should contain only one such instance.
|
||||||
|
;; If there is more than one, they won't work right.
|
||||||
|
)
|
||||||
@ -24,6 +24,7 @@
|
|||||||
;;ido ; the other *other* search engine...
|
;;ido ; the other *other* search engine...
|
||||||
(ivy ; a search engine for love and life
|
(ivy ; a search engine for love and life
|
||||||
+fuzzy
|
+fuzzy
|
||||||
|
+presient
|
||||||
+icons)
|
+icons)
|
||||||
|
|
||||||
:ui
|
:ui
|
||||||
@ -89,15 +90,15 @@
|
|||||||
;;debugger ; FIXME stepping through code, to help you add bugs
|
;;debugger ; FIXME stepping through code, to help you add bugs
|
||||||
direnv
|
direnv
|
||||||
;;docker
|
;;docker
|
||||||
editorconfig ; let someone else argue about tabs vs spaces
|
editorconfig ; let someone else argue about tabs vs spaces
|
||||||
;;ein ; tame Jupyter notebooks with emacs
|
;;ein ; tame Jupyter notebooks with emacs
|
||||||
(eval +overlay) ; run code, run (also, repls)
|
(eval +overlay) ; run code, run (also, repls)
|
||||||
gist ; interacting with github gists
|
gist ; interacting with github gists
|
||||||
(lookup ; navigate your code and its documentation
|
(lookup ; navigate your code and its documentation
|
||||||
+dictionary
|
+dictionary
|
||||||
+docsets)
|
+docsets)
|
||||||
lsp
|
lsp
|
||||||
magit ; a git porcelain for Emacs
|
(magit +forge) ; a git porcelain for Emacs
|
||||||
make ; run make tasks from Emacs
|
make ; run make tasks from Emacs
|
||||||
(pass +auth) ; password manager for nerds
|
(pass +auth) ; password manager for nerds
|
||||||
pdf ; pdf enhancements
|
pdf ; pdf enhancements
|
||||||
@ -1,401 +0,0 @@
|
|||||||
(setq user-full-name "Colin Powell"
|
|
||||||
user-mail-address "colin@unbl.ink")
|
|
||||||
|
|
||||||
(setq ivy-read-action-function #'ivy-hydra-read-action)
|
|
||||||
|
|
||||||
(setq doom-theme 'doom-challenger-deep
|
|
||||||
doom-font (font-spec :family "JetBrains Mono NL" :size 12 :weight 'semi-light)
|
|
||||||
doom-big-font (font-spec :family "JetBrains Mono NL" :size 16)
|
|
||||||
doom-variable-pitch-font (font-spec :family "Overpass" :size 16))
|
|
||||||
|
|
||||||
;; Applies to current frame
|
|
||||||
(set-frame-parameter nil 'internal-border-width 10) ; applies to the current frame
|
|
||||||
;; If we create new frames (via emacsclient) this will do the trick
|
|
||||||
(add-to-list 'default-frame-alist '(internal-border-width . 10))
|
|
||||||
|
|
||||||
(nyan-mode) ;; progress in the form of a rainbow cat.
|
|
||||||
(add-hook 'after-init-hook #'global-emojify-mode) ;; emojis?!
|
|
||||||
(add-hook 'prog-mode-hook #'goto-address-mode) ;; linify links!
|
|
||||||
|
|
||||||
(map! ;; Easier window movement
|
|
||||||
:n "C-h" 'evil-window-left
|
|
||||||
:n "C-j" 'evil-window-down
|
|
||||||
:n "C-k" 'evil-window-up
|
|
||||||
:n "C-l" 'evil-window-right
|
|
||||||
|
|
||||||
(:map evil-treemacs-state-map
|
|
||||||
"C-h" 'evil-window-left
|
|
||||||
"C-l" 'evil-window-right)
|
|
||||||
|
|
||||||
:leader
|
|
||||||
(:prefix "f"
|
|
||||||
:desc "Find file in dotfiles" "t" #'+hlissner/find-in-dotfiles
|
|
||||||
:desc "Browse dotfiles" "T" #'+hlissner/browse-dotfiles)
|
|
||||||
(:prefix "o"
|
|
||||||
:desc "(H)ckrnews" "H" #'hackernews
|
|
||||||
:desc "(R)SS" "R" #'=rss
|
|
||||||
:desc "(M)ail" "M" #'=notmuch
|
|
||||||
:desc "(L)obste.rs" "L" #'ivy-lobsters)
|
|
||||||
(:prefix "b"
|
|
||||||
:desc "Black format buffer" "f" #'blacken-buffer
|
|
||||||
:desc "isort buffer" "I" #'py-isort-buffer
|
|
||||||
:desc "Links in buffer" "l" #'ace-link-org)
|
|
||||||
(:prefix "s"
|
|
||||||
:desc "Search the web" "w" #'web-search
|
|
||||||
:desc "Goto URL in eww" "u" #'eww-browse-url
|
|
||||||
:desc "Search in eww" "3" #'eww-search-words
|
|
||||||
:desc "Search all the things" "g" #'deadgrep))
|
|
||||||
|
|
||||||
(setq wttrin-default-cities '("Castine, ME" "San Francisco" "Thessaloniki"))
|
|
||||||
(setq wttrin-default-accept-language '("Accept-Language" . "en-US"))
|
|
||||||
|
|
||||||
(map!
|
|
||||||
(:leader
|
|
||||||
(:prefix "o"
|
|
||||||
:desc "(W)eather" "W" #'wttrin)))
|
|
||||||
|
|
||||||
(setq libmpdel-hostname "mpd.unbl.ink")
|
|
||||||
|
|
||||||
(defun mpdel-playlist-play ()
|
|
||||||
"Start playing the song at point."
|
|
||||||
(interactive)
|
|
||||||
(if (derived-mode-p 'mpdel-playlist-current-playlist-mode)
|
|
||||||
(libmpdel-play-song (navigel-entity-at-point))
|
|
||||||
(mpdel-core-insert-current-playlist)))
|
|
||||||
|
|
||||||
(map! :leader
|
|
||||||
(:prefix "-"
|
|
||||||
:desc "MPD Open playlist" "-" #'mpdel-playlist-open
|
|
||||||
:desc "MPD Remove at point" "d" #'mpdel-playlist-delete
|
|
||||||
:desc "MPD Start at point" "s" #'mpdel-playlist-play
|
|
||||||
:desc "MPD Next track" "n" #'libmpdel-playback-next
|
|
||||||
:desc "MPD Previous track" "p" #'libmpdel-playback-previous))
|
|
||||||
|
|
||||||
(setq elfeed-protocol-ttrss-maxsize 100) ;; bigger than 200 is invalid
|
|
||||||
(setq elfeed-feeds '("ttrss+https://powellc:hT7nPKAHa^fYwXZ*@reader.unbl.ink"))
|
|
||||||
|
|
||||||
(setq elfeed-log-level 'debug)
|
|
||||||
(elfeed-protocol-enable)
|
|
||||||
|
|
||||||
;; Schedule feed update for every 15 minutes
|
|
||||||
(run-at-time "30 min" nil 'elfeed-update)
|
|
||||||
|
|
||||||
(setq elfeed-search-filter "@2-days-ago +unread")
|
|
||||||
(defun elfeed-search-format-date (date)
|
|
||||||
(format-time-string "%Y-%m-%d %H:%M" (seconds-to-time date)))
|
|
||||||
|
|
||||||
; Serif font in Elfeed
|
|
||||||
(add-hook! 'elfeed-mode-hook 'variable-pitch-mode)
|
|
||||||
(add-hook! 'elfeed-show-mode-hook (text-scale-set 1.2))
|
|
||||||
|
|
||||||
(defun unfill-paragraph ()
|
|
||||||
"Takes a multi-line paragraph and makes it into a single line of text."
|
|
||||||
(interactive)
|
|
||||||
(let ((fill-column (point-max)))
|
|
||||||
(fill-paragraph nil)))
|
|
||||||
|
|
||||||
(define-key global-map "\M-z" 'unfill-paragraph)
|
|
||||||
|
|
||||||
;; PlantUML is awesome for quick diagrams
|
|
||||||
(add-to-list 'auto-mode-alist '("\\.plantuml\\'" . plantuml-mode))
|
|
||||||
|
|
||||||
;; Timezone location strings at http://worldtime.io
|
|
||||||
(setq display-time-world-list '(("America/Los_Angeles" "San Francisco")
|
|
||||||
("America/Tegucigalpa" "Tegucigalpa")
|
|
||||||
("America/New_York" "New York")
|
|
||||||
("Europe/London" "London")
|
|
||||||
("Europe/Warsaw" "Warsaw")
|
|
||||||
("Europe/Kiev" "Lviv")))
|
|
||||||
|
|
||||||
(flycheck-define-checker vale
|
|
||||||
"A checker for prose"
|
|
||||||
:command ("vale" "--output" "line"
|
|
||||||
source)
|
|
||||||
:standard-input nil
|
|
||||||
:error-patterns
|
|
||||||
((error line-start (file-name) ":" line ":" column ":" (id (one-or-more (not (any ":")))) ":" (message) line-end))
|
|
||||||
:modes (markdown-mode org-mode text-mode)
|
|
||||||
)
|
|
||||||
(add-to-list 'flycheck-checkers 'vale 'append)
|
|
||||||
|
|
||||||
(add-hook 'org-mode-hook #'doom-disable-line-numbers-h)
|
|
||||||
|
|
||||||
(after! org
|
|
||||||
(setq org-directory (expand-file-name "~/var/org/")
|
|
||||||
org-agenda-files (file-expand-wildcards "~/var/org/2020-*")
|
|
||||||
org-pretty-entities t
|
|
||||||
org-agenda-dim-blocked-tasks nil
|
|
||||||
org-log-done 'time
|
|
||||||
org-hide-emphasis-markers t
|
|
||||||
org-fontify-whole-heading-line t
|
|
||||||
org-fontify-done-headline t
|
|
||||||
org-fontify-quote-and-verse-blocks t
|
|
||||||
org-ellipsis "…"
|
|
||||||
org-image-actual-width '(600)
|
|
||||||
org-protocol-default-template-key "l"
|
|
||||||
org-capture-templates
|
|
||||||
'(("i" "Send to inbox" entry (file "~/var/org/inbox.org")
|
|
||||||
"* TODO %?\n")
|
|
||||||
("l" "Link" entry (file "~/var/org/inbox.org")
|
|
||||||
"* TODO %a\n %?\n %i"))
|
|
||||||
org-todo-keywords
|
|
||||||
'((sequence "TODO(t)" "NEXT(n)" "MAYBE(m)" "|" "DONE(d)" "WONTDO(w)"))
|
|
||||||
org-modules '(ol-eshell
|
|
||||||
ol-notmuch
|
|
||||||
ob-eval
|
|
||||||
ob-exp
|
|
||||||
ob-http
|
|
||||||
org-id)))
|
|
||||||
|
|
||||||
;; Don’t display git gutter in org mode
|
|
||||||
;; With tree folding, it's pretty much useless
|
|
||||||
(after! git-gutter
|
|
||||||
(setq git-gutter:disabled-modes '(org-mode image-mode)))
|
|
||||||
|
|
||||||
;; Refiling
|
|
||||||
(setq org-refile-targets '(("~/var/org/inbox.org" :maxlevel . 9)))
|
|
||||||
(setq org-outline-path-complete-in-steps nil) ; Refile in a single go
|
|
||||||
(setq org-refile-use-outline-path t) ; Show full paths for refiling
|
|
||||||
|
|
||||||
(setq +inbox-file "~/var/org/inbox.org")
|
|
||||||
(defun +open-inbox-file ()
|
|
||||||
(interactive)
|
|
||||||
"Opens the inbox file"
|
|
||||||
(find-file +inbox-file))
|
|
||||||
|
|
||||||
(map!
|
|
||||||
:leader
|
|
||||||
:desc "Open inbox" "I" #'+open-inbox-file
|
|
||||||
:desc "Save all org buffers" "A" #'org-save-all-org-buffers)
|
|
||||||
|
|
||||||
(setq org-agenda-span 3
|
|
||||||
org-agenda-start-day "1d")
|
|
||||||
(defun +show-agenda ()
|
|
||||||
(interactive)
|
|
||||||
(delete-other-windows)
|
|
||||||
(with-popup-rules! nil
|
|
||||||
(org-agenda-list)
|
|
||||||
(calendar))
|
|
||||||
(other-window 1)
|
|
||||||
(split-window-vertically)
|
|
||||||
(other-window 1)
|
|
||||||
(find-file +todo-file))
|
|
||||||
|
|
||||||
(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")))
|
|
||||||
|
|
||||||
(setq org-fc-directories "~/var/org/")
|
|
||||||
(require 'org-fc-hydra)
|
|
||||||
|
|
||||||
(require 'justify-kp)
|
|
||||||
;(setq nov-text-width t)
|
|
||||||
(setq nov-text-width 100)
|
|
||||||
|
|
||||||
(defun my-nov-window-configuration-change-hook ()
|
|
||||||
(my-nov-post-html-render-hook)
|
|
||||||
(remove-hook 'window-configuration-change-hook
|
|
||||||
'my-nov-window-configuration-change-hook
|
|
||||||
t))
|
|
||||||
|
|
||||||
(defun my-nov-post-html-render-hook ()
|
|
||||||
(if (get-buffer-window)
|
|
||||||
(let ((max-width (pj-line-width))
|
|
||||||
buffer-read-only)
|
|
||||||
(save-excursion
|
|
||||||
(goto-char (point-min))
|
|
||||||
(while (not (eobp))
|
|
||||||
(when (not (looking-at "^[[:space:]]*$"))
|
|
||||||
(goto-char (line-end-position))
|
|
||||||
(when (> (shr-pixel-column) max-width)
|
|
||||||
(goto-char (line-beginning-position))
|
|
||||||
(pj-justify)))
|
|
||||||
(forward-line 1))))
|
|
||||||
(add-hook 'window-configuration-change-hook
|
|
||||||
'my-nov-window-configuration-change-hook
|
|
||||||
nil t)))
|
|
||||||
(add-hook 'nov-post-html-render-hook 'my-nov-post-html-render-hook)
|
|
||||||
|
|
||||||
(defun my-nov-font-setup ()
|
|
||||||
(face-remap-add-relative 'variable-pitch :family "Noto Serif Regular"
|
|
||||||
:height 1.0
|
|
||||||
:size 16))
|
|
||||||
(add-hook 'nov-mode-hook 'my-nov-font-setup)
|
|
||||||
(add-to-list 'auto-mode-alist '("\\.epub\\'" . nov-mode))
|
|
||||||
|
|
||||||
;(add-hook 'nov-mode-hook 'variable-pitch-mode)
|
|
||||||
|
|
||||||
(setq mm-text-html-renderer 'w3m)
|
|
||||||
(setq w3m-fill-column 88)
|
|
||||||
|
|
||||||
(setq message-kill-buffer-on-exit t)
|
|
||||||
(setq message-auto-save-directory "~/Mail/colin@unbl.ink/Drafts/")
|
|
||||||
(setq message-directory "~/Mail/colin@unbl.ink/")
|
|
||||||
|
|
||||||
;; sendmail-program "/usr/local/bin/msmtpq" <--- this doesn't work as advertised right now
|
|
||||||
(setq send-mail-function 'sendmail-send-it
|
|
||||||
sendmail-program "/usr/local/bin/msmtp"
|
|
||||||
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)
|
|
||||||
|
|
||||||
(setq notmuch-saved-searches '((:name "inbox" :query "tag:inbox" :key "i")
|
|
||||||
(:name "unread" :query "tag:inbox and tag:unread" :key "u")
|
|
||||||
(:name "jira" :query "tag:jira and date:yesterday..today" :key "j")
|
|
||||||
(:name "github" :query "tag:github and date:yesterday..today" :key "g")))
|
|
||||||
|
|
||||||
(after! notmuch
|
|
||||||
(set-popup-rule! "^\\*notmuch*" :ignore t)
|
|
||||||
)
|
|
||||||
|
|
||||||
(map! :leader
|
|
||||||
(:prefix "e"
|
|
||||||
:desc "(s)end 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))
|
|
||||||
|
|
||||||
(after! eshell
|
|
||||||
(set-eshell-alias!
|
|
||||||
"djtest" "DJANGO_SETTINGS_MODULE=ff.settings.ci python manage.py test $*"
|
|
||||||
"djpytest" "DJANGO_SETTINGS_MODULE=ff.settings.ci pytest --reuse-db --black --flake8 --isort --durations=3 $*"
|
|
||||||
"djsh" "DJANGO_SETTINGS_MODULE=ff.settings.ci python manage.py shell_plus"
|
|
||||||
"dj" "DJANGO_SETTINGS_MODULE=ff.settings.ci python manage.py $*"
|
|
||||||
"f" "(other-window 1) && find-file $1"
|
|
||||||
"l" "ls -lh"
|
|
||||||
"d" "dired $1"
|
|
||||||
"gl" "(call-interactively 'magit-log-current)"
|
|
||||||
"gs" "magit-status"
|
|
||||||
"gc" "magit-commit"))
|
|
||||||
|
|
||||||
(after! lsp
|
|
||||||
(setq lsp-file-watch-threshold nil))
|
|
||||||
|
|
||||||
(setq mastodon-instance-url "https://mastodon.technology")
|
|
||||||
|
|
||||||
(map! :leader
|
|
||||||
(:prefix "="
|
|
||||||
:desc "Open mastodon" "=" #'mastodon
|
|
||||||
:desc "Update Mastodon timeline" "u" #'mastodon-tl--update
|
|
||||||
:desc "More Mastodon timeline" "m" #'mastodon-tl--more
|
|
||||||
:desc "Toot to Mastodon" "t" #'mastodon-toot))
|
|
||||||
|
|
||||||
(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-admin 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))
|
|
||||||
|
|
||||||
(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)))
|
|
||||||
|
|
||||||
(load! "beancount")
|
|
||||||
(require 'beancount)
|
|
||||||
(add-to-list 'auto-mode-alist '("\\.beancount\\'" . beancount-mode))
|
|
||||||
|
|
||||||
(define-derived-mode
|
|
||||||
pandoc-view-mode
|
|
||||||
markdown-mode
|
|
||||||
"pandoc-view-mode"
|
|
||||||
"View pandoc processing of docx file using markdown mode."
|
|
||||||
(erase-buffer)
|
|
||||||
(let* ((pandoc (executable-find "pandoc")))
|
|
||||||
(insert (shell-command-to-string
|
|
||||||
(concat pandoc " --wrap=none " (shell-quote-argument (buffer-file-name)) " -t markdown"))))
|
|
||||||
(not-modified)
|
|
||||||
(read-only-mode t))
|
|
||||||
|
|
||||||
(add-to-list 'auto-mode-alist '("\\.docx\\'" . pandoc-view-mode))
|
|
||||||
|
|
||||||
;;(add-hook 'magit-mode-hook #'doom-disable-line-numbers-h)
|
|
||||||
|
|
||||||
(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.
|
|
||||||
|
|
||||||
|
|
||||||
(setq lsp-enable-links nil)
|
|
||||||
|
|
||||||
(when (require 'openwith nil 'noerror)
|
|
||||||
(setq openwith-associations
|
|
||||||
(list
|
|
||||||
(list (openwith-make-extension-regexp
|
|
||||||
'("mpg" "mpeg" "mp3" "mp4"
|
|
||||||
"avi" "wmv" "wav" "mov" "flv"
|
|
||||||
"ogm" "ogg" "mkv"))
|
|
||||||
"vlc"
|
|
||||||
'(file))
|
|
||||||
(list (openwith-make-extension-regexp
|
|
||||||
'("pdf" "ps" "ps.gz" "dvi"))
|
|
||||||
"zathura"
|
|
||||||
'(file))
|
|
||||||
))
|
|
||||||
(openwith-mode 1))
|
|
||||||
Reference in New Issue
Block a user