use-package-expand-minimally t))
(setq use-package-always-defer t)
+(require 'bind-key)
#+end_src
-*** Epkg
+*** COMMENT Epkg
#+begin_quote
Browse the Emacsmirror package database
=package.el=-like user interface for browsing the available packages.
#+begin_src emacs-lisp
-(require 'bind-key)
(use-package epkg
:commands (epkg-list-packages epkg-describe-package)
:bind
#+begin_src emacs-lisp
(use-package exec-path-from-shell
- :defer 1
+ :defer 0.4
:init
(setq exec-path-from-shell-arguments nil
exec-path-from-shell-check-startup-files nil)
#+begin_src emacs-lisp
(use-feature server
- :defer 1
+ :defer 0.4
:config (or (server-running-p) (server-mode)))
#+end_src
scroll-preserve-screen-position 1)
(use-feature mwheel
- :defer 1
+ :defer 0.4
:config
(setq mouse-wheel-scroll-amount '(1 ((shift) . 1)) ; one line at a time
mouse-wheel-progressive-speed nil ; don't accelerate scrolling
mouse-wheel-follow-mouse t)) ; scroll window under mouse
(use-feature pixel-scroll
- :defer 1
+ :defer 0.4
:config (pixel-scroll-mode 1))
#+end_src
In short, my favourite way of life.
-First, we have to resort to a [[https://github.com/raxod502/straight.el#installing-org-with-straightel][hack]] to be able to use the correct
-latest version of Org from upstream.
-
-#+begin_src emacs-lisp
- (use-package git)
-
- (defun org-git-version ()
- "The Git version of org-mode.
- Inserted by installing org-mode or when a release is made."
- (require 'git)
- (let ((git-repo (expand-file-name
- "straight/repos/org/" user-emacs-directory)))
- (string-trim
- (git-run "describe"
- "--match=release\*"
- "--abbrev=6"
- "HEAD"))))
-
- (defun org-release ()
- "The release version of org-mode.
- Inserted by installing org-mode or when a release is made."
- (require 'git)
- (let ((git-repo (expand-file-name
- "straight/repos/org/" user-emacs-directory)))
- (string-trim
- (string-remove-prefix
- "release_"
- (git-run "describe"
- "--match=release\*"
- "--abbrev=0"
- "HEAD")))))
-
-(provide 'org-version)
-#+end_src
-
We will use the =org-plus-contrib= package to get the whole deal:
#+begin_src emacs-lisp
#+begin_src emacs-lisp
(use-feature org
- :defer 2
+ :defer 0.5
:config
(setq org-src-tab-acts-natively t
org-src-preserve-indentation nil
org-edit-src-content-indentation 0
- org-email-link-description-format "Email %c: %s" ; %.30s
+ org-link-email-description-format "Email %c: %s" ; %.30s
org-highlight-latex-and-related '(entities)
org-use-speed-commands t
org-startup-folded 'content
#+begin_src emacs-lisp
(use-package magit
- :defer 2
+ :defer 0.5
:bind (("C-x g" . magit-status)
("s-g s" . magit-status)
("s-g l" . magit-log-buffer-file))
#+begin_src emacs-lisp
(use-feature recentf
- :defer 0.5
+ :defer 0.2
:config
(add-to-list 'recentf-exclude "^/\\(?:ssh\\|su\\|sudo\\)?:")
(setq recentf-max-saved-items 40))
#+begin_src emacs-lisp
(use-package ivy
- :defer 0.6
+ :defer 0.3
:bind
(:map ivy-minibuffer-map
([escape] . keyboard-escape-quit)
#+begin_src emacs-lisp
(use-feature eshell
- :defer 2
+ :defer 0.5
:commands eshell
:bind ("C-c a s e" . eshell)
:config
("emacs"
(or
(name . "^\\*scratch\\*$")
- (name . "^\\*Messages\\*$"))))))
+ (name . "^\\*Messages\\*$")))
+ ("erc" (mode . erc-mode)))))
(ibuffer-formats
'((mark modified read-only locked " "
(name 18 18 :left :elide)
#+begin_src emacs-lisp
(use-package company
- :defer 3
+ :defer 0.6
:bind
(:map company-active-map
([tab] . company-complete-common-or-cycle)
#+begin_src emacs-lisp
(use-package flycheck
- :defer 3
+ :defer 0.6
:hook (prog-mode . flycheck-mode)
:bind
(:map flycheck-mode-map
;; http://endlessparentheses.com/ispell-and-apostrophes.html
(use-package ispell
- :defer 3
+ :defer 0.6
:config
;; ’ can be part of a word
(setq ispell-local-dictionary-alist
#+begin_src emacs-lisp
(eval-when-compile (defvar lean-mode-map))
(use-package lean-mode
- :defer 1
+ :defer 0.4
:bind (:map lean-mode-map
("S-SPC" . company-complete))
:config
:after (treemacs))
#+end_src
-*** eclim
+*** COMMENT eclim
#+begin_src emacs-lisp
(use-package eclim
#+begin_src emacs-lisp
(use-package which-key
- :defer 1
+ :defer 0.4
:config
(which-key-add-key-based-replacements
;; prefixes for global prefixes and minor modes
"C-x v" "version control"
;; prefixes for my personal bindings
"C-c a" "applications"
+ "C-c a e" "erc"
"C-c a s" "shells"
"C-c p" "package-management"
- "C-c p e" "package-management/epkg"
+ ;; "C-c p e" "package-management/epkg"
"C-c p s" "straight.el"
"C-c psa" "all"
"C-c psp" "package"
#+begin_src emacs-lisp
(use-package crux ; results in Waiting for git... [2 times]
- :defer 1
+ :defer 0.4
:bind (("C-c b k" . crux-kill-other-buffers)
("C-c d" . crux-duplicate-current-line-or-region)
("C-c D" . crux-duplicate-and-comment-current-line-or-region)
#+begin_src emacs-lisp
(use-package helpful
- :defer 3
+ :defer 0.6
:bind
(("C-S-h c" . helpful-command)
("C-S-h f" . helpful-callable) ; helpful-function
#+begin_src emacs-lisp
(use-package unkillable-scratch
- :defer 3
+ :defer 0.6
:config
(unkillable-scratch 1)
:custom
#+begin_src emacs-lisp
(use-package boxquote
- :defer 3
+ :defer 0.6
:bind
(:prefix-map a/boxquote-prefix-map
:prefix "C-c q"
#+begin_src emacs-lisp
(use-package typo
- :defer 2
+ :defer 0.5
:config
(typo-global-mode 1)
:hook (text-mode . typo-mode))
#+begin_src emacs-lisp
(use-package hl-todo
- :defer 4
+ :defer 0.5
:config
(global-hl-todo-mode))
#+end_src
#+begin_src emacs-lisp
(use-package shrink-path
- :defer 2
+ :defer 0.5
:after eshell
:config
(defun +eshell/prompt ()
#+begin_src emacs-lisp
(use-package multi-term
- :defer 3
+ :defer 0.6
:bind (("C-c a s m" . multi-term-dedicated-toggle)
:map term-mode-map
("C-c C-j" . term-char-mode)
#+begin_src emacs-lisp
(use-package yasnippet
- :defer 3
+ :defer 0.6
:config
(defconst yas-verbosity-cur yas-verbosity)
(setq yas-verbosity 2)
#+begin_src emacs-lisp
(use-feature message
:config
+ ;; redefine for a simplified In-Reply-To header
+ ;; (see https://todo.sr.ht/~sircmpwn/lists.sr.ht/67)
+ (defun message-make-in-reply-to ()
+ "Return the In-Reply-To header for this message."
+ (when message-reply-headers
+ (let ((from (mail-header-from message-reply-headers))
+ (msg-id (mail-header-id message-reply-headers)))
+ (when from
+ msg-id))))
+
(defconst a/message-cite-style-format "On %Y-%m-%d %l:%M %p, %N wrote:")
(defconst message-cite-style-bandali
'((message-cite-function 'message-cite-original)
(gnus-harvest-install)))
#+end_src
-* Blogging
+* IRC
:PROPERTIES:
-:CUSTOM_ID: blogging
+:CUSTOM_ID: irc
:END:
-** [[https://ox-hugo.scripter.co][ox-hugo]]
+Now with ERC!
#+begin_src emacs-lisp
-(use-package ox-hugo
- :after ox
- :demand)
+(use-package znc
+ :straight (:host nil :repo "https://git.bndl.org/amin/znc.el")
+ :bind (("C-c a e e" . znc-erc)
+ ("C-c a e a" . znc-all))
+ :config
+ (let ((pwd (let ((auth (auth-source-search :host "znca")))
+ (cond
+ ((null auth) (error "Couldn't find znca's authinfo"))
+ (t (funcall (plist-get (car auth) :secret)))))))
+ (setq znc-servers
+ `(("znc.bndl.org" 1337 t
+ ((freenode "amin/freenode" ,pwd)))
+ ("znc.bndl.org" 1337 t
+ ((moznet "amin/moznet" ,pwd)))))))
#+end_src
* Post initialization