Reorganize sections
This commit is contained in:
parent
4fff1af7ad
commit
6beef200ff
820
init.org
820
init.org
|
@ -186,7 +186,7 @@ NAME is the name of the process and its buffer."
|
||||||
("C-c" . volume-raise-10)
|
("C-c" . volume-raise-10)
|
||||||
("C-r" . volume-lower-10)))
|
("C-r" . volume-lower-10)))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
* emacs settings
|
* Emacs and Emacs-specific packages
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
:CUSTOM_ID: emacs-settings
|
:CUSTOM_ID: emacs-settings
|
||||||
:END:
|
:END:
|
||||||
|
@ -203,11 +203,42 @@ NAME is the name of the process and its buffer."
|
||||||
disabled-command-function nil
|
disabled-command-function nil
|
||||||
custom-file "~/.emacs.d/custom.el"
|
custom-file "~/.emacs.d/custom.el"
|
||||||
edebug-print-length nil
|
edebug-print-length nil
|
||||||
ispell-dictionary "en")
|
ispell-dictionary "en"
|
||||||
|
scroll-conservatively 10000
|
||||||
|
scroll-preserve-screen-position t
|
||||||
|
auto-window-vscroll nil)
|
||||||
(setq-default undo-limit (* 80 1000))
|
(setq-default undo-limit (* 80 1000))
|
||||||
(load custom-file))
|
(load custom-file))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
|
** package
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(use-package package
|
||||||
|
:bind
|
||||||
|
(:map package-menu-mode-map
|
||||||
|
("k" . package-autoremove)
|
||||||
|
("c" . previous-line)
|
||||||
|
("r" . next-line))
|
||||||
|
:config
|
||||||
|
(when (featurep 'boon)
|
||||||
|
(general-def package-menu-mode-map
|
||||||
|
"X" 'package-menu-execute)))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
** feather
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(use-package feather
|
||||||
|
:diminish
|
||||||
|
:hook (package-menu-mode . feather-mode)
|
||||||
|
:bind ("<f5> p " . list-packages))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
** esup, the Emacs StartUp Profiler
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(use-package esup
|
||||||
|
:config (setq esup-depth 0))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
** gnutls
|
** gnutls
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(use-package gnutls
|
(use-package gnutls
|
||||||
|
@ -216,6 +247,23 @@ NAME is the name of the process and its buffer."
|
||||||
(setq gnutls-algorithm-priority "NORMAL:-VERS-TLS1.3"))
|
(setq gnutls-algorithm-priority "NORMAL:-VERS-TLS1.3"))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
|
** help-mode
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(use-package help-mode
|
||||||
|
:bind
|
||||||
|
(:map help-mode-map
|
||||||
|
("b" . help-go-back)
|
||||||
|
("f" . help-go-forward)))
|
||||||
|
#+END_SRC
|
||||||
|
** helpful
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(use-package helpful
|
||||||
|
:bind (("<f1> <f1>" . #'helpful-at-point)
|
||||||
|
("<f1> f" . #'helpful-callable)
|
||||||
|
("<f1> c" . #'helpful-command)
|
||||||
|
("<f1> k" . #'helpful-key)
|
||||||
|
("<f1> v" . #'helpful-variable)))
|
||||||
|
#+END_SRC
|
||||||
* user interface
|
* user interface
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
:CUSTOM_ID: ui
|
:CUSTOM_ID: ui
|
||||||
|
@ -297,9 +345,7 @@ Must put this after loading the custom file, or I get prompted about the theme e
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
;(load-theme 'distinguished t)
|
;(load-theme 'distinguished t)
|
||||||
|
|
||||||
;(require 'github-theme)
|
;(require 'github-theme)
|
||||||
|
|
||||||
;(require 'heroku-theme)
|
;(require 'heroku-theme)
|
||||||
|
|
||||||
;;;; Good theme but uses different font sizes in org-mode, and (I think) some weird non-monospace font
|
;;;; Good theme but uses different font sizes in org-mode, and (I think) some weird non-monospace font
|
||||||
|
@ -333,10 +379,149 @@ Must put this after loading the custom file, or I get prompted about the theme e
|
||||||
)
|
)
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
* esup, the Emacs StartUp Profiler
|
** powerline :disabled:
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(use-package esup
|
(use-package powerline)
|
||||||
:config (setq esup-depth 0))
|
#+END_SRC
|
||||||
|
|
||||||
|
**
|
||||||
|
**
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(autoload 'byte-recompile-file "bytecomp" "byte-recompile-file" t)
|
||||||
|
;; (2017-12-29T13:21:57+0530
|
||||||
|
;; TODO - watch Org and MD files and recompile it if they are newer
|
||||||
|
;; than their associated HTML files (e.g. I edited the source on a
|
||||||
|
;; phone and synced it back to the laptop)
|
||||||
|
;; see (info "(elisp) File Notifications")
|
||||||
|
;; and (describe-function 'file-newer-than-file-p)
|
||||||
|
;; )
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
**
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(defun cp/after-save ()
|
||||||
|
(let* ((file-path (buffer-file-name))
|
||||||
|
(file-path-shell (shell-quote-argument file-path)))
|
||||||
|
(cl-case major-mode
|
||||||
|
;; ;; This would be more useful if it was only displayed when
|
||||||
|
;; ;; tests failed. But even a constantly failing test result
|
||||||
|
;; ;; being shown each time you save can be annoying.
|
||||||
|
;; ('emacs-lisp-mode (let ((project-dir (locate-dominating-file file-path "Cask")))
|
||||||
|
;; (when project-dir
|
||||||
|
;; (cd project-dir)
|
||||||
|
;; (compile "cask exec buttercup -L . --traceback pretty"))))
|
||||||
|
;; ;; Handy as long as my only means of viewing Org data on mobile was the HTML export; not so much since I have Orgzly
|
||||||
|
;; ('org-mode
|
||||||
|
;; (pcase (file-name-nondirectory
|
||||||
|
;; (buffer-file-name
|
||||||
|
;; (current-buffer)))
|
||||||
|
;; ((or "chronometrist.org" "chronometrist-key-values.org" "init.org") t)
|
||||||
|
;; (_ (org-html-export-to-html))))
|
||||||
|
('LilyPond-mode
|
||||||
|
(my-compile-project "mkly" nil "./mkly dev"))
|
||||||
|
('latex-mode
|
||||||
|
(if (file-exists-p "Makefile")
|
||||||
|
(compile (car compile-history))
|
||||||
|
(compile (concat "xelatex " file-path-shell))))
|
||||||
|
;; ('markdown-mode (markdown-export))
|
||||||
|
('c-mode
|
||||||
|
(compile (concat "gcc -static -o "
|
||||||
|
(shell-quote-argument
|
||||||
|
(file-name-base))
|
||||||
|
" "
|
||||||
|
file-path-shell))))))
|
||||||
|
|
||||||
|
(add-hook 'after-save-hook 'cp/after-save)
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
** compile
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(use-package compile
|
||||||
|
:config
|
||||||
|
;; (add-hook 'compilation-start-hook
|
||||||
|
;; (lambda (proc)
|
||||||
|
;; (delete-other-windows)))
|
||||||
|
(setq compilation-always-kill t))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
*** jump to Org LP from compilation output
|
||||||
|
:PROPERTIES:
|
||||||
|
:CUSTOM_ID: compile-org-lp-jump
|
||||||
|
:END:
|
||||||
|
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(defun my-org-lp-goto-error (oldfn &optional prefix &rest args)
|
||||||
|
"Make `compile-goto-error' lead to an Org literate program, if present.
|
||||||
|
This is meant to be used as `:around' advice for `compile-goto-error'.
|
||||||
|
OLDFN is `compile-goto-error'.
|
||||||
|
With PREFIX arg, just run `compile-goto-error' as though unadvised.
|
||||||
|
ARGS are ignored."
|
||||||
|
(interactive "P")
|
||||||
|
(if prefix
|
||||||
|
(funcall oldfn)
|
||||||
|
(let (buffer position column tangled-file-exists-p)
|
||||||
|
(save-window-excursion
|
||||||
|
(funcall oldfn)
|
||||||
|
(setq column (- (point) (point-at-bol)))
|
||||||
|
;; `compile-goto-error' might be called from the output of
|
||||||
|
;; `literate-elisp-byte-compile-file', which means
|
||||||
|
;; `org-babel-tangle-jump-to-org' would error
|
||||||
|
(when (ignore-errors (org-babel-tangle-jump-to-org))
|
||||||
|
(setq buffer (current-buffer)
|
||||||
|
position (point)
|
||||||
|
tangled-file-exists-p t)))
|
||||||
|
;; back to where we started - the `compilation-mode' buffer
|
||||||
|
(if tangled-file-exists-p
|
||||||
|
(let ((org-window (get-buffer-window buffer)))
|
||||||
|
;; if the Org buffer is visible, switch to its window
|
||||||
|
(if (window-live-p org-window)
|
||||||
|
(select-window org-window)
|
||||||
|
(switch-to-buffer buffer))
|
||||||
|
(goto-char (+ position column)))
|
||||||
|
(funcall oldfn)))))
|
||||||
|
|
||||||
|
(advice-add 'compile-goto-error :around #'my-org-lp-goto-error)
|
||||||
|
;; (advice-remove 'compile-goto-error #'my-org-lp-goto-error)
|
||||||
|
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
**
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(require 'cp-hindi)
|
||||||
|
;; (require 'cp-parens)
|
||||||
|
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
**
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(use-package keyfreq
|
||||||
|
:disabled
|
||||||
|
:init
|
||||||
|
(keyfreq-mode 1)
|
||||||
|
(keyfreq-autosave-mode 1))
|
||||||
|
;; ;; disabled on 2017-08-18T19:39:21+0530, no longer interested
|
||||||
|
;; (open-dribble-file (concat "~/.emacs.d/keylogs/"
|
||||||
|
;; (format-time-string "%Y%m%d-%H%M%S")
|
||||||
|
;; ".txt"))
|
||||||
|
|
||||||
|
;; 2017-10-14T15:22:56+0530 - I suspect devanagari-itrans tires the
|
||||||
|
;; left hand faster than the right - let's find out!
|
||||||
|
|
||||||
|
;; ;; 2020-08-05T16:28:07+0530 commented out, no longer interested
|
||||||
|
;; (add-hook
|
||||||
|
;; 'input-method-activate-hook
|
||||||
|
;; (lambda ()
|
||||||
|
;; (open-dribble-file
|
||||||
|
;; (concat
|
||||||
|
;; "~/.emacs.d/keylogs/"
|
||||||
|
;; (format-time-string "%Y%m%d-%H%M%S")
|
||||||
|
;; "-"
|
||||||
|
;; current-input-method
|
||||||
|
;; ".txt"))))
|
||||||
|
;; (add-hook
|
||||||
|
;; 'input-method-deactivate-hook
|
||||||
|
;; (lambda () (open-dribble-file nil)))
|
||||||
|
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
* Searching
|
* Searching
|
||||||
|
@ -381,6 +566,20 @@ Must put this after loading the custom file, or I get prompted about the theme e
|
||||||
:commands (wgrep-change-to-wgrep-mode))
|
:commands (wgrep-change-to-wgrep-mode))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
|
** Recenter screen on isearch matches
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(add-hook 'isearch-mode-hook 'recenter)
|
||||||
|
(add-hook 'isearch-update-post-hook 'recenter)
|
||||||
|
(defadvice isearch-repeat-forward
|
||||||
|
(after isearch-repeat-forward-recenter activate) (recenter))
|
||||||
|
(defadvice isearch-repeat-backward
|
||||||
|
(after isearch-repeat-backward-recenter activate) (recenter))
|
||||||
|
(ad-activate 'isearch-repeat-forward)
|
||||||
|
(ad-activate 'isearch-repeat-backward)
|
||||||
|
(global-set-key (kbd "C-s") 'isearch-forward-regexp)
|
||||||
|
(global-set-key (kbd "C-r") 'isearch-backward-regexp)
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
**
|
**
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(add-to-list 'load-path "~/.emacs.d/contrapunctus/")
|
(add-to-list 'load-path "~/.emacs.d/contrapunctus/")
|
||||||
|
@ -397,10 +596,8 @@ Must put this after loading the custom file, or I get prompted about the theme e
|
||||||
:END:
|
:END:
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
;; fix Emacs' definition of a sentence
|
|
||||||
(setq sentence-end-double-space nil)
|
(setq sentence-end-double-space nil)
|
||||||
|
|
||||||
;; the utter basics
|
|
||||||
(general-define-key
|
(general-define-key
|
||||||
"C-h" 'backward-delete-char
|
"C-h" 'backward-delete-char
|
||||||
"C-w" 'backward-kill-word
|
"C-w" 'backward-kill-word
|
||||||
|
@ -541,6 +738,12 @@ as links into an Org or Markdown document."
|
||||||
(markdown-display-inline-images)))
|
(markdown-display-inline-images)))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(with-eval-after-load 'text-mode
|
||||||
|
(define-key text-mode-map (kbd "M-p") 'org-drag-line-backward)
|
||||||
|
(define-key text-mode-map (kbd "M-n") 'org-drag-line-forward))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
** undo-tree
|
** undo-tree
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
:CUSTOM_ID: editing-undo-tree
|
:CUSTOM_ID: editing-undo-tree
|
||||||
|
@ -642,6 +845,77 @@ Doesn't work in my current main browser (Tor Browser), and thus barely used of l
|
||||||
'(("wikisource" . mediawiki-mode))))
|
'(("wikisource" . mediawiki-mode))))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
|
** Unicode keys
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(general-auto-unbind-keys)
|
||||||
|
(general-def
|
||||||
|
:prefix "C-t"
|
||||||
|
;; currency
|
||||||
|
"r" [?₹] "- L" [?£] "L -" [?£] "e" [?€]
|
||||||
|
"." [?…]
|
||||||
|
|
||||||
|
"- m" [?—] "- n" [?–] "m -" [?—] "n -" [?–]
|
||||||
|
"t" [?™]
|
||||||
|
|
||||||
|
;; German
|
||||||
|
"\" a" [?ä] "a \"" [?ä] "\" A" [?Ä] "A \"" [?Ä]
|
||||||
|
"\" e" [?ë] "e \"" [?ë] "\" E" [?Ë] "E \"" [?Ë]
|
||||||
|
"\" o" [?ö] "o \"" [?ö] "\" O" [?Ö] "O \"" [?Ö]
|
||||||
|
"\" u" [?ü] "u \"" [?ü] "\" U" [?Ü] "U \"" [?Ü]
|
||||||
|
|
||||||
|
;; ;; " a/e/o/u are slow to type...
|
||||||
|
;; "a" [?ä] "A" [?Ä]
|
||||||
|
;; "e" [?ë] "E" [?Ë]
|
||||||
|
;; "o" [?ö] "O" [?Ö]
|
||||||
|
;; "u" [?ü] "U" [?Ü]
|
||||||
|
|
||||||
|
;; but "o" conflicts with "o o" for °, so...
|
||||||
|
"u a" [?ä] "u A" [?Ä]
|
||||||
|
"u e" [?ë] "u E" [?Ë]
|
||||||
|
"u o" [?ö] "u O" [?Ö]
|
||||||
|
"u u" [?ü] "u U" [?Ü]
|
||||||
|
"s s" [?ß]
|
||||||
|
|
||||||
|
;; French
|
||||||
|
", c" [?ç] "c ," [?ç] ", C" [?ç] "C ," [?Ç]
|
||||||
|
"' e" [?é] "e '" [?é] "' E" [?É] "E '" [?É]
|
||||||
|
"e `" [?è] "` e" [?è] "E `" [?È] "` E" [?È]
|
||||||
|
"e ^" [?ê] "^ e" [?ê] "E `" [?È] "` E" [?È]
|
||||||
|
"' a" [?á] "a '" [?á] "' A" [?Á] "A '" [?Á]
|
||||||
|
"a `" [?à] "` a" [?à] "A `" [?À] "` A" [?À]
|
||||||
|
"a ^" [?â] "^ a" [?â] "A ^" [?Â] "^ A" [?Â]
|
||||||
|
"~ n" [?ñ] "n ~" [?ñ] "~ N" [?Ñ] "N ~" [?Ñ]
|
||||||
|
|
||||||
|
"e e" [?ə]
|
||||||
|
|
||||||
|
"o e" [?œ] "O E" [?Œ]
|
||||||
|
"o o" [?°] "x" [?×]
|
||||||
|
"1 2" [?½] "1 3" [?⅓] "1 4" [?¼]
|
||||||
|
"2 3" [?⅔] "2 5" [?⅖]
|
||||||
|
"3 4" [?¾] "3 5" [?⅗]
|
||||||
|
"4 5" [?⅘]
|
||||||
|
|
||||||
|
"b" [?♭] "#" [?♯]
|
||||||
|
|
||||||
|
"< -" [?←] "- >" [?→]
|
||||||
|
"^ |" [?↑] "| ^" [?↑]
|
||||||
|
"v |" [?↓] "| v" [?↓]
|
||||||
|
", \\" [?λ] "l" [?λ]
|
||||||
|
"f" [?ƒ]
|
||||||
|
"q o" [?“] "q c" [?”])
|
||||||
|
(general-auto-unbind-keys t)
|
||||||
|
(setq default-input-method "devanagari-itrans")
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
Suggestion by lampilelo for extending =iso-transl-ctl-x-8-map= (https://dpaste.com/BAQUXSDVL.txt)
|
||||||
|
#+BEGIN_SRC emacs-lisp :tangle no
|
||||||
|
(eval-after-load 'iso-transl
|
||||||
|
'(let ((map (make-sparse-keymap)))
|
||||||
|
(define-key map (kbd "c") [?č])
|
||||||
|
(define-key map (kbd "C") [?Č])
|
||||||
|
(define-key iso-transl-ctl-x-8-map (kbd "v") map)))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
* modal editing
|
* modal editing
|
||||||
** active boon config
|
** active boon config
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
@ -2054,6 +2328,40 @@ PR ideas
|
||||||
:hook
|
:hook
|
||||||
(dired-mode . peep-dired))
|
(dired-mode . peep-dired))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(defun contrapunctus-rename-this-file ()
|
||||||
|
(interactive)
|
||||||
|
(rename-file ;; message "will rename %s to %s"
|
||||||
|
(buffer-file-name (current-buffer))
|
||||||
|
(read-file-name "New name: " nil nil nil
|
||||||
|
(file-name-nondirectory
|
||||||
|
(buffer-file-name (current-buffer)))))
|
||||||
|
;; (rename-file (buffer-file-name (current-buffer)) new-name)
|
||||||
|
)
|
||||||
|
|
||||||
|
#+END_SRC
|
||||||
|
** backup configuration
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(setq backup-by-copying t
|
||||||
|
backup-directory-alist '(("." . "~/.emacs.d/saves/"))
|
||||||
|
kept-new-versions 50
|
||||||
|
kept-old-versions 50
|
||||||
|
version-control t
|
||||||
|
delete-old-versions t)
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
** async-backup (backup on save)
|
||||||
|
:PROPERTIES:
|
||||||
|
:CREATED: 2022-01-14T16:38:38+0530
|
||||||
|
:CUSTOM_ID: async-backup
|
||||||
|
:END:
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(use-package async-backup
|
||||||
|
:config (setq async-backup-location
|
||||||
|
"/media/data/anon/backups/emacs-async-backup/"))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
** mail
|
** mail
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(use-package wl
|
(use-package wl
|
||||||
|
@ -2169,6 +2477,82 @@ PR ideas
|
||||||
("C-c C-h" . comint-previous-prompt)))
|
("C-c C-h" . comint-previous-prompt)))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
|
** info
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(use-package info
|
||||||
|
:config
|
||||||
|
(info-initialize)
|
||||||
|
(cl-loop for dir in
|
||||||
|
'("~/.emacs.d/info/"
|
||||||
|
"~/.emacs.d/elisp-git/geiser/doc/"
|
||||||
|
"~/lilypond/usr/share/info/")
|
||||||
|
do (add-to-list #'Info-directory-list dir))
|
||||||
|
:bind
|
||||||
|
(:map Info-mode-map
|
||||||
|
("b" . Info-history-back)
|
||||||
|
("f" . Info-history-forward)))
|
||||||
|
#+END_SRC
|
||||||
|
** image-mode
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(use-package image-mode
|
||||||
|
:bind
|
||||||
|
(:map image-map
|
||||||
|
("c" . nil)
|
||||||
|
("r" . nil)
|
||||||
|
("o" . nil))
|
||||||
|
(:map image-mode-map
|
||||||
|
("c" . image-previous-file)
|
||||||
|
("r" . image-next-file)
|
||||||
|
("W" . image-transform-fit-to-width)
|
||||||
|
("H" . image-transform-fit-to-height)
|
||||||
|
("o" . nil)
|
||||||
|
("R" . contrapunctus-rename-this-file)))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
** TODO magit [0%]
|
||||||
|
1. [ ] It'd be really cool to =(recenter 3)= when you /open/ a section, and =(recenter)= when you close a section
|
||||||
|
2. [ ] binding "c" to magit-section-backward and "j" to magit-commit means I can't nonchalantly hit "c c" to commit like before...it becomes "j c" :\
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(use-package magit
|
||||||
|
:bind (;; boon-like keys
|
||||||
|
:map magit-mode-map
|
||||||
|
("r" . magit-section-forward)
|
||||||
|
("c" . magit-section-backward)
|
||||||
|
("C" . magit-commit)
|
||||||
|
("R" . magit-rebase)
|
||||||
|
:map magit-diff-section-base-map
|
||||||
|
("C" . magit-commit)
|
||||||
|
("R" . magit-rebase)
|
||||||
|
:map magit-status-mode-map
|
||||||
|
;; ([mouse-3] . 'magit-section-toggle)
|
||||||
|
([down-mouse-3] . 'mouse-set-point)
|
||||||
|
([up-mouse-3] . 'magit-section-toggle)
|
||||||
|
("C" . magit-commit))
|
||||||
|
:commands magit-status
|
||||||
|
:hook
|
||||||
|
(magit-mode . visual-line-mode)
|
||||||
|
(magit-post-stage . (lambda () (recenter)))
|
||||||
|
:config
|
||||||
|
(cl-loop for symbol in '(magit-section-toggle
|
||||||
|
magit-section-forward
|
||||||
|
magit-section-backward)
|
||||||
|
do (advice-add symbol :after (lambda (&rest r) (recenter 3))))
|
||||||
|
;; (advice-add 'magit-unstage-item :after (lambda (&rest r) (next-line)))
|
||||||
|
)
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
** git-commit
|
||||||
|
:PROPERTIES:
|
||||||
|
:CREATED: 2022-01-14T16:36:44+0530
|
||||||
|
:END:
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(use-package git-commit
|
||||||
|
:bind
|
||||||
|
(:map git-commit-mode-map
|
||||||
|
("M-c" . git-commit-prev-message)
|
||||||
|
("M-r" . git-commit-next-message)))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
* Completion
|
* Completion
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
:CREATED: 2022-01-13T20:39:41+0530
|
:CREATED: 2022-01-13T20:39:41+0530
|
||||||
|
@ -2828,23 +3212,6 @@ Don't try to check if there are files with a certain extension...it will lead to
|
||||||
("h" my-help-hydra/body "Help"))
|
("h" my-help-hydra/body "Help"))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
* image-mode
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(use-package image-mode
|
|
||||||
:bind
|
|
||||||
(:map image-map
|
|
||||||
("c" . nil)
|
|
||||||
("r" . nil)
|
|
||||||
("o" . nil))
|
|
||||||
(:map image-mode-map
|
|
||||||
("c" . image-previous-file)
|
|
||||||
("r" . image-next-file)
|
|
||||||
("W" . image-transform-fit-to-width)
|
|
||||||
("H" . image-transform-fit-to-height)
|
|
||||||
("o" . nil)
|
|
||||||
("R" . contrapunctus-rename-this-file)))
|
|
||||||
|
|
||||||
#+END_SRC
|
|
||||||
* environment variables
|
* environment variables
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(setenv "PATH" (concat "~/bin:" (getenv "PATH")))
|
(setenv "PATH" (concat "~/bin:" (getenv "PATH")))
|
||||||
|
@ -2858,10 +3225,6 @@ Don't try to check if there are files with a certain extension...it will lead to
|
||||||
;; ;; (toggle-debug-on-quit)
|
;; ;; (toggle-debug-on-quit)
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
;; (add-to-list 'load-path "~/.emacs.d/elisp-git/yafolding.el/")
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
* general (keybindings)
|
* general (keybindings)
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(use-package general
|
(use-package general
|
||||||
|
@ -3115,45 +3478,18 @@ Don't try to check if there are files with a certain extension...it will lead to
|
||||||
** outshine
|
** outshine
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(use-package outshine
|
(use-package outshine
|
||||||
:commands (outshine-mode))
|
:commands (outshine-mode outshine-cycle)
|
||||||
|
:hook (texinfo-mode . outshine-mode))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
* scrolling
|
* scrolling
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(setq scroll-conservatively 10000
|
(setq )
|
||||||
scroll-preserve-screen-position t
|
|
||||||
auto-window-vscroll nil)
|
|
||||||
|
|
||||||
#+END_SRC
|
|
||||||
* Recenter screen on isearch matches
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(add-hook 'isearch-mode-hook 'recenter)
|
|
||||||
(add-hook 'isearch-update-post-hook 'recenter)
|
|
||||||
(defadvice isearch-repeat-forward
|
|
||||||
(after isearch-repeat-forward-recenter activate) (recenter))
|
|
||||||
(defadvice isearch-repeat-backward
|
|
||||||
(after isearch-repeat-backward-recenter activate) (recenter))
|
|
||||||
(ad-activate 'isearch-repeat-forward)
|
|
||||||
(ad-activate 'isearch-repeat-backward)
|
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
**
|
While we're at it, let's add that to next-error as well (this affects
|
||||||
#+BEGIN_SRC emacs-lisp
|
jumping to match from M-x grep , too)
|
||||||
(global-set-key (kbd "C-s") 'isearch-forward-regexp)
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
**
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(global-set-key (kbd "C-r") 'isearch-backward-regexp)
|
|
||||||
|
|
||||||
;;;; While we're at it, let's add that to next-error as well
|
|
||||||
;;;; (this affects jumping to match from M-x grep , too)
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
**
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(add-hook 'next-error-hook 'recenter)
|
(add-hook 'next-error-hook 'recenter)
|
||||||
|
|
||||||
|
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
* date and time
|
* date and time
|
||||||
|
@ -3172,11 +3508,10 @@ Don't try to check if there are files with a certain extension...it will lead to
|
||||||
(setq display-time-next-load-average t)
|
(setq display-time-next-load-average t)
|
||||||
(add-to-list 'zoneinfo-style-world-list '("Europe/Berlin" "Berlin")))
|
(add-to-list 'zoneinfo-style-world-list '("Europe/Berlin" "Berlin")))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
**
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(defun cp/eval-sexp (arg)
|
(defun cp/eval-sexp (arg)
|
||||||
"In emacs-lisp-mode, just run eval-defun.
|
"In emacs-lisp-mode, just run eval-defun.
|
||||||
|
|
||||||
In other modes - jump to first Lisp expression in current line
|
In other modes - jump to first Lisp expression in current line
|
||||||
and eval it."
|
and eval it."
|
||||||
(interactive "P")
|
(interactive "P")
|
||||||
|
@ -3192,15 +3527,7 @@ and eval it."
|
||||||
(eval-last-sexp arg)))
|
(eval-last-sexp arg)))
|
||||||
(t nil))))
|
(t nil))))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
* helpful
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(use-package helpful
|
|
||||||
:bind (("<f1> <f1>" . #'helpful-at-point)
|
|
||||||
("<f1> f" . #'helpful-callable)
|
|
||||||
("<f1> c" . #'helpful-command)
|
|
||||||
("<f1> k" . #'helpful-key)
|
|
||||||
("<f1> v" . #'helpful-variable)))
|
|
||||||
#+END_SRC
|
|
||||||
* Buffer management
|
* Buffer management
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(defun my-buffer-switch ()
|
(defun my-buffer-switch ()
|
||||||
|
@ -3218,21 +3545,6 @@ and eval it."
|
||||||
(:map ibuffer-mode-map
|
(:map ibuffer-mode-map
|
||||||
("X" . 'ibuffer-do-kill-on-deletion-marks))) ;; Boon hijacks the x key.
|
("X" . 'ibuffer-do-kill-on-deletion-marks))) ;; Boon hijacks the x key.
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
* info
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(use-package info
|
|
||||||
:config
|
|
||||||
(info-initialize)
|
|
||||||
(cl-loop for dir in
|
|
||||||
'("~/.emacs.d/info/"
|
|
||||||
"~/.emacs.d/elisp-git/geiser/doc/"
|
|
||||||
"~/lilypond/usr/share/info/")
|
|
||||||
do (add-to-list #'Info-directory-list dir))
|
|
||||||
:bind
|
|
||||||
(:map Info-mode-map
|
|
||||||
("b" . Info-history-back)
|
|
||||||
("f" . Info-history-forward)))
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
**
|
**
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
@ -3306,97 +3618,18 @@ and eval it."
|
||||||
;; (kbd "s-<mouse-9>") 'helm-mini
|
;; (kbd "s-<mouse-9>") 'helm-mini
|
||||||
)
|
)
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
* help-mode
|
** midnight-mode (automatic buffer cleanup)
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(use-package help-mode
|
(use-package midnight
|
||||||
:bind
|
:init
|
||||||
(:map help-mode-map
|
(midnight-mode)
|
||||||
("b" . help-go-back)
|
:config
|
||||||
("f" . help-go-forward)))
|
(setq clean-buffer-list-kill-regexps '("")
|
||||||
#+END_SRC
|
clean-buffer-list-delay-general 1
|
||||||
* Unicode keys
|
clean-buffer-list-delay-special (* 60 60 12))
|
||||||
#+BEGIN_SRC emacs-lisp
|
(add-to-list 'clean-buffer-list-kill-never-buffer-names "Gajim")
|
||||||
(general-auto-unbind-keys)
|
:hook
|
||||||
(general-def
|
(midnight . clean-buffer-list))
|
||||||
:prefix "C-t"
|
|
||||||
;; currency
|
|
||||||
"r" [?₹] "- L" [?£] "L -" [?£] "e" [?€]
|
|
||||||
"." [?…]
|
|
||||||
|
|
||||||
"- m" [?—] "- n" [?–] "m -" [?—] "n -" [?–]
|
|
||||||
"t" [?™]
|
|
||||||
|
|
||||||
;; German
|
|
||||||
"\" a" [?ä] "a \"" [?ä] "\" A" [?Ä] "A \"" [?Ä]
|
|
||||||
"\" e" [?ë] "e \"" [?ë] "\" E" [?Ë] "E \"" [?Ë]
|
|
||||||
"\" o" [?ö] "o \"" [?ö] "\" O" [?Ö] "O \"" [?Ö]
|
|
||||||
"\" u" [?ü] "u \"" [?ü] "\" U" [?Ü] "U \"" [?Ü]
|
|
||||||
|
|
||||||
;; ;; " a/e/o/u are slow to type...
|
|
||||||
;; "a" [?ä] "A" [?Ä]
|
|
||||||
;; "e" [?ë] "E" [?Ë]
|
|
||||||
;; "o" [?ö] "O" [?Ö]
|
|
||||||
;; "u" [?ü] "U" [?Ü]
|
|
||||||
|
|
||||||
;; but "o" conflicts with "o o" for °, so...
|
|
||||||
"u a" [?ä] "u A" [?Ä]
|
|
||||||
"u e" [?ë] "u E" [?Ë]
|
|
||||||
"u o" [?ö] "u O" [?Ö]
|
|
||||||
"u u" [?ü] "u U" [?Ü]
|
|
||||||
"s s" [?ß]
|
|
||||||
|
|
||||||
;; French
|
|
||||||
", c" [?ç] "c ," [?ç] ", C" [?ç] "C ," [?Ç]
|
|
||||||
"' e" [?é] "e '" [?é] "' E" [?É] "E '" [?É]
|
|
||||||
"e `" [?è] "` e" [?è] "E `" [?È] "` E" [?È]
|
|
||||||
"e ^" [?ê] "^ e" [?ê] "E `" [?È] "` E" [?È]
|
|
||||||
"' a" [?á] "a '" [?á] "' A" [?Á] "A '" [?Á]
|
|
||||||
"a `" [?à] "` a" [?à] "A `" [?À] "` A" [?À]
|
|
||||||
"a ^" [?â] "^ a" [?â] "A ^" [?Â] "^ A" [?Â]
|
|
||||||
"~ n" [?ñ] "n ~" [?ñ] "~ N" [?Ñ] "N ~" [?Ñ]
|
|
||||||
|
|
||||||
"e e" [?ə]
|
|
||||||
|
|
||||||
"o e" [?œ] "O E" [?Œ]
|
|
||||||
"o o" [?°] "x" [?×]
|
|
||||||
"1 2" [?½] "1 3" [?⅓] "1 4" [?¼]
|
|
||||||
"2 3" [?⅔] "2 5" [?⅖]
|
|
||||||
"3 4" [?¾] "3 5" [?⅗]
|
|
||||||
"4 5" [?⅘]
|
|
||||||
|
|
||||||
"b" [?♭] "#" [?♯]
|
|
||||||
|
|
||||||
"< -" [?←] "- >" [?→]
|
|
||||||
"^ |" [?↑] "| ^" [?↑]
|
|
||||||
"v |" [?↓] "| v" [?↓]
|
|
||||||
", \\" [?λ] "l" [?λ]
|
|
||||||
"f" [?ƒ]
|
|
||||||
"q o" [?“] "q c" [?”])
|
|
||||||
(general-auto-unbind-keys t)
|
|
||||||
(setq default-input-method "devanagari-itrans")
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
Suggestion by lampilelo for extending =iso-transl-ctl-x-8-map= (https://dpaste.com/BAQUXSDVL.txt)
|
|
||||||
#+BEGIN_SRC emacs-lisp :tangle no
|
|
||||||
(eval-after-load 'iso-transl
|
|
||||||
'(let ((map (make-sparse-keymap)))
|
|
||||||
(define-key map (kbd "c") [?č])
|
|
||||||
(define-key map (kbd "C") [?Č])
|
|
||||||
(define-key iso-transl-ctl-x-8-map (kbd "v") map)))
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
* backup configuration
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(setq backup-by-copying t
|
|
||||||
backup-directory-alist '(("." . "~/.emacs.d/saves/"))
|
|
||||||
kept-new-versions 50
|
|
||||||
kept-old-versions 50
|
|
||||||
version-control t
|
|
||||||
delete-old-versions t)
|
|
||||||
|
|
||||||
(use-package async-backup
|
|
||||||
:config (setq async-backup-location
|
|
||||||
"/media/data/anon/backups/emacs-async-backup/"))
|
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
* browse-url
|
* browse-url
|
||||||
|
@ -3412,44 +3645,7 @@ SLIME opens CLHS links in Firefox, but I'd rather open them in Tor Browser; Tor
|
||||||
(setq browse-url-browser-function #'cp-copy-url))
|
(setq browse-url-browser-function #'cp-copy-url))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
* TODO magit [0%]
|
* Markup
|
||||||
1. [ ] It'd be really cool to =(recenter 3)= when you /open/ a section, and =(recenter)= when you close a section
|
|
||||||
2. [ ] binding "c" to magit-section-backward and "j" to magit-commit means I can't nonchalantly hit "c c" to commit like before...it becomes "j c" :\
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(use-package magit
|
|
||||||
:bind (;; boon-like keys
|
|
||||||
:map magit-mode-map
|
|
||||||
("r" . magit-section-forward)
|
|
||||||
("c" . magit-section-backward)
|
|
||||||
("C" . magit-commit)
|
|
||||||
("R" . magit-rebase)
|
|
||||||
:map magit-diff-section-base-map
|
|
||||||
("C" . magit-commit)
|
|
||||||
("R" . magit-rebase)
|
|
||||||
:map magit-status-mode-map
|
|
||||||
;; ([mouse-3] . 'magit-section-toggle)
|
|
||||||
([down-mouse-3] . 'mouse-set-point)
|
|
||||||
([up-mouse-3] . 'magit-section-toggle)
|
|
||||||
("C" . magit-commit))
|
|
||||||
:commands magit-status
|
|
||||||
:hook
|
|
||||||
(magit-mode . visual-line-mode)
|
|
||||||
(magit-post-stage . (lambda () (recenter)))
|
|
||||||
:config
|
|
||||||
(cl-loop for symbol in '(magit-section-toggle
|
|
||||||
magit-section-forward
|
|
||||||
magit-section-backward)
|
|
||||||
do (advice-add symbol :after (lambda (&rest r) (recenter 3))))
|
|
||||||
(advice-add 'magit-unstage-item :after (next-line)))
|
|
||||||
#+END_SRC
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(use-package git-commit
|
|
||||||
:bind
|
|
||||||
(:map git-commit-mode-map
|
|
||||||
("M-c" . git-commit-prev-message)
|
|
||||||
("M-r" . git-commit-next-message)))
|
|
||||||
#+END_SRC
|
|
||||||
* markup
|
|
||||||
** Org
|
** Org
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(use-package org
|
(use-package org
|
||||||
|
@ -3957,20 +4153,6 @@ Used by Eldev documentation.
|
||||||
(beginning-of-line)
|
(beginning-of-line)
|
||||||
(recenter)))
|
(recenter)))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
* midnight-mode
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(use-package midnight
|
|
||||||
:init
|
|
||||||
(midnight-mode)
|
|
||||||
:config
|
|
||||||
(setq clean-buffer-list-kill-regexps '("")
|
|
||||||
clean-buffer-list-delay-general 1
|
|
||||||
clean-buffer-list-delay-special (* 60 60 12))
|
|
||||||
(add-to-list 'clean-buffer-list-kill-never-buffer-names "Gajim")
|
|
||||||
:hook
|
|
||||||
(midnight . clean-buffer-list))
|
|
||||||
|
|
||||||
#+END_SRC
|
|
||||||
* yasnippet
|
* yasnippet
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
:CREATED: 2022-01-05T20:16:31+0530
|
:CREATED: 2022-01-05T20:16:31+0530
|
||||||
|
@ -4250,7 +4432,7 @@ Create advice for =lispy-pair= - if =lispy--in-string-or-comment-p= is true, sel
|
||||||
:commands imenus)
|
:commands imenus)
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
*** side-hustle
|
*** side-hustle :disabled:
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(use-package side-hustle
|
(use-package side-hustle
|
||||||
:disabled t
|
:disabled t
|
||||||
|
@ -4260,7 +4442,7 @@ Create advice for =lispy-pair= - if =lispy--in-string-or-comment-p= is true, sel
|
||||||
("c" . previous-line))))
|
("c" . previous-line))))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
*** orderless
|
*** orderless :disabled:
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
:CREATED: 2022-01-13T17:31:53+0530
|
:CREATED: 2022-01-13T17:31:53+0530
|
||||||
:END:
|
:END:
|
||||||
|
@ -4778,180 +4960,6 @@ Potentially useful - https://www.draketo.de/software/emacs-javascript.html
|
||||||
:hook (js2-mode-hook . skewer-mode))
|
:hook (js2-mode-hook . skewer-mode))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
* package
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(use-package package
|
|
||||||
:bind
|
|
||||||
(:map package-menu-mode-map
|
|
||||||
("k" . package-autoremove)
|
|
||||||
("c" . previous-line)
|
|
||||||
("r" . next-line))
|
|
||||||
:config
|
|
||||||
(when (featurep 'boon)
|
|
||||||
(general-def package-menu-mode-map
|
|
||||||
"X" 'package-menu-execute)))
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
* feather
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(use-package feather
|
|
||||||
:diminish
|
|
||||||
:hook (package-menu-mode . feather-mode)
|
|
||||||
:bind ("<f5> p " . list-packages))
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
* mode line
|
|
||||||
** powerline :disabled:
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(use-package powerline)
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
**
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(with-eval-after-load 'text-mode
|
|
||||||
(define-key text-mode-map (kbd "M-p") 'org-drag-line-backward)
|
|
||||||
(define-key text-mode-map (kbd "M-n") 'org-drag-line-forward))
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
**
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(autoload 'byte-recompile-file "bytecomp" "byte-recompile-file" t)
|
|
||||||
;; (2017-12-29T13:21:57+0530
|
|
||||||
;; TODO - watch Org and MD files and recompile it if they are newer
|
|
||||||
;; than their associated HTML files (e.g. I edited the source on a
|
|
||||||
;; phone and synced it back to the laptop)
|
|
||||||
;; see (info "(elisp) File Notifications")
|
|
||||||
;; and (describe-function 'file-newer-than-file-p)
|
|
||||||
;; )
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
**
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(defun cp/after-save ()
|
|
||||||
(let* ((file-path (buffer-file-name))
|
|
||||||
(file-path-shell (shell-quote-argument file-path)))
|
|
||||||
(cl-case major-mode
|
|
||||||
;; ;; This would be more useful if it was only displayed when
|
|
||||||
;; ;; tests failed. But even a constantly failing test result
|
|
||||||
;; ;; being shown each time you save can be annoying.
|
|
||||||
;; ('emacs-lisp-mode (let ((project-dir (locate-dominating-file file-path "Cask")))
|
|
||||||
;; (when project-dir
|
|
||||||
;; (cd project-dir)
|
|
||||||
;; (compile "cask exec buttercup -L . --traceback pretty"))))
|
|
||||||
;; ;; Handy as long as my only means of viewing Org data on mobile was the HTML export; not so much since I have Orgzly
|
|
||||||
;; ('org-mode
|
|
||||||
;; (pcase (file-name-nondirectory
|
|
||||||
;; (buffer-file-name
|
|
||||||
;; (current-buffer)))
|
|
||||||
;; ((or "chronometrist.org" "chronometrist-key-values.org" "init.org") t)
|
|
||||||
;; (_ (org-html-export-to-html))))
|
|
||||||
('LilyPond-mode
|
|
||||||
(my-compile-project "mkly" nil "./mkly dev"))
|
|
||||||
('latex-mode
|
|
||||||
(if (file-exists-p "Makefile")
|
|
||||||
(compile (car compile-history))
|
|
||||||
(compile (concat "xelatex " file-path-shell))))
|
|
||||||
;; ('markdown-mode (markdown-export))
|
|
||||||
('c-mode
|
|
||||||
(compile (concat "gcc -static -o "
|
|
||||||
(shell-quote-argument
|
|
||||||
(file-name-base))
|
|
||||||
" "
|
|
||||||
file-path-shell))))))
|
|
||||||
|
|
||||||
(add-hook 'after-save-hook 'cp/after-save)
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
** compile
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(use-package compile
|
|
||||||
:config
|
|
||||||
;; (add-hook 'compilation-start-hook
|
|
||||||
;; (lambda (proc)
|
|
||||||
;; (delete-other-windows)))
|
|
||||||
(setq compilation-always-kill t))
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
*** jump to Org LP from compilation output
|
|
||||||
:PROPERTIES:
|
|
||||||
:CUSTOM_ID: compile-org-lp-jump
|
|
||||||
:END:
|
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(defun my-org-lp-goto-error (oldfn &optional prefix &rest args)
|
|
||||||
"Make `compile-goto-error' lead to an Org literate program, if present.
|
|
||||||
This is meant to be used as `:around' advice for `compile-goto-error'.
|
|
||||||
OLDFN is `compile-goto-error'.
|
|
||||||
With PREFIX arg, just run `compile-goto-error' as though unadvised.
|
|
||||||
ARGS are ignored."
|
|
||||||
(interactive "P")
|
|
||||||
(if prefix
|
|
||||||
(funcall oldfn)
|
|
||||||
(let (buffer position column tangled-file-exists-p)
|
|
||||||
(save-window-excursion
|
|
||||||
(funcall oldfn)
|
|
||||||
(setq column (- (point) (point-at-bol)))
|
|
||||||
;; `compile-goto-error' might be called from the output of
|
|
||||||
;; `literate-elisp-byte-compile-file', which means
|
|
||||||
;; `org-babel-tangle-jump-to-org' would error
|
|
||||||
(when (ignore-errors (org-babel-tangle-jump-to-org))
|
|
||||||
(setq buffer (current-buffer)
|
|
||||||
position (point)
|
|
||||||
tangled-file-exists-p t)))
|
|
||||||
;; back to where we started - the `compilation-mode' buffer
|
|
||||||
(if tangled-file-exists-p
|
|
||||||
(let ((org-window (get-buffer-window buffer)))
|
|
||||||
;; if the Org buffer is visible, switch to its window
|
|
||||||
(if (window-live-p org-window)
|
|
||||||
(select-window org-window)
|
|
||||||
(switch-to-buffer buffer))
|
|
||||||
(goto-char (+ position column)))
|
|
||||||
(funcall oldfn)))))
|
|
||||||
|
|
||||||
(advice-add 'compile-goto-error :around #'my-org-lp-goto-error)
|
|
||||||
;; (advice-remove 'compile-goto-error #'my-org-lp-goto-error)
|
|
||||||
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
**
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(require 'cp-hindi)
|
|
||||||
;; (require 'cp-parens)
|
|
||||||
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
**
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(use-package keyfreq
|
|
||||||
:disabled
|
|
||||||
:init
|
|
||||||
(keyfreq-mode 1)
|
|
||||||
(keyfreq-autosave-mode 1))
|
|
||||||
;; ;; disabled on 2017-08-18T19:39:21+0530, no longer interested
|
|
||||||
;; (open-dribble-file (concat "~/.emacs.d/keylogs/"
|
|
||||||
;; (format-time-string "%Y%m%d-%H%M%S")
|
|
||||||
;; ".txt"))
|
|
||||||
|
|
||||||
;; 2017-10-14T15:22:56+0530 - I suspect devanagari-itrans tires the
|
|
||||||
;; left hand faster than the right - let's find out!
|
|
||||||
|
|
||||||
;; ;; 2020-08-05T16:28:07+0530 commented out, no longer interested
|
|
||||||
;; (add-hook
|
|
||||||
;; 'input-method-activate-hook
|
|
||||||
;; (lambda ()
|
|
||||||
;; (open-dribble-file
|
|
||||||
;; (concat
|
|
||||||
;; "~/.emacs.d/keylogs/"
|
|
||||||
;; (format-time-string "%Y%m%d-%H%M%S")
|
|
||||||
;; "-"
|
|
||||||
;; current-input-method
|
|
||||||
;; ".txt"))))
|
|
||||||
;; (add-hook
|
|
||||||
;; 'input-method-deactivate-hook
|
|
||||||
;; (lambda () (open-dribble-file nil)))
|
|
||||||
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
* recentf
|
* recentf
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(use-package recentf
|
(use-package recentf
|
||||||
|
|
Loading…
Reference in New Issue