From c10ad08b4194ff3b7a5bd449f20972dd0d6553fc Mon Sep 17 00:00:00 2001 From: Charlie Root Date: Wed, 19 Mar 2025 21:45:13 +0100 Subject: [PATCH] more changes, remove org --- lisp/init-editing-utils.el | 5 - lisp/init-meow.el | 123 ------------ lisp/init-org.el | 372 ------------------------------------- 3 files changed, 500 deletions(-) delete mode 100644 lisp/init-meow.el diff --git a/lisp/init-editing-utils.el b/lisp/init-editing-utils.el index 5c35c88..59c2df8 100644 --- a/lisp/init-editing-utils.el +++ b/lisp/init-editing-utils.el @@ -1,12 +1,7 @@ -(global-set-key (kbd "M-Y") 'browse-kill-ring) -(global-set-key (kbd "M-Y") 'browse-kill-ring) -(global-set-key (kbd "M-Y") 'browse-kill-ring) -(global-set-key (kbd "M-Y") 'browse-kill-ring) ;;; init-editing-utils.el --- Day-to-day editing helpers -*- lexical-binding: t -*- ;;; Commentary: ;;; Code: -(require-package 'unfill) (when (fboundp 'electric-pair-mode) (add-hook 'after-init-hook 'electric-pair-mode)) diff --git a/lisp/init-meow.el b/lisp/init-meow.el deleted file mode 100644 index 64384ab..0000000 --- a/lisp/init-meow.el +++ /dev/null @@ -1,123 +0,0 @@ -(require 'meow) - - -(defun meow-setup () - (setq meow-cheatsheet-physical-layout meow-cheatsheet-physical-layout-iso) - (setq meow-cheatsheet-layout meow-cheatsheet-layout-qwertz) - (setq meow-use-clipboard t) - - (meow-thing-register 'angle - '(pair (";") (":")) - '(pair (";") (":"))) - - (setq meow-char-thing-table - '((?f . round) - (?d . square) - (?s . curly) - (?a . angle) - (?r . string) - (?p . paragraph) - (?l . line) - (?b . buffer))) - - (meow-leader-define-key - ;; Use SPC (0-9) for digit arguments. - '("1" . meow-digit-argument) - '("2" . meow-digit-argument) - '("3" . meow-digit-argument) - '("4" . meow-digit-argument) - '("5" . meow-digit-argument) - '("6" . meow-digit-argument) - '("7" . meow-digit-argument) - '("8" . meow-digit-argument) - '("9" . meow-digit-argument) - '("0" . meow-digit-argument) - '("-" . meow-keypad-describe-key) - '("_" . meow-cheatsheet)) - - (meow-normal-define-key - ;; expansion - '("0" . meow-expand-0) - '("1" . meow-expand-1) - '("2" . meow-expand-2) - '("3" . meow-expand-3) - '("4" . meow-expand-4) - '("5" . meow-expand-5) - '("6" . meow-expand-6) - '("7" . meow-expand-7) - '("8" . meow-expand-8) - '("9" . meow-expand-9) - '("ä" . meow-reverse) - - ;; movement - '("h" . meow-left) - '("j" . meow-next) - '("k" . meow-prev) - '("l" . meow-right) - - - ;; expansion - '("H" . meow-left-expand) - '("J" . meow-next-expand) - '("K" . meow-prev-expand) - '("L" . meow-right-expand) - - '("/" . meow-visit) - '("n" . meow-search) - '("%" . meow-block) - - '("w" . meow-next-word) - '("W" . meow-next-symbol) - '("b" . meow-back-word) - '("B" . meow-back-symbol) - - '("z" . meow-mark-word) - '("Z" . meow-mark-symbol) - '("x" . meow-line) - '("X" . meow-goto-line) - '("m" . meow-block) - '("q" . meow-join) - '("g" . meow-grab) - '("G" . meow-pop-grab) - '("m" . meow-swap-grab) - '("M" . meow-sync-grab) - '("v" . meow-cancel-selection) - '("V" . meow-pop-selection) - - '("f" . meow-till) - '("F" . meow-find) - - '("," . meow-beginning-of-thing) - '("." . meow-end-of-thing) - '(";" . meow-inner-of-thing) - '(":" . meow-bounds-of-thing) - - ;; editing - '("D" . meow-kill) - '("c" . meow-change) - '("d" . meow-delete) - '("C" . meow-save) - '("p" . meow-yank) - '("P" . meow-yank-pop) - - '("i" . meow-insert) - '("O" . meow-open-above) - '("a" . meow-append) - '("o" . meow-open-below) - - '("u" . undo-only) - '("U" . undo-redo) - - '("n" . open-line) - '("N" . split-line) - - '("ü" . indent-rigidly-left-to-tab-stop) - '("+" . indent-rigidly-right-to-tab-stop) - - ;; ignore escape - '("" . ignore))) - -(with-eval-after-load 'meow - (meow-setup) - (meow-global-mode 1)) -(provide 'init-meow) diff --git a/lisp/init-org.el b/lisp/init-org.el index 5395b10..fe7b71c 100644 --- a/lisp/init-org.el +++ b/lisp/init-org.el @@ -1,380 +1,8 @@ ;;; init-org.el --- Org-mode config -*- lexical-binding: t -*- ;;; Commentary: -;; Among settings for many aspects of `org-mode', this code includes -;; an opinionated setup for the Getting Things Done (GTD) system based -;; around the Org Agenda. I have an "inbox.org" file with a header -;; including - -;; #+CATEGORY: Inbox -;; #+FILETAGS: INBOX - -;; and then set this file as `org-default-notes-file'. Captured org -;; items will then go into this file with the file-level tag, and can -;; be refiled to other locations as necessary. - -;; Those other locations are generally other org files, which should -;; be added to `org-agenda-files-list' (along with "inbox.org" org). -;; With that done, there's then an agenda view, accessible via the -;; `org-agenda' command, which gives a convenient overview. -;; `org-todo-keywords' is customised here to provide corresponding -;; TODO states, which should make sense to GTD adherents. - ;;; Code: -(maybe-require-package 'org-cliplink) - -(define-key global-map (kbd "C-c l") 'org-store-link) -(define-key global-map (kbd "C-c a") 'org-agenda) - -(defvar sanityinc/org-global-prefix-map (make-sparse-keymap) - "A keymap for handy global access to org helpers, particularly clocking.") - -(define-key sanityinc/org-global-prefix-map (kbd "j") 'org-clock-goto) -(define-key sanityinc/org-global-prefix-map (kbd "l") 'org-clock-in-last) -(define-key sanityinc/org-global-prefix-map (kbd "i") 'org-clock-in) -(define-key sanityinc/org-global-prefix-map (kbd "o") 'org-clock-out) -(define-key global-map (kbd "C-c o") sanityinc/org-global-prefix-map) - - -;; Various preferences -(setq org-log-done t - org-edit-timestamp-down-means-later t - org-hide-emphasis-markers t - org-catch-invisible-edits 'show - org-export-coding-system 'utf-8 - org-fast-tag-selection-single-key 'expert - org-html-validation-link nil - org-export-kill-product-buffer-when-displayed t - org-tags-column 80) - -;; Lots of stuff from http://doc.norang.ca/org-mode.html - -;; Re-align tags when window shape changes -(with-eval-after-load 'org-agenda - (add-hook 'org-agenda-mode-hook - (lambda () (add-hook 'window-configuration-change-hook 'org-agenda-align-tags nil t)))) - -(add-hook 'org-mode-hook 'visual-line-mode) - - -(maybe-require-package 'writeroom-mode) - -(define-minor-mode prose-mode - "Set up a buffer for prose editing. -This enables or modifies a number of settings so that the -experience of editing prose is a little more like that of a -typical word processor." - :init-value nil :lighter " Prose" :keymap nil - (if prose-mode - (progn - (when (fboundp 'writeroom-mode) - (writeroom-mode 1)) - (setq truncate-lines nil) - (setq word-wrap t) - (setq cursor-type 'bar) - (when (eq major-mode 'org) - (kill-local-variable 'buffer-face-mode-face)) - (buffer-face-mode 1) - ;;(delete-selection-mode 1) - (setq-local blink-cursor-interval 0.6) - (setq-local show-trailing-whitespace nil) - (setq-local line-spacing 0.2) - (setq-local electric-pair-mode nil) - (ignore-errors (flyspell-mode 1)) - (visual-line-mode 1)) - (kill-local-variable 'truncate-lines) - (kill-local-variable 'word-wrap) - (kill-local-variable 'cursor-type) - (kill-local-variable 'blink-cursor-interval) - (kill-local-variable 'show-trailing-whitespace) - (kill-local-variable 'line-spacing) - (kill-local-variable 'electric-pair-mode) - (buffer-face-mode -1) - ;; (delete-selection-mode -1) - (flyspell-mode -1) - (visual-line-mode -1) - (when (fboundp 'writeroom-mode) - (writeroom-mode 0)))) - -;;(add-hook 'org-mode-hook 'buffer-face-mode) - - -(setq org-support-shift-select t) - -;;; Capturing - -(global-set-key (kbd "C-c c") 'org-capture) - -(setq org-capture-templates - `(("t" "todo" entry (file "") ; "" => `org-default-notes-file' - "* NEXT %?\n%U\n" :clock-resume t) - ("n" "note" entry (file "") - "* %? :NOTE:\n%U\n%a\n" :clock-resume t) - ("i" "Inbox" entry (file "inbox.org") - ,(concat "* TODO %?\n" - "/Entered on/ %U")) - )) - - - -;;; Refiling - -(setq org-refile-use-cache nil) - -;; Targets include this file and any file contributing to the agenda - up to 5 levels deep -(setq org-refile-targets '((nil :maxlevel . 5) (org-agenda-files :maxlevel . 5))) - -(with-eval-after-load 'org-agenda - (add-to-list 'org-agenda-after-show-hook 'org-show-entry)) - -(advice-add 'org-refile :after (lambda (&rest _) (org-save-all-org-buffers))) - -;; Exclude DONE state tasks from refile targets -(defun sanityinc/verify-refile-target () - "Exclude todo keywords with a done state from refile targets." - (not (member (nth 2 (org-heading-components)) org-done-keywords))) -(setq org-refile-target-verify-function 'sanityinc/verify-refile-target) - -(defun sanityinc/org-refile-anywhere (&optional goto default-buffer rfloc msg) - "A version of `org-refile' which allows refiling to any subtree." - (interactive "P") - (let ((org-refile-target-verify-function)) - (org-refile goto default-buffer rfloc msg))) - -(defun sanityinc/org-agenda-refile-anywhere (&optional goto rfloc no-update) - "A version of `org-agenda-refile' which allows refiling to any subtree." - (interactive "P") - (let ((org-refile-target-verify-function)) - (org-agenda-refile goto rfloc no-update))) - -;; Targets start with the file name - allows creating level 1 tasks -;;(setq org-refile-use-outline-path (quote file)) -(setq org-refile-use-outline-path t) -(setq org-outline-path-complete-in-steps nil) - -;; Allow refile to create parent tasks with confirmation -(setq org-refile-allow-creating-parent-nodes 'confirm) - - -;;; To-do settings - -(setq org-todo-keywords - (quote ((sequence "TODO(t)" "NEXT(n)" "|" "DONE(d!/!)") - (sequence "PROJECT(p)" "|" "DONE(d!/!)" "CANCELLED(c@/!)") - (sequence "WAITING(w@/!)" "DELEGATED(e!)" "HOLD(h)" "|" "CANCELLED(c@/!)"))) - org-todo-repeat-to-state "NEXT") - -(setq org-todo-keyword-faces - (quote (("NEXT" :inherit warning) - ("PROJECT" :inherit font-lock-string-face)))) - - - -;;; Agenda views - -(setq-default org-agenda-clockreport-parameter-plist '(:link t :maxlevel 3)) - - -(let ((active-project-match "-INBOX/PROJECT")) - - (setq org-stuck-projects - `(,active-project-match ("NEXT"))) - - (setq org-agenda-compact-blocks t - org-agenda-sticky t - org-agenda-start-on-weekday nil - org-agenda-span 'day - org-agenda-include-diary nil - org-agenda-hide-tags-regexp "." - org-agenda-sorting-strategy - '((agenda habit-down time-up user-defined-up effort-up category-keep) - (todo category-up effort-up) - (tags category-up effort-up) - (search category-up)) - org-agenda-window-setup 'current-window - org-agenda-custom-commands - `(("N" "Notes" tags "NOTE" - ((org-agenda-overriding-header "Notes") - (org-tags-match-list-sublevels t))) - ("g" "GTD" - ((agenda "" nil) - (tags "INBOX" - ((org-agenda-overriding-header "Inbox") - (org-tags-match-list-sublevels nil))) - (stuck "" - ((org-agenda-overriding-header "Stuck Projects") - (org-agenda-tags-todo-honor-ignore-options t) - (org-tags-match-list-sublevels t) - (org-agenda-todo-ignore-scheduled 'future))) - (tags-todo "-INBOX" - ((org-agenda-overriding-header "Next Actions") - (org-agenda-tags-todo-honor-ignore-options t) - (org-agenda-todo-ignore-scheduled 'future) - (org-agenda-skip-function - '(lambda () - (or (org-agenda-skip-subtree-if 'todo '("HOLD" "WAITING")) - (org-agenda-skip-entry-if 'nottodo '("NEXT"))))) - (org-tags-match-list-sublevels t) - (org-agenda-sorting-strategy - '(todo-state-down effort-up category-keep)))) - (tags-todo ,active-project-match - ((org-agenda-overriding-header "Projects") - (org-tags-match-list-sublevels t) - (org-agenda-sorting-strategy - '(category-keep)))) - (tags-todo "-INBOX/-NEXT" - ((org-agenda-overriding-header "Orphaned Tasks") - (org-agenda-tags-todo-honor-ignore-options t) - (org-agenda-todo-ignore-scheduled 'future) - (org-agenda-skip-function - '(lambda () - (or (org-agenda-skip-subtree-if 'todo '("PROJECT" "HOLD" "WAITING" "DELEGATED")) - (org-agenda-skip-subtree-if 'nottododo '("TODO"))))) - (org-tags-match-list-sublevels t) - (org-agenda-sorting-strategy - '(category-keep)))) - (tags-todo "/WAITING" - ((org-agenda-overriding-header "Waiting") - (org-agenda-tags-todo-honor-ignore-options t) - (org-agenda-todo-ignore-scheduled 'future) - (org-agenda-sorting-strategy - '(category-keep)))) - (tags-todo "/DELEGATED" - ((org-agenda-overriding-header "Delegated") - (org-agenda-tags-todo-honor-ignore-options t) - (org-agenda-todo-ignore-scheduled 'future) - (org-agenda-sorting-strategy - '(category-keep)))) - (tags-todo "-INBOX" - ((org-agenda-overriding-header "On Hold") - (org-agenda-skip-function - '(lambda () - (or (org-agenda-skip-subtree-if 'todo '("WAITING")) - (org-agenda-skip-entry-if 'nottodo '("HOLD"))))) - (org-tags-match-list-sublevels nil) - (org-agenda-sorting-strategy - '(category-keep)))) - ;; (tags-todo "-NEXT" - ;; ((org-agenda-overriding-header "All other TODOs") - ;; (org-match-list-sublevels t))) - ))))) - - -(add-hook 'org-agenda-mode-hook 'hl-line-mode) - - -;;; Org clock - -;; Save the running clock and all clock history when exiting Emacs, load it on startup -(with-eval-after-load 'org - (org-clock-persistence-insinuate)) -(setq org-clock-persist t) -(setq org-clock-in-resume t) - -;; Save clock data and notes in the LOGBOOK drawer -(setq org-clock-into-drawer t) -;; Save state changes in the LOGBOOK drawer -(setq org-log-into-drawer t) -;; Removes clocked tasks with 0:00 duration -(setq org-clock-out-remove-zero-time-clocks t) - -;; Show clock sums as hours and minutes, not "n days" etc. -(setq org-time-clocksum-format - '(:hours "%d" :require-hours t :minutes ":%02d" :require-minutes t)) - - - -;;; Show the clocked-in task - if any - in the header line -(defun sanityinc/show-org-clock-in-header-line () - (setq-default header-line-format '((" " org-mode-line-string " ")))) - -(defun sanityinc/hide-org-clock-from-header-line () - (setq-default header-line-format nil)) - -(add-hook 'org-clock-in-hook 'sanityinc/show-org-clock-in-header-line) -(add-hook 'org-clock-out-hook 'sanityinc/hide-org-clock-from-header-line) -(add-hook 'org-clock-cancel-hook 'sanityinc/hide-org-clock-from-header-line) - -(with-eval-after-load 'org-clock - (define-key org-clock-mode-line-map [header-line mouse-2] 'org-clock-goto) - (define-key org-clock-mode-line-map [header-line mouse-1] 'org-clock-menu)) - - - - -;; TODO: warn about inconsistent items, e.g. TODO inside non-PROJECT -;; TODO: nested projects! - - - -;;; Archiving - -(setq org-archive-mark-done nil) -(setq org-archive-location "%s_archive::* Archive") - - - - - -(require-package 'org-pomodoro) -(setq org-pomodoro-keep-killed-pomodoro-time t) -(with-eval-after-load 'org-agenda - (define-key org-agenda-mode-map (kbd "P") 'org-pomodoro)) - - -;; ;; Show iCal calendars in the org agenda -;; (when (and *is-a-mac* (require 'org-mac-iCal nil t)) -;; (setq org-agenda-include-diary t -;; org-agenda-custom-commands -;; '(("I" "Import diary from iCal" agenda "" -;; ((org-agenda-mode-hook #'org-mac-iCal))))) - -;; (add-hook 'org-agenda-cleanup-fancy-diary-hook -;; (lambda () -;; (goto-char (point-min)) -;; (save-excursion -;; (while (re-search-forward "^[a-z]" nil t) -;; (goto-char (match-beginning 0)) -;; (insert "0:00-24:00 "))) -;; (while (re-search-forward "^ [a-z]" nil t) -;; (goto-char (match-beginning 0)) -;; (save-excursion -;; (re-search-backward "^[0-9]+:[0-9]+-[0-9]+:[0-9]+ " nil t)) -;; (insert (match-string 0)))))) - -(with-eval-after-load 'org - (when (maybe-require-package 'org-bullets) - (add-hook 'org-mode 'org-bullets-mode))) - -(with-eval-after-load 'org - (define-key org-mode-map (kbd "C-M-") 'org-up-element) - ) - -(with-eval-after-load 'org - (org-babel-do-load-languages - 'org-babel-load-languages - (seq-filter - (lambda (pair) - (locate-library (concat "ob-" (symbol-name (car pair))))) - '((R . t) - (ditaa . t) - (dot . t) - (emacs-lisp . t) - (gnuplot . t) - (haskell . nil) - (latex . t) - (ledger . t) - (ocaml . nil) - (octave . t) - (plantuml . t) - (python . t) - (ruby . t) - (screen . nil) - (sh . t) ;; obsolete - (shell . t) - (sql . t) - (sqlite . t))))) (provide 'init-org)