135 lines
5.3 KiB
EmacsLisp
135 lines
5.3 KiB
EmacsLisp
;; -*- 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")
|
|
(setenv "PATH" (concat "C:\\msys64\\mingw64\\bin;" (getenv "PATH")))
|
|
)
|
|
(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 org-noter)
|
|
)
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
; 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")
|
|
(setq org-agenda-file-regexp "\\`[^.].*\\.org\\'")
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
; agendas
|
|
(setq org-agenda-sticky t)
|
|
(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)
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
; 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)))
|