;; -*- lexical-binding: t; -*-
;; BINDINGS
-;; USER SPACE - mode-specific-map C-c by default
-(define-key mode-specific-map [b] 'buffer-menu-other-window)
-(define-key mode-specific-map [ee] (lambda () (interactive) (dired user-emacs-directory)))
-(define-key mode-specific-map [ei] (lambda () (interactive) (find-file user-init-file)))
-(define-key mode-specific-map [ep] (lambda () (interactive) (find-file user-packages)))
-(define-key mode-specific-map [es] (lambda () (interactive) (find-file user-setqs)))
-(define-key mode-specific-map [ew] (lambda () (interactive) (find-file user-work-eqs)))
-(define-key mode-specific-map [ed] (lambda () (interactive) (find-file user-defuns)))
-(define-key mode-specific-map [eh] (lambda () (interactive) (find-file user-hooks)))
-(define-key mode-specific-map [eb] (lambda () (interactive) (find-file user-bindings)))
-(define-key mode-specific-map [s] 'eshell)
-(define-key mode-specific-map [\;] 'comment-or-uncomment-region)
-(define-key mode-specific-map [f5] 'scratch-only)
-(define-key mode-specific-map [f8] 'recentf-open-files)
+;; USER SPACE - mode-specific-map C-c by default + fkeys
+(define-key mode-specific-map "b" 'buffer-menu-other-window)
+(define-key mode-specific-map "ee" (lambda () (interactive) (dired user-emacs-directory)))
+(define-key mode-specific-map "ei" (lambda () (interactive) (find-file user-init-file)))
+(define-key mode-specific-map "ep" (lambda () (interactive) (find-file user-packages)))
+(define-key mode-specific-map "es" (lambda () (interactive) (find-file user-setqs)))
+(define-key mode-specific-map "ew" (lambda () (interactive) (find-file user-work-eqs)))
+(define-key mode-specific-map "ed" (lambda () (interactive) (find-file user-defuns)))
+(define-key mode-specific-map "eh" (lambda () (interactive) (find-file user-hooks)))
+(define-key mode-specific-map "eb" (lambda () (interactive) (find-file user-bindings)))
+(define-key mode-specific-map "s" 'eshell)
+(define-key mode-specific-map ";" 'comment-or-uncomment-region)
+(define-key global-map [f5] 'scratch-only)
+(define-key global-map [f8] 'recentf-open-files)
;; OVERRIDES - global-map
-(define-key global-map [remap move-beginning-of-line] 'smart-beginning-of-line)
-(define-key global-map [\C-o] 'open-line-below)
-(define-key global-map [\C-u] 'backward-kill-line)
-(define-key global-map [\C-w] 'kill-bword-or-region)
-(define-key global-map [\C-z] 'zap-up-to-char)
-(define-key global-map [\C-'] 'universal-argument)
-(define-key global-map [\C-%] 'replace-regexp)
-(define-key global-map [home] 'beginning-of-buffer)
-(define-key global-map [end] 'end-of-buffer)
-(define-key global-map [?\C-left] 'previous-window-any-frame)
-(define-key global-map [?\C-right] 'next-window-any-frame)
-(define-key global-map [?\C-\S-k] 'kill-whole-line)
-(define-key global-map [?\C-\S-S] 'isearch-forward-regexp)
-(define-key global-map [?\C-\S-R] 'isearch-backward-regexp)
+(global-set-key [remap move-beginning-of-line] 'smart-beginning-of-line)
+(global-set-key "\C-o" 'open-line-below)
+(global-set-key "\C-u" 'backward-kill-line)
+(global-set-key "\C-w" 'kill-bword-or-region)
+(global-set-key "\C-z" 'zap-up-to-char)
+(global-set-key [?\C-'] 'universal-argument)
+(global-set-key [?\C-%] 'replace-regexp)
+(global-set-key [home] 'beginning-of-buffer)
+(global-set-key [end] 'end-of-buffer)
+(global-set-key [C-left] 'previous-window-any-frame)
+(global-set-key [C-right] 'next-window-any-frame)
+(global-set-key [?\C-\S-k] 'kill-whole-line)
+(global-set-key [?\C-\S-S] 'isearch-forward-regexp)
+(global-set-key [?\C-\S-R] 'isearch-backward-regexp)
;; OVERRIDES - ctl-x-map
(define-key ctl-x-map [\C-b]'buffer-menu)
;; OVERRIDES - esc-map (M-*)
-(define-key esc-map [j] 'backward-join-line)
-(define-key esc-map [o] 'open-line-above)
-(define-key esc-map [s.] 'isearch-forward-thing-at-point)
-(define-key esc-map [s\M-.] 'isearch-forward-symbol-at-point)
-(define-key esc-map [%] 'slot/replace-string-many)
-(define-key esc-map [\C-z] 'eval-region)
+(define-key esc-map "j" 'backward-join-line)
+(define-key esc-map "o" 'open-line-above)
+(define-key esc-map "s." 'isearch-forward-thing-at-point)
+(define-key esc-map "s\M-." 'isearch-forward-symbol-at-point)
+(define-key esc-map "%" 'slot/replace-string-many)
+(define-key esc-map "\C-z" 'eval-region)
(define-key esc-map [?\C-%] 'slot/query-replace-many)
-(define-key esc-map [?\C-left] 'previous-buffer)
-(define-key esc-map [?\C-right] 'next-buffer)
+(define-key esc-map [C-left] 'previous-buffer)
+(define-key esc-map [C-right] 'next-buffer)
;; MODE-SPECIFIC
(add-hook 'eshell-mode-hook (lambda () (define-key eshell-mode-map ")" 'eshell-send-on-close-paren)))
(require 'package)
(setq package-archives
- '(("elpa" . "https://elpa.gnu.org/packages/")
+ '(("elpa" . "https://elpa.gnu.org/packages/")
("nongnu" . "https://elpa.nongnu.org/nongnu/")
("melpa" . "https://melpa.org/packages/")))
(unless (bound-and-true-p package--initialized)
- (setq package-enable-at-startup nil)
- (package-initialize))
+ (setq package-enable-at-startup nil)
+ (package-initialize))
(unless (package-installed-p 'use-package)
- (package-refresh-contents)
- (package-install 'use-package))
+ (package-refresh-contents)
+ (package-install 'use-package))
(setq use-package-always-ensure t)
(unless (eq system-type 'windows-nt)
- (use-package slime)
- (use-package ledger-mode))
+ (use-package slime)
+ (use-package ledger-mode))
-(use-package s)
-(use-package dash)
-(use-package gnuplot-mode)
-
-(use-package expand-region
- :bind
- (("C-=" . er/expand-region)))
+(use-package auto-package-update
+ :if (not (daemonp))
+ :custom
+ (auto-package-update-interval 7) ;; in days
+ (auto-package-update-prompt-before-update t)
+ (auto-package-update-delete-old-versions t)
+ :config
+ (auto-package-update-maybe))
-(use-package popup-kill-ring
- :bind
- ("M-y" . popup-kill-ring))
+(use-package company
+ :custom
+ (company-idle-delay 0)
+ (company-tooltip-idle-delay 10)
+ (company-minimum-prefix-length 1)
+ (company-require-match nil)
+ (company-show-quick-access t)
+ (company-format-margin-function 'company-text-icons-margin)
+ (company-text-face-extra-attributes '(:slant italic))
+ (company-selection-wrap-around t)
+ (company-tooltip-flip-when-above t)
+ (company-insertion-on-trigger nil)
+ (company-dabbrev-other-buffers t)
+ (company-dabbrev-code-other-buffers t)
+ (company-dabbrev-downcase nil)
+ (company-dabbrev-ignore-case 'keep-prefix)
+ (company-frontends '(company-pseudo-tooltip-unless-just-one-frontend-with-delay
+ company-preview-frontend
+ company-echo-metadata-frontend))
+ :config
+ (global-company-mode t)
+ :bind
+ (:map company-active-map
+ ("<tab>" . (lambda ()
+ (interactive)
+ (let ((company-tooltip-idle-delay 0.0))
+ (company-complete)
+ (and company-candidates
+ (company-call-frontends 'post-command)))))))
-(use-package openwith
- :config
- (openwith-mode t))
+(use-package expand-region
+ :bind
+ (("C-=" . er/expand-region)))
-(use-package page-break-lines
- :init
- (global-page-break-lines-mode))
+(use-package gnuplot-mode)
(use-package magit
- :init
- (message "Loading Magit...")
- :config
- (message "Loaded Magit!")
- :bind
- (("C-x g" . magit-status)))
-
-(use-package auto-package-update
- :if (not (daemonp))
- :custom
- (auto-package-update-interval 7) ;; in days
- (auto-package-update-prompt-before-update t)
- (auto-package-update-delete-old-versions t)
- :config
- (auto-package-update-maybe))
-
-(use-package recentf
- :ensure nil
- :hook
- (after-init . recentf-mode)
- :custom
- (recentf-auto-cleanup "05:00am")
- (recentf-max-saved-items 200)
- (recentf-exclude '((expand-file-name package-user-dir)
- ".cache"
- ".cask"
- ".elfeed"
- "bookmarks"
- "cache"
- "ido.*"
- "recentf")))
+ :init
+ (message "Loading Magit...")
+ :config
+ (message "Loaded Magit!")
+ :bind
+ (("C-x g" . magit-status)))
-(use-package company
- :custom
- (company-idle-delay 0)
- (company-tooltip-idle-delay 10)
- (company-minimum-prefix-length 1)
- (company-require-match nil)
- (company-show-quick-access t)
- (company-format-margin-function 'company-text-icons-margin)
- (company-text-face-extra-attributes '(:slant italic))
- (company-selection-wrap-around t)
- (company-tooltip-flip-when-above t)
- (company-insertion-on-trigger nil)
- (company-dabbrev-other-buffers t)
- (company-dabbrev-code-other-buffers t)
- (company-dabbrev-downcase nil)
- (company-dabbrev-ignore-case 'keep-prefix)
- (company-frontends '(company-pseudo-tooltip-unless-just-one-frontend-with-delay
- company-preview-frontend
- company-echo-metadata-frontend))
- :config
- (global-company-mode t)
- :bind
- (:map company-active-map
- ("<tab>" . (lambda ()
- (interactive)
- (let ((company-tooltip-idle-delay 0.0))
- (company-complete)
- (and company-candidates
- (company-call-frontends 'post-command)))))))
+(use-package openwith
+ :config
+ (openwith-mode t))
(use-package org
- :ensure nil
- :custom
- (org-M-RET-may-split-line nil)
- (org-reverse-note-order t)
- (org-use-fast-todo-selection 'expert)
- (org-agenda-start-on-weekday nil)
- (org-catch-invisible-edits 'show)
- (org-directory "~/org")
- (org-agenda-files '("~/org/"
- "~/org/kasten/"))
- (org-refile-targets '((nil :maxlevel . 9)
- (org-agenda-files :maxlevel . 9)))
- (org-default-notes-file (concat org-directory "/notes.org"))
- (safe-local-variable-values '((after-save-hook org-auto-archive)))
- (org-todo-keywords '((sequence "TODO(t@)"
- "WAITING(w@)"
- "IN-PROGRESS(i@)"
- "APPT(a@)" "|"
- "DELEGATED(l@)"
- "DONE(d@)"
- "CANCELLED(c@)")))
- (org-capture-templates '(("n" "Note" entry (file+olp org-default-notes-file "Notes") "* %u %?")
- ("t" "TODO" entry (file+olp org-default-notes-file "Tasks") "* TODO %? \n %u")
- ("s" "Service" entry (file+olp org-default-notes-file "Service") "* TODO %? \n %u")
- ("z" "Zettel" entry (file erfassen-zettel) "* %? ::")))
- (org-agenda-custom-commands '(("n" "Agenda and all TODOs"
- ((agenda "") (alltodo "")))
- ("u" "Unscheduled TODOs"
- alltodo "" ((org-agenda-skip-function
- (lambda nil
- (org-agenda-skip-entry-if 'scheduled
- 'deadline
- 'regexp "\n]+>")))
- (org-agenda-overriding-header "Unscheduled TODO entries: ")))))
- :config
- (defun erfassen-zettel ()
- "Add a new zettel to the kasten.
+ :ensure nil
+ :bind (:map mode-specific-map
+ ("l" . org-store-link)
+ ("a" . org-agenda)
+ ("c" . org-capture)
+ :map org-mode-map
+ ("C-'" . nil))
+ :custom
+ (org-M-RET-may-split-line nil)
+ (org-reverse-note-order t)
+ (org-agenda-window-setup 'other-window)
+ (org-use-fast-todo-selection 'expert)
+ (org-agenda-start-on-weekday nil)
+ (org-catch-invisible-edits 'show)
+ (org-directory "~/org")
+ (org-agenda-files '("~/org/"
+ "~/org/kasten/"))
+ (org-refile-targets '((nil :maxlevel . 9)
+ (org-agenda-files :maxlevel . 9)))
+ (org-default-notes-file (concat org-directory "/notes.org"))
+ (safe-local-variable-values '((after-save-hook org-auto-archive)))
+ (org-todo-keywords '((sequence "TODO(t@)"
+ "WAITING(w@)"
+ "IN-PROGRESS(i@)"
+ "APPT(a@)" "|"
+ "DELEGATED(l@)"
+ "DONE(d@)"
+ "CANCELLED(c@)")))
+ (org-capture-templates '(("n" "Note" entry (file+olp org-default-notes-file "Notes") "* %u %?")
+ ("t" "TODO" entry (file+olp org-default-notes-file "Tasks") "* TODO %? \n %u")
+ ("s" "Service" entry (file+olp org-default-notes-file "Service") "* TODO %? \n %u")
+ ("z" "Zettel" entry (file erfassen-zettel) "* %? ::")))
+ (org-agenda-custom-commands '(("n" "Agenda and all TODOs"
+ ((agenda "") (alltodo "")))
+ ("u" "Unscheduled TODOs"
+ alltodo "" ((org-agenda-skip-function
+ (lambda nil
+ (org-agenda-skip-entry-if 'scheduled
+ 'deadline
+ 'regexp "\n]+>")))
+ (org-agenda-overriding-header "Unscheduled TODO entries: ")))))
+ :config
+ (defun erfassen-zettel ()
+ "Add a new zettel to the kasten.
Creates a new file <datestamp>.org in ~/org/kasten."
- (interactive)
- (expand-file-name (format "%s.org" (format-time-string "%Y-%m-%d-%H%M")) "~/org/kasten/"))
+ (interactive)
+ (expand-file-name (format "%s.org" (format-time-string "%Y-%m-%d-%H%M")) "~/org/kasten/"))
- (defun org-auto-archive ()
- "Automatically archive completed tasks in an org file.
+ (defun org-auto-archive ()
+ "Automatically archive completed tasks in an org file.
Intended for use as an after-save-hook."
- (interactive)
- (org-map-entries
- (lambda ()
- (org-archive-subtree)
- (setq org-map-continue-from (org-element-property :begin (org-element-at-point))))
- "TODO=\"DONE\"|TODO=\"CANCELLED\"|TODO=\"DELEGATED\""
- 'file)
- (save-buffer)))
+ (interactive)
+ (org-map-entries
+ (lambda ()
+ (org-archive-subtree)
+ (setq org-map-continue-from (org-element-property :begin (org-element-at-point))))
+ "TODO=\"DONE\"|TODO=\"CANCELLED\"|TODO=\"DELEGATED\""
+ 'file)
+ (save-buffer)))
+
+(use-package page-break-lines
+ :init
+ (global-page-break-lines-mode))
+
+(use-package popup-kill-ring
+ :bind
+ ("M-y" . popup-kill-ring))
+
+(use-package recentf
+ :ensure nil
+ :hook
+ (after-init . recentf-mode)
+ :custom
+ (recentf-auto-cleanup "05:00am")
+ (recentf-max-saved-items 200)
+ (recentf-exclude '((expand-file-name package-user-dir)
+ ".cache"
+ ".cask"
+ ".elfeed"
+ "bookmarks"
+ "cache"
+ "ido.*"
+ "recentf")))