summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--agenda.org38
-rw-r--r--config/emacs.org287
-rw-r--r--config/nix.org67
-rw-r--r--config/qtile.org7
-rw-r--r--index.org1
-rw-r--r--mindmap/limit.org6
m---------nix0
8 files changed, 308 insertions, 99 deletions
diff --git a/.gitignore b/.gitignore
index 9000426..3752675 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,4 +3,5 @@ sitemap.org
sitemap.xml
style.css
result
+.env
.pre-commit-config.yaml \ No newline at end of file
diff --git a/agenda.org b/agenda.org
index d99bb3b..8679bd8 100644
--- a/agenda.org
+++ b/agenda.org
@@ -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={}&amp;go=Go&amp;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))]),
diff --git a/index.org b/index.org
index 3f0937f..90b4688 100644
--- a/index.org
+++ b/index.org
@@ -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