From 9c1ba37c16d5d54099c70a8e61e5c0b714ff859e Mon Sep 17 00:00:00 2001 From: SqrtMinusOne Date: Tue, 25 Nov 2025 02:17:37 +0300 Subject: [PATCH] emacs: deterred --- .emacs.d/init.el | 136 +++++++------------- .emacs.d/modules/sqrt-deterred.el | 56 +++++++++ Emacs.org | 202 ++++++++++++++++-------------- 3 files changed, 206 insertions(+), 188 deletions(-) create mode 100644 .emacs.d/modules/sqrt-deterred.el diff --git a/.emacs.d/init.el b/.emacs.d/init.el index 4d2cef4..0c4f978 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -169,100 +169,48 @@ (push my/modules-dir load-path) (pcase my/env - ("normal" - (require 'sqrt-performance) - (require 'sqrt-micromamba) - (require 'sqrt-misc-initial) - (require 'sqrt-keybindings) - (require 'sqrt-i3) - (require 'sqrt-general-config) - (require 'sqrt-wakatime) - (require 'sqrt-activitywatch) - (require 'sqrt-general-ui) - (require 'sqrt-doom-modeline) - (require 'sqrt-perspective) - (require 'sqrt-treemacs) - (require 'sqrt-lsp) - (require 'sqrt-flycheck) - (require 'sqrt-tree-sitter) - (require 'sqrt-reformatter) - (require 'sqrt-web) - (require 'sqrt-latex) - (require 'sqrt-markup) - (require 'sqrt-lisp) - (require 'sqrt-misc-programming) - (require 'sqrt-general-org) - (require 'sqrt-org-literate) - (require 'sqrt-org-productivity) - (require 'sqrt-org-export) - (require 'sqrt-dired) - (require 'sqrt-tramp) - (require 'sqrt-terms) - (require 'sqrt-dotfiles) - (require 'sqrt-elfeed) - (require 'sqrt-mail) - (require 'sqrt-gnus) - (require 'sqrt-emms) - (require 'sqrt-misc-internet) - (require 'sqrt-erc) - (require 'sqrt-mastodon) - (require 'sqrt-ement) - (require 'sqrt-telega) - (require 'sqrt-docs) - (require 'sqrt-ai) - (require 'sqrt-index) - (require 'sqrt-pass) - (require 'sqrt-docker) - (require 'sqrt-misc-apps) - (require 'sqrt-guix) - (require 'sqrt-productivity-apps) - (require 'sqrt-chess) - (require 'sqrt-gource)) - ("termux" - (require 'sqrt-performance) - (require 'sqrt-misc-initial) - (require 'sqrt-keybindings) - (require 'sqrt-termux) - (require 'sqrt-general-config) - (require 'sqrt-wakatime) - (require 'sqrt-general-ui) - (require 'sqrt-doom-modeline) - (require 'sqrt-perspective) - (require 'sqrt-treemacs) - (require 'sqrt-flycheck) - (require 'sqrt-tree-sitter) - (require 'sqrt-latex) - (require 'sqrt-markup) - (require 'sqrt-lisp) - (require 'sqrt-general-org) - (require 'sqrt-org-productivity) - (require 'sqrt-dired) - (require 'sqrt-terms) - (require 'sqrt-dotfiles) - (require 'sqrt-misc-internet) - (require 'sqrt-telega) - (require 'sqrt-docs) - (require 'sqrt-index) - (require 'sqrt-pass) - (require 'sqrt-misc-apps) - (require 'sqrt-emacs-pinentry) - (require 'sqrt-productivity-apps)) - ("remote" - (require 'sqrt-performance) - (require 'sqrt-misc-initial) - (require 'sqrt-keybindings) - (require 'sqrt-general-config) - (require 'sqrt-general-ui) - (require 'sqrt-doom-modeline) - (require 'sqrt-perspective) - (require 'sqrt-flycheck) - (require 'sqrt-tree-sitter) - (require 'sqrt-markup) - (require 'sqrt-lisp) - (require 'sqrt-dired) - (require 'sqrt-terms) - (require 'sqrt-dotfiles) - (require 'sqrt-misc-internet))) + ("normal" (require 'sqrt-performance) (require 'sqrt-micromamba) + (require 'sqrt-misc-initial) (require 'sqrt-keybindings) + (require 'sqrt-i3) (require 'sqrt-general-config) + (require 'sqrt-wakatime) (require 'sqrt-activitywatch) + (require 'sqrt-general-ui) (require 'sqrt-doom-modeline) + (require 'sqrt-perspective) (require 'sqrt-treemacs) + (require 'sqrt-lsp) (require 'sqrt-flycheck) + (require 'sqrt-tree-sitter) (require 'sqrt-reformatter) + (require 'sqrt-web) (require 'sqrt-latex) (require 'sqrt-markup) + (require 'sqrt-lisp) (require 'sqrt-misc-programming) + (require 'sqrt-general-org) (require 'sqrt-org-literate) + (require 'sqrt-org-productivity) (require 'sqrt-org-export) + (require 'sqrt-dired) (require 'sqrt-tramp) (require 'sqrt-terms) + (require 'sqrt-dotfiles) (require 'sqrt-elfeed) + (require 'sqrt-mail) (require 'sqrt-gnus) (require 'sqrt-emms) + (require 'sqrt-misc-internet) (require 'sqrt-erc) + (require 'sqrt-mastodon) (require 'sqrt-ement) + (require 'sqrt-telega) (require 'sqrt-docs) (require 'sqrt-ai) + (require 'sqrt-index) (require 'sqrt-deterred) (require 'sqrt-pass) + (require 'sqrt-docker) (require 'sqrt-misc-apps) + (require 'sqrt-guix) (require 'sqrt-productivity-apps) + (require 'sqrt-chess) (require 'sqrt-gource)) + ("termux" (require 'sqrt-performance) (require 'sqrt-misc-initial) + (require 'sqrt-keybindings) (require 'sqrt-termux) + (require 'sqrt-general-config) (require 'sqrt-wakatime) + (require 'sqrt-general-ui) (require 'sqrt-doom-modeline) + (require 'sqrt-perspective) (require 'sqrt-treemacs) + (require 'sqrt-flycheck) (require 'sqrt-tree-sitter) + (require 'sqrt-latex) (require 'sqrt-markup) (require 'sqrt-lisp) + (require 'sqrt-general-org) (require 'sqrt-org-productivity) + (require 'sqrt-dired) (require 'sqrt-terms) + (require 'sqrt-dotfiles) (require 'sqrt-misc-internet) + (require 'sqrt-telega) (require 'sqrt-docs) (require 'sqrt-index) + (require 'sqrt-pass) (require 'sqrt-misc-apps) + (require 'sqrt-emacs-pinentry) (require 'sqrt-productivity-apps)) + ("remote" (require 'sqrt-performance) (require 'sqrt-misc-initial) + (require 'sqrt-keybindings) (require 'sqrt-general-config) + (require 'sqrt-general-ui) (require 'sqrt-doom-modeline) + (require 'sqrt-perspective) (require 'sqrt-flycheck) + (require 'sqrt-tree-sitter) (require 'sqrt-markup) + (require 'sqrt-lisp) (require 'sqrt-dired) (require 'sqrt-terms) + (require 'sqrt-dotfiles) (require 'sqrt-misc-internet))) (defun my/modules--post-tangle () (when (string-match-p (rx bos (literal my/modules-dir) diff --git a/.emacs.d/modules/sqrt-deterred.el b/.emacs.d/modules/sqrt-deterred.el new file mode 100644 index 0000000..24ad487 --- /dev/null +++ b/.emacs.d/modules/sqrt-deterred.el @@ -0,0 +1,56 @@ +;;; -*- lexical-binding: t -*- +(use-package deterred + :if (file-exists-p "/home/pavel/10-19 Code/13 Other Projects/13.02 sqrt-data/13.02.R Repos/13.02.R.05 deterred/") + :straight (:local-repo + "/home/pavel/10-19 Code/13 Other Projects/13.02 sqrt-data/13.02.R Repos/13.02.R.05 deterred/" + :files (:defaults "dashboards/*.el" "migrations" "python")) + :commands (deterred) + :init + (my-leader-def "ag" #'deterred) + :config + (setq deterred-sources + (list + (deterred-activitywatch) + (deterred-digikam :digikam-db "~/30-39 Life/35 Photos/35.00D DigiKam/digikam4.db") + (deterred-habits :org-files '("~/30-39 Life/32 org-mode/misc/habit.org")) + ;; (deterred-locations) + (deterred-mastodon :server "https://mastodon.bsd.cafe/" + :account-id 113136872089175263) + (deterred-messengers) + (deterred-mpd) + (deterred-org-journal-tags) + (deterred-read-it-later :sources '(readeck)) + (deterred-reddit) + (deterred-podcasts) + (deterred-wakatime))) + + (setq deterred-backups-location "/home/pavel/10-19 Code/13 Other Projects/13.02 sqrt-data/13.02.B Backups/13.02.B.01 deterred/") + (setq deterred-dashboard-python "/home/pavel/micromamba/envs/deterred/bin/python") + (setq deterred-messengers-my-id "098236bb-5fc5-4a04-8b6d-477afa5105fa") + (setq deterred-digikam-folder "~/30-39 Life/35 Photos/") + (setq deterred-wakatime-api-key (my/password-store-get "My_Online/APIs/wakatime")) + (setq deterred-wakatime-project-name-map + '(("digital-nlp-docs-3" . "digital-nlp-docs-3 (Graduate)") + ("digital-nlp-docs" . "digital-nlp-docs (Master's)"))) + (setq deterred-wakatime-process-project-name + (lambda (name) + (let ((result (string-replace + "\\" "" + (my/index--bare-project-name name)))) + (or (alist-get result deterred-wakatime-project-name-map + nil nil #'equal) + result)))) + (setq deterred-read-it-later-readeck-token + (my/password-store-get-field "Selfhosted/readeck" "deterred_api_token")) + (setq deterred-read-it-later-readeck-url "https://readeck.sqrtminusone.xyz/") + (setq deterred-read-it-later-wallabag-url "https://wallabag.sqrtminusone.xyz/") + (setq deterred-read-it-later-wallabag-client-id + (my/password-store-get-field "Selfhosted/wallabag" "client_id")) + (setq deterred-read-it-later-wallabag-client-secret + (my/password-store-get-field "Selfhosted/wallabag" "client_secret")) + (setq deterred-read-it-later-wallabag-username + (my/password-store-get-field "Selfhosted/wallabag" "username")) + (setq deterred-read-it-later-wallabag-password + (my/password-store-get "Selfhosted/wallabag"))) + +(provide 'sqrt-deterred) diff --git a/Emacs.org b/Emacs.org index 684d6fb..110ccd7 100644 --- a/Emacs.org +++ b/Emacs.org @@ -221,6 +221,7 @@ Below is the configuration table that shows which module is activated in which e | docs | + | + | | | ai | + | | | | index | + | + | | +| deterred | + | | | | pass | + | + | | | docker | + | | | | misc-apps | + | + | | @@ -389,100 +390,48 @@ And require the necessary modules with the autogenerated code: #+NAME: modules-loading #+begin_src emacs-lisp (pcase my/env - ("normal" - (require 'sqrt-performance) - (require 'sqrt-micromamba) - (require 'sqrt-misc-initial) - (require 'sqrt-keybindings) - (require 'sqrt-i3) - (require 'sqrt-general-config) - (require 'sqrt-wakatime) - (require 'sqrt-activitywatch) - (require 'sqrt-general-ui) - (require 'sqrt-doom-modeline) - (require 'sqrt-perspective) - (require 'sqrt-treemacs) - (require 'sqrt-lsp) - (require 'sqrt-flycheck) - (require 'sqrt-tree-sitter) - (require 'sqrt-reformatter) - (require 'sqrt-web) - (require 'sqrt-latex) - (require 'sqrt-markup) - (require 'sqrt-lisp) - (require 'sqrt-misc-programming) - (require 'sqrt-general-org) - (require 'sqrt-org-literate) - (require 'sqrt-org-productivity) - (require 'sqrt-org-export) - (require 'sqrt-dired) - (require 'sqrt-tramp) - (require 'sqrt-terms) - (require 'sqrt-dotfiles) - (require 'sqrt-elfeed) - (require 'sqrt-mail) - (require 'sqrt-gnus) - (require 'sqrt-emms) - (require 'sqrt-misc-internet) - (require 'sqrt-erc) - (require 'sqrt-mastodon) - (require 'sqrt-ement) - (require 'sqrt-telega) - (require 'sqrt-docs) - (require 'sqrt-ai) - (require 'sqrt-index) - (require 'sqrt-pass) - (require 'sqrt-docker) - (require 'sqrt-misc-apps) - (require 'sqrt-guix) - (require 'sqrt-productivity-apps) - (require 'sqrt-chess) - (require 'sqrt-gource)) - ("termux" - (require 'sqrt-performance) - (require 'sqrt-misc-initial) - (require 'sqrt-keybindings) - (require 'sqrt-termux) - (require 'sqrt-general-config) - (require 'sqrt-wakatime) - (require 'sqrt-general-ui) - (require 'sqrt-doom-modeline) - (require 'sqrt-perspective) - (require 'sqrt-treemacs) - (require 'sqrt-flycheck) - (require 'sqrt-tree-sitter) - (require 'sqrt-latex) - (require 'sqrt-markup) - (require 'sqrt-lisp) - (require 'sqrt-general-org) - (require 'sqrt-org-productivity) - (require 'sqrt-dired) - (require 'sqrt-terms) - (require 'sqrt-dotfiles) - (require 'sqrt-misc-internet) - (require 'sqrt-telega) - (require 'sqrt-docs) - (require 'sqrt-index) - (require 'sqrt-pass) - (require 'sqrt-misc-apps) - (require 'sqrt-emacs-pinentry) - (require 'sqrt-productivity-apps)) - ("remote" - (require 'sqrt-performance) - (require 'sqrt-misc-initial) - (require 'sqrt-keybindings) - (require 'sqrt-general-config) - (require 'sqrt-general-ui) - (require 'sqrt-doom-modeline) - (require 'sqrt-perspective) - (require 'sqrt-flycheck) - (require 'sqrt-tree-sitter) - (require 'sqrt-markup) - (require 'sqrt-lisp) - (require 'sqrt-dired) - (require 'sqrt-terms) - (require 'sqrt-dotfiles) - (require 'sqrt-misc-internet))) + ("normal" (require 'sqrt-performance) (require 'sqrt-micromamba) + (require 'sqrt-misc-initial) (require 'sqrt-keybindings) + (require 'sqrt-i3) (require 'sqrt-general-config) + (require 'sqrt-wakatime) (require 'sqrt-activitywatch) + (require 'sqrt-general-ui) (require 'sqrt-doom-modeline) + (require 'sqrt-perspective) (require 'sqrt-treemacs) + (require 'sqrt-lsp) (require 'sqrt-flycheck) + (require 'sqrt-tree-sitter) (require 'sqrt-reformatter) + (require 'sqrt-web) (require 'sqrt-latex) (require 'sqrt-markup) + (require 'sqrt-lisp) (require 'sqrt-misc-programming) + (require 'sqrt-general-org) (require 'sqrt-org-literate) + (require 'sqrt-org-productivity) (require 'sqrt-org-export) + (require 'sqrt-dired) (require 'sqrt-tramp) (require 'sqrt-terms) + (require 'sqrt-dotfiles) (require 'sqrt-elfeed) + (require 'sqrt-mail) (require 'sqrt-gnus) (require 'sqrt-emms) + (require 'sqrt-misc-internet) (require 'sqrt-erc) + (require 'sqrt-mastodon) (require 'sqrt-ement) + (require 'sqrt-telega) (require 'sqrt-docs) (require 'sqrt-ai) + (require 'sqrt-index) (require 'sqrt-deterred) (require 'sqrt-pass) + (require 'sqrt-docker) (require 'sqrt-misc-apps) + (require 'sqrt-guix) (require 'sqrt-productivity-apps) + (require 'sqrt-chess) (require 'sqrt-gource)) + ("termux" (require 'sqrt-performance) (require 'sqrt-misc-initial) + (require 'sqrt-keybindings) (require 'sqrt-termux) + (require 'sqrt-general-config) (require 'sqrt-wakatime) + (require 'sqrt-general-ui) (require 'sqrt-doom-modeline) + (require 'sqrt-perspective) (require 'sqrt-treemacs) + (require 'sqrt-flycheck) (require 'sqrt-tree-sitter) + (require 'sqrt-latex) (require 'sqrt-markup) (require 'sqrt-lisp) + (require 'sqrt-general-org) (require 'sqrt-org-productivity) + (require 'sqrt-dired) (require 'sqrt-terms) + (require 'sqrt-dotfiles) (require 'sqrt-misc-internet) + (require 'sqrt-telega) (require 'sqrt-docs) (require 'sqrt-index) + (require 'sqrt-pass) (require 'sqrt-misc-apps) + (require 'sqrt-emacs-pinentry) (require 'sqrt-productivity-apps)) + ("remote" (require 'sqrt-performance) (require 'sqrt-misc-initial) + (require 'sqrt-keybindings) (require 'sqrt-general-config) + (require 'sqrt-general-ui) (require 'sqrt-doom-modeline) + (require 'sqrt-perspective) (require 'sqrt-flycheck) + (require 'sqrt-tree-sitter) (require 'sqrt-markup) + (require 'sqrt-lisp) (require 'sqrt-dired) (require 'sqrt-terms) + (require 'sqrt-dotfiles) (require 'sqrt-misc-internet))) #+end_src @@ -13526,6 +13475,71 @@ I also need the tree to use in my =sqrt-data=, so let's export this to JSON. (insert (json-encode full-tree)) (json-pretty-print-buffer)))) #+end_src +** DETERRED +:PROPERTIES: +:MODULE_NAME: deterred +:header-args:emacs-lisp: :tangle /home/pavel/.emacs.d/modules/sqrt-deterred.el :comments links +:END: + +#+begin_src emacs-lisp +(use-package deterred + :if (file-exists-p "/home/pavel/10-19 Code/13 Other Projects/13.02 sqrt-data/13.02.R Repos/13.02.R.05 deterred/") + :straight (:local-repo + "/home/pavel/10-19 Code/13 Other Projects/13.02 sqrt-data/13.02.R Repos/13.02.R.05 deterred/" + :files (:defaults "dashboards/*.el" "migrations" "python")) + :commands (deterred) + :init + (my-leader-def "ag" #'deterred) + :config + (setq deterred-sources + (list + (deterred-activitywatch) + (deterred-digikam :digikam-db "~/30-39 Life/35 Photos/35.00D DigiKam/digikam4.db") + (deterred-habits :org-files '("~/30-39 Life/32 org-mode/misc/habit.org")) + ;; (deterred-locations) + (deterred-mastodon :server "https://mastodon.bsd.cafe/" + :account-id 113136872089175263) + (deterred-messengers) + (deterred-mpd) + (deterred-org-journal-tags) + (deterred-read-it-later :sources '(readeck)) + (deterred-reddit) + (deterred-podcasts) + (deterred-wakatime))) + + (setq deterred-backups-location "/home/pavel/10-19 Code/13 Other Projects/13.02 sqrt-data/13.02.B Backups/13.02.B.01 deterred/") + (setq deterred-dashboard-python "/home/pavel/micromamba/envs/deterred/bin/python") + (setq deterred-messengers-my-id "098236bb-5fc5-4a04-8b6d-477afa5105fa") + (setq deterred-digikam-folder "~/30-39 Life/35 Photos/") + (setq deterred-wakatime-api-key (my/password-store-get "My_Online/APIs/wakatime")) + (setq deterred-wakatime-project-name-map + '(("digital-nlp-docs-3" . "digital-nlp-docs-3 (Graduate)") + ("digital-nlp-docs" . "digital-nlp-docs (Master's)"))) + (setq deterred-wakatime-process-project-name + (lambda (name) + (let ((result (string-replace + "\\" "" + (my/index--bare-project-name name)))) + (or (alist-get result deterred-wakatime-project-name-map + nil nil #'equal) + result)))) + (setq deterred-read-it-later-readeck-token + (my/password-store-get-field "Selfhosted/readeck" "deterred_api_token")) + (setq deterred-read-it-later-readeck-url "https://readeck.sqrtminusone.xyz/") + (setq deterred-read-it-later-wallabag-url "https://wallabag.sqrtminusone.xyz/") + (setq deterred-read-it-later-wallabag-client-id + (my/password-store-get-field "Selfhosted/wallabag" "client_id")) + (setq deterred-read-it-later-wallabag-client-secret + (my/password-store-get-field "Selfhosted/wallabag" "client_secret")) + (setq deterred-read-it-later-wallabag-username + (my/password-store-get-field "Selfhosted/wallabag" "username")) + (setq deterred-read-it-later-wallabag-password + (my/password-store-get "Selfhosted/wallabag"))) +#+end_src + +#+RESULTS: +: #s(hash-table data (:use-package (26916 57402 663223 380000) :init (26916 57402 663203 364000) :init-secs (0 0 1572 511000) :use-package-secs (0 0 18205 114000))) + ** Utilities *** pass :PROPERTIES: