Compare commits
No commits in common. "014025d8a7adc9e799dddbc83d29a1e788462d47" and "a92bd363e4eb51516a9975d4404814a13a3a2ab9" have entirely different histories.
014025d8a7
...
a92bd363e4
15
code/init.el
15
code/init.el
|
@ -14,6 +14,11 @@
|
|||
(setq kmn/is-termux
|
||||
(string-suffix-p "Android" (string-trim (shell-command-to-string "uname -a"))))
|
||||
|
||||
;; day job env?
|
||||
(setq kmn/is-dayjob
|
||||
(string= "PCE" (getenv "USERDOMAIN"))
|
||||
)
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; os specific config
|
||||
(when (and (eq system-type 'windows-nt)
|
||||
|
@ -26,6 +31,10 @@
|
|||
(add-to-list 'exec-path "C:/Users/mcros/OneDrive/Programs/PortableApps/sqlite3")
|
||||
(add-to-list 'exec-path "C:/Users/mcros/OneDrive/Programs/PortableApps/MultiMarkdown-Windows-6.6.0/bin")
|
||||
)
|
||||
(when kmn/is-dayjob
|
||||
(setenv "HOME" "I:/")
|
||||
(setq default-directory "I:/")
|
||||
)
|
||||
(when kmn/is-termux
|
||||
; setup storage locations -- cheat so mobile/desktop look alike for file urls
|
||||
;(setq user-init-file "/data/data/com.termux/files/home/storage/shared/.emacs")
|
||||
|
@ -66,9 +75,11 @@
|
|||
(add-to-list 'package-selected-packages
|
||||
'(helm-xref helm-lsp lsp-ui lsp-mode json-mode python-mode powershell rust-mode origami go-mode yaml-mode lua-mode)
|
||||
)
|
||||
(when (not kmn/is-dayjob)
|
||||
(add-to-list 'package-selected-packages
|
||||
'(auctex-latexmk auctex dockerfile-mode)
|
||||
)
|
||||
)
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; activate helm after its fully configured (may be configured beyond global defaults in other profiles so we have to activate locally)
|
||||
|
@ -112,8 +123,10 @@
|
|||
(setq lua-indent-level 4)
|
||||
|
||||
; dockerfile
|
||||
(when (not kmn/is-dayjob)
|
||||
(autoload 'dockerfile-mode "dockerfile-mode" "Dockerfile editing mode." t)
|
||||
(add-to-list 'auto-mode-alist '("Dockerfile\\'" . dockerfile-mode))
|
||||
)
|
||||
|
||||
; yaml
|
||||
(autoload 'yaml-mode "yaml-mode" "YAML editing mode." t)
|
||||
|
@ -146,10 +159,12 @@
|
|||
(add-to-list 'auto-mode-alist '("\\.ps1\\'" . powershell))
|
||||
|
||||
; [la]tex
|
||||
(when (not kmn/is-dayjob)
|
||||
(use-package tex
|
||||
:ensure auctex)
|
||||
(setq TeX-parse-self t)
|
||||
(setq-default TeX-master nil)
|
||||
)
|
||||
|
||||
; python
|
||||
(autoload 'python-mode "python-mode" "python editing mode" t)
|
||||
|
|
|
@ -1,16 +1,10 @@
|
|||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; windows performance tweaks, add to top of init.el as well
|
||||
(when (eq system-type 'windows-nt)
|
||||
; https://lists.gnu.org/archive/html/bug-gnu-emacs/2012-10/msg00274.html
|
||||
; https://gioorgi.com/2013/solving-emacs-freeze-andor-slowdown-on-windows7/
|
||||
(setq w32-get-true-file-attributes nil)
|
||||
; start emacs server (daemon) via real client so org-mode and other 'workspaces' can be setup as faux daemonized emacs
|
||||
; (server-start)
|
||||
|
||||
; https://www.reddit.com/r/emacs/comments/c9ef5i/comment/esx5ndr/
|
||||
(setq inhibit-compacting-font-caches t)
|
||||
|
||||
; https://www.reddit.com/r/emacs/comments/c9ef5i/comment/esx5snw/
|
||||
(when (boundp 'w32-pipe-read-delay)
|
||||
(setq w32-pipe-read-delay 0))
|
||||
;; critical built in for tuning startup
|
||||
(setq kmn/is-dayjob
|
||||
(string= "PCE" (getenv "USERDOMAIN"))
|
||||
)
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
@ -21,9 +15,11 @@
|
|||
(add-to-list 'package-selected-packages
|
||||
'(which-key all-the-icons revert-buffer-all centaur-tabs scratch persistent-scratch persp-mode rainbow-mode rainbow-delimiters markdown-mode focus zoom popwin dired-single diredfl doominhibitinhibit-modeline helpful helm helm-org dired-rainbow dired-rainbow-listing dired-single dash s origami modus-themes use-package)
|
||||
)
|
||||
(when (not kmn/is-dayjob)
|
||||
(add-to-list 'package-selected-packages
|
||||
'(devdocs devdocs-browser magit helm-ls-git xclip)
|
||||
)
|
||||
)
|
||||
(require 'use-package)
|
||||
|
||||
; helper functions
|
||||
|
@ -184,6 +180,7 @@
|
|||
("\\.markdown\\'" . markdown-mode))
|
||||
:init (setq markdown-command "multimarkdown"))
|
||||
|
||||
(when (not kmn/is-dayjob)
|
||||
(use-package markdown-preview-mode
|
||||
:ensure t
|
||||
:if (boundp 'mdcommand)
|
||||
|
@ -195,6 +192,7 @@
|
|||
(markdown-preview-host "127.0.0.1")
|
||||
(markdown-preview-http-host "127.0.0.1"))
|
||||
(setq markdown-preview-stylesheets (list "https://cdnjs.cloudflare.com/ajax/libs/github-markdown-css/3.0.1/github-markdown.min.css"))
|
||||
)
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; origami config
|
||||
|
@ -263,10 +261,6 @@
|
|||
(global-set-key (kbd "C-s") 'isearch-forward)
|
||||
(global-set-key (kbd "C-f") 'isearch-forward)
|
||||
|
||||
; C-h find/replace
|
||||
(global-set-key (kbd "C-h") 'query-replace)
|
||||
(global-set-key (kbd "C-H") 'query-replace-regexp)
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; Set some global config
|
||||
(setq inhibit-splash-screen t) ; why do you need to tell me things i know by default
|
||||
|
@ -291,7 +285,9 @@
|
|||
(global-auto-revert-mode 1)
|
||||
|
||||
; Clipboard integration
|
||||
(when (not kmn/is-dayjob)
|
||||
(use-package xclip :config (xclip-mode 1))
|
||||
)
|
||||
|
||||
;; use y or n instead of yes or no
|
||||
(fset 'yes-or-no-p 'y-or-n-p)
|
||||
|
@ -458,6 +454,7 @@
|
|||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; flyspell
|
||||
(when (not kmn/is-dayjob)
|
||||
(require 'flyspell)
|
||||
(setenv "LANG" "en_US")
|
||||
(setq ispell-program-name "hunspell")
|
||||
|
@ -503,6 +500,7 @@
|
|||
; flyspell keyboard shortcuts
|
||||
(global-set-key (kbd "C-x y") 'flyspell-toggle)
|
||||
(global-set-key (kbd "C-x w") 'flyspell-correct-wrapper)
|
||||
)
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; zoom (replaces golden-ratio)
|
||||
|
@ -537,8 +535,6 @@
|
|||
(use-package popwin
|
||||
:bind ( :map popwin:keymap
|
||||
("h" . popwin:close-popup-window)
|
||||
("r" . kmn/workspace-frame-scratch)
|
||||
("R" . kmn/popwin-scratch)
|
||||
("q" . kmn/popwin-quick-ref))
|
||||
:config
|
||||
(global-set-key (kbd "C-w") popwin:keymap)
|
||||
|
@ -548,6 +544,7 @@
|
|||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; devdocs
|
||||
(when (not kmn/is-dayjob)
|
||||
(require 'devdocs)
|
||||
(require 'devdocs-browser)
|
||||
; devdocs
|
||||
|
@ -556,6 +553,7 @@
|
|||
; devdocs-browser
|
||||
(setq devdocs-browser-cache-directory "~/devdocs-browser")
|
||||
(global-set-key (kbd "C-x n") 'devdocs-browser-open)
|
||||
)
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; tabs-bar
|
||||
|
|
|
@ -150,33 +150,6 @@
|
|||
)
|
||||
)
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; open text-mode scratch in left side window
|
||||
(defun kmn/scratch-prompt-on-left ()
|
||||
(defvar parameters
|
||||
'(window-parameters . ((no-other-window . t)
|
||||
(no-delete-other-windows . t))))
|
||||
|
||||
(setq fit-window-to-buffer-horizontally t)
|
||||
(setq window-resize-pixelwise t)
|
||||
|
||||
"Display `default-directory' in side window on left, hiding details."
|
||||
(interactive)
|
||||
(let ((buffer (scratch (let ((current-prefix-arg t)) (scratch--buffer-querymode)))))
|
||||
(display-buffer-in-side-window
|
||||
buffer `((side . left) (slot . -1)
|
||||
(window-width . fit-window-to-buffer)
|
||||
, parameters)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; text-mode scratch buffer as a pop up window
|
||||
(defun kmn/popwin-scratch ()
|
||||
(interactive)
|
||||
(popwin:popup-buffer (scratch 'text-mode)))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; quick reference notes as a pop up window
|
||||
(defun kmn/popwin-quick-ref ()
|
||||
|
|
|
@ -66,6 +66,7 @@
|
|||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; org-mode workspace
|
||||
(when (not kmn/is-dayjob)
|
||||
(defun kmn/workspace-org ()
|
||||
(interactive)
|
||||
(kmn/possibly-create-frame)
|
||||
|
@ -97,9 +98,35 @@
|
|||
; focus top most frame
|
||||
(next-multiframe-window)
|
||||
)
|
||||
)
|
||||
|
||||
(when kmn/is-dayjob
|
||||
(defun kmn/workspace-org ()
|
||||
(interactive)
|
||||
(kmn/possibly-create-frame)
|
||||
; start with fresh frame
|
||||
(delete-other-windows)
|
||||
(kmn/kill-other-buffers)
|
||||
(ignore-errors (kill-buffer "*scratch*"))
|
||||
; show varied org files so their buffers exist prior to jumping in from org-agenda
|
||||
(find-file "~/org/_habits.org")
|
||||
(find-file "~/org/_index.org")
|
||||
(find-file "~/org/_todo.org")
|
||||
(find-file "~/org/_slipbox.org")
|
||||
; front load org-agenda so it doesnt reshuffle the frame layout on us
|
||||
(org-agenda nil "r")
|
||||
; show scratch on right
|
||||
(kmn/scratch-text-on-right)
|
||||
; delete the current window (agenda triggers a vertical split on my computer, this undoes that non desired outcome)
|
||||
(delete-window)
|
||||
; switch to top of agenda window where i prefer to start my reading
|
||||
(goto-char 0)
|
||||
)
|
||||
)
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; org-mode workspace for termux devices (mobile / android)
|
||||
(when (not kmn/is-dayjob)
|
||||
(defun kmn/workspace-org-single-window ()
|
||||
(interactive)
|
||||
; start with fresh frame
|
||||
|
@ -119,9 +146,11 @@
|
|||
; start at the top of the agenda
|
||||
(goto-char 0)
|
||||
)
|
||||
)
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; org-mode workspace for general kb work that doesnt use the agenda
|
||||
(when (not kmn/is-dayjob)
|
||||
(defun kmn/workspace-org-index ()
|
||||
(interactive)
|
||||
(kmn/possibly-create-frame)
|
||||
|
@ -134,9 +163,11 @@
|
|||
(find-file "~/org/_index.org")
|
||||
(goto-char 0)
|
||||
)
|
||||
)
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; org-mode workspace for culinary work that doesnt use the agenda
|
||||
(when (not kmn/is-dayjob)
|
||||
(defun kmn/workspace-org-culinary ()
|
||||
(interactive)
|
||||
(kmn/possibly-create-frame)
|
||||
|
@ -149,6 +180,7 @@
|
|||
(find-file "~/org/culinary/_culinary.org")
|
||||
(goto-char 0)
|
||||
)
|
||||
)
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; empty code workspace
|
||||
|
|
|
@ -80,6 +80,7 @@
|
|||
)
|
||||
|
||||
(setq org-agenda-file-regexp "\\`[^.].*\\.org\\'")
|
||||
(when (not kmn/is-dayjob)
|
||||
(setq org-agenda-files (list
|
||||
"~/org/health/_health.org"
|
||||
"~/org/health/health_couples.org"
|
||||
|
@ -88,7 +89,14 @@
|
|||
"~/org/orgzly/_todo.org"
|
||||
"~/org/orgzly/_slipbox.org"
|
||||
))
|
||||
|
||||
)
|
||||
(when kmn/is-dayjob
|
||||
(setq org-agenda-files (list
|
||||
"~/org/_index.org"
|
||||
"~/org/_slipbox.org"
|
||||
"~/org/_todo.org"
|
||||
))
|
||||
)
|
||||
|
||||
; use *all* org agenda files as refile targets
|
||||
(setq org-refile-targets
|
||||
|
@ -98,6 +106,7 @@
|
|||
(require 'org-super-agenda)
|
||||
(org-super-agenda-mode)
|
||||
|
||||
(when (not kmn/is-dayjob)
|
||||
(setq org-super-agenda-groups
|
||||
'(
|
||||
(:name "Health"
|
||||
|
@ -232,4 +241,47 @@
|
|||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when kmn/is-dayjob
|
||||
(setq org-super-agenda-groups
|
||||
'(
|
||||
(:name "Habits" :habit t)
|
||||
(:order 100 :auto-parent "t")
|
||||
(:name "Active"
|
||||
:todo ("WIP" "READY"))
|
||||
(:name "Slip Box" :tag "slipbox")
|
||||
(:name "To Do" :priority>= "C")
|
||||
(:name "Low Priority" :priority< "C")))
|
||||
|
||||
(setq org-agenda-custom-commands
|
||||
'(
|
||||
("r" "PCE"
|
||||
(
|
||||
(agenda "" (
|
||||
(org-agenda-overriding-header "Scheduled")
|
||||
(org-agenda-remove-tags t)
|
||||
(org-deadline-warning-days 14)
|
||||
(org-agenda-entry-types '(:deadline :scheduled))
|
||||
))
|
||||
(agenda "" (
|
||||
(org-agenda-overriding-header "Habits")
|
||||
(org-agenda-files (list "~/org/_habits.org"))
|
||||
(org-agenda-remove-tags t)
|
||||
))
|
||||
(todo "WIP" (
|
||||
(org-agenda-overriding-header "WIP")
|
||||
(org-agenda-remove-tags t)
|
||||
))
|
||||
(todo "READY" (
|
||||
(org-agenda-overriding-header "Ready")
|
||||
(org-agenda-remove-tags t)
|
||||
))
|
||||
(tags-todo "-TODO=\"WIP\"-TODO=\"READY\"" (
|
||||
(org-agenda-overriding-header "")
|
||||
(org-agenda-remove-tags t)
|
||||
))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
(concat prefix (org-time-stamp nil))))
|
||||
|
||||
; orgmode capture templates
|
||||
(when (not kmn/is-dayjob)
|
||||
(setq org-capture-templates '(
|
||||
("d" "TODO (Main)" entry
|
||||
(file "~/org/orgzly/_todo.org")
|
||||
|
@ -205,3 +206,29 @@
|
|||
:empty-lines-before 1
|
||||
)
|
||||
))
|
||||
)
|
||||
(when kmn/is-dayjob
|
||||
(setq org-capture-templates '(
|
||||
("d" "TODO (Main)" entry
|
||||
(file "~/org/_todo.org")
|
||||
(file "~/org/template_todo.org")
|
||||
:prepend t
|
||||
:immediate-finish "f"
|
||||
:jump-to-captured "t"
|
||||
)
|
||||
("s" "TODO (Slipbox)" entry
|
||||
(file "~/org/_slipbox.org")
|
||||
(file "~/org/template_slipbox.org")
|
||||
:prepend t
|
||||
:immediate-finish "f"
|
||||
:jump-to-captured "t"
|
||||
)
|
||||
("p" "Deployment" entry
|
||||
(file "~/org/_todo.org")
|
||||
(file "~/org/template_deploy.org")
|
||||
:prepend t
|
||||
:immediate-finish "f"
|
||||
:jump-to-captured "t"
|
||||
)
|
||||
))
|
||||
)
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
(global-set-key (kbd "C-c d n")
|
||||
(lambda () (interactive) (find-file "~/org/_index.org"))
|
||||
)
|
||||
(when (not kmn/is-dayjob)
|
||||
(global-set-key (kbd "C-c d t")
|
||||
(lambda () (interactive) (find-file "~/org/orgzly/_todo.org"))
|
||||
)
|
||||
|
@ -29,3 +30,12 @@
|
|||
(lambda () (interactive) (find-file "~/org/photography/_photography.org"))
|
||||
)
|
||||
(global-set-key (kbd "C-c d r") 'kmn/workspace-org-culinary)
|
||||
)
|
||||
(when kmn/is-dayjob
|
||||
(global-set-key (kbd "C-c d t")
|
||||
(lambda () (interactive) (find-file "~/org/_todo.org"))
|
||||
)
|
||||
(global-set-key (kbd "C-c d s")
|
||||
(lambda () (interactive) (find-file "~/org/_slipbox.org"))
|
||||
)
|
||||
)
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
(setq org-todo-keyword-faces
|
||||
'(("TODO" . "turquoise") ("READY" . "yellow") ("WIP" . "magenta") ("COMPLETE" . "green") ("CANCELED" . "orange"))
|
||||
)
|
||||
(when (not kmn/is-dayjob)
|
||||
(setq org-tags-exclude-from-inheritance (quote ("@recipe" "@budgetbytes"
|
||||
"@vegan" "@vegetarian"
|
||||
"@instapot" "@slowcooker" "@onepot" "@oven" "@baked" "@baking" "@dehydrator" "@ricecooker"
|
||||
|
@ -20,4 +21,4 @@
|
|||
"@coconutmilk" "@oatmilk" "@coconutwater"
|
||||
"@kemonine" "@waltdk"
|
||||
)))
|
||||
|
||||
)
|
||||
|
|
|
@ -13,6 +13,10 @@
|
|||
(require 'subr-x)
|
||||
(setq kmn/is-termux
|
||||
(string-suffix-p "Android" (string-trim (shell-command-to-string "uname -a"))))
|
||||
;; day job env?
|
||||
(setq kmn/is-dayjob
|
||||
(string= "PCE" (getenv "USERDOMAIN"))
|
||||
)
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; os specific config
|
||||
|
@ -27,6 +31,10 @@
|
|||
(add-to-list 'exec-path "C:/msys64/usr/bin/unzip.exe")
|
||||
(setenv "PATH" (concat "C:\\msys64\\mingw64\\bin;" (getenv "PATH")))
|
||||
)
|
||||
(when kmn/is-dayjob
|
||||
(setenv "HOME" "I:/")
|
||||
(setq default-directory "I:/")
|
||||
)
|
||||
(when kmn/is-termux
|
||||
; setup storage locations -- cheat so mobile/desktop look alike for file urls
|
||||
;(setq user-init-file "/data/data/com.termux/files/home/storage/shared/.emacs")
|
||||
|
|
Reference in a new issue