From 0e6199ab8b6041c2bf2ab4cf56fba2ce19289243 Mon Sep 17 00:00:00 2001 From: cho Date: Sat, 27 Jan 2024 15:30:02 +0700 Subject: [PATCH] remove .config/doom rewrite doom config in .doom.d add doom termux .config --- .gitignore | 4 + home/default/.config/doom/config.el | 295 --------- .../doom/config/+centaur-tabs-config.el | 35 -- .../doom/config/+eisenhower-matrix-list.el | 18 - .../.config/doom/config/+eisenhower-matrix.el | 112 ---- .../doom/config/+org-capture-config.el | 105 ---- .../doom/config/+org-pomodoro-config.el | 50 -- .../.config/doom/config/+org-roam-config.el | 65 -- .../doom/config/+org-wild-notifier-config.el | 41 -- .../.config/doom/config/+termux-config.el | 13 - .../.config/doom/config/+todo-workspaces.el | 62 -- home/default/.doom.d/config.el | 576 ++++++++++++++++++ home/default/.doom.d/img/camcorder.jpeg | Bin 0 -> 2813 bytes .../default/{.config/doom => .doom.d}/init.el | 26 +- .../org-wild-notifier/org-wild-notifier.el | 0 .../{.config/doom => .doom.d}/packages.el | 47 +- .../themes/doom-tomorrow-night-b-theme.el | 125 ++++ .../themes/doom-tomorrow-night-r-theme.el | 0 termux/.doom.d/config.el | 543 +++++++++++++++++ termux/.doom.d/init.el | 201 ++++++ termux/.doom.d/packages.el | 54 ++ 21 files changed, 1539 insertions(+), 833 deletions(-) delete mode 100644 home/default/.config/doom/config.el delete mode 100644 home/default/.config/doom/config/+centaur-tabs-config.el delete mode 100644 home/default/.config/doom/config/+eisenhower-matrix-list.el delete mode 100644 home/default/.config/doom/config/+eisenhower-matrix.el delete mode 100644 home/default/.config/doom/config/+org-capture-config.el delete mode 100644 home/default/.config/doom/config/+org-pomodoro-config.el delete mode 100644 home/default/.config/doom/config/+org-roam-config.el delete mode 100644 home/default/.config/doom/config/+org-wild-notifier-config.el delete mode 100644 home/default/.config/doom/config/+termux-config.el delete mode 100644 home/default/.config/doom/config/+todo-workspaces.el create mode 100644 home/default/.doom.d/config.el create mode 100644 home/default/.doom.d/img/camcorder.jpeg rename home/default/{.config/doom => .doom.d}/init.el (92%) rename home/default/{.config/doom => .doom.d}/lisp/org-wild-notifier/org-wild-notifier.el (100%) rename home/default/{.config/doom => .doom.d}/packages.el (65%) create mode 100644 home/default/.doom.d/themes/doom-tomorrow-night-b-theme.el rename home/default/{.config/doom => .doom.d}/themes/doom-tomorrow-night-r-theme.el (100%) create mode 100644 termux/.doom.d/config.el create mode 100644 termux/.doom.d/init.el create mode 100644 termux/.doom.d/packages.el diff --git a/.gitignore b/.gitignore index d0a1fe6..4ef3864 100644 --- a/.gitignore +++ b/.gitignore @@ -10,7 +10,11 @@ home/default/.config/mpd/mpd.state home/default/.config/gtk-3.0/bookmarks home/default/.config/zsh/.zcompdump home/default/.local/bin/start-tasks +home/default/.local/sec home/default/.config/newsboat/urls home/default/.config/doom/bookmarks home/default/.config/doom/custom.el home/default/.config/doom/config/+priv-config.el +home/default/.config/sway/priv +home/default/.doom.d/bookmarks +home/default/.doom.d/custom.el diff --git a/home/default/.config/doom/config.el b/home/default/.config/doom/config.el deleted file mode 100644 index a0cbd0a..0000000 --- a/home/default/.config/doom/config.el +++ /dev/null @@ -1,295 +0,0 @@ -;;; $DOOMDIR/config.el -*- lexical-binding: t; -*- - -(load! "config/+priv-config") -;(load! "config/+centaur-tabs-config") ;; enable this config if :ui tabs -;(load! "config/+termux-config") ;; enable if termux - -(setq doom-font (font-spec :family "DejaVu Sans Mono" :size 12) - ;doom-variable-pitch-font (font-spec :family "IBM Plex Serif" :size 15)) - doom-variable-pitch-font (font-spec :family "Libertinus Serif" :size 15)) - ;doom-variable-pitch-font (font-spec :family "IBM Plex Sans" :size 15)) - -;;; LOOKS - - -;; favorite themes -(setq doom-theme - ;'doom-tomorrow-night - 'doom-tomorrow-night-r - ;'doom-one - ;'doom-wilmersdorf - ;'doom-monokai-ristretto - ;'doom-plain-dark - ;'doom-feather-dark - - ;; light themes - ;'doom-plain - ;'doom-flatwhite - ;'leuven - ) - -;; doom dashboard -;; remove useless dashboard info -(remove-hook '+doom-dashboard-functions #'doom-dashboard-widget-shortmenu) -(add-hook! '+doom-dashboard-mode-hook (hide-mode-line-mode 1) (hl-line-mode -1)) -(setq-hook! '+doom-dashboard-mode-hook evil-normal-state-cursor (list nil)) - -;; opacity -(set-frame-parameter (selected-frame) 'alpha-background 80) (add-to-list 'default-frame-alist '(alpha-background . 80)) - -;; enable variable-pitch-mode for texts -;(add-hook 'text-mode-hook -; (lambda () -; (variable-pitch-mode 1))) - -(after! org - (setq display-line-numbers-type nil - org-hide-emphasis-markers t - org-pretty-entities t - org-ellipsis "…" - org-image-actual-width 600)) -(setq display-line-numbers-type nil) - -;;; dont really use org-modern anymore but it might be useful for reference -;(use-package! org-modern -; :init -; ;(add-hook 'doom-post-init-hook (global-org-modern-mode)) -; :config -; (setq org-modern-priority-faces -; '((?A :inherit error -; :inverse-video t) -; (?B :inherit warning -; :inverse-video t) -; (?C :inherit success -; :inverse-video t) -; (?D :inherit error -; :inverse-video t) -; (?E :inherit warning -; :inverse-video t) -; (?F :inherit success -; :inverse-video t)))) - -;; show time -;(setq display-time-format "%F %I:%M:%S" -; display-time-interval 1 -; display-time-default-load-average nil) -;(add-hook 'doom-post-init-hook (display-time)) - -;; disable flyspell-mode -(after! flyspell - (setq-default spell-checking-enable-by-default nil)) - -;; disable gutter for org-mode -(after! git-gutter - (setq git-gutter:disabled-modes '(fundamental-mode image-mode pdf-view-mode org-mode))) - -;; diary / journal -(after! org-journal - (setq org-journal-dir "~/diary" - org-journal-date-prefix "#+TITLE: " - org-journal-time-prefix "+ " - org-journal-date-format "%a, %Y-%m-%d" - org-journal-file-format "%Y-%m-%d.org")) - -;; reading list -(use-package! org-books - :defer t - :config - (setq org-books-file "~/notebook/readinglist.org")) - -;;; org settings -(setq org-directory "~/notebook/" - bookmark-default-file "~/.config/doom/bookmarks") -(load! "config/+org-capture-config") -(load! "config/+org-roam-config") -(load! "config/+org-wild-notifier-config") -(load! "config/+org-pomodoro-config") - -(after! org - (setq org-log-done 'time - org-log-into-drawer t - ;About the 2 elisp lines below: If you want to send items without explicit - ;priorities to the bottom of the list you have to set org-default-priority to the - ;value of org-lowest-priority). I did this to make recognize that: PRIORITY=0 are - ;items without explicit priorities (not A, B or C, but just TODO) - org-lowest-priority ?E - org-default-priority ?E) - (defun jethro/org-archive-done-tasks () - "Archive all done tasks." - (interactive) - (org-map-entries 'org-archive-subtree "/DONE" 'file))) - - -;;; agenda, todos - -(setq org-agenda-files '("~/housekeeping/calendar.org" - "~/notebook/ag/" ;; todo.org and habits.org shorthand for agendas - "~/notebook/refile.org" - "~/notebook/notes/events/birthdays.org")) - -(after! org-agenda - (setq org-agenda-sticky t)) ; dont kill agendas - -; note that eisenhower matrix and agenda commands below and mappings for them -; assumes that you've tagged them correctly, basically: -; 1. :habits: :daily_tasks: -; - only purpose of this is for filtering them out -; - :habits: are for all recurring tasks -; - :daily_tasks: are for everyday tasks -; 2. :todo: -; - will be included in the eisenhower matrix -; priorities are #A, #B, #C, #D/not-set/other -; for urgency and importancy levels -; -; the view "Schedule/Eisenhower-List" is for both tracking scheduled tasks (:habits:) and -; :todo:'s that are not scheduled but categorized with a priority (e.g. [#A]) -; using this view should be enough for what i need - -(load! "config/+eisenhower-matrix-list") - -(load! "config/+eisenhower-matrix") - -(load! "config/+todo-workspaces") - -(defun agenda/hide-daily-tasks (&optional arg) - (interactive "P") - (let ((org-agenda-tag-filter-preset '("-daily_tasks"))) - (org-agenda arg "a"))) -(defun agenda/hide-habits (&optional arg) - (interactive "P") - (let ((org-agenda-tag-filter-preset '("-habits"))) - (org-agenda arg "a"))) -(defun agenda/hide-todos (&optional arg) - (interactive "P") - (let ((org-agenda-tag-filter-preset '("-todo"))) - (org-agenda arg "a"))) - -(map! :leader - (:prefix-map ("o" . "open") - (:prefix ("a" . "org agenda") - :desc "Eisenhower Matrix" "e" #'+eisenhower-matrix/make-eisenhower-matrix ;; classic eisenhower matrix - (:prefix-map ("h" . "hide filter agenda") - :desc "Agenda without daily tasks" "d" #'agenda/hide-daily-tasks - :desc "Agenda without habits" "h" #'agenda/hide-habits - :desc "Agenda without todo" "t" #'agenda/hide-todos - :desc "Just agenda" "a" #'org-agenda-list) ;; TODO reset keybind - (:prefix-map ("w" . "workspaces") - :desc "Eisenhower Matrix" "e" #'+eisenhower-matrix/make-eisenhower-matrix ;; classic eisenhower matrix - :desc "Schedule/Eisenhower-list/todo" "t" #'+todo-workspaces/make-todo-workspace - :desc "Schedule/Eisenhower-list" "s" #'+todo-workspaces/make-todo-workspace-min) - ))) - -(map! :leader - (:prefix-map ("o" . "open") - (:prefix-map ("w" . "workspaces") - :desc "Eisenhower Matrix" "e" #'+eisenhower-matrix/make-eisenhower-matrix ;; classic eisenhower matrix - :desc "Schedule/Eisenhower-list/todo" "t" #'+todo-workspaces/make-todo-workspace - :desc "Schedule/Eisenhower-list" "s" #'+todo-workspaces/make-todo-workspace-min) - )) - -;;; copying images into org -(after! org-download - (setq-default - org-download-method 'directory - ;; org-download-screenshot-method "grimshot save window %s" - ;; org-download-screenshot-method "wl-paste -t image/png > '%s'" - ;; below script is available on dotfiles: ../.local/bin - org-download-screenshot-method "convert-paste-png.sh '%s'" - org-download-abbreviate-filename-function 'concat - org-download-image-dir "~/notebook/images/org-download" - org-download-heading-lvl nil - org-download-timestamp "%Y%m%d-%H%M%S_") - (add-hook 'dired-mode-hook 'org-download-enable) - (map! :leader - (:prefix ("i". "insert") - :desc "insert image from clipboard" "Y" #'org-download-screenshot))) - -;;; reading epubs -(use-package! nov - :mode ("\\.epub\\'" . nov-mode) - :config - (setq nov-save-place-file (concat doom-cache-dir "nov-places") - ;nov-text-width t - ;nov-text-width 80 - ;nov-variable-pitch nil - ) - ;(advice-add 'nov-render-title :override #'ignore) - ;(defun +nov-mode-setup () - ;(variable-pitch-mode 1) - ;(hide-mode-line-mode 1) - ;(require 'visual-fill-column nil t) - ;(setq-local visual-fill-column-center-text t) - ;(setq-local visual-fill-column-width 91) - ;) - ;(add-hook 'nov-mode-hook #'+nov-mode-setup) - (add-hook 'nov-mode-hook 'visual-line-mode) - (add-hook 'nov-mode-hook 'variable-pitch-mode) - ;(add-hook 'nov-mode-hook 'visual-fill-column-mode) - ) - -;;; org-publish (wip) -(setq org-publish-use-timestamps-flag nil - org-export-with-broken-links t - org-html-link-org-files-as-html t - org-html-link-use-abs-url t - org-html-validation-link nil ;; Don't show validation link - ;org-html-head-include-scripts nil ;; Use our own scripts - ;org-html-head-include-default-style nil ;; Use our own styles - ;org-html-head "" - org-html-head "" - org-publish-project-alist - (list - (list "org-site:main" - :recursive t - :base-directory "~/notebook/blog/" - :publishing-directory "~/output/public" - :publishing-function 'org-html-publish-to-html - :with-author nil - :with-creator t - :with-toc nil - :html-link-use-abs-url t - :exclude "default.org" - :section-numbers nil - :with-timestamps nil) - (list "org-site:assets" - :base-directory "~/notebook/blog/" - :base-extension "css\\|js\\|png\\|jpg\\|gif\\|pdf\\|mp3\\|ogg\\|woff2\\|ttf" - :publishing-directory "~/output/public" - :recursive t - :publishing-function 'org-publish-attachment))) - -(defvar dw/site-url (if (string-equal (getenv "CI") "true") - "https://example.org" - "http://localhost:8080") - "The URL for the site being generated.") - -(setq webfeeder-title-function 'webfeeder-title-libxml - webfeeder-date-function 'webfeeder-date-libxml) - -(defun my/org-publish () - "publish all including rss" - (interactive) - (start-process-shell-command "delete public html directory" nil "rm -r ~/output/public/*") - (org-publish-all t) - (webfeeder-build "rss.xml" - "~/output/public" - dw/site-url - (let ((default-directory (expand-file-name "~/output/public/"))) - (directory-files-recursively default-directory - ".*\\.html$")) - :builder 'webfeeder-make-rss - :title "Rss" - :description "Rss" - :author "John Doe") - (message "Build complete")) -(defun my/http-serve-blog () - (interactive) - (httpd-serve-directory "~/output/public") - (start-process-shell-command "open browser" nil "$BROWSER http://localhost:8080") - ;(start-process-shell-command "Start http server at public html directory" nil "http-server ~/output/public/") - ) -(defun my/blog-refresh () - (interactive) - (my/org-publish) - (httpd-stop) - (my/http-serve-blog)) diff --git a/home/default/.config/doom/config/+centaur-tabs-config.el b/home/default/.config/doom/config/+centaur-tabs-config.el deleted file mode 100644 index 1c933ad..0000000 --- a/home/default/.config/doom/config/+centaur-tabs-config.el +++ /dev/null @@ -1,35 +0,0 @@ -;;; ../../git/cho@gitea.bubbletea.dev/dotfiles/home/default/.config/doom/centaur-tabs-config.el -*- lexical-binding: t; -*- - -(use-package! centaur-tabs - :hook (doom-first-file . centaur-tabs-mode) - :init - (setq centaur-tabs-set-icons t - centaur-tabs-gray-out-icons 'buffer - ;centaur-tabs-set-bar 'left - centaur-tabs-set-bar 'over - ;centaur-tabs-style "bar" - centaur-tabs-set-modified-marker t - centaur-tabs-close-button "✕" - centaur-tabs-modified-marker "•" - centaur-tabs-icon-type 'nerd-icons - ;; Scrolling (with the mouse wheel) past the end of the tab list - ;; replaces the tab list with that of another Doom workspace. This - ;; prevents that. - centaur-tabs-cycle-scope 'tabs) - (map! :leader - :desc "Toggle tabs local display" "t c" #'centaur-tabs-local-mode - :desc "Toggle tabs globally" "t C" #'centaur-tabs-mode - :desc "Kill this tab" "t d" #'kill-this-buffer - :desc "Create a tab" "t n" #'centaur-tabs--create-new-tab) - ;(evil-define-key 'normal centaur-tabs-mode-map (kbd "g C-t") 'centaur-tabs--create-new-tab - ; (kbd "g C-d") 'kill-this-buffer - ; (kbd "g C-c") 'centaur-tabs-mode - ; (kbd "g C-f") 'centaur-tabs-local-mode) - :config - ;(add-hook! '(+doom-dashboard-mode-hook +popup-buffer-mode-hook) - (add-hook! '(+doom-dashboard-mode-hook +popup-buffer-mode-hook org-agenda-mode-hook) - (defun +tabs-disable-centaur-tabs-mode-maybe-h () - "Disable `centaur-tabs-mode' in current buffer." - (when (centaur-tabs-mode-on-p) - (centaur-tabs-local-mode)))) - ) diff --git a/home/default/.config/doom/config/+eisenhower-matrix-list.el b/home/default/.config/doom/config/+eisenhower-matrix-list.el deleted file mode 100644 index 07b3aa4..0000000 --- a/home/default/.config/doom/config/+eisenhower-matrix-list.el +++ /dev/null @@ -1,18 +0,0 @@ -;;; ../../git/cho@gitea.bubbletea.dev/dotfiles/home/default/.config/doom/+eisenhower-matrix-list.el -*- lexical-binding: t; -*- - -(after! org-agenda - (add-to-list 'org-agenda-custom-commands - '("x" "Eisenhower Matrix (list)" - ((tags-todo - "+PRIORITY=\"A\"-habits+todo" - ((org-agenda-overriding-header "Urgent and important"))) - (tags-todo - "+PRIORITY=\"B\"-habits+todo" - ((org-agenda-overriding-header "Important but not urgent"))) - (tags-todo - "+PRIORITY=\"C\"-habits+todo" - ((org-agenda-overriding-header "Urgent but not important"))) - (tags-todo - "+PRIORITY=0-PRIORITY=\"A\"-PRIORITY=\"B\"-PRIORITY=\"C\"-habits+todo" - ((org-agenda-overriding-header "Neither important nor urgent")))) - nil))) diff --git a/home/default/.config/doom/config/+eisenhower-matrix.el b/home/default/.config/doom/config/+eisenhower-matrix.el deleted file mode 100644 index ff227ef..0000000 --- a/home/default/.config/doom/config/+eisenhower-matrix.el +++ /dev/null @@ -1,112 +0,0 @@ -;;; ../../git/cho@gitea.bubbletea.dev/dotfiles/home/default/.config/doom/eisenhower-matrix.el -*- lexical-binding: t; -*- - -(after! org-agenda -;;; begin eisenhower matrix -(add-to-list 'org-agenda-custom-commands - '("1" "Eisenhower matrix" - ((tags-todo - "+PRIORITY=\"A\"-habits+todo" - ((org-agenda-overriding-header "Urgent and important")))) - nil)) - -(add-to-list 'org-agenda-custom-commands - '("2" "Eisenhower matrix" - ((tags-todo - "+PRIORITY=\"B\"-habits+todo" - ((org-agenda-overriding-header "Important but not urgent")))) - nil)) - -(add-to-list 'org-agenda-custom-commands - '("3" "Eisenhower matrix" - ((tags-todo - "+PRIORITY=\"C\"-habits+todo" - ((org-agenda-overriding-header "Urgent but not important")))) - nil)) - -(add-to-list 'org-agenda-custom-commands - '("4" "Eisenhower matrix" - ((tags-todo - "+PRIORITY=0-PRIORITY=\"A\"-PRIORITY=\"B\"-PRIORITY=\"C\"-habits+todo" - ;"+PRIORITY=0+PRIORITY=\"D\"-habits+todo" - ((org-agenda-overriding-header "Neither important nor urgent")))) - nil)) - - -;----------------------------------------------------------- - -;(org-toggle-sticky-agenda) ;generate differens agendas buffers in separated windows -;(setq org-agenda-sticky t) ;generate differens agendas buffers in separated windows - -(defun +eisenhower-matrix/agenda-1 () - (interactive) - (org-agenda nil "1")) - -;(global-set-key (kbd "C-c C-x C-d") '+eisenhower-matrix/agenda-1) - - -(defun +eisenhower-matrix/agenda-2 () - (interactive) - (org-agenda nil "2")) - -;(global-set-key (kbd "C-c C-x C-l") '+eisenhower-matrix/agenda-2) - -(defun +eisenhower-matrix/agenda-3 () - (interactive) - (org-agenda nil "3")) - -;(global-set-key (kbd "C-c C-x C-r") '+eisenhower-matrix/agenda-3) - - -(defun +eisenhower-matrix/agenda-4 () - (interactive) - (org-agenda nil "4")) - -;(global-set-key (kbd "C-c C-x C-p") '+eisenhower-matrix/agenda-4) - - -(defun split-4-ways () - (interactive) - (delete-other-windows) - (split-window-right) - (split-window-below) - (windmove-right) - (split-window-below) - (windmove-left)) -;(global-set-key (kbd "C-c C-x C-u") 'split-4-ways) - -(defun +eisenhower-matrix/redo-all-agenda-buffers () - (interactive) - (dolist (buffer (buffer-list)) - (with-current-buffer buffer - (when (derived-mode-p 'org-agenda-mode) - (org-agenda-redo t))))) - -(defun +eisenhower-matrix/make-agendas () - (interactive) - (+eisenhower-matrix/redo-all-agenda-buffers) - (+eisenhower-matrix/agenda-1) - (hide-mode-line-mode) - (+eisenhower-matrix/agenda-2) - (hide-mode-line-mode) - (+eisenhower-matrix/agenda-3) - (hide-mode-line-mode) - (+eisenhower-matrix/agenda-4) - (hide-mode-line-mode) - ) -;(global-set-key (kbd "C-c C-x C-t") '+eisenhower-matrix/make-agendas) - -(defun +eisenhower-matrix/make-eisenhower-matrix () - (interactive) - (+eisenhower-matrix/make-agendas) ;it opens: *Org Agenda(1)*, *Org Agenda(2)*, *Org Agenda(3)*, *Org Agenda(4)* - (split-4-ways) ;make the 4 quadrant windows - (switch-to-buffer "*Org Agenda(1)*") ;put the Agenda(1) in the left, up quadrant - (windmove-right) - (switch-to-buffer "*Org Agenda(2)*") ;put the Agenda(2) in the right, up quadrant - (windmove-down) - (switch-to-buffer "*Org Agenda(4)*") ;put the Agenda(3) in the left, down quadrant - (windmove-left) - (switch-to-buffer "*Org Agenda(3)*") ;put the Agenda(4) in the right, down quadrant - ) - -;;; end eisenhower matrix -) diff --git a/home/default/.config/doom/config/+org-capture-config.el b/home/default/.config/doom/config/+org-capture-config.el deleted file mode 100644 index b1852dd..0000000 --- a/home/default/.config/doom/config/+org-capture-config.el +++ /dev/null @@ -1,105 +0,0 @@ -;;; ../../git/cho@gitea.bubbletea.dev/dotfiles/home/default/.config/doom/org-capture-config.el -*- lexical-binding: t; -*- - -(after! org - - ;; examples: file:~/.emacs.d/modules/lang/org/config.el - ;; file:~/.emacs.d/modules/lang/org/autoload/org-capture.el - - ;; set locations personal and centralized files - - (defvar +org-capture-refile-file "ag/refile.org") - (defun +org-capture-refile-file () - (expand-file-name +org-capture-refile-file org-directory)) - (defvar +org-capture-todo-custom-file "ag/todo.org") - (defun +org-capture-todo-custom-file () - (expand-file-name +org-capture-todo-custom-file org-directory)) - (defvar +org-capture-custom-projects-file "ag/projects.org") - (defun +org-capture-custom-central-project-todo-file () - "TODO" - (+org--capture-central-file - +org-capture-custom-projects-file (projectile-project-name))) - (defun +org-capture-custom-central-project-notes-file () - "TODO" - (+org--capture-central-file - +org-capture-custom-projects-file (projectile-project-name))) - (defun +org-capture-custom-central-project-changelog-file () - "TODO" - (+org--capture-central-file - +org-capture-custom-projects-file (projectile-project-name))) - - ;(add-to-list 'org-capture-templates - ; '(("s" "Slipbox" entry (file "braindump/org/inbox.org") - ; "* %?\n") - ; ("t" "Personal todo" entry - ; (file+headline +org-capture-todo-file "Inbox") - ; "* [ ] %?\n%i\n%a" :prepend t) - ; ) - - (setq org-capture-templates - '(("t" "Personal todo" entry - (file+headline +org-capture-todo-custom-file "todo") - "* TODO %?\n%i\n%a" :prepend t) - ("T" "Personal todo (no link)" entry - (file+headline +org-capture-todo-custom-file "todo") - "* TODO %?\n" :prepend t) - - ;;; i never use this - ;("n" "Personal notes" entry - ;(file+headline +org-capture-notes-file "Inbox") - ;"* %u %?\n%i\n%a" :prepend t) - ("r" "Personal refile file" entry - (file +org-capture-refile-file) - "* %u %?\n%i\n%a" :prepend t) - - ;; using org-journal atm, i will likely never use this - ;("j" "Journal" entry - ;(file+olp+datetree +org-capture-journal-file) - ;"* %U %?\n%i\n%a" :prepend t) - - ;; Will use {project-root}/{todo,notes,changelog}.org, unless a - ;; {todo,notes,changelog}.org file is found in a parent directory. - ;; Uses the basename from `+org-capture-todo-file', - ;; `+org-capture-changelog-file' and `+org-capture-notes-file'. - ("p" "Templates for projects") - ("pt" "Project-local todo" entry ; {project-root}/todo.org - (file+headline +org-capture-project-todo-file "Inbox") - "* TODO %?\n%i\n%a" :prepend t) - ("pn" "Project-local notes" entry ; {project-root}/notes.org - (file+headline +org-capture-project-notes-file "Inbox") - "* %U %?\n%i\n%a" :prepend t) - ("pc" "Project-local changelog" entry ; {project-root}/changelog.org - (file+headline +org-capture-project-changelog-file "Unreleased") - "* %U %?\n%i\n%a" :prepend t) - - ;; reference for function: [[file:~/.emacs.d/modules/lang/org/autoload/org-capture.el::defun +org--capture-central-file (file project]] - ;; Will use {org-directory}/{+org-capture-projects-file} and store - ;; these under {ProjectName}/{Tasks,Notes,Changelog} headings. They - ;; support `:parents' to specify what headings to put them under, e.g. - ;; :parents ("Projects") - ("o" "Centralized templates for projects") - ("ot" "Project todo" entry - (function +org-capture-custom-central-project-todo-file) - "* TODO %?\n %i\n %a" - :heading "Tasks" - :prepend nil) - ("on" "Project notes" entry - (function +org-capture-custom-central-project-notes-file) - "* %U %?\n %i\n %a" - :heading "Notes" - :prepend t) - ("oc" "Project changelog" entry - (function +org-capture-custom-central-project-changelog-file) - "* %U %?\n %i\n %a" - :heading "Changelog" - :prepend t) - - ;; org books / general logging - ("b" "Book log / General log (org)" item (function org-books-visit-book-log) - "- %U %?" :prepend t) - - ;; zettelkasten - ("s" "Slipbox" entry (file "roam/inbox.org") - "* %U %?\n") - ("S" "Slipbox link" entry (file "roam/inbox.org") - "* %U %?\n %i\n %a"))) -) diff --git a/home/default/.config/doom/config/+org-pomodoro-config.el b/home/default/.config/doom/config/+org-pomodoro-config.el deleted file mode 100644 index 25ce56b..0000000 --- a/home/default/.config/doom/config/+org-pomodoro-config.el +++ /dev/null @@ -1,50 +0,0 @@ -;;; ../../git/cho@gitea.bubbletea.dev/dotfiles/home/default/.config/doom/+org-pomodoro-config.el -*- lexical-binding: t; -*- - -(after! org-pomodoro - (setq org-pomodoro-ask-upon-killing t - org-pomodoro-keep-killed-pomodoro-time t - org-pomodoro-length 25 - org-pomodoro-manual-break t) - - (defun +org-pomodoro/3-5 () - "Set Pomodoro intervals to 3-5" - (interactive) - (setq org-pomodoro-length 3) - (setq org-pomodoro-short-break-length 5) - (message "Pomodoro set to 3-5" (buffer-name))) - (defun +org-pomodoro/5-5 () - "Set Pomodoro intervals to 5-5" - (interactive) - (setq org-pomodoro-length 5) - (setq org-pomodoro-short-break-length 5) - (message "Pomodoro set to 3-5" (buffer-name))) - (defun +org-pomodoro/10-5 () - "Set Pomodoro intervals to 10-5" - (interactive) - (setq org-pomodoro-length 10) - (setq org-pomodoro-short-break-length 5) - (message "Pomodoro set to 10-5" (buffer-name))) - (defun +org-pomodoro/15-5 () - "Set Pomodoro intervals to 15-5" - (interactive) - (setq org-pomodoro-length 15) - (setq org-pomodoro-short-break-length 5) - (message "Pomodoro set to 15-5" (buffer-name))) - (defun +org-pomodoro/25-5 () - "Set Pomodoro intervals to 25-5" - (interactive) - (setq org-pomodoro-length 25) - (setq org-pomodoro-short-break-length 5) - (message "Pomodoro set to 25-5" (buffer-name))) - (defun +org-pomodoro/30-10 () - "Set Pomodoro intervals to 30-10" - (interactive) - (setq org-pomodoro-length 30) - (setq org-pomodoro-short-break-length 10) - (message "Pomodoro set to 30-10" (buffer-name))) - (defun +org-pomodoro/50-10 () - "Set Pomodoro intervals to 50-10" - (interactive) - (setq org-pomodoro-length 50) - (setq org-pomodoro-short-break-length 10) - (message "Pomodoro set to 50-10" (buffer-name)))) diff --git a/home/default/.config/doom/config/+org-roam-config.el b/home/default/.config/doom/config/+org-roam-config.el deleted file mode 100644 index 5e037b6..0000000 --- a/home/default/.config/doom/config/+org-roam-config.el +++ /dev/null @@ -1,65 +0,0 @@ -;;; ../../git/cho@gitea.bubbletea.dev/dotfiles/home/default/.config/doom/+org-roam-templates.el -*- lexical-binding: t; -*- - -;; org-roam configurations -(use-package! org-roam - :init - :custom - (org-roam-directory "~/notebook/roam/" ) - (org-roam-dailies-capture-templates - '(("d" "default" entry "* %<%I:%M %p>: %?" - :if-new (file+head "%<%Y-%m-%d>.org" "#+title: %<%Y-%m-%d>\n"))))) - -;; looks -;(cl-defmethod org-roam-node-type ((node org-roam-node)) -; "Return the TYPE of NODE." -; (condition-case nil -; (file-name-nondirectory -; (directory-file-name -; (file-name-directory -; (file-relative-name (org-roam-node-file node) org-roam-directory)))) -; (error ""))) - -;(setq org-roam-node-display-template -; (concat "${type:15} ${title:*} " (propertize "${tags:10}" 'face 'org-tag))) - -(setq org-roam-capture-templates - '(("d" "default" plain "%?" - :target (file+head "%<%Y%m%d%H%M%S>-${slug}.org" - "#+title: ${title}\n") - :unnarrowed t) - ;; main things - ("l" "literature" plain "%?" - :if-new - (file+head "literature/%<%Y%m%d%H%M%S>-${title}.org" "#+title: ${title}\n") - :immediate-finish t - :unnarrowed t) - ("p" "permanent" plain "%?" - :if-new - (file+head "permanent/%<%Y%m%d%H%M%S>-${title}.org" "#+title: ${title}\n") - :immediate-finish t - :unnarrowed t) - - ;; now using inbox.org via org-capture - ;("f" "fleeting" plain "%?" - ; :if-new - ; (file+head "fleeting/%<%Y%m%d%H%M%S>-${title}.org" "#+title: ${title}\n") - ; :immediate-finish t - ; :unnarrowed t) - - ;; other categories - ;("r" "reference" plain "%?" - ; :if-new - ; (file+head "reference/%<%Y%m%d%H%M%S>-${title}.org" "#+title: ${title}\n") - ; :immediate-finish t - ; :unnarrowed t) - ;("a" "article" plain "%?" - ; :if-new - ; (file+head "articles/%<%Y%m%d%H%M%S>-${title}.org" "#+title: ${title}\n#+filetags: :article:\n") - ; :immediate-finish t - ; :unnarrowed t) - - ("s" "school" plain "%?" - :if-new - (file+head "school/%<%Y%m%d%H%M%S>-${title}.org" "#+title: ${title}\n") - :immediate-finish t - :unnarrowed t))) diff --git a/home/default/.config/doom/config/+org-wild-notifier-config.el b/home/default/.config/doom/config/+org-wild-notifier-config.el deleted file mode 100644 index ebc5f6f..0000000 --- a/home/default/.config/doom/config/+org-wild-notifier-config.el +++ /dev/null @@ -1,41 +0,0 @@ -;;; ../../git/cho@gitea.bubbletea.dev/dotfiles/home/default/.config/doom/+org-wild-notifier-config.el -*- lexical-binding: t; -*- - - ;; NOTIFICATIONS CONFIGURATION REFERENCE - ;;; note : it's probably better to add this after - ;;; setting org-agenda-files. - ;;; use this under (!after org ... - ;;; else it would't work - ; - ;(use-package! org-wild-notifier - ; :defer t - ; :init - ; (add-hook 'doom-post-init-hook (org-wild-notifier-mode)) - ; :config - ; (setq alert-default-style 'libnotify) - ;;; set to libnotify or notifications or osx-notifier - ; (setq org-wild-notifier-alert-time '(60 30)) - ;;; alert time defaults to '(10) if not set - ; (setq org-wild-notifier-keyword-whitelist nil)) - ; (setq org-wild-notifier-keyword-blacklist '("DONE")) - - (use-package! org-wild-notifier - :init - (add-hook 'doom-post-init-hook (org-wild-notifier-mode)) - :config - (require 'org-duration) - ;(setq alert-default-style 'libnotify) - (setq org-wild-notifier-alert-time '(10 0)) - (setq org-wild-notifier-keyword-whitelist nil) - (setq org-wild-notifier-keyword-blacklist '("DONE")) - (alert-add-rule :category "org-wild-notifier" - :style (cond (alert-libnotify-command - 'libnotify) - (alert-default-style)))) - -;;; play audio for for alerts -(defun +org-wild-notifier/play-sound () (interactive) (start-process-shell-command "org-wild-notifier-audio-player" nil "mpg123 ~/resources/sounds/alerts/metal-gear-item-drop.mp3")) (defadvice org-wild-notifier--notify (after org-wild-notifier--play-sound-after-notify activate) (+org-wild-notifier/play-sound)) - -;;; for testing notifications -(defun org-wild-notifier-alert-test () - (interactive) - (alert "test" :category 'org-wild-notifier)) diff --git a/home/default/.config/doom/config/+termux-config.el b/home/default/.config/doom/config/+termux-config.el deleted file mode 100644 index eb1436b..0000000 --- a/home/default/.config/doom/config/+termux-config.el +++ /dev/null @@ -1,13 +0,0 @@ -;;; ../../git/cho@gitea.bubbletea.dev/dotfiles/home/default/.config/doom/+termux-config.el -*- lexical-binding: t; -*- - -;; termux specific -(setq browse-url-browser-function 'browse-url-generic - browse-url-generic-program "termux-open" - alert-default-style 'termux - org-pomodoro-audio-player nil) ;; VERY LOUD! DISABLE. - -(after! org-pomodoro - (alert-add-rule :category "org-pomodoro" - :style (cond (alert-termux-command - 'termux) - (alert-default-style)))) diff --git a/home/default/.config/doom/config/+todo-workspaces.el b/home/default/.config/doom/config/+todo-workspaces.el deleted file mode 100644 index 20eb330..0000000 --- a/home/default/.config/doom/config/+todo-workspaces.el +++ /dev/null @@ -1,62 +0,0 @@ -;;; +todo-workspaces.el --- Description -*- lexical-binding: t; -*- -(after! org -(defun +todo-workspaces/agenda1 () - ;(interactive) - (org-agenda nil "a") - ) -(defun +todo-workspaces/agenda2 () - (interactive) - (org-agenda nil "x")) -(defun +todo-workspaces/make-todo-agendas () - ;(interactive) - (+todo-workspaces/agenda1) - (hide-mode-line-mode) - (+todo-workspaces/agenda2) - (hide-mode-line-mode)) -(defun +todo-workspaces/split-todo-workspace () - ;(interactive) - (delete-other-windows) - (split-window-below) - (windmove-down) - (split-window-right) - (windmove-up) - ) -(defun +todo-workspaces/split-todo-workspace-min () - ;(interactive) - (delete-other-windows) - (split-window-below) - ) - - -(defun +todo-workspaces/redo-all-agenda-buffers () - (interactive) - (dolist (buffer (buffer-list)) - (with-current-buffer buffer - (when (derived-mode-p 'org-agenda-mode) - (org-agenda-redo t))))) - -(defun +todo-workspaces/make-todo-workspace () - (interactive) - ;(+todo-workspaces/redo-all-agenda-buffers) - (+todo-workspaces/make-todo-agendas) - (+todo-workspaces/split-todo-workspace) - (switch-to-buffer "*Org Agenda(a)*") - (windmove-down) - (switch-to-buffer "*Org Agenda(x)*") - (windmove-right) - (find-file "~/notebook/ag/todo.org") -) - -(defun +todo-workspaces/make-todo-workspace-min () - (interactive) - ;(+todo-workspaces/redo-all-agenda-buffers) - (+todo-workspaces/make-todo-agendas) - (+todo-workspaces/split-todo-workspace-min) - (switch-to-buffer "*Org Agenda(a)*") - (windmove-down) - (switch-to-buffer "*Org Agenda(x)*") -) - -(provide '+todo-workspaces) -) -;;; +todo-workspaces.el ends here diff --git a/home/default/.doom.d/config.el b/home/default/.doom.d/config.el new file mode 100644 index 0000000..c4245fb --- /dev/null +++ b/home/default/.doom.d/config.el @@ -0,0 +1,576 @@ +;;; $DOOMDIR/config.el -*- lexical-binding: t; -*- + +;; Place your private configuration here! Remember, you do not need to run 'doom +;; sync' after modifying this file! + + +;; Some functionality uses this to identify you, e.g. GPG configuration, email +;; clients, file templates and snippets. It is optional. +;; (setq user-full-name "John Doe" +;; user-mail-address "john@doe.com") + +;; Doom exposes five (optional) variables for controlling fonts in Doom: +;; +;; - `doom-font' -- the primary font to use +;; - `doom-variable-pitch-font' -- a non-monospace font (where applicable) +;; - `doom-big-font' -- used for `doom-big-font-mode'; use this for +;; presentations or streaming. +;; - `doom-symbol-font' -- for symbols +;; - `doom-serif-font' -- for the `fixed-pitch-serif' face +;; +;; See 'C-h v doom-font' for documentation and more examples of what they +;; accept. For example: +;; +;;(setq doom-font (font-spec :family "Fira Code" :size 12 :weight 'semi-light) +;; doom-variable-pitch-font (font-spec :family "Fira Sans" :size 13)) +;; +;; If you or Emacs can't find your font, use 'M-x describe-font' to look them +;; up, `M-x eval-region' to execute elisp code, and 'M-x doom/reload-font' to +;; refresh your font settings. If Emacs still can't find your font, it likely +;; wasn't installed correctly. Font issues are rarely Doom issues! + +;; There are two ways to load a theme. Both assume the theme is installed and +;; available. You can either set `doom-theme' or manually load a theme with the +;; `load-theme' function. This is the default: +;(setq doom-theme 'doom-one) + +;; This determines the style of line numbers in effect. If set to `nil', line +;; numbers are disabled. For relative line numbers, set this to `relative'. +;(setq display-line-numbers-type t) + +;; If you use `org' and don't want your org files in the default location below, +;; change `org-directory'. It must be set before org loads! +;(setq org-directory "~/org/") + + +;; Whenever you reconfigure a package, make sure to wrap your config in an +;; `after!' block, otherwise Doom's defaults may override your settings. E.g. +;; +;; (after! PACKAGE +;; (setq x y)) +;; +;; The exceptions to this rule: +;; +;; - Setting file/directory variables (like `org-directory') +;; - Setting variables which explicitly tell you to set them before their +;; package is loaded (see 'C-h v VARIABLE' to look up their documentation). +;; - Setting doom variables (which start with 'doom-' or '+'). +;; +;; Here are some additional functions/macros that will help you configure Doom. +;; +;; - `load!' for loading external *.el files relative to this one +;; - `use-package!' for configuring packages +;; - `after!' for running code after a package has loaded +;; - `add-load-path!' for adding directories to the `load-path', relative to +;; this file. Emacs searches the `load-path' when you load packages with +;; `require' or `use-package'. +;; - `map!' for binding new keys +;; +;; To get information about any of these functions/macros, move the cursor over +;; the highlighted symbol at press 'K' (non-evil users must press 'C-c c k'). +;; This will open documentation for it, including demos of how they are used. +;; Alternatively, use `C-h o' to look up a symbol (functions, variables, faces, +;; etc). +;; +;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how +;; they are implemented. + +(setq doom-font (font-spec :family "DejaVu Sans Mono" :size 12) + doom-variable-pitch-font (font-spec :family "Libertinus Serif" :size 15)) + +;; theme +; my eyes won't accept anything else than tomorrow night +(setq doom-theme 'doom-tomorrow-night ) +;(setq doom-theme 'doom-meltbus ) ; depressed, muted colors. +;(setq doom-theme 'doom-plain-dark ) ; themes for writing +;(setq doom-theme 'doom-plain ) + +;; splash +(setq fancy-splash-image (expand-file-name "img/camcorder.jpeg" doom-user-dir) + +doom-dashboard-banner-padding '(0 . 0)) + +;; doom dashboard +;; remove useless dashboard info +(remove-hook '+doom-dashboard-functions #'doom-dashboard-widget-shortmenu) +(remove-hook '+doom-dashboard-functions #'doom-dashboard-widget-footer) +(add-hook! '+doom-dashboard-mode-hook (hide-mode-line-mode 1) (hl-line-mode -1)) +(setq-hook! '+doom-dashboard-mode-hook evil-normal-state-cursor (list nil)) + +;; opacity +;(set-frame-parameter (selected-frame) 'alpha-background 90) (add-to-list 'default-frame-alist '(alpha-background . 90)) + +(after! org + (setq display-line-numbers-type nil + org-hide-emphasis-markers t + org-pretty-entities t + org-ellipsis "…" + org-image-actual-width 600)) +(setq display-line-numbers-type nil) + +;; disable flyspell-mode +(after! flyspell + (setq-default spell-checking-enable-by-default nil)) + +;; disable gutter for org-mode +(after! git-gutter + (setq git-gutter:disabled-modes '(fundamental-mode image-mode pdf-view-mode org-mode))) + +(after! org-journal + (setq org-journal-dir "~/diary" + org-journal-date-prefix "#+TITLE: " + org-journal-time-prefix "+ " + org-journal-date-format "%a, %Y-%m-%d" + org-journal-file-format "%Y-%m-%d.org")) + +(use-package! org-books + :defer t + :config + (setq org-books-file "~/notebook/readinglist.org")) + +(after! org + (setq org-log-done 'time + org-log-into-drawer t + ;About the 2 elisp lines below: If you want to send items without explicit + ;priorities to the bottom of the list you have to set org-default-priority to the + ;value of org-lowest-priority). I did this to make recognize that: PRIORITY=0 are + ;items without explicit priorities (not A, B or C, but just TODO) + org-lowest-priority ?E + org-default-priority ?E) + (defun jethro/org-archive-done-tasks () + "Archive all done tasks." + (interactive) + (org-map-entries 'org-archive-subtree "/DONE" 'file))) + +(setq org-directory "~/notebook/" + bookmark-default-file "~/.doom.d/bookmarks") + +(setq org-agenda-files '("~/housekeeping/calendar.org" + "~/notebook/ag/habits.org" + "~/notebook/ag/todo.org" + "~/notebook/ag/projects.org" + "~/notebook/ag/refile.org" + "~/notebook/ag/pomodoro.org" + "~/notebook/ag/events/birthdays.org" + "~/notebook/refile.org" + )) + +(after! org-agenda + (setq org-agenda-sticky t)) ; dont kill agendas + +(use-package! org-super-agenda + :after org-agenda + :init + (setq org-agenda-skip-scheduled-if-done t + org-agenda-skip-deadline-if-done t + org-agenda-include-deadlines t + org-agenda-block-separator nil + org-agenda-compact-blocks t + org-agenda-start-day nil ;; i.e. today + org-agenda-span 1 + org-agenda-start-on-weekday nil) + (add-to-list 'org-agenda-custom-commands + '("c" "Super view" + ((agenda "" ((org-agenda-overriding-header "") + (org-super-agenda-groups + '((:name "Soon" + :deadline future + :order 3) + (:name "Today" + :time-grid t + :date today + :order 2) + (:name "Due today" + :deadline today + :scheduled today + :order 2) + (:name "Overdue" + :deadline past + :scheduled past + :order 1))))) + (alltodo "" ((org-agenda-overriding-header "") + (org-super-agenda-groups + '(;(:name "Future" + ; :scheduled future) + (:discard (:anything t))))))))) + :config + (org-super-agenda-mode)) + +(setq org-agenda-prefix-format '( + (agenda . " %?-12t% s") + (todo . " %i %-12:c") + (tags . " %i %-12:c") + (search . " %i %-12:c"))) + +;; hide tags +(after! org-agenda + (setq org-agenda-hide-tags-regexp + (concat org-agenda-hide-tags-regexp "\\|sometag"))) + +;; org-pomodoro + (setq org-pomodoro-ask-upon-killing t + org-pomodoro-keep-killed-pomodoro-time t + org-pomodoro-length 25 + org-pomodoro-manual-break t) + + (defun +org-pomodoro/3-5 () + "Set Pomodoro intervals to 3-5" + (interactive) + (setq org-pomodoro-length 3) + (setq org-pomodoro-short-break-length 5) + (message "Pomodoro set to 3-5" (buffer-name))) + (defun +org-pomodoro/5-5 () + "Set Pomodoro intervals to 5-5" + (interactive) + (setq org-pomodoro-length 5) + (setq org-pomodoro-short-break-length 5) + (message "Pomodoro set to 3-5" (buffer-name))) + (defun +org-pomodoro/10-5 () + "Set Pomodoro intervals to 10-5" + (interactive) + (setq org-pomodoro-length 10) + (setq org-pomodoro-short-break-length 5) + (message "Pomodoro set to 10-5" (buffer-name))) + (defun +org-pomodoro/15-5 () + "Set Pomodoro intervals to 15-5" + (interactive) + (setq org-pomodoro-length 15) + (setq org-pomodoro-short-break-length 5) + (message "Pomodoro set to 15-5" (buffer-name))) + (defun +org-pomodoro/25-5 () + "Set Pomodoro intervals to 25-5" + (interactive) + (setq org-pomodoro-length 25) + (setq org-pomodoro-short-break-length 5) + (message "Pomodoro set to 25-5" (buffer-name))) + (defun +org-pomodoro/30-10 () + "Set Pomodoro intervals to 30-10" + (interactive) + (setq org-pomodoro-length 30) + (setq org-pomodoro-short-break-length 10) + (message "Pomodoro set to 30-10" (buffer-name))) + (defun +org-pomodoro/50-10 () + "Set Pomodoro intervals to 50-10" + (interactive) + (setq org-pomodoro-length 50) + (setq org-pomodoro-short-break-length 10) + (message "Pomodoro set to 50-10" (buffer-name))) + +;; eisenhower matrix +(after! org-agenda + (add-to-list 'org-agenda-custom-commands + '("1" "Eisenhower matrix" + ((tags-todo + "+PRIORITY=\"A\"-habits+todo" + ((org-agenda-overriding-header "Urgent and important")))) + nil)) + + (add-to-list 'org-agenda-custom-commands + '("2" "Eisenhower matrix" + ((tags-todo + "+PRIORITY=\"B\"-habits+todo" + ((org-agenda-overriding-header "Important but not urgent")))) + nil)) + + (add-to-list 'org-agenda-custom-commands + '("3" "Eisenhower matrix" + ((tags-todo + "+PRIORITY=\"C\"-habits+todo" + ((org-agenda-overriding-header "Urgent but not important")))) + nil)) + + (add-to-list 'org-agenda-custom-commands + '("4" "Eisenhower matrix" + ((tags-todo + "+PRIORITY=0-PRIORITY=\"A\"-PRIORITY=\"B\"-PRIORITY=\"C\"-habits+todo" + ;"+PRIORITY=0+PRIORITY=\"D\"-habits+todo" + ((org-agenda-overriding-header "Neither important nor urgent")))) + nil)) + +;;; same but using lists + (add-to-list 'org-agenda-custom-commands + '("x" "Eisenhower Matrix (list)" + ((tags-todo + "+PRIORITY=\"A\"-habits+todo" + ((org-agenda-overriding-header "Urgent and important"))) + (tags-todo + "+PRIORITY=\"B\"-habits+todo" + ((org-agenda-overriding-header "Important but not urgent"))) + (tags-todo + "+PRIORITY=\"C\"-habits+todo" + ((org-agenda-overriding-header "Urgent but not important"))) + (tags-todo + "+PRIORITY=0-PRIORITY=\"A\"-PRIORITY=\"B\"-PRIORITY=\"C\"-habits+todo" + ((org-agenda-overriding-header "Neither important nor urgent")))) + nil))) + +;; eisenhower matrix grid + +(defun +eisenhower-matrix/agenda-1 () (interactive) (org-agenda nil "1")) +(defun +eisenhower-matrix/agenda-2 () (interactive) (org-agenda nil "2")) +(defun +eisenhower-matrix/agenda-3 () (interactive) (org-agenda nil "3")) +(defun +eisenhower-matrix/agenda-4 () (interactive) (org-agenda nil "4")) +(defun split-4-ways () (interactive) (delete-other-windows) (split-window-right) (split-window-below) (windmove-right) (split-window-below) (windmove-left)) +(defun +eisenhower-matrix/redo-all-agenda-buffers () + (interactive) + (dolist (buffer (buffer-list)) + (with-current-buffer buffer + (when (derived-mode-p 'org-agenda-mode) + (org-agenda-redo t))))) +(defun +eisenhower-matrix/make-agendas () + (interactive) + (+eisenhower-matrix/agenda-1) + (hide-mode-line-mode) + (+eisenhower-matrix/agenda-2) + (hide-mode-line-mode) + (+eisenhower-matrix/agenda-3) + (hide-mode-line-mode) + (+eisenhower-matrix/agenda-4) + (hide-mode-line-mode) + ) +(defun +eisenhower-matrix/make-eisenhower-matrix () + (interactive) + (+eisenhower-matrix/make-agendas) + (split-4-ways) + (switch-to-buffer "*Org Agenda(1)*") + (windmove-right) + (switch-to-buffer "*Org Agenda(2)*") + (windmove-down) + (switch-to-buffer "*Org Agenda(4)*") + (windmove-left) + (switch-to-buffer "*Org Agenda(3)*") + ) + +;; workspaces +;;; Commentary: provides 2 grid workspaces via function; +;;; +todo-workspaces/make-todo-workspace +;;; +todo-workspaces/make-todo-workspace-min + +(defun +todo-workspaces/agenda1 () (org-agenda nil "a")) +(defun +todo-workspaces/agenda2 () (org-agenda nil "x")) +(defun +todo-workspaces/make-todo-agendas () (+todo-workspaces/agenda1) (hide-mode-line-mode) (+todo-workspaces/agenda2) (hide-mode-line-mode)) +(defun +todo-workspaces/split-todo-workspace () + (delete-other-windows) + (split-window-below) + (windmove-down) + (split-window-right) + (windmove-up)) +(defun +todo-workspaces/split-todo-workspace-min () + (delete-other-windows) + (split-window-below)) +(defun +todo-workspaces/redo-all-agenda-buffers () + (interactive) + (dolist (buffer (buffer-list)) + (with-current-buffer buffer + (when (derived-mode-p 'org-agenda-mode) + (org-agenda-redo t))))) + +(defun +todo-workspaces/make-todo-workspace () + (interactive) + ;(+todo-workspaces/redo-all-agenda-buffers) + (+todo-workspaces/make-todo-agendas) + (+todo-workspaces/split-todo-workspace) + (switch-to-buffer "*Org Agenda(a)*") + (windmove-down) + (switch-to-buffer "*Org Agenda(x)*") + (windmove-right) + (find-file "~/notebook/ag/todo.org")) + +(defun +todo-workspaces/make-todo-workspace-min () + (interactive) + ;(+todo-workspaces/redo-all-agenda-buffers) + (+todo-workspaces/make-todo-agendas) + (+todo-workspaces/split-todo-workspace-min) + (switch-to-buffer "*Org Agenda(a)*") + (windmove-down) + (switch-to-buffer "*Org Agenda(x)*")) + +(map! :leader + (:prefix-map ("o" . "open") + (:prefix-map ("w" . "workspaces") + :desc "Eisenhower Matrix" "e" #'+eisenhower-matrix/make-eisenhower-matrix ;; classic eisenhower matrix + :desc "Schedule/Eisenhower-list/todo" "t" #'+todo-workspaces/make-todo-workspace + :desc "Schedule/Eisenhower-list" "s" #'+todo-workspaces/make-todo-workspace-min) + (:prefix ("a" . "org agenda") + :desc "Eisenhower Matrix" "e" #'+eisenhower-matrix/make-eisenhower-matrix ;; classic eisenhower matrix + :desc "Rebuild All agendas" "r" #'+eisenhower-matrix/redo-all-agenda-buffers + :desc "Schedule/Eisenhower-list/todo" "t" #'+todo-workspaces/make-todo-workspace ;; todo list is useless + :desc "Schedule/Eisenhower-list" "s" #'+todo-workspaces/make-todo-workspace-min))) + +;; org-roam configurations +(use-package! org-roam + :init + :custom + (org-roam-directory "~/notebook/roam/" ) + (org-roam-dailies-capture-templates + '(("d" "default" entry "* %<%I:%M %p>: %?" + :if-new (file+head "%<%Y-%m-%d>.org" "#+title: %<%Y-%m-%d>\n"))))) + +;; looks +(cl-defmethod org-roam-node-type ((node org-roam-node)) + "Return the TYPE of NODE." + (condition-case nil + (file-name-nondirectory + (directory-file-name + (file-name-directory + (file-relative-name (org-roam-node-file node) org-roam-directory)))) + (error ""))) + +(setq org-roam-node-display-template + (concat "${type:15} ${title:30} " (propertize "${tags:10}" 'face 'org-tag))) + +(setq org-roam-capture-templates + '(("d" "default" plain "%?" + :target (file+head "%<%Y%m%d%H%M%S>-${slug}.org" + "#+title: ${title}\n") + :unnarrowed t) + ; main things + ("l" "literature" plain "%?" + :if-new + (file+head "literature/%<%Y%m%d%H%M%S>-${title}.org" "#+title: ${title}\n") + :immediate-finish t + :unnarrowed t) + ("p" "permanent" plain "%?" + :if-new + (file+head "permanent/%<%Y%m%d%H%M%S>-${title}.org" "#+title: ${title}\n") + :immediate-finish t + :unnarrowed t) + + ; now using inbox.org via org-capture + ("f" "fleeting" plain "%?" + :if-new + (file+head "fleeting/%<%Y%m%d%H%M%S>-${title}.org" "#+title: ${title}\n") + :immediate-finish t + :unnarrowed t) + + ("s" "school" plain "%?" + :if-new + (file+head "school/%<%Y%m%d%H%M%S>-${title}.org" "#+title: ${title}\n") + :immediate-finish t + :unnarrowed t))) + +;; org-capture +(after! org + + ;; examples: file:~/.emacs.d/modules/lang/org/config.el + ;; file:~/.emacs.d/modules/lang/org/autoload/org-capture.el + + ;; set locations personal and centralized files + + (defvar +org-capture-refile-file "ag/refile.org") + (defun +org-capture-refile-file () + (expand-file-name +org-capture-refile-file org-directory)) + (defvar +org-capture-todo-custom-file "ag/todo.org") + (defun +org-capture-todo-custom-file () + (expand-file-name +org-capture-todo-custom-file org-directory)) + (defvar +org-capture-custom-projects-file "ag/projects.org") + (defun +org-capture-custom-central-project-todo-file () + "TODO" + (+org--capture-central-file + +org-capture-custom-projects-file (projectile-project-name))) + (defun +org-capture-custom-central-project-notes-file () + "TODO" + (+org--capture-central-file + +org-capture-custom-projects-file (projectile-project-name))) + (defun +org-capture-custom-central-project-changelog-file () + "TODO" + (+org--capture-central-file + +org-capture-custom-projects-file (projectile-project-name))) + + ;(add-to-list 'org-capture-templates + ; '(("s" "Slipbox" entry (file "braindump/org/inbox.org") + ; "* %?\n") + ; ("t" "Personal todo" entry + ; (file+headline +org-capture-todo-file "Inbox") + ; "* [ ] %?\n%i\n%a" :prepend t) + ; ) + + (setq org-capture-templates + '(("t" "Personal todo" entry + (file+headline +org-capture-todo-custom-file "todo") + "* TODO %?\n%i\n%a" :prepend t) + ("T" "Personal todo (no link)" entry + (file+headline +org-capture-todo-custom-file "todo") + "* TODO %?\n" :prepend t) + + ;;; i never use this + ;("n" "Personal notes" entry + ;(file+headline +org-capture-notes-file "Inbox") + ;"* %u %?\n%i\n%a" :prepend t) + ("r" "Personal refile file" entry + (file +org-capture-refile-file) + "* %u %?\n%i\n%a" :prepend t) + + ;; using org-journal atm, i will likely never use this + ;("j" "Journal" entry + ;(file+olp+datetree +org-capture-journal-file) + ;"* %U %?\n%i\n%a" :prepend t) + + ;; Will use {project-root}/{todo,notes,changelog}.org, unless a + ;; {todo,notes,changelog}.org file is found in a parent directory. + ;; Uses the basename from `+org-capture-todo-file', + ;; `+org-capture-changelog-file' and `+org-capture-notes-file'. + ("p" "Templates for projects") + ("pt" "Project-local todo" entry ; {project-root}/todo.org + (file+headline +org-capture-project-todo-file "Inbox") + "* TODO %?\n%i\n%a" :prepend t) + ("pn" "Project-local notes" entry ; {project-root}/notes.org + (file+headline +org-capture-project-notes-file "Inbox") + "* %U %?\n%i\n%a" :prepend t) + ("pc" "Project-local changelog" entry ; {project-root}/changelog.org + (file+headline +org-capture-project-changelog-file "Unreleased") + "* %U %?\n%i\n%a" :prepend t) + + ;; reference for function: [[file:~/.emacs.d/modules/lang/org/autoload/org-capture.el::defun +org--capture-central-file (file project]] + ;; Will use {org-directory}/{+org-capture-projects-file} and store + ;; these under {ProjectName}/{Tasks,Notes,Changelog} headings. They + ;; support `:parents' to specify what headings to put them under, e.g. + ;; :parents ("Projects") + ("o" "Centralized templates for projects") + ("ot" "Project todo" entry + (function +org-capture-custom-central-project-todo-file) + "* TODO %?\n %i\n %a" + :heading "Tasks" + :prepend nil) + ("on" "Project notes" entry + (function +org-capture-custom-central-project-notes-file) + "* %U %?\n %i\n %a" + :heading "Notes" + :prepend t) + ("oc" "Project changelog" entry + (function +org-capture-custom-central-project-changelog-file) + "* %U %?\n %i\n %a" + :heading "Changelog" + :prepend t) + + ;; org books / general logging + ("b" "Book log / General log (org)" item (function org-books-visit-book-log) + "- %U %?" :prepend t) + + ;; zettelkasten + ("s" "Slipbox" entry (file "roam/inbox.org") + "* %U %?\n") + ("S" "Slipbox link" entry (file "roam/inbox.org") + "* %U %?\n %i\n %a")))) + + +(use-package! org-wild-notifier + :init + (add-hook 'doom-post-init-hook (org-wild-notifier-mode)) + :config + (require 'org-duration) + ;(setq alert-default-style 'libnotify) + (setq org-wild-notifier-alert-time '(10 0)) + (setq org-wild-notifier-keyword-whitelist nil) + (setq org-wild-notifier-keyword-blacklist '("DONE")) + (alert-add-rule :category "org-wild-notifier" + :style (cond (alert-libnotify-command + 'libnotify) + (alert-default-style)))) + +;;; play audio for for alerts +(defun +org-wild-notifier/play-sound () (interactive) (start-process-shell-command "org-wild-notifier-audio-player" nil "mpg123 -f 23000 ~/resources/sounds/alerts/metal-gear-item-drop.mp3")) (defadvice org-wild-notifier--notify (after org-wild-notifier--play-sound-after-notify activate) (+org-wild-notifier/play-sound)) + +;;; for testing notifications +(defun org-wild-notifier-alert-test () + (interactive) + (alert "test" :category 'org-wild-notifier)) diff --git a/home/default/.doom.d/img/camcorder.jpeg b/home/default/.doom.d/img/camcorder.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..381d04b73b6e95bd521ab1fec38c5537a19adbe1 GIT binary patch literal 2813 zcma)83pA8#7yib$%#m@a8APVSFyk^|Tq9J=We^!mk*3RuAyV#lP3JGCBXp9%VN{|R zW5#j6j6sAVa=(m_2}Q{L9{;Fw)_=}_*811KzxR9h-p{w!-p~7f-?!eq)4%f`5VtbN znFAmY0DyQGurmnU27V9}5*HH}g^KUa;$mXrViIEFd&PMImync%OYMX2mqQ(rkwMDB z;qsdDNVF;jgONIj)yJyqq0}*|AYox)C=@CR6%|w658to)UDW^3|A*SC1tcKAC@=~J z$pd^6Ag}~z=Ou7pmnI*0m+PMb;ui!92=PI9Pfv&gd>}qBKLiYh2!p=`@LUQ0y@v$^ zHIMI;x4-0j>p_NA!3&`i9WX5Zvfob$MGA^PUh#ieST{F+(!r6J0}lFY^6xozVTpgh z5<46~1k9r&0hRzvfCY^|8U0h^{|WsK5jgZW_kTJtx!A+DEjf?w_Lm(Yjd~IC=%?>k z=K7w-vlE9&;ZdJtE*|rH^rF`Areo%pHR{r8ILZG-*DAOP5-!?5#7LPdPZm+OAZV+! zQAd@iBxwT++m_6xhkRxD1tMZ!ey`*CDt4vAHLA zyTN4H61t)F-mlIb=I&Q_G4fh!QXQAG15CU;w?#v!BlgrT&#(#oHs`iy&JBw!h<`64 zaM+Zb1ps`%X7L6O5(dZsTBP-H(fIjdhID?6-A}pNsn2nSL&XPi7o>A6sPucApnd+E8Lv__sR-mTJbgY?PQh-YKK*AT!d!MxHAvYH4 zFQd&vpWzcHvshR1Lf4m(?%ZByjAlY{at!zWuRy$~KQSj=?WUD+j@T2Y+{zwg_yA}4 z5JcGY`|8lbrYJQy$NHY<5#8%&j}5%2)1=*{3)_2Y=Ni1O8FKNpYllLM5-9uMj@};M z)bv|NM3*w_>o2IKi~Wz{@8)0IjJ@w79B z1U9G8ySeT(b*f2}dbCB`n<~FF9kEo<>%(7}qQ5X%;6;>aRO9@<$uM$Lp-gg*?r)Dh zIPosu!{AdlB}FD`t|$L?LmO44ZSU!47m}Hggb^?@j_>QfV6hicll^uUp(z6w&loTJmlY&)IzT^$A<)bb15_P$#3?#J~6f(Nj=W@^im7R&jcd}=)U!>2c} zR|njV&yA&9)=Vha4>d&C7-lMT=xyIwvA#(YtO?3OF4&04SacpXP zB(%_7NYrnMp0|p9vKAcbn^#(5XrCtOj|wUlwtx1pNXSav{vkhOY!I&B@vrf9>um>8 zhIe{}i2BtvXS1@qnVFULgty@}8b(dBiZ`4R-Qd!7`vX0hzZ`gdz*X7H(9kpW%R3Qj3*F6~ z5zKM9pVy|pP~oOH&itiXmt93(e;J`Rv_c%9pAi#66T1_pi>yXY;%Htt;%BFDTsXF( z--+>alooMJ`rNB`nUeXblS=8u+yIUG=FixP{Gi})tG$VdP6_r!tj<+;#T&UBWtc$^ z^0Y_ig#_;4=ryB+f*i{sN z(BI=y(j${J|7tpfp;CbqzBh}rZr<2Ld?*|%kX5PDUp`+Y1KHZTUrvqC4m)Re5)1u_ zZcl`LL~SP#GPYd#s^#OuJX$k;pQ?%JST(d!nzgdpC|{&>U#z;aM0^tHc$w4@;~IeN z5rNBHONJi*BaStW7|5J>r1G)nB5a|&sC>fj)9)AI#0jVf@{(vwi$Kd zy;{|6y!TGg7g@&Ru-XZlbhcVj%Qdyx@}L2^=(c-taKwN~P^?^9v_BQiaD6uOa&{ip zqx+#5TUIXZlo^U!rD}1Dty&&Dw96Yw(=X5{+KPY}6wLMujW|q=w0E9r^0MBbNE6ZB ziK%a<)1QuXcOxaspI13CV~kCAe;oi1BST00OP5A}rbXM?Fx5>uHmj*d53(r6t7C#A zD*bAPKCn;b5w59|q~ONZxh0JP!v=&sb;LWp+P&P=(1jINwB~n`ZK0h^jj!2vH~mal zQM$#~EGk=y-}hSq^jkYv@BKX1TFQHoCh6{8OlO%;ZTdbJ9cEGlgBIi8*yTjxMD`kI%HUPY0)A5OSno>FVHKj%u|U^m^FUri^;~ zjw)u*^eM9o{e5ACOv+~j?rYz>NUrZ*y0QW5^<=hUxk9vcGR^F;B>*FT+a8eRw{`q6 z2}niecaue`bla)g><|5IePXe3=P^&GN1O-bK)|ra7u$niJ0%%8V C++ == 1 + cc ;;clojure ; java with a lisp ;;common-lisp ; if you've seen one lisp, you've seen them all ;;coq ; proofs-as-programs @@ -142,13 +144,14 @@ ;;hy ; readability of scheme w/ speed of python ;;idris ; a language you can depend on ;;json ; At least it ain't XML - (java +lsp) ; the poster child for carpal tunnel syndrome + ;;(java +lsp) ; the poster child for carpal tunnel syndrome + java ;;javascript ; all(hope(abandon(ye(who(enter(here)))))) ;;julia ; a better, faster MATLAB ;;kotlin ; a better, slicker Java(Script) ;;latex ; writing papers in Emacs has never been so fun ;;lean ; for folks with too much to prove - ;;ledger ; be audit you can be + ledger ; be audit you can be ;;lua ; one-based indices? one-based indices markdown ; writing docs for people to ignore ;;nim ; python + lisp at the speed of c @@ -174,6 +177,7 @@ ;;rst ; ReST in peace ;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"} ;;(rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap() + rust ;;scala ; java, but good ;;(scheme +guile) ; a fully conniving family of lisps sh ; she sells {ba,z,fi}sh shells on the C xor @@ -194,7 +198,7 @@ ;;calendar ;;emms ;;everywhere ; *leave* Emacs!? You must be joking - irc ; how neckbeards socialize + ;;irc ; how neckbeards socialize ;;(rss +org) ; emacs as an RSS reader ;;twitter ; twitter client https://twitter.com/vnought diff --git a/home/default/.config/doom/lisp/org-wild-notifier/org-wild-notifier.el b/home/default/.doom.d/lisp/org-wild-notifier/org-wild-notifier.el similarity index 100% rename from home/default/.config/doom/lisp/org-wild-notifier/org-wild-notifier.el rename to home/default/.doom.d/lisp/org-wild-notifier/org-wild-notifier.el diff --git a/home/default/.config/doom/packages.el b/home/default/.doom.d/packages.el similarity index 65% rename from home/default/.config/doom/packages.el rename to home/default/.doom.d/packages.el index 3146641..1d744f3 100644 --- a/home/default/.config/doom/packages.el +++ b/home/default/.doom.d/packages.el @@ -7,57 +7,51 @@ ;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror: -;(package! some-package) +;; (package! some-package) ;; To install a package directly from a remote git repo, you must specify a ;; `:recipe'. You'll find documentation on what `:recipe' accepts here: ;; https://github.com/radian-software/straight.el#the-recipe-format -;(package! another-package -; :recipe (:host github :repo "username/repo")) +;; (package! another-package +;; :recipe (:host github :repo "username/repo")) ;; If the package you are trying to install does not contain a PACKAGENAME.el ;; file, or is located in a subdirectory of the repo, you'll need to specify ;; `:files' in the `:recipe': -;(package! this-package -; :recipe (:host github :repo "username/repo" -; :files ("some-file.el" "src/lisp/*.el"))) +;; (package! this-package +;; :recipe (:host github :repo "username/repo" +;; :files ("some-file.el" "src/lisp/*.el"))) ;; If you'd like to disable a package included with Doom, you can do so here ;; with the `:disable' property: -;(package! builtin-package :disable t) +;; (package! builtin-package :disable t) ;; You can override the recipe of a built in package without having to specify ;; all the properties for `:recipe'. These will inherit the rest of its recipe ;; from Doom or MELPA/ELPA/Emacsmirror: -;(package! builtin-package :recipe (:nonrecursive t)) -;(package! builtin-package-2 :recipe (:repo "myfork/package")) +;; (package! builtin-package :recipe (:nonrecursive t)) +;; (package! builtin-package-2 :recipe (:repo "myfork/package")) ;; Specify a `:branch' to install a package from a particular branch or tag. ;; This is required for some packages whose default branch isn't 'master' (which ;; our package manager can't deal with; see radian-software/straight.el#279) -;(package! builtin-package :recipe (:branch "develop")) +;; (package! builtin-package :recipe (:branch "develop")) ;; Use `:pin' to specify a particular commit to install. -;(package! builtin-package :pin "1a2b3c4d5e") +;; (package! builtin-package :pin "1a2b3c4d5e") ;; Doom's packages are pinned to a specific commit and updated from release to ;; release. The `unpin!' macro allows you to unpin single packages... -;(unpin! pinned-package) +;; (unpin! pinned-package) ;; ...or multiple packages -;(unpin! pinned-package another-pinned-package) +;; (unpin! pinned-package another-pinned-package) ;; ...Or *all* packages (NOT RECOMMENDED; will likely break things) -;(unpin! t) - -;(package! org-wild-notifier :disable t) ;; currently using a customized version loaded locally - -;; for termux only: straight and org (org-roam) are as of writing (early 2023-08) unstable -;(package! straight :pin "921a449") -;(package! org :pin "ca873f7") +;; (unpin! t) (package! org-books) -(package! nov) -;(package! org-modern) +;(package! nov) +;(package! org-modern) ;; try (package! org-wild-notifier :recipe (:local-repo "lisp/org-wild-notifier")) ;(package! focus) ;; try @@ -65,7 +59,8 @@ ;(package! minions) ;; try ;(package! mini-frame) ;; try (package! solaire-mode :disable t) -(package! simple-httpd) -(package! htmlize) -(package! esxml) -(package! webfeeder) +;(package! simple-httpd) +;(package! htmlize) +;(package! esxml) +;(package! webfeeder) +(package! org-super-agenda) diff --git a/home/default/.doom.d/themes/doom-tomorrow-night-b-theme.el b/home/default/.doom.d/themes/doom-tomorrow-night-b-theme.el new file mode 100644 index 0000000..2ec1ded --- /dev/null +++ b/home/default/.doom.d/themes/doom-tomorrow-night-b-theme.el @@ -0,0 +1,125 @@ +;;; doom-tomorrow-night-b-theme.el --- One of the dark variants of Tomorrow -*- lexical-binding: t; no-byte-compile: t; -*- +;; +;; Added: May 14, 2017 (4c981f2cccf3) +;; Author: Henrik Lissner +;; Maintainer: +;; Source: https://github.com/ChrisKempson/Tomorrow-Theme +;; +;;; Commentary: +;;; Code: + +(require 'doom-themes) + + +;; +;;; Variables + +(defgroup doom-tomorrow-night-b-theme nil + "Options for the `doom-tomorrow-night-b' theme." + :group 'doom-themes) + +(defcustom doom-tomorrow-night-b-padded-modeline doom-themes-padded-modeline + "If non-nil, adds a 4px padding to the mode-line. Can be an integer to +determine the exact padding." + :group 'doom-tomorrow-night-b-theme + :type '(choice integer boolean)) + + +;; +;;; Theme definition + +(def-doom-theme doom-tomorrow-night-b + "A theme based off of Chris Kempson's Tomorrow Dark." + + ;; name gui 256 16 + ;((bg '("#1d1f21" nil nil )) + ((bg '("#000000" nil nil )) + ;(bg-alt '("#161719" nil nil )) + (bg-alt '("#000000" nil nil )) + (base0 '("#0d0d0d" "black" "black" )) + (base1 '("#1b1b1b" "#1b1b1b" )) + (base2 '("#212122" "#1e1e1e" )) + (base3 '("#292b2b" "#292929" "brightblack")) + (base4 '("#3f4040" "#3f3f3f" "brightblack")) + (base5 '("#5c5e5e" "#525252" "brightblack")) + (base6 '("#757878" "#6b6b6b" "brightblack")) + (base7 '("#969896" "#979797" "brightblack")) + (base8 '("#ffffff" "#ffffff" "white" )) + (fg '("#c5c8c6" "#c5c5c5" "white")) + (fg-alt (doom-darken fg 0.4)) + + (grey '("#5a5b5a" "#5a5a5a" "brightblack")) + (red '("#cc6666" "#cc6666" "red")) + (orange '("#de935f" "#dd9955" "brightred")) + (yellow '("#f0c674" "#f0c674" "yellow")) + (green '("#b5bd68" "#b5bd68" "green")) + (blue '("#81a2be" "#88aabb" "brightblue")) + (dark-blue '("#41728e" "#41728e" "blue")) + (teal blue) ; FIXME replace with real teal + (magenta '("#c9b4cf" "#c9b4cf" "magenta")) + (violet '("#b294bb" "#b294bb" "brightmagenta")) + (cyan '("#8abeb7" "#8abeb7" "cyan")) + (dark-cyan (doom-darken cyan 0.4)) + + ;; face categories + (highlight blue) + (vertical-bar base0) + (selection `(,(car (doom-lighten bg 0.1)) ,@(cdr base4))) + (builtin blue) + (comments grey) + (doc-comments (doom-lighten grey 0.14)) + (constants orange) + (functions blue) + (keywords violet) + (methods blue) + (operators fg) + (type yellow) + (strings green) + (variables red) + (numbers orange) + (region selection) + (error red) + (warning yellow) + (success green) + (vc-modified fg-alt) + (vc-added green) + (vc-deleted red) + + ;; custom categories + (modeline-bg `(,(doom-darken (car bg-alt) 0.3) ,@(cdr base3))) + (modeline-bg-alt `(,(car bg) ,@(cdr base1))) + (modeline-fg base8) + (modeline-fg-alt comments) + (-modeline-pad + (when doom-tomorrow-night-b-padded-modeline + (if (integerp doom-tomorrow-night-b-padded-modeline) + doom-tomorrow-night-b-padded-modeline + 4)))) + + ;; --- faces ------------------------------ + (((line-number &override) :foreground base4) + ((line-number-current-line &override) :foreground blue :bold bold) + (mode-line + :background modeline-bg :foreground modeline-fg + :box (if -modeline-pad `(:line-width ,-modeline-pad :color ,modeline-bg))) + (mode-line-inactive + :background modeline-bg-alt :foreground modeline-fg-alt + :box (if -modeline-pad `(:line-width ,-modeline-pad :color ,modeline-bg-alt))) + + ;;;; rainbow-delimiters + (rainbow-delimiters-depth-1-face :foreground violet) + (rainbow-delimiters-depth-2-face :foreground blue) + (rainbow-delimiters-depth-3-face :foreground orange) + (rainbow-delimiters-depth-4-face :foreground green) + (rainbow-delimiters-depth-5-face :foreground magenta) + (rainbow-delimiters-depth-6-face :foreground yellow) + (rainbow-delimiters-depth-7-face :foreground teal) + ;;;; doom-modeline + (doom-modeline-buffer-path :foreground violet :bold bold) + (doom-modeline-buffer-major-mode :inherit 'doom-modeline-buffer-path)) + + ;; --- variables -------------------------- + ;; () + ) + +;;; doom-tomorrow-night-b-theme.el ends here diff --git a/home/default/.config/doom/themes/doom-tomorrow-night-r-theme.el b/home/default/.doom.d/themes/doom-tomorrow-night-r-theme.el similarity index 100% rename from home/default/.config/doom/themes/doom-tomorrow-night-r-theme.el rename to home/default/.doom.d/themes/doom-tomorrow-night-r-theme.el diff --git a/termux/.doom.d/config.el b/termux/.doom.d/config.el new file mode 100644 index 0000000..45ab00e --- /dev/null +++ b/termux/.doom.d/config.el @@ -0,0 +1,543 @@ +;;; $DOOMDIR/config.el -*- lexical-binding: t; -*- + +;; Place your private configuration here! Remember, you do not need to run 'doom +;; sync' after modifying this file! + + +;; Some functionality uses this to identify you, e.g. GPG configuration, email +;; clients, file templates and snippets. It is optional. +;; (setq user-full-name "John Doe" +;; user-mail-address "john@doe.com") + +;; Doom exposes five (optional) variables for controlling fonts in Doom: +;; +;; - `doom-font' -- the primary font to use +;; - `doom-variable-pitch-font' -- a non-monospace font (where applicable) +;; - `doom-big-font' -- used for `doom-big-font-mode'; use this for +;; presentations or streaming. +;; - `doom-symbol-font' -- for symbols +;; - `doom-serif-font' -- for the `fixed-pitch-serif' face +;; +;; See 'C-h v doom-font' for documentation and more examples of what they +;; accept. For example: +;; +;;(setq doom-font (font-spec :family "Fira Code" :size 12 :weight 'semi-light) +;; doom-variable-pitch-font (font-spec :family "Fira Sans" :size 13)) +;; +;; If you or Emacs can't find your font, use 'M-x describe-font' to look them +;; up, `M-x eval-region' to execute elisp code, and 'M-x doom/reload-font' to +;; refresh your font settings. If Emacs still can't find your font, it likely +;; wasn't installed correctly. Font issues are rarely Doom issues! + +;; There are two ways to load a theme. Both assume the theme is installed and +;; available. You can either set `doom-theme' or manually load a theme with the +;; `load-theme' function. This is the default: +;(setq doom-theme 'doom-one) + +;; This determines the style of line numbers in effect. If set to `nil', line +;; numbers are disabled. For relative line numbers, set this to `relative'. +;(setq display-line-numbers-type t) + +;; If you use `org' and don't want your org files in the default location below, +;; change `org-directory'. It must be set before org loads! +;(setq org-directory "~/org/") + + +;; Whenever you reconfigure a package, make sure to wrap your config in an +;; `after!' block, otherwise Doom's defaults may override your settings. E.g. +;; +;; (after! PACKAGE +;; (setq x y)) +;; +;; The exceptions to this rule: +;; +;; - Setting file/directory variables (like `org-directory') +;; - Setting variables which explicitly tell you to set them before their +;; package is loaded (see 'C-h v VARIABLE' to look up their documentation). +;; - Setting doom variables (which start with 'doom-' or '+'). +;; +;; Here are some additional functions/macros that will help you configure Doom. +;; +;; - `load!' for loading external *.el files relative to this one +;; - `use-package!' for configuring packages +;; - `after!' for running code after a package has loaded +;; - `add-load-path!' for adding directories to the `load-path', relative to +;; this file. Emacs searches the `load-path' when you load packages with +;; `require' or `use-package'. +;; - `map!' for binding new keys +;; +;; To get information about any of these functions/macros, move the cursor over +;; the highlighted symbol at press 'K' (non-evil users must press 'C-c c k'). +;; This will open documentation for it, including demos of how they are used. +;; Alternatively, use `C-h o' to look up a symbol (functions, variables, faces, +;; etc). +;; +;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how +;; they are implemented. + +(setq browse-url-browser-function 'browse-url-generic + browse-url-generic-program "termux-open" + alert-default-style 'termux + org-pomodoro-audio-player nil) ;; VERY LOUD! DISABLE. +(set-default 'truncate-lines nil) + +(after! org-pomodoro + (alert-add-rule :category "org-pomodoro" + :style (cond (alert-termux-command + 'termux) + (alert-default-style)))) + +;; theme + +(setq doom-theme 'doom-tomorrow-night ) +;(setq doom-theme 'doom-meltbus ) +;(setq doom-theme 'doom-plain-dark ) +;(setq doom-theme 'doom-plain ) + +(after! org + (setq display-line-numbers-type nil + org-hide-emphasis-markers t + org-pretty-entities t + org-ellipsis "…" + org-image-actual-width 600)) +(setq display-line-numbers-type nil) + +(after! org-journal + (setq org-journal-dir "~/diary" + org-journal-date-prefix "#+TITLE: " + org-journal-time-prefix "+ " + org-journal-date-format "%a, %Y-%m-%d" + org-journal-file-format "%Y-%m-%d.org")) + +(use-package! org-books + :defer t + :config + (setq org-books-file "~/notebook/readinglist.org")) + +(after! org + (setq org-log-done 'time + org-log-into-drawer t + ;About the 2 elisp lines below: If you want to send items without explicit + ;priorities to the bottom of the list you have to set org-default-priority to the + ;value of org-lowest-priority). I did this to make recognize that: PRIORITY=0 are + ;items without explicit priorities (not A, B or C, but just TODO) + org-lowest-priority ?E + org-default-priority ?E) + (defun jethro/org-archive-done-tasks () + "Archive all done tasks." + (interactive) + (org-map-entries 'org-archive-subtree "/DONE" 'file))) + +(setq org-directory "~/notebook/" + bookmark-default-file "~/.doom.d/bookmarks") + +(setq org-agenda-files '("~/housekeeping/calendar.org" + "~/notebook/ag/habits.org" + "~/notebook/ag/todo.org" + "~/notebook/ag/projects.org" + "~/notebook/ag/refile.org" + "~/notebook/ag/pomodoro.org" + "~/notebook/ag/events/birthdays.org" + "~/notebook/refile.org" + )) + +(after! org-agenda + (setq org-agenda-sticky t)) ; dont kill agendas + +(use-package! org-super-agenda + :after org-agenda + :init + (setq org-agenda-skip-scheduled-if-done t + org-agenda-skip-deadline-if-done t + org-agenda-include-deadlines t + org-agenda-block-separator nil + org-agenda-compact-blocks t + org-agenda-start-day nil ;; i.e. today + org-agenda-span 1 + org-agenda-start-on-weekday nil) + (add-to-list 'org-agenda-custom-commands + '("c" "Super view" + ((agenda "" ((org-agenda-overriding-header "") + (org-super-agenda-groups + '((:name "Soon" + :deadline future + :order 3) + (:name "Today" + :time-grid t + :date today + :order 2) + (:name "Due today" + :deadline today + :scheduled today + :order 2) + (:name "Overdue" + :deadline past + :scheduled past + :order 1))))) + (alltodo "" ((org-agenda-overriding-header "") + (org-super-agenda-groups + '(;(:name "Future" + ; :scheduled future) + (:discard (:anything t))))))))) + :config + (org-super-agenda-mode)) + +(setq org-agenda-prefix-format '( + (agenda . " %?-12t% s") + (todo . " %i %-12:c") + (tags . " %i %-12:c") + (search . " %i %-12:c"))) + +;; hide tags +(after! org-agenda + (setq org-agenda-hide-tags-regexp + (concat org-agenda-hide-tags-regexp "\\|sometag"))) + +;; org-pomodoro + (setq org-pomodoro-ask-upon-killing t + org-pomodoro-keep-killed-pomodoro-time t + org-pomodoro-length 25 + org-pomodoro-manual-break t) + + (defun +org-pomodoro/3-5 () + "Set Pomodoro intervals to 3-5" + (interactive) + (setq org-pomodoro-length 3) + (setq org-pomodoro-short-break-length 5) + (message "Pomodoro set to 3-5" (buffer-name))) + (defun +org-pomodoro/5-5 () + "Set Pomodoro intervals to 5-5" + (interactive) + (setq org-pomodoro-length 5) + (setq org-pomodoro-short-break-length 5) + (message "Pomodoro set to 3-5" (buffer-name))) + (defun +org-pomodoro/10-5 () + "Set Pomodoro intervals to 10-5" + (interactive) + (setq org-pomodoro-length 10) + (setq org-pomodoro-short-break-length 5) + (message "Pomodoro set to 10-5" (buffer-name))) + (defun +org-pomodoro/15-5 () + "Set Pomodoro intervals to 15-5" + (interactive) + (setq org-pomodoro-length 15) + (setq org-pomodoro-short-break-length 5) + (message "Pomodoro set to 15-5" (buffer-name))) + (defun +org-pomodoro/25-5 () + "Set Pomodoro intervals to 25-5" + (interactive) + (setq org-pomodoro-length 25) + (setq org-pomodoro-short-break-length 5) + (message "Pomodoro set to 25-5" (buffer-name))) + (defun +org-pomodoro/30-10 () + "Set Pomodoro intervals to 30-10" + (interactive) + (setq org-pomodoro-length 30) + (setq org-pomodoro-short-break-length 10) + (message "Pomodoro set to 30-10" (buffer-name))) + (defun +org-pomodoro/50-10 () + "Set Pomodoro intervals to 50-10" + (interactive) + (setq org-pomodoro-length 50) + (setq org-pomodoro-short-break-length 10) + (message "Pomodoro set to 50-10" (buffer-name))) + +;; eisenhower matrix +(after! org-agenda + (add-to-list 'org-agenda-custom-commands + '("1" "Eisenhower matrix" + ((tags-todo + "+PRIORITY=\"A\"-habits+todo" + ((org-agenda-overriding-header "Urgent and important")))) + nil)) + + (add-to-list 'org-agenda-custom-commands + '("2" "Eisenhower matrix" + ((tags-todo + "+PRIORITY=\"B\"-habits+todo" + ((org-agenda-overriding-header "Important but not urgent")))) + nil)) + + (add-to-list 'org-agenda-custom-commands + '("3" "Eisenhower matrix" + ((tags-todo + "+PRIORITY=\"C\"-habits+todo" + ((org-agenda-overriding-header "Urgent but not important")))) + nil)) + + (add-to-list 'org-agenda-custom-commands + '("4" "Eisenhower matrix" + ((tags-todo + "+PRIORITY=0-PRIORITY=\"A\"-PRIORITY=\"B\"-PRIORITY=\"C\"-habits+todo" + ;"+PRIORITY=0+PRIORITY=\"D\"-habits+todo" + ((org-agenda-overriding-header "Neither important nor urgent")))) + nil)) + +;;; same but using lists + (add-to-list 'org-agenda-custom-commands + '("x" "Eisenhower Matrix (list)" + ((tags-todo + "+PRIORITY=\"A\"-habits+todo" + ((org-agenda-overriding-header "Urgent and important"))) + (tags-todo + "+PRIORITY=\"B\"-habits+todo" + ((org-agenda-overriding-header "Important but not urgent"))) + (tags-todo + "+PRIORITY=\"C\"-habits+todo" + ((org-agenda-overriding-header "Urgent but not important"))) + (tags-todo + "+PRIORITY=0-PRIORITY=\"A\"-PRIORITY=\"B\"-PRIORITY=\"C\"-habits+todo" + ((org-agenda-overriding-header "Neither important nor urgent")))) + nil))) + +;; eisenhower matrix grid + +(defun +eisenhower-matrix/agenda-1 () (interactive) (org-agenda nil "1")) +(defun +eisenhower-matrix/agenda-2 () (interactive) (org-agenda nil "2")) +(defun +eisenhower-matrix/agenda-3 () (interactive) (org-agenda nil "3")) +(defun +eisenhower-matrix/agenda-4 () (interactive) (org-agenda nil "4")) +(defun split-4-ways () (interactive) (delete-other-windows) (split-window-right) (split-window-below) (windmove-right) (split-window-below) (windmove-left)) +(defun +eisenhower-matrix/redo-all-agenda-buffers () + (interactive) + (dolist (buffer (buffer-list)) + (with-current-buffer buffer + (when (derived-mode-p 'org-agenda-mode) + (org-agenda-redo t))))) +(defun +eisenhower-matrix/make-agendas () + (interactive) + (+eisenhower-matrix/agenda-1) + (hide-mode-line-mode) + (+eisenhower-matrix/agenda-2) + (hide-mode-line-mode) + (+eisenhower-matrix/agenda-3) + (hide-mode-line-mode) + (+eisenhower-matrix/agenda-4) + (hide-mode-line-mode) + ) +(defun +eisenhower-matrix/make-eisenhower-matrix () + (interactive) + (+eisenhower-matrix/make-agendas) + (split-4-ways) + (switch-to-buffer "*Org Agenda(1)*") + (windmove-right) + (switch-to-buffer "*Org Agenda(2)*") + (windmove-down) + (switch-to-buffer "*Org Agenda(4)*") + (windmove-left) + (switch-to-buffer "*Org Agenda(3)*") + ) + +;; workspaces +;;; Commentary: provides 2 grid workspaces via function; +;;; +todo-workspaces/make-todo-workspace +;;; +todo-workspaces/make-todo-workspace-min + +(defun +todo-workspaces/agenda1 () (org-agenda nil "a")) +(defun +todo-workspaces/agenda2 () (org-agenda nil "x")) +(defun +todo-workspaces/make-todo-agendas () (+todo-workspaces/agenda1) (hide-mode-line-mode) (+todo-workspaces/agenda2) (hide-mode-line-mode)) +(defun +todo-workspaces/split-todo-workspace () + (delete-other-windows) + (split-window-below) + (windmove-down) + (split-window-right) + (windmove-up)) +(defun +todo-workspaces/split-todo-workspace-min () + (delete-other-windows) + (split-window-below)) +(defun +todo-workspaces/redo-all-agenda-buffers () + (interactive) + (dolist (buffer (buffer-list)) + (with-current-buffer buffer + (when (derived-mode-p 'org-agenda-mode) + (org-agenda-redo t))))) + +(defun +todo-workspaces/make-todo-workspace () + (interactive) + ;(+todo-workspaces/redo-all-agenda-buffers) + (+todo-workspaces/make-todo-agendas) + (+todo-workspaces/split-todo-workspace) + (switch-to-buffer "*Org Agenda(a)*") + (windmove-down) + (switch-to-buffer "*Org Agenda(x)*") + (windmove-right) + (find-file "~/notebook/ag/todo.org")) + +(defun +todo-workspaces/make-todo-workspace-min () + (interactive) + ;(+todo-workspaces/redo-all-agenda-buffers) + (+todo-workspaces/make-todo-agendas) + (+todo-workspaces/split-todo-workspace-min) + (switch-to-buffer "*Org Agenda(a)*") + (windmove-down) + (switch-to-buffer "*Org Agenda(x)*")) + +(map! :leader + (:prefix-map ("o" . "open") + (:prefix-map ("w" . "workspaces") + :desc "Eisenhower Matrix" "e" #'+eisenhower-matrix/make-eisenhower-matrix ;; classic eisenhower matrix + :desc "Schedule/Eisenhower-list/todo" "t" #'+todo-workspaces/make-todo-workspace + :desc "Schedule/Eisenhower-list" "s" #'+todo-workspaces/make-todo-workspace-min) + (:prefix ("a" . "org agenda") + :desc "Eisenhower Matrix" "e" #'+eisenhower-matrix/make-eisenhower-matrix ;; classic eisenhower matrix + :desc "Rebuild All agendas" "r" #'+eisenhower-matrix/redo-all-agenda-buffers + (:prefix-map ("w" . "workspaces") + :desc "Eisenhower Matrix" "e" #'+eisenhower-matrix/make-eisenhower-matrix ;; classic eisenhower matrix + :desc "Schedule/Eisenhower-list/todo" "t" #'+todo-workspaces/make-todo-workspace + :desc "Schedule/Eisenhower-list" "s" #'+todo-workspaces/make-todo-workspace-min) + ))) + +;; org-roam configurations +(use-package! org-roam + :init + :custom + (org-roam-directory "~/notebook/roam/" ) + (org-roam-dailies-capture-templates + '(("d" "default" entry "* %<%I:%M %p>: %?" + :if-new (file+head "%<%Y-%m-%d>.org" "#+title: %<%Y-%m-%d>\n"))))) + +;; looks +(cl-defmethod org-roam-node-type ((node org-roam-node)) + "Return the TYPE of NODE." + (condition-case nil + (file-name-nondirectory + (directory-file-name + (file-name-directory + (file-relative-name (org-roam-node-file node) org-roam-directory)))) + (error ""))) + +(setq org-roam-node-display-template + (concat "${type:15} ${title:30} " (propertize "${tags:10}" 'face 'org-tag))) + +(setq org-roam-capture-templates + '(("d" "default" plain "%?" + :target (file+head "%<%Y%m%d%H%M%S>-${slug}.org" + "#+title: ${title}\n") + :unnarrowed t) + ; main things + ("l" "literature" plain "%?" + :if-new + (file+head "literature/%<%Y%m%d%H%M%S>-${title}.org" "#+title: ${title}\n") + :immediate-finish t + :unnarrowed t) + ("p" "permanent" plain "%?" + :if-new + (file+head "permanent/%<%Y%m%d%H%M%S>-${title}.org" "#+title: ${title}\n") + :immediate-finish t + :unnarrowed t) + + ; now using inbox.org via org-capture + ("f" "fleeting" plain "%?" + :if-new + (file+head "fleeting/%<%Y%m%d%H%M%S>-${title}.org" "#+title: ${title}\n") + :immediate-finish t + :unnarrowed t) + + ("s" "school" plain "%?" + :if-new + (file+head "school/%<%Y%m%d%H%M%S>-${title}.org" "#+title: ${title}\n") + :immediate-finish t + :unnarrowed t))) + +;; org-capture +(after! org + + ;; examples: file:~/.emacs.d/modules/lang/org/config.el + ;; file:~/.emacs.d/modules/lang/org/autoload/org-capture.el + + ;; set locations personal and centralized files + + (defvar +org-capture-refile-file "ag/refile.org") + (defun +org-capture-refile-file () + (expand-file-name +org-capture-refile-file org-directory)) + (defvar +org-capture-todo-custom-file "ag/todo.org") + (defun +org-capture-todo-custom-file () + (expand-file-name +org-capture-todo-custom-file org-directory)) + (defvar +org-capture-custom-projects-file "ag/projects.org") + (defun +org-capture-custom-central-project-todo-file () + "TODO" + (+org--capture-central-file + +org-capture-custom-projects-file (projectile-project-name))) + (defun +org-capture-custom-central-project-notes-file () + "TODO" + (+org--capture-central-file + +org-capture-custom-projects-file (projectile-project-name))) + (defun +org-capture-custom-central-project-changelog-file () + "TODO" + (+org--capture-central-file + +org-capture-custom-projects-file (projectile-project-name))) + + ;(add-to-list 'org-capture-templates + ; '(("s" "Slipbox" entry (file "braindump/org/inbox.org") + ; "* %?\n") + ; ("t" "Personal todo" entry + ; (file+headline +org-capture-todo-file "Inbox") + ; "* [ ] %?\n%i\n%a" :prepend t) + ; ) + + (setq org-capture-templates + '(("t" "Personal todo" entry + (file+headline +org-capture-todo-custom-file "todo") + "* TODO %?\n%i\n%a" :prepend t) + ("T" "Personal todo (no link)" entry + (file+headline +org-capture-todo-custom-file "todo") + "* TODO %?\n" :prepend t) + + ;;; i never use this + ;("n" "Personal notes" entry + ;(file+headline +org-capture-notes-file "Inbox") + ;"* %u %?\n%i\n%a" :prepend t) + ("r" "Personal refile file" entry + (file +org-capture-refile-file) + "* %u %?\n%i\n%a" :prepend t) + + ;; using org-journal atm, i will likely never use this + ;("j" "Journal" entry + ;(file+olp+datetree +org-capture-journal-file) + ;"* %U %?\n%i\n%a" :prepend t) + + ;; Will use {project-root}/{todo,notes,changelog}.org, unless a + ;; {todo,notes,changelog}.org file is found in a parent directory. + ;; Uses the basename from `+org-capture-todo-file', + ;; `+org-capture-changelog-file' and `+org-capture-notes-file'. + ("p" "Templates for projects") + ("pt" "Project-local todo" entry ; {project-root}/todo.org + (file+headline +org-capture-project-todo-file "Inbox") + "* TODO %?\n%i\n%a" :prepend t) + ("pn" "Project-local notes" entry ; {project-root}/notes.org + (file+headline +org-capture-project-notes-file "Inbox") + "* %U %?\n%i\n%a" :prepend t) + ("pc" "Project-local changelog" entry ; {project-root}/changelog.org + (file+headline +org-capture-project-changelog-file "Unreleased") + "* %U %?\n%i\n%a" :prepend t) + + ;; reference for function: [[file:~/.emacs.d/modules/lang/org/autoload/org-capture.el::defun +org--capture-central-file (file project]] + ;; Will use {org-directory}/{+org-capture-projects-file} and store + ;; these under {ProjectName}/{Tasks,Notes,Changelog} headings. They + ;; support `:parents' to specify what headings to put them under, e.g. + ;; :parents ("Projects") + ("o" "Centralized templates for projects") + ("ot" "Project todo" entry + (function +org-capture-custom-central-project-todo-file) + "* TODO %?\n %i\n %a" + :heading "Tasks" + :prepend nil) + ("on" "Project notes" entry + (function +org-capture-custom-central-project-notes-file) + "* %U %?\n %i\n %a" + :heading "Notes" + :prepend t) + ("oc" "Project changelog" entry + (function +org-capture-custom-central-project-changelog-file) + "* %U %?\n %i\n %a" + :heading "Changelog" + :prepend t) + + ;; org books / general logging + ("b" "Book log / General log (org)" item (function org-books-visit-book-log) + "- %U %?" :prepend t) + + ;; zettelkasten + ("s" "Slipbox" entry (file "roam/inbox.org") + "* %U %?\n") + ("S" "Slipbox link" entry (file "roam/inbox.org") + "* %U %?\n %i\n %a")))) diff --git a/termux/.doom.d/init.el b/termux/.doom.d/init.el new file mode 100644 index 0000000..f0f10c2 --- /dev/null +++ b/termux/.doom.d/init.el @@ -0,0 +1,201 @@ +;;; init.el -*- lexical-binding: t; -*- + +;; This file controls what Doom modules are enabled and what order they load +;; in. Remember to run 'doom sync' after modifying it! + +;; NOTE Press 'SPC h d h' (or 'C-h d h' for non-vim users) to access Doom's +;; documentation. There you'll find a link to Doom's Module Index where all +;; of our modules are listed, including what flags they support. + +;; NOTE Move your cursor over a module's name (or its flags) and press 'K' (or +;; 'C-c c k' for non-vim users) to view its documentation. This works on +;; flags as well (those symbols that start with a plus). +;; +;; Alternatively, press 'gd' (or 'C-c c d') on a module to browse its +;; directory (for easy access to its source code). + +(doom! :input + ;;bidi ; (tfel ot) thgir etirw uoy gnipleh + ;;chinese + ;;japanese + ;;layout ; auie,ctsrnm is the superior home row + + :completion + company ; the ultimate code completion backend + ;;helm ; the *other* search engine for love and life + ;;ido ; the other *other* search engine... + ;;ivy ; a search engine for love and life + vertico ; the search engine of the future + + :ui + ;;deft ; notational velocity for Emacs + doom ; what makes DOOM look the way it does + doom-dashboard ; a nifty splash screen for Emacs + ;;doom-quit ; DOOM quit-message prompts when you quit Emacs + ;;(emoji +unicode) ; 🙂 + hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW + ;;hydra + ;;indent-guides ; highlighted indent columns + ;;ligatures ; ligatures and symbols to make your code pretty again + ;;minimap ; show a map of the code on the side + modeline ; snazzy, Atom-inspired modeline, plus API + ;;nav-flash ; blink cursor line after big motions + ;;neotree ; a project drawer, like NERDTree for vim + ophints ; highlight the region an operation acts on + (popup +defaults) ; tame sudden yet inevitable temporary windows + ;;tabs ; a tab bar for Emacs + ;;treemacs ; a project drawer, like neotree but cooler + ;;unicode ; extended unicode support for various languages + (vc-gutter +pretty) ; vcs diff in the fringe + vi-tilde-fringe ; fringe tildes to mark beyond EOB + ;;window-select ; visually switch windows + workspaces ; tab emulation, persistence & separate workspaces + ;;zen ; distraction-free coding or writing + + :editor + (evil +everywhere); come to the dark side, we have cookies + file-templates ; auto-snippets for empty files + fold ; (nigh) universal code folding + ;;(format +onsave) ; automated prettiness + ;;god ; run Emacs commands without modifier keys + ;;lispy ; vim for lisp, for people who don't like vim + ;;multiple-cursors ; editing in many places at once + ;;objed ; text object editing for the innocent + ;;parinfer ; turn lisp into python, sort of + ;;rotate-text ; cycle region at point between text candidates + snippets ; my elves. They type so I don't have to + ;;word-wrap ; soft wrapping with language-aware indent + + :emacs + dired ; making dired pretty [functional] + electric ; smarter, keyword-based electric-indent + ;;ibuffer ; interactive buffer management + undo ; persistent, smarter undo for your inevitable mistakes + vc ; version-control and Emacs, sitting in a tree + + :term + ;;eshell ; the elisp shell that works everywhere + ;;shell ; simple shell REPL for Emacs + ;;term ; basic terminal emulator for Emacs + ;;vterm ; the best terminal emulation in Emacs + + :checkers + syntax ; tasing you for every semicolon you forget + ;;(spell +flyspell) ; tasing you for misspelling mispelling + ;;grammar ; tasing grammar mistake every you make + + :tools + ;;ansible + ;;biblio ; Writes a PhD for you (citation needed) + ;;collab ; buffers with friends + ;;debugger ; FIXME stepping through code, to help you add bugs + ;;direnv + ;;docker + ;;editorconfig ; let someone else argue about tabs vs spaces + ;;ein ; tame Jupyter notebooks with emacs + (eval +overlay) ; run code, run (also, repls) + ;;gist ; interacting with github gists + lookup ; navigate your code and its documentation + ;;lsp ; M-x vscode + magit ; a git porcelain for Emacs + ;;make ; run make tasks from Emacs + ;;pass ; password manager for nerds + ;;pdf ; pdf enhancements + ;;prodigy ; FIXME managing external services & code builders + ;;rgb ; creating color strings + ;;taskrunner ; taskrunner for all your projects + ;;terraform ; infrastructure as code + ;;tmux ; an API for interacting with tmux + ;;tree-sitter ; syntax and parsing, sitting in a tree... + ;;upload ; map local to remote projects via ssh/ftp + + :os + (:if IS-MAC macos) ; improve compatibility with macOS + ;;tty ; improve the terminal Emacs experience + + :lang + ;;agda ; types of types of types of types... + ;;beancount ; mind the GAAP + ;;(cc +lsp) ; C > C++ == 1 + ;;clojure ; java with a lisp + ;;common-lisp ; if you've seen one lisp, you've seen them all + ;;coq ; proofs-as-programs + ;;crystal ; ruby at the speed of c + ;;csharp ; unity, .NET, and mono shenanigans + ;;data ; config/data formats + ;;(dart +flutter) ; paint ui and not much else + ;;dhall + ;;elixir ; erlang done right + ;;elm ; care for a cup of TEA? + emacs-lisp ; drown in parentheses + ;;erlang ; an elegant language for a more civilized age + ;;ess ; emacs speaks statistics + ;;factor + ;;faust ; dsp, but you get to keep your soul + ;;fortran ; in FORTRAN, GOD is REAL (unless declared INTEGER) + ;;fsharp ; ML stands for Microsoft's Language + ;;fstar ; (dependent) types and (monadic) effects and Z3 + ;;gdscript ; the language you waited for + ;;(go +lsp) ; the hipster dialect + ;;(graphql +lsp) ; Give queries a REST + ;;(haskell +lsp) ; a language that's lazier than I am + ;;hy ; readability of scheme w/ speed of python + ;;idris ; a language you can depend on + ;;json ; At least it ain't XML + ;;(java +lsp) ; the poster child for carpal tunnel syndrome + ;;javascript ; all(hope(abandon(ye(who(enter(here)))))) + ;;julia ; a better, faster MATLAB + ;;kotlin ; a better, slicker Java(Script) + ;;latex ; writing papers in Emacs has never been so fun + ;;lean ; for folks with too much to prove + ledger ; be audit you can be + ;;lua ; one-based indices? one-based indices + markdown ; writing docs for people to ignore + ;;nim ; python + lisp at the speed of c + ;;nix ; I hereby declare "nix geht mehr!" + ;;ocaml ; an objective camel + (org + +journal + +habit + +roam2 + ;+dragndrop + +pomodoro + ) ; organize your plain life in plain text + ;;php ; perl's insecure younger brother + ;;plantuml ; diagrams for confusing people more + ;;purescript ; javascript, but functional + ;;python ; beautiful is better than ugly + ;;qt ; the 'cutest' gui framework ever + ;;racket ; a DSL for DSLs + ;;raku ; the artist formerly known as perl6 + ;;rest ; Emacs as a REST client + ;;rst ; ReST in peace + ;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"} + ;;(rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap() + ;;scala ; java, but good + ;;(scheme +guile) ; a fully conniving family of lisps + sh ; she sells {ba,z,fi}sh shells on the C xor + ;;sml + ;;solidity ; do you need a blockchain? No. + ;;swift ; who asked for emoji variables? + ;;terra ; Earth and Moon in alignment for performance. + ;;web ; the tubes + ;;yaml ; JSON, but readable + ;;zig ; C, but simpler + + :email + ;;(mu4e +org +gmail) + ;;notmuch + ;;(wanderlust +gmail) + + :app + ;;calendar + ;;emms + ;;everywhere ; *leave* Emacs!? You must be joking + ;;irc ; how neckbeards socialize + ;;(rss +org) ; emacs as an RSS reader + ;;twitter ; twitter client https://twitter.com/vnought + + :config + ;;literate + (default +bindings +smartparens)) diff --git a/termux/.doom.d/packages.el b/termux/.doom.d/packages.el new file mode 100644 index 0000000..8f02388 --- /dev/null +++ b/termux/.doom.d/packages.el @@ -0,0 +1,54 @@ +;; -*- no-byte-compile: t; -*- +;;; $DOOMDIR/packages.el + +;; To install a package with Doom you must declare them here and run 'doom sync' +;; on the command line, then restart Emacs for the changes to take effect -- or +;; use 'M-x doom/reload'. + + +;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror: +;; (package! some-package) + +;; To install a package directly from a remote git repo, you must specify a +;; `:recipe'. You'll find documentation on what `:recipe' accepts here: +;; https://github.com/radian-software/straight.el#the-recipe-format +;; (package! another-package +;; :recipe (:host github :repo "username/repo")) + +;; If the package you are trying to install does not contain a PACKAGENAME.el +;; file, or is located in a subdirectory of the repo, you'll need to specify +;; `:files' in the `:recipe': +;; (package! this-package +;; :recipe (:host github :repo "username/repo" +;; :files ("some-file.el" "src/lisp/*.el"))) + +;; If you'd like to disable a package included with Doom, you can do so here +;; with the `:disable' property: +;; (package! builtin-package :disable t) + +;; You can override the recipe of a built in package without having to specify +;; all the properties for `:recipe'. These will inherit the rest of its recipe +;; from Doom or MELPA/ELPA/Emacsmirror: +;; (package! builtin-package :recipe (:nonrecursive t)) +;; (package! builtin-package-2 :recipe (:repo "myfork/package")) + +;; Specify a `:branch' to install a package from a particular branch or tag. +;; This is required for some packages whose default branch isn't 'master' (which +;; our package manager can't deal with; see radian-software/straight.el#279) +;; (package! builtin-package :recipe (:branch "develop")) + +;; Use `:pin' to specify a particular commit to install. +;; (package! builtin-package :pin "1a2b3c4d5e") + + +;; Doom's packages are pinned to a specific commit and updated from release to +;; release. The `unpin!' macro allows you to unpin single packages... +;; (unpin! pinned-package) +;; ...or multiple packages +;; (unpin! pinned-package another-pinned-package) +;; ...Or *all* packages (NOT RECOMMENDED; will likely break things) +;; (unpin! t) + + +(package! org-books) +(package! org-super-agenda)