mirror of
https://codeberg.org/hyperreal/doom-emacs-config
synced 2024-11-01 16:53:07 +01:00
Update
This commit is contained in:
parent
90e85dbcd1
commit
f555801946
157
config.el
157
config.el
@ -3,6 +3,10 @@
|
||||
|
||||
;;;; Misc settings
|
||||
|
||||
;; start Emacs as a server process
|
||||
(server-start)
|
||||
|
||||
;; user info
|
||||
(setq user-full-name "Jeffrey Serio"
|
||||
user-mail-address "hyperreal@fedoraproject.org")
|
||||
|
||||
@ -17,7 +21,7 @@
|
||||
(when (string= (system-name) "moonshadow")
|
||||
(setq fontsize 18)
|
||||
(setq default-frame-alist
|
||||
'((height . 53)
|
||||
'((height . 54)
|
||||
(width . 154)
|
||||
(left . 1720)
|
||||
(top . 0)
|
||||
@ -41,6 +45,34 @@
|
||||
(setq doom-theme 'catppuccin)
|
||||
(setq catppuccin-flavor 'mocha)
|
||||
|
||||
;; Backups
|
||||
(setq backup-directory-alist '(("." . "~/sync/emacs/backups")))
|
||||
(with-eval-after-load 'tramp
|
||||
(add-to-list 'tramp-backup-directory-alist
|
||||
(cons tramp-file-name-regexp nil)))
|
||||
|
||||
(setq delete-old-versions -1)
|
||||
(setq version-control t)
|
||||
(setq vc-make-backup-files t)
|
||||
(setq auto-save-file-name-transforms '((".*" "~/sync/emacs/auto-save-list/" t)))
|
||||
|
||||
;; History
|
||||
(setq savehist-file "~/sync/emacs/savehist")
|
||||
(savehist-mode 1)
|
||||
(setq history-length t)
|
||||
(setq history-delete-duplicates t)
|
||||
(setq savehist-save-minibuffer-history 1)
|
||||
(setq savehist-additional-variables
|
||||
'(kill-ring
|
||||
search-ring
|
||||
regexp-search-ring))
|
||||
|
||||
;; Display time in the modeline
|
||||
(display-time-mode 1)
|
||||
|
||||
;; Sentences end with a single space because it's right and proper
|
||||
(setq sentence-end-double-space nil)
|
||||
|
||||
;; This determines the style of line numbers in effect. If set to `nil', line
|
||||
;; numbers are disabled. For relative line numbers, set this to `relative'.
|
||||
(setq display-line-numbers-type 'relative)
|
||||
@ -51,6 +83,21 @@
|
||||
;; Keybinding to kill-whole-line
|
||||
(global-set-key (kbd "M-9") 'kill-whole-line)
|
||||
|
||||
;; trim newline from string output
|
||||
(defun string-trim-final-newline (string)
|
||||
"Trim the last newline character from string.
|
||||
Used with `shell-command-to-string'.
|
||||
Source: https://emacs.stackexchange.com/a/21906"
|
||||
(let ((len (length string)))
|
||||
(cond
|
||||
((and (> len 0) (eql (aref string (- len 1)) ?\n))
|
||||
(substring string 0 (- len 1)))
|
||||
(t string))))
|
||||
|
||||
;; wrapper around `shell-command-to-string' to remove newline
|
||||
(defun shell-command-output-string (command)
|
||||
(string-trim-final-newline (shell-command-to-string command)))
|
||||
|
||||
;; Copy all or text selection
|
||||
(defun xah-copy-all-or-region ()
|
||||
"Put the whole buffer content to `kill-ring', or text selection if there's one.
|
||||
@ -118,6 +165,41 @@ If point was already at that position, move point to beginning of line."
|
||||
'(emacs-lisp-mode
|
||||
python-mode))
|
||||
|
||||
;; UTF-8
|
||||
(prefer-coding-system 'utf-8)
|
||||
(when (display-graphic-p)
|
||||
(setq x-select-request-type '(UTF8_STRING COMPOUND_TEXT TEXT STRING)))
|
||||
|
||||
|
||||
;;;; artbollocks-mode
|
||||
;;;; https://github.com/sachac/artbollocks-mode
|
||||
|
||||
(setq artbollocks-weasel-words-regex
|
||||
(concat "\\b" (regexp-opt
|
||||
'("one of the"
|
||||
"should"
|
||||
"just"
|
||||
"etc"
|
||||
"sort of"
|
||||
"kind of"
|
||||
"a lot"
|
||||
"probably"
|
||||
"maybe"
|
||||
"perhaps"
|
||||
"I think"
|
||||
"really"
|
||||
"pretty"
|
||||
"utilize"
|
||||
"leverage") t) "\\b"))
|
||||
|
||||
|
||||
;;;; undo-tree-mode - visualize undos and branches
|
||||
|
||||
(global-undo-tree-mode)
|
||||
(setq undo-tree-visualizer-timestamps t)
|
||||
(setq undo-tree-visualizer-diff t)
|
||||
(setq undo-tree-history-directory-alist '(("." . "~/sync/emacs/backups/undo-tree")))
|
||||
|
||||
|
||||
;;;; evil-nerd-commenter
|
||||
|
||||
@ -130,6 +212,7 @@ If point was already at that position, move point to beginning of line."
|
||||
;;;; org-mode
|
||||
|
||||
(add-hook 'org-mode-hook (lambda () (org-superstar-mode 1)))
|
||||
(require 'org-protocol)
|
||||
|
||||
(setq org-modules '(org-agenda
|
||||
org-annotate-file
|
||||
@ -140,7 +223,7 @@ If point was already at that position, move point to beginning of line."
|
||||
'(org-load-modules-maybe t))
|
||||
|
||||
(setq org-directory "~/sync/org/")
|
||||
(setq org-default-notes-file "~/sync/org/notes.org")
|
||||
(setq org-default-notes-file "~/sync/org/inbox.org")
|
||||
|
||||
;; support selecting lines by using shift
|
||||
(setq org-support-shift-select t)
|
||||
@ -181,7 +264,6 @@ If point was already at that position, move point to beginning of line."
|
||||
"~/sync/org/computing.org"
|
||||
"~/sync/org/general.org"
|
||||
"~/sync/org/orders.org"
|
||||
"~/sync/org/notes.org"
|
||||
"~/sync/org/reading.org"
|
||||
"~/sync/org/grocery.org")
|
||||
. (:maxlevel .5))))
|
||||
@ -218,9 +300,7 @@ If point was already at that position, move point to beginning of line."
|
||||
|
||||
(setq org-log-done 'time)
|
||||
|
||||
|
||||
;;;; org-roam
|
||||
|
||||
;; org-roam
|
||||
(setq org-roam-directory "~/sync/org-roam")
|
||||
(org-roam-db-autosync-mode)
|
||||
|
||||
@ -253,10 +333,15 @@ If point was already at that position, move point to beginning of line."
|
||||
:if-new (file "recipes/${title}.org")
|
||||
:unnarrowed t)))
|
||||
|
||||
;; org-capture templates
|
||||
;; org-capture-templates
|
||||
(setq org-capture-templates
|
||||
'(("t" "Todo" entry (file "~/sync/org/inbox.org")
|
||||
"* TODO %?"
|
||||
'(("p" "Inbox" entry (file+headline "~/sync/org/inbox.org" "Inbox")
|
||||
"* %^{Title}\nSource: %u, %c\n #+BEGIN_QUOTE\n%i\n#+END_QUOTE\n\n%?"
|
||||
:empty-lines-before 1
|
||||
:unnarrowed t
|
||||
:immediate-finish t)
|
||||
("L" "Link" entry (file+headline "~/sync/org/inbox.org" "Inbox")
|
||||
"* %? [[%:link][%:description]] \nCaptured on: %U"
|
||||
:empty-lines-before 1
|
||||
:unnarrowed t
|
||||
:immediate-finish t)
|
||||
@ -281,12 +366,42 @@ If point was already at that position, move point to beginning of line."
|
||||
|
||||
;;;; python-mode
|
||||
|
||||
;; Set bpython as Python shell interpreter
|
||||
;; set bpython as python shell interpreter
|
||||
(add-hook! python-mode-hook
|
||||
(setq python-shell-interpreter "bpython"))
|
||||
|
||||
;; Set black as Python formatter
|
||||
(setq-hook! 'python-mode-hook +format-with 'black)
|
||||
;; enable elpy
|
||||
(elpy-enable)
|
||||
|
||||
;; set tab width; use flake8 as python-flymake-command, python-check-command
|
||||
(setq python-indent-offset 4)
|
||||
(add-hook 'python-mode-hook
|
||||
(lambda ()
|
||||
(setq-local tab-width 4)
|
||||
(setq-local python-flymake-command '("flake8" "--max-doc-length=72", "--ignore=E211,E999,F401,F821,W503"))
|
||||
(setq-local python-check-command "flake8 --max-doc-length=72 --ignore=E211,E999,F401,F821,W503"))
|
||||
70)
|
||||
|
||||
;; use Pyright LSP
|
||||
(add-hook 'python-mode-hook
|
||||
(lambda ()
|
||||
(require 'lsp-pyright)
|
||||
(lsp)))
|
||||
|
||||
;; autoformat on save with yapf
|
||||
(add-hook 'elpy-mode-hook
|
||||
(lambda ()
|
||||
(add-hook 'before-save-hook
|
||||
'elpy-yapf-fix-code nil t)))
|
||||
|
||||
;; colorize compilation buffer
|
||||
;; from https://sachachua.com/dotemacs/index.html#orga33bac5
|
||||
(require 'ansi-color)
|
||||
(defun colorize-compilation-buffer ()
|
||||
(when (eq major-mode 'compilation-mode)
|
||||
(let ((inhibit-read-only t))
|
||||
(ansi-color-apply-on-region compilation-filter-start (point-max)))))
|
||||
(add-hook 'compilation-filter-hook 'colorize-compilation-buffer)
|
||||
|
||||
|
||||
;;;; go-mode
|
||||
@ -304,6 +419,13 @@ If point was already at that position, move point to beginning of line."
|
||||
(add-hook 'go-mode-hook #'lsp-deferred)
|
||||
|
||||
|
||||
;;;; helpful
|
||||
(global-set-key (kbd "C-h f") #'helpful-callable)
|
||||
(global-set-key (kbd "C-h v") #'helpful-variable)
|
||||
(global-set-key (kbd "C-h k") #'helpful-key)
|
||||
(global-set-key (kbd "C-h x") #'helpful-command)
|
||||
(global-set-key (kbd "C-c C-d") #'helpful-at-point)
|
||||
|
||||
;;;; dired
|
||||
|
||||
(after! dired
|
||||
@ -392,11 +514,10 @@ Other buffer groups by `centaur-tabs-get-group-name' wit project name."
|
||||
|
||||
;;;; elfeed
|
||||
|
||||
(elfeed-goodies/setup)
|
||||
(setq elfeed-show-entry-switch 'pop-to-buffer-same-window)
|
||||
(setq elfeed-protocol-enabled-protocols '(ttrss))
|
||||
(setq elfeed-protocol-enabled-protocols '(fever))
|
||||
(elfeed-protocol-enable)
|
||||
(setq elfeed-protocol-ttrss-maxsize 200)
|
||||
(setq elfeed-protocol-fever-update-unread-only t)
|
||||
(setq elfeed-feeds (list
|
||||
(list "ttrss+https://hyperreal@rss.envs.net"
|
||||
:password (shell-command-to-string "echo -n `pass show envs.net/ttrss`"))))
|
||||
(list "fever+https://hyperreal@rss.hyperreal.coffee"
|
||||
:api-url "https://rss.hyperreal.coffee/api/fever.php"
|
||||
:password (shell-command-output-string "pass show freshrss/hyperreal"))))
|
||||
|
@ -8,27 +8,29 @@
|
||||
|
||||
;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror:
|
||||
;(package! some-package)
|
||||
(package! artbollocks-mode :recipe
|
||||
(:host nil :repo "https://github.com/sachac/artbollocks-mode"))
|
||||
(package! autothemer)
|
||||
(package! catppuccin-theme)
|
||||
(package! elfeed)
|
||||
(package! elfeed-goodies)
|
||||
(package! elfeed-protocol)
|
||||
(package! elfeed-tube)
|
||||
(package! elfeed-tube-mpv)
|
||||
(package! elpher)
|
||||
(package! elpy)
|
||||
(package! evil-nerd-commenter)
|
||||
(package! fzf)
|
||||
(package! gemini :recipe
|
||||
(:host nil :repo "https://git.carcosa.net/jmcbray/gemini.el"))
|
||||
(package! go-complete)
|
||||
(package! helpful)
|
||||
(package! importmagic)
|
||||
(package! just-mode)
|
||||
(package! justl)
|
||||
(package! license-templates)
|
||||
(package! nov)
|
||||
(package! org-chef)
|
||||
(package! org-roam)
|
||||
(package! org-superstar)
|
||||
(package! python-docstring)
|
||||
(package! shell-pop)
|
||||
(package! systemd)
|
||||
(package! undo-tree)
|
||||
|
Loading…
Reference in New Issue
Block a user