diff options
| author | Preston Pan <ret2pop@nullring.xyz> | 2026-03-30 17:31:14 -0700 |
|---|---|---|
| committer | Preston Pan <ret2pop@nullring.xyz> | 2026-03-30 17:31:14 -0700 |
| commit | dccbebb81e9241b9b7b2140b77a818befe6e5a0a (patch) | |
| tree | fe73c091a92ec869fb8993429ef7997210feb975 | |
| parent | d67b4932e2e20e2d0c249c501e86b88fa9ff6fe1 (diff) | |
sweep
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | agenda.org | 38 | ||||
| -rw-r--r-- | config/emacs.org | 287 | ||||
| -rw-r--r-- | config/nix.org | 67 | ||||
| -rw-r--r-- | config/qtile.org | 7 | ||||
| -rw-r--r-- | index.org | 1 | ||||
| -rw-r--r-- | mindmap/limit.org | 6 | ||||
| m--------- | nix | 0 |
8 files changed, 308 insertions, 99 deletions
@@ -3,4 +3,5 @@ sitemap.org sitemap.xml style.css result +.env .pre-commit-config.yaml
\ No newline at end of file @@ -72,11 +72,16 @@ DEADLINE: <2026-03-18 Wed> * Habits These are some habits I want to track. They are repeated according to a calendar schedule in general. +** TODO Merge Feature Branches to Monorepo Main +SCHEDULED: <2026-03-29 Sun 10:00 .+1w> +I need to have a schedule for cleaning my git tree. ** TODO Skincare -SCHEDULED: <2026-03-20 Fri .+1d> +SCHEDULED: <2026-03-30 Mon 12:30 .+1d> :PROPERTIES: -:LAST_REPEAT: [2026-03-19 Thu 03:36] +:LAST_REPEAT: [2026-03-29 Sun 14:01] :END: +- State "DONE" from "TODO" [2026-03-29 Sun 14:01] +- State "DONE" from "TODO" [2026-03-27 Fri 11:29] - State "DONE" from "TODO" [2026-03-19 Thu 03:36] - State "DONE" from "TODO" [2025-10-16 Thu 18:06] Current stack: @@ -85,11 +90,15 @@ Current stack: - Hyaluronic acid (2x/day) - Glycerin for hands ** TODO Supplements -SCHEDULED: <2026-03-26 Thu 12:00 .+1d> +SCHEDULED: <2026-03-30 Mon 12:00 .+1d> :PROPERTIES: -:LAST_REPEAT: [2026-03-25 Wed 11:52] +:LAST_REPEAT: [2026-03-29 Sun 14:01] :STYLE: habit :END: +- State "DONE" from "TODO" [2026-03-29 Sun 14:01] +- State "DONE" from "TODO" [2026-03-28 Sat 17:44] +- State "DONE" from "TODO" [2026-03-27 Fri 11:29] +- State "DONE" from "TODO" [2026-03-26 Thu 12:20] - State "DONE" from "TODO" [2026-03-25 Wed 11:52] - State "DONE" from "TODO" [2026-03-24 Tue 16:24] - State "DONE" from "TODO" [2026-03-21 Sat 10:26] @@ -122,7 +131,7 @@ Current stack: - Creatine Monohydrate - Coffee ** TODO Strength Training -SCHEDULED: <2025-10-17 Fri .+2d> +SCHEDULED: <2025-10-17 Fri 14:00 .+2d> :PROPERTIES: :LAST_REPEAT: [2025-10-16 Thu 18:08] :STYLE: habit @@ -142,7 +151,7 @@ SCHEDULED: <2025-10-17 Fri .+2d> - State "DONE" from "TODO" [2025-03-11 Tue 00:16] I want to be healthy. ** TODO Run -SCHEDULED: <2025-09-29 Mon .+1d> +SCHEDULED: <2025-09-29 Mon 16:00 .+1d> :PROPERTIES: :LAST_REPEAT: [2025-09-28 Sun 20:52] :END: @@ -176,11 +185,15 @@ Stretches: - Seal - Cat ** TODO Journal -SCHEDULED: <2026-03-25 Wed 22:00 .+1d> +SCHEDULED: <2026-03-31 Tue 22:00 .+1d> :PROPERTIES: -:LAST_REPEAT: [2026-03-24 Tue 22:48] +:LAST_REPEAT: [2026-03-30 Mon 04:00] :STYLE: habit :END: +- State "DONE" from "TODO" [2026-03-30 Mon 04:00] +- State "DONE" from "TODO" [2026-03-28 Sat 22:21] +- State "DONE" from "TODO" [2026-03-27 Fri 00:00] +- State "DONE" from "TODO" [2026-03-25 Wed 21:59] - State "DONE" from "TODO" [2026-03-24 Tue 22:48] - State "DONE" from "TODO" [2026-03-21 Sat 10:33] - State "DONE" from "TODO" [2026-03-18 Wed 23:16] @@ -209,10 +222,15 @@ SCHEDULED: <2026-03-25 Wed 22:00 .+1d> - State "DONE" from "TODO" [2025-01-11 Sat 02:25] I want to journal every day, at least a little bit, about my life and track it with a git repo. ** TODO Update Agenda -SCHEDULED: <2026-03-26 Thu 11:00 .+1d> +SCHEDULED: <2026-03-31 Tue 11:00 .+1d> :PROPERTIES: -:LAST_REPEAT: [2026-03-25 Wed 10:11] +:LAST_REPEAT: [2026-03-30 Mon 17:08] :END: +- State "DONE" from "TODO" [2026-03-30 Mon 17:08] +- State "DONE" from "TODO" [2026-03-29 Sun 14:01] +- State "DONE" from "TODO" [2026-03-28 Sat 17:44] +- State "DONE" from "TODO" [2026-03-27 Fri 11:29] +- State "DONE" from "TODO" [2026-03-26 Thu 12:20] - State "DONE" from "TODO" [2026-03-25 Wed 10:11] - State "DONE" from "TODO" [2026-03-24 Tue 16:24] - State "DONE" from "TODO" [2026-03-21 Sat 10:26] diff --git a/config/emacs.org b/config/emacs.org index 98fe132..0144bf6 100644 --- a/config/emacs.org +++ b/config/emacs.org @@ -304,67 +304,67 @@ configuration as they are also defined using the use-package macros. Some of the have documentation strings attached, so it is easy to follow what the individual options do. Emacs is self documenting, after all! #+begin_src emacs-lisp :tangle ../nix/init.el - (use-package emacs - :custom - ;; global defaults - (enable-local-variables :all "don't emit local variable warnings when publishing") - (indent-tabs-mode nil "no real tabs, only spaces") - (tab-width 2 "tab show as 2 spaces") - (standard-indent 2 "base indentation") - (custom-safe-themes t "I already manage my themes with nix") - (custom-file null-device "Don't save custom configs") - (jit-lock-chunk-size 16384 "actually load code blocks") - (jit-lock-stealth-time 1.25 "fontify in the background after 1.25s of idle time") - (jit-lock-stealth-nice 0.1 "don't freeze Emacs while stealth fontifying") - ;; --------------------------------------------------------------------------- - ;; UTF-8 Everywhere - ;; --------------------------------------------------------------------------- - (set-language-environment "UTF-8") - (set-default-coding-systems 'utf-8) - (prefer-coding-system 'utf-8) - (set-terminal-coding-system 'utf-8) - (set-keyboard-coding-system 'utf-8) - (set-selection-coding-system 'utf-8) - (locale-coding-system 'utf-8) - (use-default-font-for-symbols nil) +(use-package emacs + :custom + ;; global defaults + (enable-local-variables :all "don't emit local variable warnings when publishing") + (indent-tabs-mode nil "no real tabs, only spaces") + (tab-width 2 "tab show as 2 spaces") + (standard-indent 2 "base indentation") + (custom-safe-themes t "I already manage my themes with nix") + (custom-file null-device "Don't save custom configs") + (jit-lock-chunk-size 16384 "actually load code blocks") + (jit-lock-stealth-time 1.25 "fontify in the background after 1.25s of idle time") + (jit-lock-stealth-nice 0.1 "don't freeze Emacs while stealth fontifying") + ;; --------------------------------------------------------------------------- + ;; UTF-8 Everywhere + ;; --------------------------------------------------------------------------- + (set-language-environment "UTF-8") + (set-default-coding-systems 'utf-8) + (prefer-coding-system 'utf-8) + (set-terminal-coding-system 'utf-8) + (set-keyboard-coding-system 'utf-8) + (set-selection-coding-system 'utf-8) + (locale-coding-system 'utf-8) + (use-default-font-for-symbols nil) - ;; Startup errors - (warning-minimum-level :emergency "Supress emacs warnings") - (confirm-kill-processes nil "Don't ask to quit") - (debug-ignored-errors (cons 'remote-file-error debug-ignored-errors) "Remove annoying error from debug errors") - (browse-url-generic-program "qutebrowser" "set browser to librewolf") - (browse-url-secondary-browser-function 'browse-url-generic "set browser") - (browse-url-browser-function 'browse-url-generic "set browser") - (default-frame-alist '((alpha-background . 100) - (vertical-scroll-bars) - (internal-border-width . 24) - (left-fringe . 8) - (right-fringe . 8))) - ;; Mouse wheel - (mouse-wheel-scroll-amount '(1 ((shift) . 1)) "Nicer scrolling") - (mouse-wheel-progressive-speed nil "Make scrolling non laggy") - (mouse-wheel-follow-mouse 't "Scroll correct window") - (scroll-conservatively 101 "Sort of smooth scrolling") - (scroll-step 1 "Scroll one line at a time") - (debug-on-error nil "Don't make the annoying popups") - (display-time-24hr-format t "Use 24 hour format to read the time") - (display-line-numbers-type 'relative "Relative line numbers for easy vim jumping") - (use-short-answers t "Use y instead of yes") - (make-backup-files nil "Don't make backups") - (display-fill-column-indicator-column 150 "Draw a line at 100 characters") - (fill-column 150) - (line-spacing 2 "Default line spacing") - (c-doc-comment-style '((c-mode . doxygen) - (c++-mode . doxygen))) + ;; Startup errors + (warning-minimum-level :emergency "Supress emacs warnings") + (confirm-kill-processes nil "Don't ask to quit") + (debug-ignored-errors (cons 'remote-file-error debug-ignored-errors) "Remove annoying error from debug errors") + (browse-url-generic-program "qutebrowser" "set browser to librewolf") + (browse-url-secondary-browser-function 'browse-url-generic "set browser") + (browse-url-browser-function 'browse-url-generic "set browser") + (default-frame-alist '((alpha-background . 100) + (vertical-scroll-bars) + (internal-border-width . 24) + (left-fringe . 8) + (right-fringe . 8))) + ;; Mouse wheel + (mouse-wheel-scroll-amount '(1 ((shift) . 1)) "Nicer scrolling") + (mouse-wheel-progressive-speed nil "Make scrolling non laggy") + (mouse-wheel-follow-mouse 't "Scroll correct window") + (scroll-conservatively 101 "Sort of smooth scrolling") + (scroll-step 1 "Scroll one line at a time") + (debug-on-error nil "Don't make the annoying popups") + (display-time-24hr-format t "Use 24 hour format to read the time") + (display-line-numbers-type 'relative "Relative line numbers for easy vim jumping") + (use-short-answers t "Use y instead of yes") + (make-backup-files nil "Don't make backups") + (display-fill-column-indicator-column 150 "Draw a line at 100 characters") + (fill-column 150) + (line-spacing 2 "Default line spacing") + (c-doc-comment-style '((c-mode . doxygen) + (c++-mode . doxygen))) - :hook ((text-mode . visual-line-mode) - (prog-mode . display-line-numbers-mode) - (prog-mode . display-fill-column-indicator-mode) - (org-mode . auto-fill-mode) - (org-mode . display-fill-column-indicator-mode) - (org-mode . display-line-numbers-mode)) - :config (emacs-config)) + :hook ((text-mode . visual-line-mode) + (prog-mode . display-line-numbers-mode) + (prog-mode . display-fill-column-indicator-mode) + (org-mode . auto-fill-mode) + (org-mode . display-fill-column-indicator-mode) + (org-mode . display-line-numbers-mode)) + :config (emacs-config)) #+end_src As you can see, the config (and sometimes the init section) of most of these use-package blocks contain most of the imperative commands. In fact, most of the configurations are completely @@ -453,6 +453,10 @@ This is my org mode configuration, which also configures latex. (org-use-sub-superscripts "{}" "Only display superscripts and subscripts when enclosed in {}") (org-pretty-entities t "prettify org mode") (org-agenda-files (list "~/monorepo/agenda.org" "~/org/notes.org" "~/org/agenda.org") "set default org files") + (org-agenda-block-separator "") + (org-fontify-whole-heading-line t) + (org-fontify-done-headline t) + (org-fontify-quote-and-verse-blocks t) (org-default-notes-file (concat org-directory "/notes.org") "Notes file") ;; ricing @@ -744,6 +748,77 @@ First, some small configurations and some evil-mode initilaization because I lik (use-package page-break-lines :config (page-break-lines-mode)) + +(use-package evil-mc + :after evil + :config (global-evil-mc-mode 1)) + +(use-package evil-surround + :after evil + :config + (global-evil-surround-mode 1)) + +(use-package evil-lion + :config + (evil-lion-mode)) + +(use-package evil-multiedit + :after evil + :config + (evil-multiedit-default-keybinds)) + +(use-package evil-textobj-tree-sitter + :ensure t + ;; Ensure Evil is loaded first so the text-object maps exist + :after evil + + ;; 1. The Keybindings + :bind ((:map evil-outer-text-objects-map + ("f" . my-treesit-outer-function) + ("c" . my-treesit-outer-class) + ("a" . my-treesit-outer-arg)) + + (:map evil-inner-text-objects-map + ("f" . my-treesit-inner-function) + ("c" . my-treesit-inner-class) + ("a" . my-treesit-inner-arg)) + + (:map evil-normal-state-map + ("] f" . my-treesit-goto-next-function) + ("[ f" . my-treesit-goto-prev-function) + ("] c" . my-treesit-goto-next-class) + ("[ c" . my-treesit-goto-prev-class))) + + ;; 2. The Command Definitions + :config + ;; Link the custom names we bound above to the actual Tree-sitter closures + (defalias 'my-treesit-outer-function (evil-textobj-tree-sitter-get-textobj "function.outer")) + (defalias 'my-treesit-inner-function (evil-textobj-tree-sitter-get-textobj "function.inner")) + + (defalias 'my-treesit-outer-class (evil-textobj-tree-sitter-get-textobj "class.outer")) + (defalias 'my-treesit-inner-class (evil-textobj-tree-sitter-get-textobj "class.inner")) + + ;; "a" is standard Vim terminology for "argument" (parameter) + (defalias 'my-treesit-outer-arg (evil-textobj-tree-sitter-get-textobj "parameter.outer")) + (defalias 'my-treesit-inner-arg (evil-textobj-tree-sitter-get-textobj "parameter.inner")) + + ;; Navigation commands are standard interactive functions, so we wrap them cleanly + (defun my-treesit-goto-next-function () + (interactive) + (evil-textobj-tree-sitter-goto-textobj "function.outer")) + + (defun my-treesit-goto-prev-function () + (interactive) + (evil-textobj-tree-sitter-goto-textobj "function.outer" t)) + + (defun my-treesit-goto-next-class () + (interactive) + (evil-textobj-tree-sitter-goto-textobj "class.outer")) + + (defun my-treesit-goto-prev-class () + (interactive) + (evil-textobj-tree-sitter-goto-textobj "class.outer" t))) + #+end_src ** Journal I use org-journal to journal about my life, and it's a part of my website: @@ -850,14 +925,43 @@ We use org-alert in order to give us notifications based on our org-agenda. ** LSP We set up eglot, the LSP manager for emacs, now built in: #+begin_src emacs-lisp :tangle ../nix/init.el -(use-package lsp +(use-package lsp-mode :custom (lsp-use-plists t) (lsp-typescript-format-enable t) (lsp-typescript-indent-size 4) (lsp-typescript-tab-size 4) (lsp-typescript-indent-style "spaces") - :hook ((prog-mode . lsp))) + + (lsp-auto-guess-root t) + (lsp-restart 'auto-restart) + (lsp-keep-workspace-alive t) + + :hook ((python-mode . lsp-deferred) + (python-ts-mode . lsp-deferred) + (emacs-lisp-mode . lsp-deferred) + (yaml-mode . lsp-deferred) + (yaml-ts-mode . lsp-deferred) + (json-mode . lsp-deferred) + (json-ts-mode . lsp-deferred) + (toml-mode . lsp-deferred) + (toml-ts-mode . lsp-deferred) + (sh-mode . lsp-deferred) + (nix-mode . lsp-deferred)) + :commands (lsp lsp-deferred) + :general + (:states 'normal :keymaps 'lsp-mode-map + "gI" #'lsp-find-implementation + "gy" #'lsp-find-type-definition + "K" #'lsp-describe-thing-at-point)) + +(use-package lsp-ui + :after lsp-mode + :general + (:states 'normal :keymaps 'lsp-mode-map + "gd" #'lsp-ui-peek-find-definitions + "gr" #'lsp-ui-peek-find-references) + :hook (lsp-mode . lsp-ui-mode)) (use-package editorconfig :config (editorconfig-mode 1)) @@ -867,6 +971,11 @@ We set up eglot, the LSP manager for emacs, now built in: (use-package platformio-mode :hook (prog-mode . platformio-conditionally-enable)) + +(use-package dap-mode + :custom + (dap-auto-configure-features '(sessions locals controls tooltip)) + :hook (lsp-mode . dap-mode)) #+end_src *** C/C++ Specific configuration for C (I also use the clangd lsp): @@ -904,13 +1013,14 @@ We want our emacs initialization to be pretty and display useful things. (use-package dashboard :after (projectile) :custom - (dashboard-banner-logo-title "Introducing: Ret2pop" "Set title for dashboard") - (dashboard-startup-banner "/home/preston/monorepo/nix/data/logo.png") + (dashboard-banner-logo-title "Introducing: Ret2pop!" "Set title for dashboard") + (dashboard-startup-banner logo-file) (dashboard-icon-type 'all-the-icons "Use nerd icons") (dashboard-center-content t "Center content") (dashboard-set-init-info t) (dashboard-set-heading-icons t) (dashboard-set-file-icons t) + (dashboard-projects-backend 'projectile) (dashboard-week-agenda t "Agenda in dashboard") (dashboard-items '((recents . 5) @@ -1326,6 +1436,8 @@ interface and can control it from emacs): :config (elfeed-tube-setup)) (use-package elfeed-tube-mpv + :after elfeed-tube + :demand t :bind (:map elfeed-show-mode-map ("C-c C-f" . elfeed-tube-mpv-follow-mode) ("C-c C-c" . elfeed-tube-mpv) @@ -1338,12 +1450,14 @@ I use treemacs as my sidebar for projects, so that I can easily navigate to any project directory. #+begin_src emacs-lisp :tangle ../nix/init.el (use-package treemacs + :demand t :after doom-themes) (use-package treemacs-evil :after (treemacs evil)) (use-package treemacs-projectile + :demand t :after (treemacs projectile)) (use-package treemacs-magit @@ -1508,6 +1622,55 @@ I use tabs because sometimes I like using the mouse (it's actually more efficien :demand t :config (centaur-tabs-mode t)) #+end_src +** Sops +#+begin_src emacs-lisp :tangle ../nix/init.el +(unless noninteractive + (use-package sops + :bind (("C-c C-c" . sops-save-file) + ("C-c C-k" . sops-cancel) + ("C-c C-d" . sops-edit-file)) + :init (global-sops-mode 1))) +#+end_src +** Pulseaudio +#+begin_src emacs-lisp :tangle ../nix/init.el +(unless noninteractive + (use-package pulseaudio-control + :config (pulseaudio-control-default-keybindings))) +#+end_src +** TreeSitter +#+begin_src emacs-lisp :tangle ../nix/init.el +(use-package treesit-auto + :custom + (treesit-auto-install 'prompt) + :config + (treesit-auto-add-to-auto-mode-alist 'all) + (global-treesit-auto-mode)) +#+end_src +** Indentation +#+begin_src emacs-lisp :tangle ../nix/init.el +(use-package aggressive-indent + :hook ((js-ts-mode . aggressive-indent-mode) + (css-ts-mode . aggressive-indent-mode) + (json-ts-mode . aggressive-indent-mode) + (nix-mode . aggressive-indent-mode) + (c-ts-mode . aggressive-indent-mode))) +#+end_src +** Pulsar +#+begin_src emacs-lisp :tangle ../nix/init.el +(use-package pulsar + :custom + (pulsar-delay 0.055) + (pulsar-iterations 5) + (pulsar-face 'pulsar-green) + (pulsar-region-face 'pulsar-yellow) + (pulsar-highlight-face 'pulsar-magenta) + :bind + (:map global-map + ("C-x l" . pulsar-pulse-line) + ("C-x L" . pulsar-highlight-permanently-dwim)) + :init + (pulsar-global-mode 1)) +#+end_src * Unpinned ** Lean4 For some reason, lean4-mode is not in MELPA currently so I have to do this ugly thing: diff --git a/config/nix.org b/config/nix.org index 837d713..ff777fb 100644 --- a/config/nix.org +++ b/config/nix.org @@ -395,26 +395,27 @@ with mkDiskoFiles. * Sops Configuration In order to use the sops configuration, you must change the age public key to the one that you own: -#+begin_src yaml :tangle ../nix/.sops.yaml - keys: - - &primary age165ul43e8rc0qwzz2f2q9cw02psm2mkudsrwavq2e0pxs280p64yqy2z0dr - - &vps age1acpuyy2qnduyxzwvusd8urr6a78e3f37ylhvh2pngyqytf5r8ans5vkest - creation_rules: - - path_regex: secrets/secrets.yaml$ - key_groups: - - age: - - *primary +#+begin_src yaml :tangle ../nix/.sops.yaml :comments no +keys: + - &primary age165ul43e8rc0qwzz2f2q9cw02psm2mkudsrwavq2e0pxs280p64yqy2z0dr + - &vps age1acpuyy2qnduyxzwvusd8urr6a78e3f37ylhvh2pngyqytf5r8ans5vkest - - path_regex: secrets/vps_secrets.yaml$ - key_groups: - - age: - - *vps +creation_rules: + - path_regex: secrets/secrets.yaml$ + key_groups: + - age: + - *primary - - path_regex: secrets/common_secrets.yaml$ - key_groups: - - age: - - *primary - - *vps + - path_regex: secrets/vps_secrets.yaml$ + key_groups: + - age: + - *vps + + - path_regex: secrets/common_secrets.yaml$ + key_groups: + - age: + - *primary + - *vps #+end_src also note that you will have to write your own secrets.yaml file, with an entry called ~mail~, which is used for the imaps and smtps password. @@ -3147,6 +3148,7 @@ in lang-lean.enable = lib.mkEnableOption "Enables lean language support"; lang-haskell.enable = lib.mkEnableOption "Enables haskell language support"; lang-scheme.enable = lib.mkEnableOption "Enables scheme language support"; + lang-data.enable = lib.mkEnableOption "Enables markup languages support"; crypto.enable = lib.mkEnableOption "Enables various cryptocurrency wallets"; art.enable = lib.mkEnableOption "Enables various art programs"; music.enable = lib.mkEnableOption "Enables mpd"; @@ -3196,13 +3198,20 @@ in (if config.monorepo.profiles.lang-python.enable then (with pkgs; [ poetry python3 - python314Packages.python-lsp-server + semgrep + ty + ruff + python314Packages.debugpy ]) else []) ++ (if config.monorepo.profiles.lang-sol.enable then (with pkgs; [ solc ]) else []) ++ + (if config.monorepo.profiles.lang-data.enable then (with pkgs; [ + yaml-language-server + ]) else []) + ++ (if config.monorepo.profiles.lang-openscad.enable then (with pkgs; [ openscad openscad-lsp @@ -3299,6 +3308,7 @@ in lang-idris.enable = lib.mkDefault config.monorepo.profiles.enable; lang-agda.enable = lib.mkDefault config.monorepo.profiles.enable; lang-scheme.enable = lib.mkDefault config.monorepo.profiles.enable; + lang-data.enable = lib.mkDefault config.monorepo.profiles.enable; crypto.enable = lib.mkDefault config.monorepo.profiles.enable; art.enable = lib.mkDefault config.monorepo.profiles.enable; @@ -3393,6 +3403,7 @@ be straightforward. w = "https://en.wikipedia.org/wiki/Special:Search?search={}&go=Go&ns0=1"; aw = "https://wiki.archlinux.org/?search={}"; nw = "https://wiki.nixos.org/index.php?search={}"; + npk = "https://search.nixos.org/packages?channel=unstable&query={}"; }; settings = { content.blocking.method = "both"; @@ -3445,7 +3456,7 @@ compilation, and because I can fetch their exact versions. Note that I have a st configuration here that tells emacs to load my real configuration at ~~/monorepo/config/emacs.org~ as an org file which gets automatically tangled to an emacs-lisp file. #+begin_src nix :tangle ../nix/modules/home/emacs.nix -{ lib, config, pkgs, super, ... }: +{ lib, config, pkgs, super, self, ... }: { programs.emacs = { @@ -3453,6 +3464,7 @@ as an org file which gets automatically tangled to an emacs-lisp file. package = pkgs.emacs-pgtk; extraConfig = '' (setq debug-on-error t) + (setq logo-file "${self}/data/logo.png") (setq system-email "${super.monorepo.vars.email}") (setq system-username "${super.monorepo.vars.internetName}") (setq system-fullname "${super.monorepo.vars.fullName}") @@ -3475,6 +3487,7 @@ as an org file which gets automatically tangled to an emacs-lisp file. I want to separate out these packages so that my parent flake which builds my website has a list of my packages. #+begin_src nix :tangle ../nix/modules/home/emacs-packages.nix epkgs: with epkgs; [ + aggressive-indent all-the-icons agda2-mode auctex @@ -3484,6 +3497,7 @@ epkgs: with epkgs; [ company-solidity counsel centaur-tabs + dap-mode dash dashboard doom-themes @@ -3503,7 +3517,12 @@ epkgs: with epkgs; [ evil evil-collection evil-commentary + evil-multiedit + evil-mc + evil-surround evil-org + evil-lion + evil-textobj-tree-sitter f flycheck geiser @@ -3521,6 +3540,7 @@ epkgs: with epkgs; [ latex-preview-pane lsp-ivy lsp-mode + lsp-ui lsp-haskell lyrics-fetcher mastodon @@ -3541,6 +3561,8 @@ epkgs: with epkgs; [ org-modern org-roam org-roam-ui + pulseaudio-control + pulsar page-break-lines password-store pdf-tools @@ -3550,6 +3572,7 @@ epkgs: with epkgs; [ polymode rustic s + sops solaire-mode scad-mode simple-httpd @@ -4076,10 +4099,10 @@ for these configurations. # Apps octaveFull - grim swww vim kotatogram-desktop tg qwen-code element-desktop signal-desktop signal-cli thunderbird jami + grim swww vim element-desktop signal-desktop signal-cli thunderbird jami imv slurp # Sound/media - pavucontrol alsa-utils imagemagick ffmpeg helvum + pavucontrol alsa-utils imagemagick ffmpeg helvum pulseaudio # Net curl rsync gitFull ungoogled-chromium devd diff --git a/config/qtile.org b/config/qtile.org index 0f5c847..83d0c8d 100644 --- a/config/qtile.org +++ b/config/qtile.org @@ -26,9 +26,8 @@ from qtile_extras.layout.decorations import RoundedCorners import re #+end_src We're using wayland because it's better. -* Config +* Data #+begin_src python :tangle ../nix/qtile/config.py - mod = "mod4" terminal = "kitty" wallpaper = WALLPAPER @@ -73,7 +72,9 @@ workspace_keys = { "8": "8", "9": "9", } - +#+end_src +* Config +#+begin_src python :tangle ../nix/qtile/config.py groups = [ Group("1", matches=[Match(wm_class=re.compile(r"^emacs$", re.IGNORECASE))]), Group("2", matches=[Match(wm_class=re.compile(r"(qutebrowser|org\.qutebrowser\.qutebrowser)", re.IGNORECASE))]), @@ -38,7 +38,6 @@ Click the hyperlink to find out! In case you didn't see: * [[file:config/index.org][Configurations]] #+attr_html: :alt nix topology graph of all my systems [[./img/topology.svg]] - Most of my configurations/dotfiles for various programs are literate configurations, and I can therefore publish them. So I did! Configurations include: - EMacs diff --git a/mindmap/limit.org b/mindmap/limit.org index d0f6679..be543ad 100644 --- a/mindmap/limit.org +++ b/mindmap/limit.org @@ -4,6 +4,7 @@ #+title: limit #+author: Preston Pan #+description: Pushing math to its limit +#+LATEX_HEADER: \usepackage{tikz-cd} #+options: broken-links:t @@ -151,5 +152,8 @@ different /kinds/ of limits enables oneself to draw on connections between limit set is exactly the same set with all its limit points included, and both closures, and as we will see, limits, are /idempotent/, which is to say, applying them once is the same thing as applying them twice. Note that if $f: X \rightarrow Y$ where $Y$ is any topological space and $f$ is any continuous function, then $\beta f(X) = f(\beta X)$, which one can represent with a commutative diagram, where $\beta f$ is the /unique extension/ of the mapping $f$. Actually, in a moment -we will see that the funcor commuting is equivalent to the /limit/ commuting. +we will see that the functor commuting is equivalent to the /limit/ commuting on nets. + +*** The Universal Property +We say the following diagram commutes: diff --git a/nix b/nix -Subproject a455ea205a3edf3910f82e7e442c8b6f5f805fb +Subproject 691a04f2dc49e6b8ec95e7463dd0cab49fbc304 |
