;; -*- lexical-binding: t; -*- ;; TURN ON IN INIT FILE!!!!! ;; Make gc pauses faster by decreasing the threshold. (setq gc-cons-threshold (* 2 1000 1000)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; helper functions ;; Figure out if inside Termux (require 'subr-x) (setq kmn/is-termux (string-suffix-p "Android" (string-trim (shell-command-to-string "uname -a")))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; os specific config (when (eq system-type 'windows-nt) ; Fix resolution of ~ to match other client paths (setenv "HOME" "C:/Users/mcros/Nextcloud") (setq default-directory "C:/Users/mcros/Nextcloud") ; add executables to path ahead of them being used by extensions / emacs stuff (add-to-list 'exec-path "C:/Users/mcros/OneDrive/Programs/PortableApps/sqlite3") (add-to-list 'exec-path "C:/msys64/usr/bin/unzip.exe") ) (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") ;(setq user-emacs-directory "/data/data/com.termux/files/home/storage/shared/.emacs.d/") ;(setenv "HOME" "/data/data/com.termux/files/home/storage/shared/") ;(load user-init-file) ; Fix resolution of ~ to match other client paths (setenv "HOME" "/data/data/com.termux/files/home/") (setq default-directory "/data/data/com.termux/files/home/") ; Better fonts (setq org-src-fontify-natively t) ; Setup xdg-open as the default for opening files (except for the few we want emacs to open native) ; xdg-open is linked to termux-open by default ; if you need 'more' look into tmux-open and adjust accordingly ; (add-to-list 'org-file-apps '("\\.doc.*" . "open %s")) (setq org-file-apps '(;; default (auto-mode . emacs) ("\\.org" . emacs) ("\\.txt" . emacs) (".*" . "xdg-open %s"))) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; global config (load "~/.emacs.d.profiles/common/_global.el") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; compile bytecode for this profile (unless (was-compiled-p "~/.emacs.d.profiles/org") (byte-recompile-directory "~/.emacs.d.profiles/org" 0)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; additional packages (add-to-list 'package-selected-packages '(nov) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Load misc extensions (require 'org) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Update/add auto file handling (add-to-list 'auto-mode-alist '("\\.org\\'" . org-mode)) (add-to-list 'auto-mode-alist '("\\.epub\\'" . nov-mode)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; keyboard shortcuts (load "~/.emacs.d.profiles/org/config-org-keyboard.el") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Set some orgmode config (defun my/org_timestamp () (interactive) (org-insert-time-stamp (current-time) (current-time) "t") ) (org-defkey org-mode-map (kbd "C-c !") #'my/org_timestamp) (setq org-startup-folded t) (setq org-return-follows-link t) (setq org-startup-folded t) (setq org-support-shift-select t) (setq org-src-fontify-natively t) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; tags (load "~/.emacs.d.profiles/org/config-org-tags") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; files (setq org-default-notes-file "~/org/_index.org") ;; Collect all .org from my Org directory and subdirs (setq org-agenda-file-regexp "\\`[^.].*\\.org\\'") ; default value ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; agendas (load "~/.emacs.d.profiles/org/config-org-agendas.el") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; capture templates (load "~/.emacs.d.profiles/org/config-org-capture.el") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; org-habit (add-to-list 'org-modules 'org-habit) (setq org-habit-preceding-days 14) (setq org-habit-following-days 7) (setq org-agenda-span 1) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; notdeft search ; (add-to-list 'load-path "~/.emacs.d.profiles/org/notdeft") ; (add-to-list 'load-path "~/.emacs.d.profiles/org/notdeft/extras") ; (require 'notdeft-autoloads) ; (require 'notdeft-org9) ; (setq notdeft-allow-org-property-drawers t) ; (add-hook 'org-mode-hook 'notdeft-note-mode) ; (setq notdeft-extension "org") ; (setq notdeft-secondary-extensions '("md" "txt")) ; (setq notdeft-directories '("~/org" ; "~/org/blog" ; "~/org/culinary" ; "~/org/health" ; "~/org/photography" ; "~/org/reading" ; )) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ui tuning (diminish 'projectile-mode) (when (eq system-type 'windows-nt) (load "~/.emacs.d.profiles/org/config-org-desktop.el")) (when kmn/is-termux (load "~/.emacs.d.profiles/org/config-org-mobile.el")) (with-eval-after-load "persp-mode-autoload" (with-eval-after-load "org" (persp-def-auto-persp "KmN" :mode-name ".*org-mode.*" :noauto :dyn-env '(after-switch-to-buffer-functions ;; prevent recursion (persp-add-buffer-on-find-file nil) persp-add-buffer-on-after-change-major-mode) :hooks '(after-switch-to-buffer-functions) :switch 'window)))