These are some habits I want to track. They are repeated according to a calendar schedule in
general.
** TODO Supplements
-SCHEDULED: <2025-03-22 Sat .+1d>
+SCHEDULED: <2025-08-28 Thu .+1d>
:PROPERTIES:
-:LAST_REPEAT: [2025-03-21 Fri 04:48]
+:LAST_REPEAT: [2025-08-27 Wed 21:46]
:END:
+- State "DONE" from "TODO" [2025-08-27 Wed 21:46]
+- State "DONE" from "TODO" [2025-08-25 Mon 21:17]
- State "DONE" from "TODO" [2025-03-21 Fri 04:48]
- State "DONE" from "TODO" [2025-03-13 Thu 09:52]
- State "DONE" from "TODO" [2025-03-11 Tue 00:34]
- Vitamin D3
- EPA/DHA
** TODO Pushups
-SCHEDULED: <2025-03-22 Sat .+1d>
+SCHEDULED: <2025-08-28 Thu .+1d>
:PROPERTIES:
-:LAST_REPEAT: [2025-03-21 Fri 04:49]
+:LAST_REPEAT: [2025-08-27 Wed 21:46]
:END:
+- State "DONE" from "TODO" [2025-08-27 Wed 21:46]
+- State "DONE" from "TODO" [2025-08-25 Mon 21:16]
- State "DONE" from "TODO" [2025-03-21 Fri 04:49]
- State "DONE" from "TODO" [2025-03-11 Tue 00:16]
I want to be healthy.
** TODO Run
-SCHEDULED: <2025-06-27 Fri .+1d>
+SCHEDULED: <2025-08-26 Tue .+1d>
:PROPERTIES:
-:LAST_REPEAT: [2025-06-26 Thu 23:22]
+:LAST_REPEAT: [2025-08-25 Mon 21:17]
:END:
+- State "DONE" from "TODO" [2025-08-25 Mon 21:17]
- State "DONE" from "TODO" [2025-06-26 Thu 23:22]
I want to be able to run or bike every day so that I get my exercise in.
** TODO Stretch
(use-package emacs
:custom
+ ;; global defaults
+ (setq-default indent-tabs-mode nil) ;; no real tabs, only spaces
+ (setq-default tab-width 2) ;; just in case, make a "tab" show as 4 spaces
+ (setq-default standard-indent 2) ;; base indentation
+
;; Startup errors
(warning-minimum-level :emergency "Supress emacs warnings")
(confirm-kill-processes nil "Don't ask to quit")
:after (org)
:hook (org-mode . (lambda () (org-superstar-mode 1))))
-(use-package eglot
- :hook
- (prog-mode . eglot-ensure)
- (nix-mode . eglot-ensure)
- :config
- (add-to-list 'eglot-server-programs '(nix-mode . ("nil"))))
+;; (use-package eglot
+ ;; :hook
+ ;; (prog-mode . eglot-ensure)
+ ;; (nix-mode . eglot-ensure)
+ ;; :config
+ ;; (add-to-list 'eglot-server-programs '(nix-mode . ("nil"))))
+
+ (use-package lsp
+ :hook
+ (prog-mode . lsp))
-(use-package lsp
- :hook
- (prog-mode . lsp))
+(with-eval-after-load 'lsp-mode
+ (setq lsp-typescript-format-enable t
+ lsp-typescript-indent-size 4
+ lsp-typescript-tab-size 4
+ lsp-typescript-indent-style "spaces"))
+
+(use-package editorconfig
+ :config
+ (editorconfig-mode 1))
-(use-package flycheck
- :config (global-flycheck-mode))
+ (use-package flycheck
+ :config (global-flycheck-mode))
-(use-package platformio-mode
- :hook (prog-mode . platformio-conditionally-enable))
+ (use-package platformio-mode
+:hook (prog-mode . platformio-conditionally-enable))
(use-package irony-mode
:hook (
"m l" '(lyrics-fetcher-show-lyrics :wk "Music lyrics")
"o p" '(treemacs :wk "Project Drawer")
"o P" '(treemacs-projectile :wk "Import Projectile project to treemacs")
- "f f" '(eglot-format :wk "Format code buffer")
+ ;; "f f" '(eglot-format :wk "Format code buffer")
"i p c" '(prestonpan :wk "Connect to my IRC server")
"i l c" '(liberachat :wk "Connect to libera chat server")
"i e c" '(efnet :wk "Connect to efnet chat server")
#+begin_src emacs-lisp
(use-package emacs
:custom
+ ;; global defaults
+ (setq-default indent-tabs-mode nil) ;; no real tabs, only spaces
+ (setq-default tab-width 2) ;; just in case, make a "tab" show as 4 spaces
+ (setq-default standard-indent 2) ;; base indentation
+
;; Startup errors
(warning-minimum-level :emergency "Supress emacs warnings")
(confirm-kill-processes nil "Don't ask to quit")
** LSP
We set up eglot, the LSP manager for emacs, now built in:
#+begin_src emacs-lisp
- (use-package eglot
- :hook
- (prog-mode . eglot-ensure)
- (nix-mode . eglot-ensure)
- :config
- (add-to-list 'eglot-server-programs '(nix-mode . ("nil"))))
+ ;; (use-package eglot
+ ;; :hook
+ ;; (prog-mode . eglot-ensure)
+ ;; (nix-mode . eglot-ensure)
+ ;; :config
+ ;; (add-to-list 'eglot-server-programs '(nix-mode . ("nil"))))
+
+ (use-package lsp
+ :hook
+ (prog-mode . lsp))
- (use-package lsp
- :hook
- (prog-mode . lsp))
+ (with-eval-after-load 'lsp-mode
+ (setq lsp-typescript-format-enable t
+ lsp-typescript-indent-size 4
+ lsp-typescript-tab-size 4
+ lsp-typescript-indent-style "spaces"))
+
+ (use-package editorconfig
+ :config
+ (editorconfig-mode 1))
- (use-package flycheck
- :config (global-flycheck-mode))
+ (use-package flycheck
+ :config (global-flycheck-mode))
- (use-package platformio-mode
- :hook (prog-mode . platformio-conditionally-enable))
+ (use-package platformio-mode
+ :hook (prog-mode . platformio-conditionally-enable))
#+end_src
*** C/C++
Specific configuration for C (I also use the clangd lsp):
"m l" '(lyrics-fetcher-show-lyrics :wk "Music lyrics")
"o p" '(treemacs :wk "Project Drawer")
"o P" '(treemacs-projectile :wk "Import Projectile project to treemacs")
- "f f" '(eglot-format :wk "Format code buffer")
+ ;; "f f" '(eglot-format :wk "Format code buffer")
"i p c" '(prestonpan :wk "Connect to my IRC server")
"i l c" '(liberachat :wk "Connect to libera chat server")
"i e c" '(efnet :wk "Connect to efnet chat server")
url = "github:oddlama/nix-topology";
inputs.nixpkgs.follows = "nixpkgs";
};
+ deep-research = {
+ url = "github:ret2pop/ollama-deep-researcher";
+ };
home-manager = {
url = "github:nix-community/home-manager/release-25.05";
inputs.nixpkgs.follows = "nixpkgs";
};
};
- outputs = { self, nixpkgs, home-manager, nur, disko, lanzaboote, sops-nix, nix-topology, nixos-dns, ... }@attrs:
+ outputs = { self, nixpkgs, home-manager, nur, disko, lanzaboote, sops-nix, nix-topology, nixos-dns, deep-research, ... }@attrs:
let
system = "x86_64-linux";
pkgs = import nixpkgs { inherit system; };
{ networking.hostName = "${hostname}"; }
nix-topology.nixosModules.default
] else [
+ {
+ environment.systemPackages = with nixpkgs.lib; [
+ deep-research.packages.${system}.deep-research
+ ];
+ }
nix-topology.nixosModules.default
lanzaboote.nixosModules.lanzaboote
disko.nixosModules.disko
kdePackages.kdenlive
kicad
murmur
+ silver-searcher
]) else []);
monorepo.profiles = {
export EXTRA_CCFLAGS="-I/usr/include"
source ${pkgs.zsh-vi-mode}/share/zsh-vi-mode/zsh-vi-mode.plugin.zsh
export QT_QPA_PLATFORM="wayland"
+ export OLLAMA_MODEL="qwen3:14b"
'';
localVariables = {
--- /dev/null
+#+TITLE: Daily Journal
+#+STARTUP: showeverything
+#+DESCRIPTION: My daily journal entry
+#+AUTHOR: Preston Pan
+#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../style.css" />
+#+html_head: <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
+#+html_head: <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
+#+options: broken-links:t
+* Tuesday, 26 August 2025
+** 03:10
+I'm doing some topology, and I really hate it, but it builds character. I've decided to start to become more consistent.
"type": "github"
}
},
+ "deep-research": {
+ "inputs": {
+ "nixpkgs": "nixpkgs"
+ },
+ "locked": {
+ "lastModified": 1755738911,
+ "narHash": "sha256-BobMSFfhK8GprfN6V+BedMj6d1v/pKce6sqiETHiv48=",
+ "owner": "ret2pop",
+ "repo": "ollama-deep-researcher",
+ "rev": "678a3ef8e8d8ded2aab9288fd7396579a13aec46",
+ "type": "github"
+ },
+ "original": {
+ "owner": "ret2pop",
+ "repo": "ollama-deep-researcher",
+ "type": "github"
+ }
+ },
"devshell": {
"inputs": {
"nixpkgs": [
]
},
"locked": {
- "lastModified": 1750040002,
- "narHash": "sha256-KrC9iOVYIn6ukpVlHbqSA4hYCZ6oDyJKrcLqv4c5v84=",
+ "lastModified": 1755519972,
+ "narHash": "sha256-bU4nqi3IpsUZJeyS8Jk85ytlX61i4b0KCxXX9YcOgVc=",
"owner": "nix-community",
"repo": "disko",
- "rev": "7f1857b31522062a6a00f88cbccf86b43acceed1",
+ "rev": "4073ff2f481f9ef3501678ff479ed81402caae6d",
"type": "github"
},
"original": {
]
},
"locked": {
- "lastModified": 1749154018,
- "narHash": "sha256-gjN3j7joRvT3a8Zgcylnd4NFsnXeDBumqiu4HmY1RIg=",
+ "lastModified": 1753592768,
+ "narHash": "sha256-oV695RvbAE4+R9pcsT9shmp6zE/+IZe6evHWX63f2Qg=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "7aae0ee71a17b19708b93b3ed448a1a0952bf111",
+ "rev": "fc3add429f21450359369af74c2375cb34a2d204",
"type": "github"
},
"original": {
"pre-commit-hooks": "pre-commit-hooks"
},
"locked": {
- "lastModified": 1744142264,
- "narHash": "sha256-h5KyodobZm8dx/HSNN+basgdmjxrQxudjrss4gAQpZk=",
+ "lastModified": 1752093877,
+ "narHash": "sha256-P0TySh6sQl1EhfxjW9ZqGxEyUBSsEpdnchOe1QB0pLA=",
"owner": "oddlama",
"repo": "nix-topology",
- "rev": "f49121cbbf4a86c560638ade406d99ee58deb7aa",
+ "rev": "6a536c4b686ee4bcf07a7b0f8b823584560e2633",
"type": "github"
},
"original": {
},
"nixpkgs": {
"locked": {
- "lastModified": 1750134718,
- "narHash": "sha256-v263g4GbxXv87hMXMCpjkIxd/viIF7p3JpJrwgKdNiI=",
- "owner": "nixos",
+ "lastModified": 1755615617,
+ "narHash": "sha256-HMwfAJBdrr8wXAkbGhtcby1zGFvs+StOp19xNsbqdOg=",
+ "owner": "NixOS",
"repo": "nixpkgs",
- "rev": "9e83b64f727c88a7711a2c463a7b16eedb69a84c",
+ "rev": "20075955deac2583bb12f07151c2df830ef346b4",
"type": "github"
},
"original": {
- "owner": "nixos",
+ "owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
},
"nixpkgs_2": {
"locked": {
- "lastModified": 1750134718,
- "narHash": "sha256-v263g4GbxXv87hMXMCpjkIxd/viIF7p3JpJrwgKdNiI=",
+ "lastModified": 1755186698,
+ "narHash": "sha256-wNO3+Ks2jZJ4nTHMuks+cxAiVBGNuEBXsT29Bz6HASo=",
"owner": "nixos",
"repo": "nixpkgs",
- "rev": "9e83b64f727c88a7711a2c463a7b16eedb69a84c",
+ "rev": "fbcf476f790d8a217c3eab4e12033dc4a0f6d23c",
"type": "github"
},
"original": {
}
},
"nixpkgs_3": {
+ "locked": {
+ "lastModified": 1755186698,
+ "narHash": "sha256-wNO3+Ks2jZJ4nTHMuks+cxAiVBGNuEBXsT29Bz6HASo=",
+ "owner": "nixos",
+ "repo": "nixpkgs",
+ "rev": "fbcf476f790d8a217c3eab4e12033dc4a0f6d23c",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nixos",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs_4": {
"locked": {
"lastModified": 1744868846,
"narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=",
"nur": {
"inputs": {
"flake-parts": "flake-parts_2",
- "nixpkgs": "nixpkgs_2",
- "treefmt-nix": "treefmt-nix_2"
+ "nixpkgs": "nixpkgs_3"
},
"locked": {
- "lastModified": 1750305956,
- "narHash": "sha256-o3Y5v3KmqKOEudWqBKX0utCOMvn/+hbEhWEZklS1Ej0=",
+ "lastModified": 1755566258,
+ "narHash": "sha256-bLDKNtjyDjMOK6w2dsRRRPKr2GzcKOdIjsiJd2FbZuA=",
"owner": "nix-community",
"repo": "NUR",
- "rev": "45c311c54cf6b948161b056f07b3e66515273315",
+ "rev": "b54ab372b6c2831be68f7302142bdfae08204756",
"type": "github"
},
"original": {
},
"root": {
"inputs": {
+ "deep-research": "deep-research",
"disko": "disko",
"home-manager": "home-manager",
"lanzaboote": "lanzaboote",
"nix-topology": "nix-topology",
"nixos-dns": "nixos-dns",
- "nixpkgs": "nixpkgs",
+ "nixpkgs": "nixpkgs_2",
"nur": "nur",
"scripts": "scripts",
"sops-nix": "sops-nix",
},
"sops-nix": {
"inputs": {
- "nixpkgs": "nixpkgs_3"
+ "nixpkgs": "nixpkgs_4"
},
"locked": {
- "lastModified": 1750119275,
- "narHash": "sha256-Rr7Pooz9zQbhdVxux16h7URa6mA80Pb/G07T4lHvh0M=",
+ "lastModified": 1754988908,
+ "narHash": "sha256-t+voe2961vCgrzPFtZxha0/kmFSHFobzF00sT8p9h0U=",
"owner": "Mic92",
"repo": "sops-nix",
- "rev": "77c423a03b9b2b79709ea2cb63336312e78b72e2",
+ "rev": "3223c7a92724b5d804e9988c6b447a0d09017d48",
"type": "github"
},
"original": {
"type": "github"
}
},
- "treefmt-nix_2": {
- "inputs": {
- "nixpkgs": [
- "nur",
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1733222881,
- "narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=",
- "owner": "numtide",
- "repo": "treefmt-nix",
- "rev": "49717b5af6f80172275d47a418c9719a31a78b53",
- "type": "github"
- },
- "original": {
- "owner": "numtide",
- "repo": "treefmt-nix",
- "type": "github"
- }
- },
"wallpapers": {
"locked": {
"lastModified": 1710138216,
url = "github:oddlama/nix-topology";
inputs.nixpkgs.follows = "nixpkgs";
};
+ deep-research = {
+ url = "github:ret2pop/ollama-deep-researcher";
+ };
home-manager = {
url = "github:nix-community/home-manager/release-25.05";
inputs.nixpkgs.follows = "nixpkgs";
};
};
- outputs = { self, nixpkgs, home-manager, nur, disko, lanzaboote, sops-nix, nix-topology, nixos-dns, ... }@attrs:
+ outputs = { self, nixpkgs, home-manager, nur, disko, lanzaboote, sops-nix, nix-topology, nixos-dns, deep-research, ... }@attrs:
let
system = "x86_64-linux";
pkgs = import nixpkgs { inherit system; };
{ networking.hostName = "${hostname}"; }
nix-topology.nixosModules.default
] else [
+ {
+ environment.systemPackages = with nixpkgs.lib; [
+ deep-research.packages.${system}.deep-research
+ ];
+ }
nix-topology.nixosModules.default
lanzaboote.nixosModules.lanzaboote
disko.nixosModules.disko
kdePackages.kdenlive
kicad
murmur
+ silver-searcher
]) else []);
monorepo.profiles = {
export EXTRA_CCFLAGS="-I/usr/include"
source ${pkgs.zsh-vi-mode}/share/zsh-vi-mode/zsh-vi-mode.plugin.zsh
export QT_QPA_PLATFORM="wayland"
+ export OLLAMA_MODEL="qwen3:14b"
'';
localVariables = {