65 Commits

Author SHA1 Message Date
Noah Masur
be6d6b0d35 fix add-on manifest 2026-01-31 11:53:43 -05:00
Noah Masur
0239a9925c try to prevent unnecessary firefox rebuidl 2026-01-31 11:53:43 -05:00
Noah Masur
49e35403b6 adjust daily summary to use browser extension for history 2026-01-31 11:53:43 -05:00
Noah Masur
430b522c61 enable daily browser summary on darwin 2026-01-31 11:53:43 -05:00
Noah Masur
a64488093c fix current build on darwin 2026-01-31 11:53:43 -05:00
Noah Masur
54d2376437 add alabaster theme to helix 2026-01-31 11:53:43 -05:00
Noah Masur
cd0a5d5de0 fix vertical pane navigation in zellij 2026-01-31 11:53:30 -05:00
github-actions[bot]
10eecfa136 flake.lock: Update
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/00395d188e3594a1507f214a2f15d4ce5c07cb28' (2026-01-20)
  → 'github:nix-community/disko/71a3fc97d80881e91710fe721f1158d3b96ae14d' (2026-01-27)
• Updated input 'home-manager':
    'github:nix-community/home-manager/082a4cd87c6089d1d9c58ebe52655f9e07245fcb' (2026-01-23)
  → 'github:nix-community/home-manager/475921375def3eb930e1f8883f619ff8609accb6' (2026-01-30)
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/032a1878682fafe829edfcf5fdfad635a2efe748' (2025-11-27)
  → 'github:nix-community/nixos-generators/8946737ff703382fda7623b9fab071d037e897d5' (2026-01-30)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/88d3861acdd3d2f0e361767018218e51810df8a1' (2026-01-21)
  → 'github:nixos/nixpkgs/bfc1b8a4574108ceef22f02bafcf6611380c100d' (2026-01-26)
• Updated input 'nur':
    'github:nix-community/nur/4d20ca56620171b095fc4b51d55b155395c86506' (2026-01-24)
  → 'github:nix-community/nur/2db81de33100ef4d86ebc80dc4bc30df1fe97c5d' (2026-01-31)
• Updated input 'rust-overlay':
    'github:oxalica/rust-overlay/22da29e7f3d8cff75009cbbcf992c7cb66920cfd' (2026-01-24)
  → 'github:oxalica/rust-overlay/a1d32c90c8a4ea43e9586b7e5894c179d5747425' (2026-01-31)
2026-01-31 04:53:01 +00:00
Noah Masur
b5b3f6cb6a fix: n8n can't write to disk 2026-01-25 15:00:01 +00:00
Noah Masur
810c92a7b8 update restic path for actual and fix build 2026-01-24 20:25:03 +00:00
github-actions[bot]
fcb28c8151 flake.lock: Update
Flake lock file updates:

• Updated input 'darwin':
    'github:lnl7/nix-darwin/9f48ffaca1f44b3e590976b4da8666a9e86e6eb1' (2026-01-06)
  → 'github:lnl7/nix-darwin/0fc4e7ac670a0ed874abacf73c4b072a6a58064b' (2026-01-18)
• Updated input 'disko':
    'github:nix-community/disko/916506443ecd0d0b4a0f4cf9d40a3c22ce39b378' (2025-12-19)
  → 'github:nix-community/disko/00395d188e3594a1507f214a2f15d4ce5c07cb28' (2026-01-20)
• Updated input 'home-manager':
    'github:nix-community/home-manager/d0aefc169fa9a0bd2b1239aeb98899c77d6da5b2' (2026-01-10)
  → 'github:nix-community/home-manager/082a4cd87c6089d1d9c58ebe52655f9e07245fcb' (2026-01-23)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/3497aa5c9457a9d88d71fa93a4a8368816fbeeba' (2026-01-08)
  → 'github:nixos/nixpkgs/88d3861acdd3d2f0e361767018218e51810df8a1' (2026-01-21)
• Updated input 'nur':
    'github:nix-community/nur/a4f7c05a5f80044f9dcf3dfeb55a16b5a2713caf' (2026-01-10)
  → 'github:nix-community/nur/4d20ca56620171b095fc4b51d55b155395c86506' (2026-01-24)
• Updated input 'rust-overlay':
    'github:oxalica/rust-overlay/312b4371e72f644ffcff25b23615195e3b390643' (2026-01-10)
  → 'github:oxalica/rust-overlay/22da29e7f3d8cff75009cbbcf992c7cb66920cfd' (2026-01-24)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/be4af8042e7a61fa12fda58fe9a3b3babdefe17b' (2025-12-15)
  → 'github:nix-community/NixOS-WSL/38a5250e57f583662eac3b944830e4b9e169e965' (2026-01-24)
• Updated input 'wsl/flake-compat':
    'github:edolstra/flake-compat/65f23138d8d09a92e30f1e5c87611b23ef451bf3' (2025-12-07)
  → 'github:edolstra/flake-compat/5edf11c44bc78a0d334f6334cdaf7d60d732daab' (2025-12-29)
2026-01-24 04:16:03 +00:00
Noah Masur
e2a2d3de14 fix: playground vim plugin is archived 2026-01-17 10:40:01 -05:00
Noah Masur
adbc2bd261 enable thunderbird for tasks, calendar, and email gui 2026-01-11 19:45:39 -06:00
Noah Masur
117fd8a06e replace nixfmt-rfc-style with equivalent nixfmt 2026-01-11 16:38:47 -05:00
Noah Masur
d9fbdf7bfe Update flake, fix userControlled attribute
Also add nix-inspect
2026-01-10 14:21:43 -05:00
github-actions[bot]
2d13780d2e flake.lock: Update
Flake lock file updates:

• Updated input 'darwin':
    'github:lnl7/nix-darwin/5fb45ece6129bd7ad8f7310df0ae9c00bae7c562' (2025-12-18)
  → 'github:lnl7/nix-darwin/c31afa6e76da9bbc7c9295e39c7de9fca1071ea1' (2025-12-29)
• Updated input 'home-manager':
    'github:nix-community/home-manager/bb35f07cc95a73aacbaf1f7f46bb8a3f40f265b5' (2025-12-19)
  → 'github:nix-community/home-manager/2f06b726061b7e1aa69f718e943da9ffcecd6397' (2026-01-02)
• Updated input 'mac-app-util':
    'github:hraban/mac-app-util/8414fa1e2cb775b17793104a9095aabeeada63ef' (2025-08-24)
  → 'github:hraban/mac-app-util/4747968574ea58512c5385466400b2364c85d2d0' (2025-12-27)
• Updated input 'mac-app-util/cl-nix-lite':
    'github:hraban/cl-nix-lite/31cfe6275c341eb3120a99f4b1c8516c49a29d87' (2024-10-06)
  → 'github:hraban/cl-nix-lite/038e341cede255a83a8f04af114dc95717461d32' (2025-12-27)
• Added input 'mac-app-util/cl-nix-lite/flake-parts':
    'github:hercules-ci/flake-parts/a34fae9c08a15ad73f295041fec82323541400a9' (2025-12-15)
• Added input 'mac-app-util/cl-nix-lite/flake-parts/nixpkgs-lib':
    'github:nix-community/nixpkgs.lib/2075416fcb47225d9b68ac469a5c4801a9c4dd85' (2025-12-14)
• Added input 'mac-app-util/cl-nix-lite/nixpkgs':
    'github:nixos/nixpkgs/f560ccec6b1116b22e6ed15f4c510997d99d5852' (2025-12-26)
• Added input 'mac-app-util/cl-nix-lite/systems':
    'github:nix-systems/default/da67096a3b9bf56a91d16901293e51ba5b49a27e' (2023-04-09)
• Added input 'mac-app-util/cl-nix-lite/treefmt-nix':
    'github:numtide/treefmt-nix/42d96e75aa56a3f70cab7e7dc4a32868db28e8fd' (2025-12-17)
• Added input 'mac-app-util/cl-nix-lite/treefmt-nix/nixpkgs':
    'github:nixos/nixpkgs/d5faa84122bc0a1fd5d378492efce4e289f8eac1' (2025-10-23)
• Updated input 'mac-app-util/treefmt-nix':
    'github:numtide/treefmt-nix/74e1a52d5bd9430312f8d1b8b0354c92c17453e5' (2025-08-23)
  → 'github:numtide/treefmt-nix/42d96e75aa56a3f70cab7e7dc4a32868db28e8fd' (2025-12-17)
• Updated input 'mac-app-util/treefmt-nix/nixpkgs':
    'github:nixos/nixpkgs/cab778239e705082fe97bb4990e0d24c50924c04' (2025-08-04)
  → 'github:nixos/nixpkgs/d5faa84122bc0a1fd5d378492efce4e289f8eac1' (2025-10-23)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/c6245e83d836d0433170a16eb185cefe0572f8b8' (2025-12-18)
  → 'github:nixos/nixpkgs/cad22e7d996aea55ecab064e84834289143e44a0' (2025-12-30)
• Updated input 'nixpkgs-stable':
    'github:nixos/nixpkgs/2b0d2b456e4e8452cf1c16d00118d145f31160f9' (2025-12-17)
  → 'github:nixos/nixpkgs/40ee5e1944bebdd128f9fbada44faefddfde29bd' (2025-12-29)
• Updated input 'nur':
    'github:nix-community/nur/e036ffaac9c2869ab23d4fb1c0d9da50fe2f852a' (2025-12-20)
  → 'github:nix-community/nur/846861904f43cd2bb04314f664514c87e26c512b' (2026-01-03)
• Updated input 'rust-overlay':
    'github:oxalica/rust-overlay/66bb33fdfb50b1ee724381c3f5d6012dac6c89b3' (2025-12-20)
  → 'github:oxalica/rust-overlay/294198315a13d6d130565ad08e97685df7b0d458' (2026-01-03)
2026-01-03 04:12:23 +00:00
Noah Masur
53a712a217 update caddy hash 2026-01-01 18:16:43 +00:00
Noah Masur
31d34c6540 fixes to get nix flake check working with new updates 2025-12-30 16:33:23 -05:00
Noah Masur
a978e67346 comment out spctl allow apps from anywhere
doesn't work when using nh because it requires a UI escalation when
run via indirectly
2025-12-26 10:31:31 -07:00
Noah Masur
a6915a6d2d try to fix nix-darwin breaking starship prompt on rebuild 2025-12-26 10:31:12 -07:00
Noah Masur
44c4034236 more fixes on warning for renamed system 2025-12-26 10:29:18 -07:00
Noah Masur
a99c14a8c2 use stable zed-editor to stop uncached builds 2025-12-26 10:28:31 -07:00
Noah Masur
f1c8e26044 comment out 1password extension while it doesn't work in firefox 2025-12-26 10:27:55 -07:00
Noah Masur
29cd253d9c awscli2 overlay no longer required 2025-12-20 07:54:17 -07:00
Noah Masur
603b9a2eff fix terraform lsp in helix 2025-12-20 07:54:11 -07:00
github-actions[bot]
9c35744ab9 flake.lock: Update
Flake lock file updates:

• Updated input 'darwin':
    'github:lnl7/nix-darwin/7e22bf538aa3e0937effcb1cee73d5f1bcc26f79' (2025-12-06)
  → 'github:lnl7/nix-darwin/5fb45ece6129bd7ad8f7310df0ae9c00bae7c562' (2025-12-18)
• Updated input 'disko':
    'github:nix-community/disko/d64e5cdca35b5fad7c504f615357a7afe6d9c49e' (2025-12-10)
  → 'github:nix-community/disko/916506443ecd0d0b4a0f4cf9d40a3c22ce39b378' (2025-12-19)
• Updated input 'home-manager':
    'github:nix-community/home-manager/39cb677ed9e908e90478aa9fe5f3383dfc1a63f3' (2025-12-11)
  → 'github:nix-community/home-manager/bb35f07cc95a73aacbaf1f7f46bb8a3f40f265b5' (2025-12-19)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/addf7cf5f383a3101ecfba091b98d0a1263dc9b8' (2025-12-08)
  → 'github:nixos/nixpkgs/c6245e83d836d0433170a16eb185cefe0572f8b8' (2025-12-18)
• Updated input 'nixpkgs-stable':
    'github:nixos/nixpkgs/d2b1213bf5ec5e62d96b003ab4b5cbc42abfc0d0' (2025-12-10)
  → 'github:nixos/nixpkgs/2b0d2b456e4e8452cf1c16d00118d145f31160f9' (2025-12-17)
• Updated input 'nur':
    'github:nix-community/nur/da24c00523a3125a97b24783e2b59b5b98ac5da7' (2025-12-13)
  → 'github:nix-community/nur/e036ffaac9c2869ab23d4fb1c0d9da50fe2f852a' (2025-12-20)
• Updated input 'rust-overlay':
    'github:oxalica/rust-overlay/348b94ed9ddffccdf1a65582a2dcff0a4a3eeeb4' (2025-12-13)
  → 'github:oxalica/rust-overlay/66bb33fdfb50b1ee724381c3f5d6012dac6c89b3' (2025-12-20)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/0c040f28b44b18e0d4240e027096078e34dbb029' (2025-12-11)
  → 'github:nix-community/NixOS-WSL/be4af8042e7a61fa12fda58fe9a3b3babdefe17b' (2025-12-15)
2025-12-20 04:04:34 +00:00
github-actions[bot]
7d6b29c30b flake.lock: Update
Flake lock file updates:

• Updated input 'darwin':
    'github:lnl7/nix-darwin/e95de00a471d07435e0527ff4db092c84998698e' (2025-11-26)
  → 'github:lnl7/nix-darwin/7e22bf538aa3e0937effcb1cee73d5f1bcc26f79' (2025-12-06)
• Updated input 'disko':
    'github:nix-community/disko/5a88a6eceb8fd732b983e72b732f6f4b8269bef3' (2025-12-01)
  → 'github:nix-community/disko/d64e5cdca35b5fad7c504f615357a7afe6d9c49e' (2025-12-10)
• Updated input 'home-manager':
    'github:nix-community/home-manager/ccd22c13b2200263fb59342a34bf7119a31aa363' (2025-12-06)
  → 'github:nix-community/home-manager/39cb677ed9e908e90478aa9fe5f3383dfc1a63f3' (2025-12-11)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/418468ac9527e799809c900eda37cbff999199b6' (2025-12-02)
  → 'github:nixos/nixpkgs/addf7cf5f383a3101ecfba091b98d0a1263dc9b8' (2025-12-08)
• Updated input 'nixpkgs-stable':
    'github:nixos/nixpkgs/ff06bd3398fb1bea6c937039ece7e7c8aa396ebf' (2025-12-04)
  → 'github:nixos/nixpkgs/d2b1213bf5ec5e62d96b003ab4b5cbc42abfc0d0' (2025-12-10)
• Updated input 'nur':
    'github:nix-community/nur/cfab17b2d4bf4e9fa3aa48d6b9cb36c749e096e9' (2025-12-06)
  → 'github:nix-community/nur/da24c00523a3125a97b24783e2b59b5b98ac5da7' (2025-12-13)
• Updated input 'rust-overlay':
    'github:oxalica/rust-overlay/086fd19a68e80fcc8a298e9df4674982e4c498a6' (2025-12-06)
  → 'github:oxalica/rust-overlay/348b94ed9ddffccdf1a65582a2dcff0a4a3eeeb4' (2025-12-13)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/10124c58674360765adcb38c9a8b081fb72904e4' (2025-12-03)
  → 'github:nix-community/NixOS-WSL/0c040f28b44b18e0d4240e027096078e34dbb029' (2025-12-11)
• Updated input 'wsl/flake-compat':
    'github:edolstra/flake-compat/f387cd2afec9419c8ee37694406ca490c3f34ee5' (2025-10-27)
  → 'github:edolstra/flake-compat/65f23138d8d09a92e30f1e5c87611b23ef451bf3' (2025-12-07)
• Updated input 'zenyd-mpv-scripts':
    'github:zenyd/mpv-scripts/d20a64a008fc6fb03f026c379313111291bdd49f' (2025-12-02)
  → 'github:zenyd/mpv-scripts/62f4bb313c6cb6366672e78dea940e9da8fec84a' (2025-12-06)
2025-12-13 04:04:17 +00:00
github-actions[bot]
fd589b66ef flake.lock: Update
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/2055a08fd0e2fd41318279a5355eb8a161accf26' (2025-11-28)
  → 'github:nix-community/disko/5a88a6eceb8fd732b983e72b732f6f4b8269bef3' (2025-12-01)
• Updated input 'home-manager':
    'github:nix-community/home-manager/780be8ef503a28939cf9dc7996b48ffb1a3e04c6' (2025-11-28)
  → 'github:nix-community/home-manager/ccd22c13b2200263fb59342a34bf7119a31aa363' (2025-12-06)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/2fad6eac6077f03fe109c4d4eb171cf96791faa4' (2025-11-27)
  → 'github:nixos/nixpkgs/418468ac9527e799809c900eda37cbff999199b6' (2025-12-02)
• Updated input 'nixpkgs-stable':
    'github:nixos/nixpkgs/9a7b80b6f82a71ea04270d7ba11b48855681c4b0' (2025-11-28)
  → 'github:nixos/nixpkgs/ff06bd3398fb1bea6c937039ece7e7c8aa396ebf' (2025-12-04)
• Updated input 'nur':
    'github:nix-community/nur/c23e05e2d8e852c9c128b624cfc19ea8674ad793' (2025-11-29)
  → 'github:nix-community/nur/cfab17b2d4bf4e9fa3aa48d6b9cb36c749e096e9' (2025-12-06)
• Updated input 'rust-overlay':
    'github:oxalica/rust-overlay/4f5a90bf043a57add9b3288bbd25ed534bfaffb5' (2025-11-29)
  → 'github:oxalica/rust-overlay/086fd19a68e80fcc8a298e9df4674982e4c498a6' (2025-12-06)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/c7832dd786175e20f2697179e0e03efadffe4201' (2025-11-25)
  → 'github:nix-community/NixOS-WSL/10124c58674360765adcb38c9a8b081fb72904e4' (2025-12-03)
• Updated input 'zenyd-mpv-scripts':
    'github:zenyd/mpv-scripts/8309b669f060f95fbb2abf9e6882c3ae4ec1ff2d' (2025-11-27)
  → 'github:zenyd/mpv-scripts/d20a64a008fc6fb03f026c379313111291bdd49f' (2025-12-02)
2025-12-06 03:58:44 +00:00
github-actions[bot]
853aa644fa flake.lock: Update
Flake lock file updates:

• Updated input 'darwin':
    'github:lnl7/nix-darwin/3bda9f6b14161becbd07b3c56411f1670e19b9b5' (2025-11-18)
  → 'github:lnl7/nix-darwin/e95de00a471d07435e0527ff4db092c84998698e' (2025-11-26)
• Updated input 'disko':
    'github:nix-community/disko/e86a89079587497174ccab6d0d142a65811a4fd9' (2025-11-20)
  → 'github:nix-community/disko/2055a08fd0e2fd41318279a5355eb8a161accf26' (2025-11-28)
• Updated input 'home-manager':
    'github:nix-community/home-manager/d10a9b16b2a3ee28433f3d1c603f4e9f1fecb8e1' (2025-11-21)
  → 'github:nix-community/home-manager/780be8ef503a28939cf9dc7996b48ffb1a3e04c6' (2025-11-28)
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/032decf9db65efed428afd2fa39d80f7089085eb' (2025-07-07)
  → 'github:nix-community/nixos-generators/032a1878682fafe829edfcf5fdfad635a2efe748' (2025-11-27)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/89c2b2330e733d6cdb5eae7b899326930c2c0648' (2025-11-17)
  → 'github:nixos/nixpkgs/2fad6eac6077f03fe109c4d4eb171cf96791faa4' (2025-11-27)
• Updated input 'nixpkgs-stable':
    'github:nixos/nixpkgs/c58bc7f5459328e4afac201c5c4feb7c818d604b' (2025-11-20)
  → 'github:nixos/nixpkgs/9a7b80b6f82a71ea04270d7ba11b48855681c4b0' (2025-11-28)
• Updated input 'nur':
    'github:nix-community/nur/77b49ed77583b3e3fee9c8962bcd7c7992ab7e72' (2025-11-22)
  → 'github:nix-community/nur/c23e05e2d8e852c9c128b624cfc19ea8674ad793' (2025-11-29)
• Updated input 'rust-overlay':
    'github:oxalica/rust-overlay/7f3aa46dfa230ec2a4ca9281186a24771650ccd1' (2025-11-22)
  → 'github:oxalica/rust-overlay/4f5a90bf043a57add9b3288bbd25ed534bfaffb5' (2025-11-29)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/3bcc267c4e0efa023b98b9c5cfbe11b88ec2dc8f' (2025-11-21)
  → 'github:nix-community/NixOS-WSL/c7832dd786175e20f2697179e0e03efadffe4201' (2025-11-25)
• Updated input 'zenyd-mpv-scripts':
    'github:zenyd/mpv-scripts/8bc3d8fd7660aaf08737eca4fb65f7193507b661' (2025-11-21)
  → 'github:zenyd/mpv-scripts/8309b669f060f95fbb2abf9e6882c3ae4ec1ff2d' (2025-11-27)
2025-11-29 03:59:46 +00:00
Noah Masur
b6e7221cc6 fix: zellij switch command on darwin 2025-11-26 13:20:22 -07:00
Noah Masur
235901b3b0 fix jjui on darwin 2025-11-26 09:00:19 -07:00
github-actions[bot]
7cd74986df flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager':
    'github:nix-community/home-manager/ea164b7c9ccdc2321379c2ff78fd4317b4c41312' (2025-11-17)
  → 'github:nix-community/home-manager/d10a9b16b2a3ee28433f3d1c603f4e9f1fecb8e1' (2025-11-21)
• Updated input 'nur':
    'github:nix-community/nur/9cfdb9c199ebf780c36a9998d27547563c7b2aaf' (2025-11-21)
  → 'github:nix-community/nur/77b49ed77583b3e3fee9c8962bcd7c7992ab7e72' (2025-11-22)
• Updated input 'rust-overlay':
    'github:oxalica/rust-overlay/6fbf5d328dce1828d887b8ee7d44a785196a34e7' (2025-11-21)
  → 'github:oxalica/rust-overlay/7f3aa46dfa230ec2a4ca9281186a24771650ccd1' (2025-11-22)
• Updated input 'zenyd-mpv-scripts':
    'github:zenyd/mpv-scripts/a1470f01cae24f06365fbe05e5295d906d7438fe' (2025-11-21)
  → 'github:zenyd/mpv-scripts/8bc3d8fd7660aaf08737eca4fb65f7193507b661' (2025-11-21)
2025-11-22 03:55:41 +00:00
Noah Masur
a6e15b71cd update packages and fix helix language 2025-11-21 10:32:55 -07:00
Noah Masur
2e4467b6ea try to make builds work 2025-11-21 10:32:55 -07:00
Noah Masur
431ebd732c use alacritty for i3 terminal on macos 2025-11-21 10:32:55 -07:00
Noah Masur
2d576bd25d improve helix language server selection 2025-11-21 10:32:55 -07:00
Noah Masur
a1615eda67 try improvements to helix git blame and bring yazi to zellij 2025-11-21 10:32:55 -07:00
Noah Masur
444582a5a5 try adding jiratui to homebrew 2025-11-21 10:32:55 -07:00
Noah Masur
fbabdadb32 add bash to aws-ec2 launch script 2025-11-21 10:32:55 -07:00
Noah Masur
f8dfa2a817 enable jujutsu as non-experimental 2025-11-17 02:48:06 +00:00
Noah Masur
e4a8ef15ce fix rebuilds and broken packages after update 2025-11-15 13:10:48 -06:00
github-actions[bot]
5c922310f5 flake.lock: Update
Flake lock file updates:

• Updated input 'darwin':
    'github:lnl7/nix-darwin/e2b82ebd0f990a5d1b68fcc761b3d6383c86ccfd' (2025-11-07)
  → 'github:lnl7/nix-darwin/973db96394513fd90270ea5a1211a82a4a0ba47f' (2025-11-14)
• Updated input 'helix':
    'github:helix-editor/helix/65ea351cc30b23d40e9a5784a4be99768536b7f5' (2025-11-08)
  → 'github:helix-editor/helix/948ac05aa0db64e0e5d00710db36eb244076e988' (2025-11-12)
• Updated input 'home-manager':
    'github:nix-community/home-manager/0562fef070a1027325dd4ea10813d64d2c967b39' (2025-11-06)
  → 'github:nix-community/home-manager/827f2a23373a774a8805f84ca5344654c31f354b' (2025-11-12)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/ae814fd3904b621d8ab97418f1d0f2eb0d3716f4' (2025-11-05)
  → 'github:nixos/nixpkgs/c5ae371f1a6a7fd27823bc500d9390b38c05fa55' (2025-11-12)
• Updated input 'nur':
    'github:nix-community/nur/e7b4921cad8b7492ab9c441bda269be625bd2acc' (2025-11-08)
  → 'github:nix-community/nur/cb44dde82a279a626f8b3283fdcf52849d3ab3d4' (2025-11-15)
• Updated input 'rust-overlay':
    'github:oxalica/rust-overlay/a35a6144b976f70827c2fe2f5c89d16d8f9179d8' (2025-11-08)
  → 'github:oxalica/rust-overlay/89af6762b01409edbb595888a69311e8e5954110' (2025-11-15)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/e001844d4553aef268f97b32d3a825b6370eed91' (2025-11-04)
  → 'github:nix-community/NixOS-WSL/debc562c48c445f9f08778ecb9fc6b35197623ad' (2025-11-12)
2025-11-15 03:59:13 +00:00
Noah Masur
2f274cd652 chawan as manpager and fixes to rebuild shortcuts 2025-11-14 19:31:42 -05:00
Noah Masur
407e9c3af8 enable mealie for recipes 2025-11-11 04:00:51 +00:00
Noah Masur
c13e029805 update zellij for launching and quitting automatically 2025-11-10 21:17:13 -06:00
github-actions[bot]
c56bc30200 flake.lock: Update
Flake lock file updates:

• Updated input 'darwin':
    'github:lnl7/nix-darwin/7cd9aac79ee2924a85c211d21fafd394b06a38de' (2025-10-24)
  → 'github:lnl7/nix-darwin/e2b82ebd0f990a5d1b68fcc761b3d6383c86ccfd' (2025-11-07)
• Updated input 'disko':
    'github:nix-community/disko/6f4cf5abbe318e4cd1e879506f6eeafd83f7b998' (2025-10-31)
  → 'github:nix-community/disko/af087d076d3860760b3323f6b583f4d828c1ac17' (2025-11-04)
• Updated input 'helix':
    'github:helix-editor/helix/5a92474bf0453715e3139eccaaccf3264bfb2001' (2025-10-31)
  → 'github:helix-editor/helix/65ea351cc30b23d40e9a5784a4be99768536b7f5' (2025-11-08)
• Updated input 'home-manager':
    'github:nix-community/home-manager/4ac96eb21c101a3e5b77ba105febc5641a8959aa' (2025-10-31)
  → 'github:nix-community/home-manager/0562fef070a1027325dd4ea10813d64d2c967b39' (2025-11-06)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/08dacfca559e1d7da38f3cf05f1f45ee9bfd213c' (2025-10-28)
  → 'github:nixos/nixpkgs/ae814fd3904b621d8ab97418f1d0f2eb0d3716f4' (2025-11-05)
• Updated input 'nur':
    'github:nix-community/nur/f20762096406e710b930858237046c139f03a061' (2025-11-01)
  → 'github:nix-community/nur/e7b4921cad8b7492ab9c441bda269be625bd2acc' (2025-11-08)
• Updated input 'rust-overlay':
    'github:oxalica/rust-overlay/08c33e87c4829bbdd42b5af247cf7a19e126369f' (2025-11-02)
  → 'github:oxalica/rust-overlay/a35a6144b976f70827c2fe2f5c89d16d8f9179d8' (2025-11-08)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/761582d6ab431549fe1396d2cd681e3fe9376020' (2025-11-01)
  → 'github:nix-community/NixOS-WSL/e001844d4553aef268f97b32d3a825b6370eed91' (2025-11-04)
• Updated input 'wsl/flake-compat':
    'github:edolstra/flake-compat/9100a0f413b0c601e0533d1d94ffd501ce2e7885' (2025-05-12)
  → 'github:edolstra/flake-compat/f387cd2afec9419c8ee37694406ca490c3f34ee5' (2025-10-27)
2025-11-08 03:57:53 +00:00
Noah Masur
6064fdb0e0 add csvlens for viewing csvs alongside visidata 2025-11-06 20:38:45 -05:00
Noah Masur
5cf27d6d66 adjust chawan manpager to mancha 2025-11-06 20:38:23 -05:00
Noah Masur
ceca1ffd5a get services to build properly again on flame 2025-11-07 00:26:00 +00:00
Noah Masur
ebbc9c5a5d use yazi outside of helix and chawan as manpager 2025-11-02 18:26:40 -05:00
Noah Masur
aea3e95ef5 fix build with rust-overlay 2025-11-02 18:22:56 -05:00
github-actions[bot]
d79c1ba7df flake.lock: Update
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/3a9450b26e69dcb6f8de6e2b07b3fc1c288d85f5' (2025-10-17)
  → 'github:nix-community/disko/6f4cf5abbe318e4cd1e879506f6eeafd83f7b998' (2025-10-31)
• Updated input 'helix':
    'github:helix-editor/helix/d79cce4e4bfc24dd204f1b294c899ed73f7e9453' (2025-10-22)
  → 'github:helix-editor/helix/5a92474bf0453715e3139eccaaccf3264bfb2001' (2025-10-31)
• Updated input 'home-manager':
    'github:nix-community/home-manager/c644cb018f9fdec55f5ac2afb4713a8c7beb757c' (2025-10-24)
  → 'github:nix-community/home-manager/4ac96eb21c101a3e5b77ba105febc5641a8959aa' (2025-10-31)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/01f116e4df6a15f4ccdffb1bcd41096869fb385c' (2025-10-22)
  → 'github:nixos/nixpkgs/08dacfca559e1d7da38f3cf05f1f45ee9bfd213c' (2025-10-28)
• Updated input 'nur':
    'github:nix-community/nur/cbe64052fb6a79ffaeba7d0b022d38d846e86334' (2025-10-25)
  → 'github:nix-community/nur/f20762096406e710b930858237046c139f03a061' (2025-11-01)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/f98ee1de1fa36eca63c67b600f5d617e184e82ea' (2025-10-15)
  → 'github:nix-community/NixOS-WSL/761582d6ab431549fe1396d2cd681e3fe9376020' (2025-11-01)
2025-11-01 04:00:32 +00:00
Noah Masur
422131134a lower latency time on esc ctrl in kanata 2025-10-26 21:56:08 -04:00
Noah Masur
5d8e10b814 add crush coding agent to experimental 2025-10-26 21:55:24 -04:00
Noah Masur
fdd5eb6418 add chawan for html in aerc 2025-10-26 21:55:14 -04:00
Noah Masur
72c548e707 update git settings renamed options 2025-10-26 12:06:48 -04:00
github-actions[bot]
a57207dd5d flake.lock: Update
Flake lock file updates:

• Updated input 'darwin':
    'github:lnl7/nix-darwin/c3211fcd0c56c11ff110d346d4487b18f7365168' (2025-10-17)
  → 'github:lnl7/nix-darwin/7cd9aac79ee2924a85c211d21fafd394b06a38de' (2025-10-24)
• Updated input 'helix':
    'github:helix-editor/helix/f6f8634eb07f35f02bd2881666925a90513f6f3b' (2025-10-15)
  → 'github:helix-editor/helix/d79cce4e4bfc24dd204f1b294c899ed73f7e9453' (2025-10-22)
• Updated input 'home-manager':
    'github:nix-community/home-manager/722792af097dff5790f1a66d271a47759f477755' (2025-10-17)
  → 'github:nix-community/home-manager/c644cb018f9fdec55f5ac2afb4713a8c7beb757c' (2025-10-24)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/544961dfcce86422ba200ed9a0b00dd4b1486ec5' (2025-10-15)
  → 'github:nixos/nixpkgs/01f116e4df6a15f4ccdffb1bcd41096869fb385c' (2025-10-22)
• Updated input 'nur':
    'github:nix-community/nur/01a0d3a236b249cad7f054551671d5e77d218c40' (2025-10-18)
  → 'github:nix-community/nur/cbe64052fb6a79ffaeba7d0b022d38d846e86334' (2025-10-25)
2025-10-25 03:55:46 +00:00
github-actions[bot]
94b4217be3 flake.lock: Update
Flake lock file updates:

• Updated input 'darwin':
    'github:lnl7/nix-darwin/c48e963a5558eb1c3827d59d21c5193622a1477c' (2025-09-25)
  → 'github:lnl7/nix-darwin/c3211fcd0c56c11ff110d346d4487b18f7365168' (2025-10-17)
• Updated input 'disko':
    'github:nix-community/disko/67ff9807dd148e704baadbd4fd783b54282ca627' (2025-09-19)
  → 'github:nix-community/disko/3a9450b26e69dcb6f8de6e2b07b3fc1c288d85f5' (2025-10-17)
• Updated input 'helix':
    'github:helix-editor/helix/5b0563419eeeaf0595c848865c46be4abad246a7' (2025-10-07)
  → 'github:helix-editor/helix/f6f8634eb07f35f02bd2881666925a90513f6f3b' (2025-10-15)
• Updated input 'home-manager':
    'github:nix-community/home-manager/c4aaddeaecc09554c92518fd904e3e84b497ed09' (2025-10-12)
  → 'github:nix-community/home-manager/722792af097dff5790f1a66d271a47759f477755' (2025-10-17)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/0b4defa2584313f3b781240b29d61f6f9f7e0df3' (2025-10-09)
  → 'github:nixos/nixpkgs/544961dfcce86422ba200ed9a0b00dd4b1486ec5' (2025-10-15)
• Updated input 'nur':
    'github:nix-community/nur/a82226091501c0ee01e7fb55b8f357afe0faa392' (2025-10-12)
  → 'github:nix-community/nur/01a0d3a236b249cad7f054551671d5e77d218c40' (2025-10-18)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/7c0c0f4c3a51761434f18209fa9499b8579ff730' (2025-10-07)
  → 'github:nix-community/NixOS-WSL/f98ee1de1fa36eca63c67b600f5d617e184e82ea' (2025-10-15)
2025-10-18 03:52:46 +00:00
Noah Masur
7619ac6ea2 enable cargo for work and home 2025-10-13 13:39:48 -04:00
Noah Masur
7543721020 launch helix for editing desktop text files 2025-10-13 13:06:42 -04:00
Noah Masur
bf52069886 temp override to build awscli2 2025-10-12 18:57:40 +00:00
Noah Masur
839ca079c2 Merge branch 'caddy-cloudflare-pkg' 2025-10-12 17:26:05 +00:00
github-actions[bot]
85f09b1126 flake.lock: Update
Flake lock file updates:

• Updated input 'helix':
    'github:helix-editor/helix/bfcbef10c513108c7b43317569416c2eefc4ed44' (2025-09-30)
  → 'github:helix-editor/helix/5b0563419eeeaf0595c848865c46be4abad246a7' (2025-10-07)
• Updated input 'helix/rust-overlay':
    'github:oxalica/rust-overlay/d342e8b5fd88421ff982f383c853f0fc78a847ab' (2025-02-27)
  → 'github:oxalica/rust-overlay/1d7cbdaad90f8a5255a89a6eddd8af24dc89cafe' (2025-10-05)
• Updated input 'home-manager':
    'github:nix-community/home-manager/edafd6da1936426708f1be0b1a4288007f16639a' (2025-10-04)
  → 'github:nix-community/home-manager/d305eece827a3fe317a2d70138f53feccaf890a1' (2025-10-10)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/7df7ff7d8e00218376575f0acdcc5d66741351ee' (2025-10-02)
  → 'github:nixos/nixpkgs/0b4defa2584313f3b781240b29d61f6f9f7e0df3' (2025-10-09)
• Updated input 'nur':
    'github:nix-community/nur/d127643d50ec16f47ca67c9695b0200ea8b7cfd1' (2025-10-04)
  → 'github:nix-community/nur/886a5646695563cbae3c1e10369c6070c7645e73' (2025-10-11)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/d96dda76c1f1827634ddf28d386feabd2d135d21' (2025-10-01)
  → 'github:nix-community/NixOS-WSL/7c0c0f4c3a51761434f18209fa9499b8579ff730' (2025-10-07)
2025-10-11 03:51:41 +00:00
github-actions[bot]
29c7a27135 flake.lock: Update
Flake lock file updates:

• Updated input 'helix':
    'github:helix-editor/helix/109c812233e442addccf1739dec4406248bd3244' (2025-09-25)
  → 'github:helix-editor/helix/bfcbef10c513108c7b43317569416c2eefc4ed44' (2025-09-30)
• Updated input 'home-manager':
    'github:nix-community/home-manager/bc2afee55bc5d3b825287829d6592b9cc1405aad' (2025-09-26)
  → 'github:nix-community/home-manager/edafd6da1936426708f1be0b1a4288007f16639a' (2025-10-04)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/e643668fd71b949c53f8626614b21ff71a07379d' (2025-09-24)
  → 'github:nixos/nixpkgs/7df7ff7d8e00218376575f0acdcc5d66741351ee' (2025-10-02)
• Updated input 'nur':
    'github:nix-community/nur/c898a1ed2da0164bc6f395f44aad52edb84c84d4' (2025-09-27)
  → 'github:nix-community/nur/d127643d50ec16f47ca67c9695b0200ea8b7cfd1' (2025-10-04)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/1bfb978f2f6261b6086e04af17f9418e1fe36d70' (2025-09-25)
  → 'github:nix-community/NixOS-WSL/d96dda76c1f1827634ddf28d386feabd2d135d21' (2025-10-01)
2025-10-04 03:49:26 +00:00
github-actions[bot]
3523f20665 flake.lock: Update
Flake lock file updates:

• Updated input 'darwin':
    'github:lnl7/nix-darwin/8df64f819698c1fee0c2969696f54a843b2231e8' (2025-08-22)
  → 'github:lnl7/nix-darwin/c48e963a5558eb1c3827d59d21c5193622a1477c' (2025-09-25)
• Updated input 'disko':
    'github:nix-community/disko/bafad29f89e83b2d861b493aa23034ea16595560' (2025-08-25)
  → 'github:nix-community/disko/67ff9807dd148e704baadbd4fd783b54282ca627' (2025-09-19)
• Updated input 'helix':
    'github:helix-editor/helix/77ff51caa440b1066e0a1920007ab5e148dd4856' (2025-08-29)
  → 'github:helix-editor/helix/109c812233e442addccf1739dec4406248bd3244' (2025-09-25)
• Updated input 'home-manager':
    'github:nix-community/home-manager/77a71380c38fb2a440b4b5881bbc839f6230e1cb' (2025-08-29)
  → 'github:nix-community/home-manager/bc2afee55bc5d3b825287829d6592b9cc1405aad' (2025-09-26)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/dfb2f12e899db4876308eba6d93455ab7da304cd' (2025-08-28)
  → 'github:nixos/nixpkgs/e643668fd71b949c53f8626614b21ff71a07379d' (2025-09-24)
• Updated input 'nur':
    'github:nix-community/nur/e82a8b0095f54edb6bbbb1d862f3da502dca1396' (2025-08-30)
  → 'github:nix-community/nur/c898a1ed2da0164bc6f395f44aad52edb84c84d4' (2025-09-27)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/203a7b463f307c60026136dd1191d9001c43457f' (2025-08-15)
  → 'github:nix-community/NixOS-WSL/1bfb978f2f6261b6086e04af17f9418e1fe36d70' (2025-09-25)
2025-09-27 03:51:21 +00:00
59 changed files with 1218 additions and 246 deletions

302
flake.lock generated
View File

@@ -1,12 +1,18 @@
{
"nodes": {
"cl-nix-lite": {
"inputs": {
"flake-parts": "flake-parts",
"nixpkgs": "nixpkgs",
"systems": "systems",
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1728174978,
"narHash": "sha256-Grqqg+xuicANB85j0gNEXxi9SBKY7bzGeTuyi95eGcY=",
"lastModified": 1766810506,
"narHash": "sha256-I4BxozsEu205tA7jazufztI8ZQ5p7hcCnjqrSKPz9nI=",
"owner": "hraban",
"repo": "cl-nix-lite",
"rev": "31cfe6275c341eb3120a99f4b1c8516c49a29d87",
"rev": "038e341cede255a83a8f04af114dc95717461d32",
"type": "github"
},
"original": {
@@ -22,11 +28,11 @@
]
},
"locked": {
"lastModified": 1755825449,
"narHash": "sha256-XkiN4NM9Xdy59h69Pc+Vg4PxkSm9EWl6u7k6D5FZ5cM=",
"lastModified": 1768764703,
"narHash": "sha256-5ulSDyOG1U+1sJhkJHYsUOWEsmtLl97O0NTVMvgIVyc=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "8df64f819698c1fee0c2969696f54a843b2231e8",
"rev": "0fc4e7ac670a0ed874abacf73c4b072a6a58064b",
"type": "github"
},
"original": {
@@ -43,11 +49,11 @@
]
},
"locked": {
"lastModified": 1756115622,
"narHash": "sha256-iv8xVtmLMNLWFcDM/HcAPLRGONyTRpzL9NS09RnryRM=",
"lastModified": 1769524058,
"narHash": "sha256-zygdD6X1PcVNR2PsyK4ptzrVEiAdbMqLos7utrMDEWE=",
"owner": "nix-community",
"repo": "disko",
"rev": "bafad29f89e83b2d861b493aa23034ea16595560",
"rev": "71a3fc97d80881e91710fe721f1158d3b96ae14d",
"type": "github"
},
"original": {
@@ -76,11 +82,11 @@
"flake-compat_2": {
"flake": false,
"locked": {
"lastModified": 1747046372,
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
"lastModified": 1767039857,
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
"type": "github"
},
"original": {
@@ -90,6 +96,24 @@
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1765835352,
"narHash": "sha256-XswHlK/Qtjasvhd1nOa1e8MgZ8GS//jBoTqWtrS1Giw=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "a34fae9c08a15ad73f295041fec82323541400a9",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": [
"nur",
@@ -132,7 +156,7 @@
},
"flake-utils_2": {
"inputs": {
"systems": "systems_2"
"systems": "systems_3"
},
"locked": {
"lastModified": 1731533236,
@@ -148,27 +172,6 @@
"type": "github"
}
},
"helix": {
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1756477005,
"narHash": "sha256-e/FNNIT/LPuoruzRQZf5z5L5GApq1G2y2PShy+Lakhs=",
"owner": "helix-editor",
"repo": "helix",
"rev": "77ff51caa440b1066e0a1920007ab5e148dd4856",
"type": "github"
},
"original": {
"owner": "helix-editor",
"repo": "helix",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
@@ -176,11 +179,11 @@
]
},
"locked": {
"lastModified": 1756496801,
"narHash": "sha256-IYIsnPy+cJxe8RbDHBrCtfJY0ry2bG2H7WvMcewiGS8=",
"lastModified": 1769813945,
"narHash": "sha256-9ABv9Lo9t6MrFjlnRnU8Zw1C6LVj2+R8PipQ/rxGLHk=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "77a71380c38fb2a440b4b5881bbc839f6230e1cb",
"rev": "475921375def3eb930e1f8883f619ff8609accb6",
"type": "github"
},
"original": {
@@ -198,15 +201,15 @@
"nixpkgs": [
"nixpkgs"
],
"systems": "systems",
"treefmt-nix": "treefmt-nix"
"systems": "systems_2",
"treefmt-nix": "treefmt-nix_2"
},
"locked": {
"lastModified": 1756057867,
"narHash": "sha256-ziR5eQGqRWhW8tf8r0TIplaqNt+HXu1G1X41LUr4IYo=",
"lastModified": 1766810876,
"narHash": "sha256-VPElWFQIiP31lXQXEom+L4sl85alZpZn33O4hewsP9k=",
"owner": "hraban",
"repo": "mac-app-util",
"rev": "8414fa1e2cb775b17793104a9095aabeeada63ef",
"rev": "4747968574ea58512c5385466400b2364c85d2d0",
"type": "github"
},
"original": {
@@ -259,11 +262,11 @@
]
},
"locked": {
"lastModified": 1751903740,
"narHash": "sha256-PeSkNMvkpEvts+9DjFiop1iT2JuBpyknmBUs0Un0a4I=",
"lastModified": 1769813415,
"narHash": "sha256-nnVmNNKBi1YiBNPhKclNYDORoHkuKipoz7EtVnXO50A=",
"owner": "nix-community",
"repo": "nixos-generators",
"rev": "032decf9db65efed428afd2fa39d80f7089085eb",
"rev": "8946737ff703382fda7623b9fab071d037e897d5",
"type": "github"
},
"original": {
@@ -274,11 +277,58 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1754340878,
"narHash": "sha256-lgmUyVQL9tSnvvIvBp7x1euhkkCho7n3TMzgjdvgPoU=",
"lastModified": 1766736597,
"narHash": "sha256-BASnpCLodmgiVn0M1MU2Pqyoz0aHwar/0qLkp7CjvSQ=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "cab778239e705082fe97bb4990e0d24c50924c04",
"rev": "f560ccec6b1116b22e6ed15f4c510997d99d5852",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-25.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1765674936,
"narHash": "sha256-k00uTP4JNfmejrCLJOwdObYC9jHRrr/5M/a/8L2EIdo=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "2075416fcb47225d9b68ac469a5c4801a9c4dd85",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixpkgs.lib",
"type": "github"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1767313136,
"narHash": "sha256-16KkgfdYqjaeRGBaYsNrhPRRENs0qzkQVUooNHtoy2w=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "ac62194c3917d5f474c1a844b6fd6da2db95077d",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-25.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1761236834,
"narHash": "sha256-+pthv6hrL5VLW2UqPdISGuLiUZ6SnAXdd2DdUE+fV2Q=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "d5faa84122bc0a1fd5d378492efce4e289f8eac1",
"type": "github"
},
"original": {
@@ -288,29 +338,29 @@
"type": "github"
}
},
"nixpkgs-stable": {
"nixpkgs_3": {
"locked": {
"lastModified": 1735563628,
"narHash": "sha256-OnSAY7XDSx7CtDoqNh8jwVwh4xNL/2HaJxGjryLWzX8=",
"lastModified": 1761236834,
"narHash": "sha256-+pthv6hrL5VLW2UqPdISGuLiUZ6SnAXdd2DdUE+fV2Q=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "b134951a4c9f3c995fd7be05f3243f8ecd65d798",
"rev": "d5faa84122bc0a1fd5d378492efce4e289f8eac1",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-24.05",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"nixpkgs_4": {
"locked": {
"lastModified": 1756386758,
"narHash": "sha256-1wxxznpW2CKvI9VdniaUnTT2Os6rdRJcRUf65ZK9OtE=",
"lastModified": 1769461804,
"narHash": "sha256-msG8SU5WsBUfVVa/9RPLaymvi5bI8edTavbIq3vRlhI=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "dfb2f12e899db4876308eba6d93455ab7da304cd",
"rev": "bfc1b8a4574108ceef22f02bafcf6611380c100d",
"type": "github"
},
"original": {
@@ -320,13 +370,13 @@
"type": "github"
}
},
"nixpkgs_3": {
"nixpkgs_5": {
"locked": {
"lastModified": 1728538411,
"narHash": "sha256-f0SBJz1eZ2yOuKUr5CA9BHULGXVSn6miBuUWdTyhUhU=",
"lastModified": 1744536153,
"narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "b69de56fac8c2b6f8fd27f2eca01dcda8e0a4221",
"rev": "18dd725c29603f582cf1900e0d25f9f1063dbf11",
"type": "github"
},
"original": {
@@ -338,17 +388,17 @@
},
"nur": {
"inputs": {
"flake-parts": "flake-parts",
"flake-parts": "flake-parts_2",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1756524478,
"narHash": "sha256-2oSBlcYCgwrVxUZwM8MV6hBFsfsWFbeN5ErQiCA+38s=",
"lastModified": 1769834069,
"narHash": "sha256-GjeN/5TdWev/L/Izem3XScV6i/55Z+n+GfjKa1srBcU=",
"owner": "nix-community",
"repo": "nur",
"rev": "e82a8b0095f54edb6bbbb1d862f3da502dca1396",
"rev": "2db81de33100ef4d86ebc80dc4bc30df1fe97c5d",
"type": "github"
},
"original": {
@@ -361,14 +411,14 @@
"inputs": {
"darwin": "darwin",
"disko": "disko",
"helix": "helix",
"home-manager": "home-manager",
"mac-app-util": "mac-app-util",
"nix2vim": "nix2vim",
"nixos-generators": "nixos-generators",
"nixpkgs": "nixpkgs_2",
"nixpkgs": "nixpkgs_4",
"nixpkgs-stable": "nixpkgs-stable",
"nur": "nur",
"rust-overlay": "rust-overlay",
"wsl": "wsl",
"zellij-switch": "zellij-switch",
"zenyd-mpv-scripts": "zenyd-mpv-scripts"
@@ -376,35 +426,14 @@
},
"rust-overlay": {
"inputs": {
"nixpkgs": [
"helix",
"nixpkgs"
]
"nixpkgs": "nixpkgs_5"
},
"locked": {
"lastModified": 1740623427,
"narHash": "sha256-3SdPQrZoa4odlScFDUHd4CUPQ/R1gtH4Mq9u8CBiK8M=",
"lastModified": 1769828398,
"narHash": "sha256-zmnvRUm15QrlKH0V1BZoiT3U+Q+tr+P5Osi8qgtL9fY=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "d342e8b5fd88421ff982f383c853f0fc78a847ab",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"rust-overlay_2": {
"inputs": {
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1736476219,
"narHash": "sha256-+qyv3QqdZCdZ3cSO/cbpEY6tntyYjfe1bB12mdpNFaY=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "de30cc5963da22e9742bbbbb9a3344570ed237b9",
"rev": "a1d32c90c8a4ea43e9586b7e5894c179d5747425",
"type": "github"
},
"original": {
@@ -414,21 +443,6 @@
}
},
"systems": {
"locked": {
"lastModified": 1689347925,
"narHash": "sha256-ozenz5bFe1UUqOn7f60HRmgc01BgTGIKZ4Xl+HbocGQ=",
"owner": "nix-systems",
"repo": "default-darwin",
"rev": "2235d7e6cc29ae99878133c95e9fe5e157661ffb",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-darwin",
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
@@ -443,6 +457,21 @@
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1689347925,
"narHash": "sha256-ozenz5bFe1UUqOn7f60HRmgc01BgTGIKZ4Xl+HbocGQ=",
"owner": "nix-systems",
"repo": "default-darwin",
"rev": "2235d7e6cc29ae99878133c95e9fe5e157661ffb",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-darwin",
"type": "github"
}
},
"systems_3": {
"locked": {
"lastModified": 1681028828,
@@ -458,16 +487,49 @@
"type": "github"
}
},
"systems_4": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": "nixpkgs"
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1755934250,
"narHash": "sha256-CsDojnMgYsfshQw3t4zjRUkmMmUdZGthl16bXVWgRYU=",
"lastModified": 1766000401,
"narHash": "sha256-+cqN4PJz9y0JQXfAK5J1drd0U05D5fcAGhzhfVrDlsI=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "74e1a52d5bd9430312f8d1b8b0354c92c17453e5",
"rev": "42d96e75aa56a3f70cab7e7dc4a32868db28e8fd",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"treefmt-nix_2": {
"inputs": {
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1766000401,
"narHash": "sha256-+cqN4PJz9y0JQXfAK5J1drd0U05D5fcAGhzhfVrDlsI=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "42d96e75aa56a3f70cab7e7dc4a32868db28e8fd",
"type": "github"
},
"original": {
@@ -484,11 +546,11 @@
]
},
"locked": {
"lastModified": 1755261305,
"narHash": "sha256-EOqCupB5X5WoGVHVcfOZcqy0SbKWNuY3kq+lj1wHdu8=",
"lastModified": 1769217863,
"narHash": "sha256-RY9kJDXD6+2Td/59LkZ0PFSereCXHdBX9wIkbYjRKCY=",
"owner": "nix-community",
"repo": "NixOS-WSL",
"rev": "203a7b463f307c60026136dd1191d9001c43457f",
"rev": "38a5250e57f583662eac3b944830e4b9e169e965",
"type": "github"
},
"original": {
@@ -502,8 +564,10 @@
"nixpkgs": [
"nixpkgs"
],
"rust-overlay": "rust-overlay_2",
"systems": "systems_3"
"rust-overlay": [
"rust-overlay"
],
"systems": "systems_4"
},
"locked": {
"lastModified": 1742588229,
@@ -522,11 +586,11 @@
"zenyd-mpv-scripts": {
"flake": false,
"locked": {
"lastModified": 1707704915,
"narHash": "sha256-9P/8q/OZXfaJMS08acQP4h3/zUA5mKRQee0JmkXcz1w=",
"lastModified": 1765050776,
"narHash": "sha256-9gO+GkNoGsxAbMRrBWu0FfXEQtyTmHivlaxlYLpV2YM=",
"owner": "zenyd",
"repo": "mpv-scripts",
"rev": "9bdce0050144cb24f92475f7bdd77180e0e4c26b",
"rev": "62f4bb313c6cb6366672e78dea940e9da8fec84a",
"type": "github"
},
"original": {

View File

@@ -8,7 +8,7 @@
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
# Used for specific stable packages
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-24.05";
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-25.05";
# Used for MacOS system config
darwin = {
@@ -64,17 +64,23 @@
flake = false;
};
rust-overlay = {
url = "github:oxalica/rust-overlay";
};
# Zellij Switcher
zellij-switch = {
url = "github:mostafaqanbaryan/zellij-switch";
inputs.nixpkgs.follows = "nixpkgs";
inputs.rust-overlay.follows = "rust-overlay";
};
# Text editor
helix = {
url = "github:helix-editor/helix";
inputs.nixpkgs.follows = "nixpkgs";
};
# # Text editor
# helix = {
# url = "github:helix-editor/helix";
# inputs.nixpkgs.follows = "nixpkgs";
# inputs.rust-overlay.follows = "rust-overlay";
# };
# # Nextcloud Apps
# nextcloud-news = {
@@ -133,6 +139,7 @@
photos = "photos.${baseName}";
postgresql = "pg.${baseName}";
prometheus = "prom.${baseName}";
recipes = "cooking.${baseName}";
secrets = "vault.${baseName}";
smtp = "smtp.purelymail.com";
status = "status.${baseName}";
@@ -280,7 +287,7 @@
inherit (lib) overlays;
};
in
pkgs.nixfmt-rfc-style
pkgs.nixfmt
);
# Templates for starting other projects quickly

View File

@@ -67,8 +67,9 @@ lib
inputs.nur.overlays.default
inputs.nix2vim.overlay
inputs.zellij-switch.overlays.default
inputs.helix.overlays.default
] ++ (importOverlays ../overlays);
# inputs.helix.overlays.default
]
++ (importOverlays ../overlays);
# System types to support.
supportedSystems = [
@@ -97,7 +98,10 @@ lib
system:
import inputs.nixpkgs {
inherit system overlays;
config.permittedInsecurePackages = [ "litestream-0.3.13" ];
config.permittedInsecurePackages = [
"litestream-0.3.13"
"electron-36.9.5"
];
config.allowUnfree = true;
}
);
@@ -130,7 +134,8 @@ lib
];
extraSpecialArgs = {
inherit colorscheme;
} // specialArgs;
}
// specialArgs;
};
buildNixos =
@@ -152,8 +157,10 @@ lib
home-manager = {
extraSpecialArgs = {
inherit colorscheme;
} // specialArgs;
} // homeModule.home-manager;
}
// specialArgs;
}
// homeModule.home-manager;
}
];
};
@@ -178,8 +185,10 @@ lib
home-manager = {
extraSpecialArgs = {
inherit colorscheme;
} // specialArgs;
} // homeModule.home-manager;
}
// specialArgs;
}
// homeModule.home-manager;
}
];
};
@@ -222,12 +231,15 @@ lib
home-manager = {
extraSpecialArgs = {
inherit colorscheme;
} // specialArgs;
} // homeModule.home-manager;
}
// specialArgs;
}
// homeModule.home-manager;
}
];
specialArgs = {
} // specialArgs;
}
// specialArgs;
};
}

View File

@@ -38,6 +38,7 @@
};
brews = [
"trash" # Delete files and folders to trash instead of rm
"jiratui" # Terminal program to manage Jira
];
casks = [
"1password" # 1Password will not launch from Nix on macOS

5
overlays/firefox.nix Normal file
View File

@@ -0,0 +1,5 @@
inputs: final: prev: {
firefox-unwrapped = final.stable.firefox-unwrapped;
}

View File

@@ -4,7 +4,8 @@
inputs: _final: prev: {
# Provides `pkgs.stable`.
stable = import inputs.nixpkgs-stable {
inherit (prev) system config;
system = prev.stdenv.hostPlatform.system;
config = { };
overlays = [
# inputs.self.overlays.vim-plugins
];

View File

@@ -4,7 +4,8 @@
inputs: _final: prev: {
# Provides `pkgs.unstable`.
unstable = import inputs.nixpkgs {
inherit (prev) system config;
system = prev.stdenv.hostPlatform.system;
inherit (prev) config;
overlays = [
# inputs.self.overlays.vim-plugins
];

View File

@@ -100,7 +100,7 @@
lua.command = "${pkgs.stylua}/bin/stylua";
black.command = "${pkgs.black}/bin/black";
fish_indent.command = "${pkgs.fish}/bin/fish_indent";
nixfmt.command = "${pkgs.nixfmt-rfc-style}/bin/nixfmt";
nixfmt.command = "${pkgs.nixfmt}/bin/nixfmt";
rustfmt.command = "${pkgs.rustfmt}/bin/rustfmt";
shfmt = {
command = "${pkgs.shfmt}/bin/shfmt";

View File

@@ -3,10 +3,10 @@
plugins = [
(pkgs.vimPlugins.nvim-treesitter.withPlugins (_plugins: [
pkgs.nmasur.ini-grammar
pkgs.nmasur.puppet-grammar
pkgs.nmasur.rasi-grammar
pkgs.nmasur.vimdoc-grammar
pkgs.nmasur.tree-sitter-ini
pkgs.nmasur.tree-sitter-puppet
pkgs.nmasur.tree-sitter-rasi
pkgs.nmasur.tree-sitter-vimdoc
pkgs.tree-sitter-grammars.tree-sitter-bash
pkgs.tree-sitter-grammars.tree-sitter-c
pkgs.tree-sitter-grammars.tree-sitter-fish
@@ -21,7 +21,6 @@
pkgs.tree-sitter-grammars.tree-sitter-yaml
]))
pkgs.vimPlugins.vim-matchup # Better % jumping in languages
pkgs.vimPlugins.playground # Tree-sitter experimenting
pkgs.vimPlugins.nginx-vim
pkgs.vimPlugins.vim-helm
# pkgs.vimPlugins.hmts-nvim # Tree-sitter injections for home-manager

View File

@@ -18,5 +18,5 @@
}).withPlugins
{
plugins = [ "github.com/caddy-dns/cloudflare@v0.2.1" ];
hash = "sha256-AcWko5513hO8I0lvbCLqVbM1eWegAhoM0J0qXoWL/vI=";
hash = "sha256-Zls+5kWd/JSQsmZC4SRQ/WS+pUcRolNaaI7UQoPzJA0=";
}

View File

@@ -0,0 +1,41 @@
function exportHistory() {
const now = new Date();
const startTime = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 0, 0, 0, 0); // Beginning of today
browser.history.search({
text: '',
startTime: startTime,
endTime: now,
maxResults: 10000
}).then(historyItems => {
const historyData = JSON.stringify(historyItems, null, 2);
const blob = new Blob([historyData], {type: 'application/json'});
const url = URL.createObjectURL(blob);
const date = now.toISOString().slice(0, 10); // YYYY-MM-DD
const filename = `firefox-history/history-${date}.json`;
browser.downloads.download({
url: url,
filename: filename,
conflictAction: 'overwrite',
saveAs: false
});
});
}
browser.alarms.create('daily-export', {
periodInMinutes: 60 // every 1 hour
});
browser.alarms.onAlarm.addListener(alarm => {
if (alarm.name === 'daily-export') {
exportHistory();
}
});
browser.runtime.onMessage.addListener((message, sender, sendResponse) => {
if (message.command === "exportHistory") {
exportHistory();
}
});

View File

@@ -0,0 +1,25 @@
{
"manifest_version": 3,
"name": "History Exporter",
"version": "1.0",
"description": "Automatically exports today's browsing history.",
"permissions": [
"history",
"downloads",
"alarms"
],
"background": {
"scripts": ["background.js"]
},
"action": {
"default_popup": "popup.html"
},
"browser_specific_settings": {
"gecko": {
"id": "firefox-history-exporter@nmasur.com",
"data_collection_permissions": {
"required": ["none"]
}
}
}
}

View File

@@ -0,0 +1,26 @@
{ pkgs, ... }:
pkgs.stdenv.mkDerivation rec {
pname = "firefox-history-exporter";
version = "1.0";
src = ./.;
nativeBuildInputs = [ pkgs.zip ];
dontUnpack = true;
installPhase = ''
dst="$out/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
mkdir -p "$dst"
zip -j "$dst/firefox-history-exporter@nmasur.com.xpi" \
"${src}/manifest.json" \
"${src}/background.js" \
"${src}/popup.html" \
"${src}/popup.js"
'';
meta = with pkgs.lib; {
description = "Automatically exports today's browsing history.";
license = licenses.mit;
};
}

View File

@@ -0,0 +1,25 @@
<!DOCTYPE html>
<html>
<head>
<title>History Exporter</title>
<style>
body {
width: 200px;
text-align: center;
font-family: sans-serif;
}
button {
margin-top: 10px;
padding: 10px;
font-size: 16px;
cursor: pointer;
}
</style>
</head>
<body>
<h1>History Exporter</h1>
<button id="export-button">Export Now</button>
<p id="status"></p>
<script src="popup.js"></script>
</body>
</html>

View File

@@ -0,0 +1,9 @@
document.getElementById('export-button').addEventListener('click', () => {
browser.runtime.sendMessage({command: "exportHistory"});
const statusElement = document.getElementById('status');
statusElement.textContent = 'Exporting...';
setTimeout(() => {
statusElement.textContent = 'Export complete!';
}, 2000);
});

View File

@@ -6,17 +6,17 @@
# Specify AWS_PROFILE and AWS_REGION before running this script
aws ec2 describe-instances \
--filters "Name=instance-state-name,Values=running" |
jq -r \
'.Reservations[]
--filters "Name=instance-state-name,Values=running" |
jq -r \
'.Reservations[]
| .Instances[]
| .InstanceId + " - " +
(.PrivateIpAddress // "n/a") + " - " +
(.PublicIpAddress // "n/a") + " - " +
(.Tags // [] | from_entries | .Name // "n/a")' |
fzf \
--height 100% \
--layout reverse \
--header $'Press Enter to start SSM session\nInstance ID - Private IP - Public IP - Name' \
--preview "aws ec2 describe-instances --instance-ids \"\$(echo {} | cut -d' ' -f1)\" | jq -r '.Reservations[].Instances[0]'" \
--bind "enter:become(aws ssm start-session --target \$(echo {} | cut -d' ' -f1))"
fzf \
--height 100% \
--layout reverse \
--header $'Press Enter to start SSM session\nInstance ID - Private IP - Public IP - Name' \
--preview "aws ec2 describe-instances --instance-ids \"\$(echo {} | cut -d' ' -f1)\" | jq -r '.Reservations[].Instances[0]'" \
--bind "enter:become(aws ssm start-session --document-name 'AWS-StartInteractiveCommand' --parameters '{\"command\": [\"bash\"]}' --target \$(echo {} | cut -d' ' -f1))"

View File

@@ -5,7 +5,7 @@ pkgs.mkShell {
buildInputs = with pkgs; [
git
stylua
nixfmt-rfc-style
nixfmt
shfmt
shellcheck
];

View File

@@ -1,7 +1,7 @@
{ pkgs, ... }:
pkgs.writeShellScriptBin "rebuild" ''
echo ${pkgs.system}
echo ${pkgs.stdenv.hostPlatform.system}
SYSTEM=${if pkgs.stdenv.isDarwin then "darwin" else "linux"}
if [ "$SYSTEM" == "darwin" ]; then
sudo darwin-rebuild switch --flake ${builtins.toString ../../../../.}

View File

@@ -18,16 +18,17 @@ in
"1password"
"_1password-gui"
"1password-cli"
"onepassword-password-manager" # Firefox extension
# "onepassword-password-manager" # Firefox extension
];
home.packages = [
pkgs._1password-cli
] ++ (if pkgs.stdenv.isLinux then [ pkgs._1password-gui ] else [ ]);
]
++ (if pkgs.stdenv.isLinux then [ pkgs._1password-gui ] else [ ]);
# Firefox extension
programs.firefox.profiles.default.extensions.packages = [
pkgs.nur.repos.rycee.firefox-addons.onepassword-password-manager
];
# # Firefox extension
# programs.firefox.profiles.default.extensions.packages = [
# pkgs.nur.repos.rycee.firefox-addons.onepassword-password-manager
# ];
};
# # https://1password.community/discussion/135462/firefox-extension-does-not-connect-to-linux-app

View File

@@ -174,8 +174,10 @@ in
filters = {
"text/plain" = "${pkgs.aerc}/libexec/aerc/filters/colorize";
"text/calendar" = "${pkgs.gawk}/bin/awk -f ${pkgs.aerc}/libexec/aerc/filters/calendar";
# "text/html" =
# "${pkgs.aerc}/libexec/aerc/filters/html | ${pkgs.aerc}/libexec/aerc/filters/colorize"; # Requires w3m, dante
"text/html" =
"${pkgs.aerc}/libexec/aerc/filters/html | ${pkgs.aerc}/libexec/aerc/filters/colorize"; # Requires w3m, dante
"!${pkgs.chawan}/bin/cha --type text/html --opt display.image-mode=kitty --opt display.columns=100 --opt display.force-columns=true";
# "text/*" =
# ''${pkgs.bat}/bin/bat -fP --file-name="$AERC_FILENAME "'';
"message/delivery-status" = "${pkgs.aerc}/libexec/aerc/filters/colorize";
@@ -202,7 +204,7 @@ in
xdg.desktopEntries.aerc = lib.mkIf (pkgs.stdenv.isLinux) {
name = "aerc";
exec = "${lib.getExe config.nmasur.presets.services.i3.terminal} aerc %u";
exec = "${lib.getExe config.nmasur.presets.services.i3.terminal} -e aerc %u";
};
xsession.windowManager.i3.config.keybindings = lib.mkIf pkgs.stdenv.isLinux {
"${config.xsession.windowManager.i3.config.modifier}+Shift+e" =
@@ -212,7 +214,7 @@ in
if terminal == pkgs.wezterm then
"start --class com.noah.aerc -- aerc"
else
"--class=com.noah.aerc --command=aerc";
"--class=com.noah.aerc -e aerc";
in
"exec ${
# Don't name the script `aerc` or it will affect grep

View File

@@ -32,7 +32,6 @@ in
config = lib.mkIf cfg.enable {
accounts.calendar.accounts.default = {
basePath = "other/calendars"; # Where to save calendars in ~ directory
name = "personal";
local.type = "filesystem";
primary = true;

View File

@@ -27,6 +27,7 @@ in
rustfmt
pkg-config
openssl
rust-analyzer
];
};
}

View File

@@ -0,0 +1,34 @@
{
config,
pkgs,
lib,
...
}:
let
cfg = config.nmasur.presets.programs.chawan;
in
{
options.nmasur.presets.programs.chawan.enable = lib.mkEnableOption "chawan TUI web browser";
config = lib.mkIf cfg.enable {
programs.chawan = {
enable = true;
settings = {
external.copy-cmd = if pkgs.stdenv.isLinux then "xclip -selection clipboard -in" else "pbcopy";
};
};
# Set Chawan as the default app for manual pages
home.sessionVariables = {
MANPAGER = "${lib.getExe pkgs.chawan} -T text/x-ansi";
};
programs.fish.shellAbbrs.man = "mancha";
};
}

View File

@@ -29,7 +29,7 @@ in
config = lib.mkIf cfg.enable {
# Always make the dotfiles directory considered safe for git and direnv
programs.git.extraConfig.safe.directory = cfg.path;
programs.git.settings.safe.directory = cfg.path;
programs.direnv.config.whitelist.prefix = [ cfg.path ];
home.activation = {

View File

@@ -46,6 +46,8 @@ in
ublacklist
vimium
wappalyzer # TODO: only for work profile
pkgs.nmasur.firefox-history-exporter
# copy-as-markdown
# saml-tracer
# text-fragment
];
@@ -61,6 +63,7 @@ in
"trailhead.firstrun.didSeeAboutWelcome" = true; # Disable welcome splash
"dom.forms.autocomplete.formautofill" = false; # Disable autofill
"extensions.formautofill.creditCards.enabled" = false; # Disable credit cards
"extensions.autoDisableScopes" = false; # Enable extensions automatically
"dom.payments.defaults.saveAddress" = false; # Disable address save
"general.autoScroll" = true; # Drag middle-mouse to scroll
"services.sync.prefs.sync.general.autoScroll" = false; # Prevent disabling autoscroll
@@ -187,7 +190,7 @@ in
xsession.windowManager.i3.config.keybindings = lib.mkIf pkgs.stdenv.isLinux {
"${config.xsession.windowManager.i3.config.modifier}+Shift+b" = "exec ${
# Don't name the script `firefox` or it will affect grep
builtins.toString (
toString (
pkgs.writeShellScript "focus-ff.sh" ''
count=$(ps aux | grep -c firefox)
if [ "$count" -eq 1 ]; then

View File

@@ -16,7 +16,8 @@ in
config = lib.mkIf cfg.enable {
# Set the i3 terminal
nmasur.presets.services.i3.terminal = config.programs.ghostty.package;
nmasur.presets.services.i3.terminal =
if pkgs.stdenv.isDarwin then pkgs.alacritty else config.programs.ghostty.package;
programs.ghostty = {
enable = true;

View File

@@ -39,8 +39,8 @@ in
config = lib.mkIf cfg.enable {
programs.git = {
userName = lib.mkForce cfg.work.name;
userEmail = lib.mkForce cfg.work.email;
settings.user.name = lib.mkForce cfg.work.name;
settings.user.email = lib.mkForce cfg.work.email;
includes = [
{
path = "${config.home.homeDirectory}/${config.xdg.configFile."git/personal".target}";

View File

@@ -29,9 +29,11 @@ in
programs.git = {
enable = true;
userName = cfg.name;
userEmail = cfg.email;
extraConfig = {
settings = {
user = {
name = cfg.name;
email = cfg.email;
};
core.pager = "${pkgs.git}/share/git/contrib/diff-highlight/diff-highlight | less --no-init";
interactive.difffilter = "${pkgs.git}/share/git/contrib/diff-highlight/diff-highlight";
pager = {

View File

@@ -22,7 +22,6 @@ in
extensions = [
pkgs.nmasur.gh-collaborators
pkgs.gh-dash
pkgs.gh-copilot
];
};

View File

@@ -7,6 +7,62 @@
let
cfg = config.nmasur.presets.programs.helix;
blame_file_pretty = pkgs.writeShellScriptBin "blame_file_pretty" ''
# Source: https://gist.github.com/gloaysa/828707f067e3bb20da18d72fa5d4963a
# Utility for Helix: open the patch for the commit that last touched the current line.
# If the line isnt committed yet, it shows the working-tree diff for THIS file only.
# The script writes the diff to /tmp and prints the absolute path to stdout
# Adjust `context` to see more/fewer unchanged lines around the change (default: 3).
#
# usage: git-file_pretty.sh <file> <line> [context_lines]
# Helix mapping example:
# B = ':open %sh{ ~/.config/helix/utils/git-blame-commit.sh "%{buffer_name}" %{cursor_line} 3 }'
file="$1"
line="$2"
ctx="''${3:-3}"
# blame the exact line
porc="$(git blame -L "$line",+1 --porcelain -- "$file")" || exit 1
sha="$(printf '%s\n' "$porc" | awk 'NR==1{print $1}')"
commit_path="$(printf '%s\n' "$porc" | awk '/^filename /{print substr($0,10); exit}')"
out="/tmp/hx-blame_$(basename "$file")_''${sha:-wt}.diff"
if [ -z "$sha" ] || [ "$sha" = 0000000000000000000000000000000000000000 ] || [ "$sha" = "^" ]; then
# uncommitted line working tree diff for this file
git --no-pager diff --no-color -U"$ctx" -- "$file" > "$out"
else
# committed line only this files patch in that commit
git --no-pager show --no-color -M -C -U"$ctx" "$sha" -- "''${commit_path:-$file}" > "$out"
fi
# "return" the path for :open %sh{}
printf '%s' "$out"
'';
blame_line_pretty = pkgs.writeShellScriptBin "blame_line_pretty" ''
# Source: https://gist.github.com/gloaysa/828707f067e3bb20da18d72fa5d4963a
# Utility for Helix: pretty-print blame info for the line under the cursor.
# Quite basic.
#
# usage: blame_line_pretty <file> <line>
# Helix mapping example:
# b = ":run-shell-command ~/.config/helix/utils/blame_line_pretty.sh %{buffer_name} %{cursor_line}"
file="$1"; line="$2"
out="$(git blame -L "$line",+1 --porcelain -- "$file")" || return 1
sha="$(printf '%s\n' "$out" | awk 'NR==1{print $1}')"
author="$(printf '%s\n' "$out" | awk -F'author ' '/^author /{print $2; exit}')"
epoch="$(printf '%s\n' "$out" | awk '/^author-time /{print $2; exit}')"
# dd-mm-yyyy (macOS `date -r`; fallback to gdate if present)
date="$( (date -r "$epoch" +%d-%m-%Y\ %H:%M 2>/dev/null) || (gdate -d "@$epoch" +%d-%m-%Y\ %H:%M 2>/dev/null) || printf '%s' "$epoch")"
summary="$(printf '%s\n' "$out" | awk -F'summary ' '/^summary /{print $2; exit}')"
change="$(printf '%s\n' "$out" | tail -n 1)"
printf "%s\n%s\n%s\n%s\n%s\n" "$sha" "$author" "$date" "$summary" "$change"
'';
in
{
@@ -16,13 +72,13 @@ in
config = lib.mkIf cfg.enable {
# Use Neovim as the editor for git commit messages
programs.git.extraConfig.core.editor = lib.mkForce "${lib.getExe pkgs.helix}";
programs.git.settings.core.editor = lib.mkForce "${lib.getExe pkgs.helix}";
programs.jujutsu.settings.ui.editor = lib.mkForce "${lib.getExe pkgs.helix}";
# Set Neovim as the default app for text editing and manual pages
home.sessionVariables = {
EDITOR = lib.mkForce "${lib.getExe pkgs.helix}";
MANPAGER = lib.mkForce "sh -c 'col -bx | ${lib.getExe pkgs.helix}'";
# MANPAGER = lib.mkForce "sh -c 'col -bx | ${lib.getExe pkgs.helix}'";
MANWIDTH = 87;
MANROFFOPT = "-c";
};
@@ -62,6 +118,11 @@ in
command = lib.getExe pkgs.marksman;
};
language-server.rumdl = {
command = lib.getExe pkgs.rumdl;
args = [ "server" ];
};
language-server.terraform-ls = {
command = "${lib.getExe pkgs.terraform-ls}";
args = [ "serve" ];
@@ -87,10 +148,16 @@ in
{
name = "markdown";
auto-format = false;
language-servers = [ "marksman" ];
language-servers = [
"marksman"
"rumdl"
];
formatter = {
command = lib.getExe pkgs.mdformat;
args = [ "-" ];
command = lib.getExe pkgs.rumdl;
args = [
"fmt"
"-"
];
};
# Allows return key to continue the token on the next line
comment-tokens = [
@@ -102,9 +169,18 @@ in
];
}
{
name = "tfvars";
name = "hcl";
scope = "source.hcl";
# injection-regex = "terraform";
auto-format = true;
language-servers = [ "terraform-ls" ];
language-id = "terraform";
file-types = [
"tf"
"tfvars"
"terraform"
{ glob = "*.auto.tfvars"; }
];
formatter = {
command = lib.getExe pkgs.terraform;
args = [
@@ -114,11 +190,15 @@ in
};
}
{
name = "hcl";
name = "hcl-packer";
scope = "source.hcl-packer";
auto-format = true;
language-servers = [ "terraform-ls" ];
file-types = [
"hcl"
"pkr.hcl"
];
formatter = {
command = lib.getExe pkgs.terraform;
command = "${pkgs.packer}/bin/packer";
args = [
"fmt"
"-"
@@ -179,18 +259,9 @@ in
];
# Commandline git blame
space.B = ":echo %sh{git log -n1 --date=short --pretty=format:'%%h %%ad %%s' $(git blame -L %{cursor_line},+1 \"%{buffer_name}\" | cut -d' ' -f1)}";
# Open yazi
# https://github.com/sxyazi/yazi/pull/2461
# Won't work until next Helix release
C-y = [
":sh rm -f /tmp/unique-file"
":insert-output ${lib.getExe pkgs.yazi} %{buffer_name} --chooser-file=/tmp/unique-file"
":insert-output echo \\x1b[?1049h\\x1b[?2004h > /dev/tty"
":open %sh{cat /tmp/unique-file}"
":redraw"
];
# space.B = ":echo %sh{git log -n1 --date=short --pretty=format:'%%h %%ad %%s' $(git blame -L %{cursor_line},+1 \"%{buffer_name}\" | cut -d' ' -f1)}";
space.B = '':open %sh{ ${blame_line_pretty}/bin/blame_line_pretty "%{buffer_name}" %{cursor_line} 3 }'';
space.i = '':open %sh{ ${blame_file_pretty}/bin/blame_file_pretty "%{buffer_name}" %{cursor_line} 3 }'';
# Extend selection above
X = "select_line_above";
@@ -256,6 +327,10 @@ in
git-exclude = true; # Skip excluded files
};
completion-replace = true; # Replace whole word with completion
trim-trailing-whitespace = true;
# rainbow-brackets = true; # Make it easier to match parentheses
# Show whitespace visible to the user
# Waiting for trailing whitespace option ideally
whitespace = {
@@ -272,7 +347,7 @@ in
};
themes."${config.programs.helix.settings.theme}" = {
themes.base16 = {
"attributes" = config.theme.colors.base09;
"comment" = {
fg = config.theme.colors.base03;
@@ -452,8 +527,220 @@ in
};
};
themes.alabaster-style = {
"attribute" = config.theme.colors.base05;
"comment" = {
fg = config.theme.colors.base0A;
# modifiers = [ "italic" ];
};
"constant" = config.theme.colors.base0E;
"constant.numeric" = config.theme.colors.base0E;
"constant.builtin" = config.theme.colors.base0E;
"constant.character" = config.theme.colors.base0E;
"constant.character.escape" = config.theme.colors.base0C;
"constructor" = config.theme.colors.base0D;
"debug" = config.theme.colors.base03;
"diagnostic" = {
modifiers = [ "underlined" ];
};
"diff.delta" = config.theme.colors.base09;
"diff.minus" = config.theme.colors.base08;
"diff.plus" = config.theme.colors.base0B;
"error" = config.theme.colors.base08;
"function" = config.theme.colors.base0D;
"hint" = config.theme.colors.base03;
"info" = config.theme.colors.base0D;
"keyword" = config.theme.colors.base05;
"keyword.control" = config.theme.colors.base05;
"keyword.operator" = config.theme.colors.base05;
"label" = config.theme.colors.base0E;
"namespace" = config.theme.colors.base0E;
"operator" = config.theme.colors.base05;
"punctuation" = config.theme.colors.base04;
"punctuation.bracket" = config.theme.colors.base04;
"punctuation.delimiter" = config.theme.colors.base04;
"special" = config.theme.colors.base0D;
"string" = config.theme.colors.base0B;
"string.regexp" = config.theme.colors.base0B;
"string.special" = config.theme.colors.base0C;
"type" = config.theme.colors.base0A;
"variable" = config.theme.colors.base05;
"variable.parameter" = config.theme.colors.base05;
"variable.builtin" = config.theme.colors.base05;
"variable.other.member" = config.theme.colors.base05;
"warning" = config.theme.colors.base09;
"markup.bold" = {
fg = config.theme.colors.base0A;
modifiers = [ "bold" ];
};
"markup.heading" = config.theme.colors.base0D;
"markup.italic" = {
fg = config.theme.colors.base0E;
modifiers = [ "italic" ];
};
"markup.link.text" = config.theme.colors.base08;
"markup.link.url" = {
fg = config.theme.colors.base09;
modifiers = [ "underlined" ];
};
"markup.list" = config.theme.colors.base08;
"markup.quote" = config.theme.colors.base0C;
"markup.raw" = config.theme.colors.base0B;
"markup.strikethrough" = {
modifiers = [ "crossed_out" ];
};
"diagnostic.hint" = {
underline = {
style = "curl";
};
};
"diagnostic.info" = {
underline = {
style = "curl";
};
};
"diagnostic.warning" = {
underline = {
style = "curl";
};
};
"diagnostic.error" = {
underline = {
style = "curl";
};
};
"ui.background" = {
bg = config.theme.colors.base00;
};
"ui.bufferline.active" = {
fg = config.theme.colors.base00;
bg = config.theme.colors.base03;
modifiers = [ "bold" ];
};
"ui.bufferline" = {
fg = config.theme.colors.base04;
bg = config.theme.colors.base00;
};
"ui.cursor" = {
fg = config.theme.colors.base04;
modifiers = [ "reversed" ];
};
"ui.cursor.insert" = {
fg = config.theme.colors.base0A;
modifiers = [ "reversed" ];
};
"ui.cursorline.primary" = {
fg = config.theme.colors.base05;
bg = config.theme.colors.base01;
};
"ui.cursor.match" = {
fg = config.theme.colors.base03;
modifiers = [ "reversed" ];
};
"ui.cursor.select" = {
fg = config.theme.colors.base04;
modifiers = [ "reversed" ];
};
"ui.gutter" = {
bg = config.theme.colors.base00;
};
"ui.help" = {
fg = config.theme.colors.base06;
bg = config.theme.colors.base01;
};
"ui.linenr" = {
fg = config.theme.colors.base03;
bg = config.theme.colors.base00;
};
"ui.linenr.selected" = {
fg = config.theme.colors.base04;
bg = config.theme.colors.base01;
modifiers = [ "bold" ];
};
"ui.menu" = {
fg = config.theme.colors.base05;
bg = config.theme.colors.base01;
};
"ui.menu.scroll" = {
fg = config.theme.colors.base03;
bg = config.theme.colors.base01;
};
"ui.menu.selected" = {
fg = config.theme.colors.base01;
bg = config.theme.colors.base04;
};
"ui.popup" = {
bg = config.theme.colors.base01;
};
"ui.selection" = {
bg = config.theme.colors.base01;
};
"ui.selection.primary" = {
bg = config.theme.colors.base02;
};
"ui.statusline" = {
fg = config.theme.colors.base04;
bg = config.theme.colors.base01;
};
"ui.statusline.inactive" = {
bg = config.theme.colors.base01;
fg = config.theme.colors.base03;
};
"ui.statusline.insert" = {
fg = config.theme.colors.base00;
bg = config.theme.colors.base0B;
};
"ui.statusline.normal" = {
fg = config.theme.colors.base00;
bg = config.theme.colors.base03;
};
"ui.statusline.select" = {
fg = config.theme.colors.base00;
bg = config.theme.colors.base0F;
};
"ui.text" = config.theme.colors.base05;
"ui.text.focus" = config.theme.colors.base05;
"ui.virtual.indent-guide" = {
fg = config.theme.colors.base03;
};
"ui.virtual.inlay-hint" = {
fg = config.theme.colors.base03;
};
"ui.virtual.ruler" = {
bg = config.theme.colors.base01;
};
"ui.virtual.jump-label" = {
fg = config.theme.colors.base0A;
modifiers = [ "bold" ];
};
"ui.window" = {
bg = config.theme.colors.base01;
};
};
};
# Create a desktop option for launching Helix from a file manager
# (Requires launching the terminal and then executing Helix)
xdg.desktopEntries.helix =
lib.mkIf (pkgs.stdenv.isLinux && config.nmasur.presets.services.i3.enable)
{
name = "Helix wrapper";
exec = ''sh -c "${lib.getExe config.nmasur.presets.services.i3.terminal} --command='hx \$1'" _ %F ''; # TODO: change to work for any terminal
mimeType = [
"text/plain"
"text/markdown"
];
};
xdg.mimeApps.defaultApplications = {
"text/plain" = lib.mkBefore [ "Helix.desktop" ];
"text/markdown" = lib.mkBefore [ "Helix.desktop" ];
};
home.packages = [
(pkgs.writers.writeDashBin "xterm" ''${lib.getExe config.nmasur.presets.services.i3.terminal} +new-window --command"$@" '')
];
};
}

View File

@@ -20,8 +20,8 @@ in
# https://github.com/martinvonz/jj/blob/main/docs/config.md
settings = {
user = {
name = config.programs.git.userName;
email = config.programs.git.userEmail;
name = config.programs.git.settings.user.name;
email = config.programs.git.settings.user.email;
};
ui.paginate = "never";
@@ -34,6 +34,9 @@ in
home.packages = [
# Required for the fsmonitor to auto-snapshot
pkgs.watchman
# Required to be on path to work in Zellij
pkgs.jjui
];
};

View File

@@ -38,13 +38,13 @@ in
);
# Use Neovim as the editor for git commit messages
programs.git.extraConfig.core.editor = "${lib.getExe cfg.package}";
programs.git.settings.core.editor = "${lib.getExe cfg.package}";
programs.jujutsu.settings.ui.editor = "${lib.getExe cfg.package}";
# Set Neovim as the default app for text editing and manual pages
home.sessionVariables = {
EDITOR = "${lib.getExe cfg.package}";
MANPAGER = "${lib.getExe cfg.package} +Man!";
# MANPAGER = "${lib.getExe cfg.package} +Man!";
};
# Create quick aliases for launching Neovim
@@ -66,7 +66,7 @@ in
lib.mkIf (pkgs.stdenv.isLinux && config.nmasur.presets.services.i3.enable)
{
name = "Neovim wrapper";
exec = "${lib.getExe config.nmasur.presets.services.i3.terminal} nvim %F"; # TODO: change to generic
exec = ''${lib.getExe config.nmasur.presets.services.i3.terminal} --command="nvim %F"''; # TODO: change to generic
mimeType = [
"text/plain"
"text/markdown"

View File

@@ -29,6 +29,18 @@ in
doas nixos-rebuild switch --flake ${config.nmasur.presets.programs.dotfiles.path}
'';
};
rebuildNixosAndPause = lib.mkOption {
type = lib.types.package;
default = pkgs.writeShellScriptBin "rebuild-nixos-pause" ''
${lib.getExe cfg.commands.rebuildNixos} || read
'';
};
rebuildHomeAndPause = lib.mkOption {
type = lib.types.package;
default = pkgs.writeShellScriptBin "rebuild-home-pause" ''
${lib.getExe cfg.commands.rebuildHome} || read
'';
};
};
};

View File

@@ -22,6 +22,6 @@ in
# Broken on 2023-12-11
# https://forum.obsidian.md/t/electron-25-is-now-eol-please-upgrade-to-a-newer-version/72878/8
# insecurePackages = [ "electron-25.9.0" ];
# allowInsecurePackages = [ "electron-36.9.5" ];
};
}

View File

@@ -0,0 +1,17 @@
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IE1nSGFPdyBTYTRy
elYzTGpSNDQ3UEcwTXlVeGJleUJmWWhaeDdDQTFRcGpmNlNrQlNVCjA5L2JrS3Vx
Q0cyRkk5dTBLOHJXa0xJSG9MTDFnNjV1M0F5L3F5RUlVbW8KLT4gc3NoLWVkMjU1
MTkgWXlTVU1RIG5vNm1Xem9lN2pkS25WRi9xSlpZUjhuYmdUVDUvc2o4M0xqYURR
UmY0VGcKWVVQc2wyV0Jqbk9JR3N4bW5HOXFTZHpCa25EMC85eThQY05MdHdaeXZy
VQotPiBzc2gtZWQyNTUxOSBuanZYNUEgWXRVa3c4STZ3WmFaNThSdE1QdVpiMVR1
cm5hYXJsckZiRGtXLzN5RzJEawpkVHBscFd2c0R1SGxnZ3lKUnNnMEZtTUxoQlB4
dVBEbTkvUzBJSVRiV1hBCi0+IHNzaC1lZDI1NTE5IENxSU9VQSAvQjhVam1heHNU
elVrVGtvaUx1elFCeTdNTkRnN3c5NEc5MWg4dDU3NUhzCm5sUlhHclJrNldnVDhF
MTV2cGd3ZFhFdm1rM2ExWVFXbkNJYWlWY0VnUmsKLT4gc3NoLWVkMjU1MTkgejFP
Y1p3IGc1QUdkZEp0Z0xEekFjcHd4WVFVam9BZTBEQm9NR3QzQmxNS09VVXpHV2sK
c2tYSElVK2prRlF3VlFqKzlVUFRHUWU3TmFXcEdsV2FKWVhKT3pWZkxVNAotLS0g
c1cxdk5sL1c3dDZuVGp5VWJrTlBGZTByNjRxMGxTdHd0NFNHV1pyN2k5Ywr7SW9q
/FaTTUHB5QiCihA+385sNogq7Q1RvgT2Dwn9NdmMRd/ObESbokJXVSiDDEt6d39s
D/uoDY20p3PCk4julNn1
-----END AGE ENCRYPTED FILE-----

View File

@@ -0,0 +1,106 @@
{
config,
pkgs,
lib,
...
}:
let
inherit (config.nmasur.settings) hostnames;
cfg = config.nmasur.presets.programs.thunderbird;
in
{
options.nmasur.presets.programs.thunderbird = {
enable = lib.mkEnableOption "Thunderbird email client";
calendar = {
username = lib.mkOption {
type = lib.types.str;
description = "Username for the calendar service backend";
default = config.nmasur.settings.username;
};
passwordCommand = lib.mkOption {
type = lib.types.str;
description = "Password for the calendar service backend";
default = config.accounts.email.accounts.home.passwordCommand;
};
hostname = lib.mkOption {
type = lib.types.str;
description = "Hostname for the calendar service backend";
default = hostnames.content;
};
url = lib.mkOption {
type = lib.types.str;
description = "URL for the calendar service backend";
default = "https://${cfg.calendar.hostname}/remote.php/dav";
};
};
tasks = {
username = lib.mkOption {
type = lib.types.str;
description = "Username for the tasks service backend";
default = config.nmasur.settings.username;
};
passwordCommand = lib.mkOption {
type = lib.types.str;
description = "Password for the tasks service backend";
default = "${lib.getExe pkgs.age} --decrypt --identity ~/.ssh/id_ed25519 ${pkgs.writeText "taskspass.age" (builtins.readFile ./taskspass.age)}";
};
hostname = lib.mkOption {
type = lib.types.str;
description = "Hostname for the tasks service backend";
default = hostnames.content;
};
url = lib.mkOption {
type = lib.types.str;
description = "URL for the tasks service backend";
default = "https://${cfg.tasks.hostname}/remote.php/dav";
};
};
};
config = lib.mkIf cfg.enable {
programs.thunderbird = {
enable = true;
profiles.default = {
isDefault = true;
};
};
accounts.email.accounts.home.thunderbird = {
enable = true;
profiles = [ "default" ];
};
accounts.calendar.basePath = "other/calendars"; # Where to save calendars in ~ directory
# accounts.calendar.accounts.home = {
# local.type = "filesystem";
# primary = true;
# remote = {
# passwordCommand = [ cfg.calendar.passwordCommand ];
# type = "caldav";
# url = cfg.calendar.url;
# userName = cfg.calendar.username;
# };
# thunderbird = {
# enable = true;
# profiles = [ "default" ];
# };
# };
# accounts.calendar.accounts.tasks = {
# local.type = "filesystem";
# primary = false;
# remote = {
# passwordCommand = [ cfg.tasks.passwordCommand ];
# type = "caldav";
# url = cfg.tasks.url;
# userName = cfg.tasks.username;
# };
# thunderbird = {
# enable = true;
# profiles = [ "default" ];
# };
# };
};
}

View File

@@ -16,6 +16,7 @@ in
config = lib.mkIf cfg.enable {
programs.zed-editor = {
enable = true;
package = pkgs.stable.zed-editor;
extensions = [
"nix"

View File

@@ -6,6 +6,7 @@
}:
let
inherit (config.nmasur.settings) username;
cfg = config.nmasur.presets.programs.zellij;
zellij-switch-to-last = pkgs.writeShellScriptBin "zellij-switch-to-last" ''
@@ -53,6 +54,8 @@ in
};
};
programs.ghostty.settings.initial-command = lib.getExe pkgs.zellij;
xdg.configFile."zellij/layouts/compact-top.kdl".text = # kdl
''
layout {
@@ -85,7 +88,7 @@ in
enableFishIntegration = true;
enableZshIntegration = true;
attachExistingSession = true;
exitShellOnExit = false;
exitShellOnExit = true;
settings = {
default_mode = "locked";
@@ -121,9 +124,15 @@ in
shared = {
"bind \"Alt Shift s\"" = {
Run = {
_args = [
(lib.getExe zellij-switch-to-last)
];
_args =
if pkgs.stdenv.isDarwin then
[
"env"
"PATH=/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin:/usr/bin:/bin"
(lib.getExe zellij-switch-to-last)
]
else
[ (lib.getExe zellij-switch-to-last) ];
close_on_exit = true;
};
};
@@ -186,9 +195,28 @@ in
};
};
"bind \"Alt Shift j\"" = {
Run = {
_args =
if pkgs.stdenv.isDarwin then
[
"env"
"PATH=${config.home.homeDirectory}/.nix-profile/bin:/etc/profiles/per-user/${username}/bin:/usr/bin"
(lib.getExe pkgs.jjui)
]
else
[ (lib.getExe pkgs.jjui) ];
close_on_exit = true;
floating = true;
x = "1%";
y = "1%";
width = "99%";
height = "99%";
};
};
"bind \"Alt Shift y\"" = {
Run = {
_args = [
(lib.getExe pkgs.lazyjj)
(lib.getExe pkgs.yazi)
];
close_on_exit = true;
floating = true;
@@ -243,6 +271,16 @@ in
_args = [ "Left" ];
};
};
"bind \"Alt j\"" = {
MoveFocus = {
_args = [ "Down" ];
};
};
"bind \"Alt k\"" = {
MoveFocus = {
_args = [ "Up" ];
};
};
};
};

View File

@@ -26,7 +26,7 @@ in
obsidian = "${pkgs.obsidian}/Applications/Obsidian.app";
slack = "${pkgs.slack}/Applications/Slack.app";
wezterm = "${pkgs.wezterm}/Applications/WezTerm.app";
zed = "${pkgs.zed-editor}/Applications/Zed.app";
zed = "${config.programs.zed-editor.package}/Applications/Zed.app";
};
xdg.configFile."hammerspoon/Spoons/MoveWindow.spoon".source = ./Spoons/MoveWindow.spoon;

View File

@@ -214,9 +214,9 @@ in
cfg.commands.lockScreen != null
) "exec ${cfg.commands.lockScreen}";
"${modifier}+Mod1+h" =
''exec --no-startup-id ${lib.getExe cfg.terminal} --command="${pkgs.home-manager}/bin/home-manager switch --flake ${config.nmasur.presets.programs.dotfiles.path}#''${hostname} || read" '';
''exec --no-startup-id ${lib.getExe cfg.terminal} -e "${lib.getExe config.nmasur.presets.programs.nixpkgs.commands.rebuildHome} '';
"${modifier}+Mod1+r" =
"exec --no-startup-id ${lib.getExe cfg.terminal} --command='doas nixos-rebuild switch --flake ${config.nmasur.presets.programs.dotfiles.path} || read'";
"exec --no-startup-id ${lib.getExe cfg.terminal} -e ${lib.getExe config.nmasur.presets.programs.nixpkgs.commands.rebuildNixos}";
# Window options
"${modifier}+q" = "kill";

View File

@@ -33,6 +33,7 @@ in
nmasur.presets = {
programs = {
bat.enable = lib.mkDefault true;
chawan.enable = lib.mkDefault true;
fd.enable = lib.mkDefault true;
ripgrep.enable = lib.mkDefault true;
starship.enable = lib.mkDefault true;

View File

@@ -19,6 +19,10 @@ in
pkgs.pgcli # Postgres client with autocomplete
];
nmasur.presets = {
programs.cargo.enable = lib.mkDefault true;
};
};
}

View File

@@ -17,7 +17,6 @@ in
nmasur.presets.programs = {
zed-editor.enable = lib.mkDefault true;
jujutsu.enable = lib.mkDefault true;
};
home.packages = [
@@ -28,8 +27,12 @@ in
pkgs.skate # Key-value store
pkgs.charm # Manage account and filesystem
pkgs.pop # Send emails from a TUI
pkgs.snitch # Network
pkgs.comma # Nix-index auto-launch
pkgs.nix-inspect # TUI for browsing Nix configs
pkgs.chawan # Browser TUI
pkgs.crush # AI LLM Agent
pkgs.gemini-cli # AI LLM Agent
];

View File

@@ -32,6 +32,7 @@ in
nsxiv.enable = lib.mkDefault true;
obsidian.enable = lib.mkDefault true;
rofi.enable = lib.mkDefault true;
thunderbird.enable = lib.mkDefault true;
xclip.enable = lib.mkDefault true;
zathura.enable = lib.mkDefault true;
};

View File

@@ -16,16 +16,17 @@ in
pkgs.age # Encryption
pkgs.bc # Calculator
pkgs.bottom # System monitor (top)
pkgs.csvlens # CSV viewer (easier than visidata)
pkgs.delta # Fancy diffs
pkgs.difftastic # Other fancy diffs
pkgs.doggo # DNS client (dig)
pkgs.du-dust # Disk usage tree (ncdu)
pkgs.dust # Disk usage tree (ncdu)
pkgs.dua # File sizes (du)
pkgs.duf # Basic disk information (df)
pkgs.jless # JSON viewer
pkgs.jo # JSON output
pkgs.mpd # TUI slideshows
pkgs.nixfmt-rfc-style # Format Nix code
pkgs.nixfmt # Format Nix code
pkgs.nmasur.jqr # FZF fq JSON tool
pkgs.nmasur.osc # Clipboard over SSH
pkgs.nmasur.ren-find # Rename files
@@ -33,7 +34,7 @@ in
pkgs.pandoc # Convert text documents
pkgs.qrencode # Generate qr codes
pkgs.spacer # Output lines in terminal
pkgs.tealdeer # Cheatsheets
pkgs.stable.tealdeer # Cheatsheets
pkgs.tree # Print tree in terminal
pkgs.vimv-rs # Batch rename files
pkgs.yazi # TUI file explorer
@@ -42,7 +43,7 @@ in
programs.fish.shellAliases = {
"du" = lib.mkDefault (lib.getExe pkgs.dua);
"ncdu" = lib.mkDefault (lib.getExe pkgs.du-dust);
"ncdu" = lib.mkDefault (lib.getExe pkgs.dust);
"df" = lib.mkDefault (lib.getExe pkgs.duf);
# Use eza (exa) instead of ls for fancier output
@@ -63,8 +64,9 @@ in
ghostty.enable = lib.mkDefault true;
git.enable = lib.mkDefault true;
helix.enable = lib.mkDefault true;
jujutsu.enable = lib.mkDefault true;
lazygit.enable = lib.mkDefault true;
neovim.enable = lib.mkDefault true;
# neovim.enable = lib.mkDefault true;
nix-index.enable = lib.mkDefault true;
nixpkgs.enable = lib.mkDefault true;
notes.enable = lib.mkDefault true;

View File

@@ -21,7 +21,7 @@ in
];
home.packages = [
pkgs.visidata # CSV inspector
pkgs.stable.visidata # CSV inspector
pkgs.dos2unix # Convert Windows text files
pkgs.inetutils # Includes telnet
pkgs.gnupg # Encryption
@@ -49,6 +49,7 @@ in
aws-ssh.enable = lib.mkDefault true;
bash.enable = lib.mkDefault true;
bat.enable = lib.mkDefault true;
cargo.enable = lib.mkDefault true;
direnv.enable = lib.mkDefault true;
dotfiles.enable = lib.mkDefault true;
fd.enable = lib.mkDefault true;

View File

@@ -23,5 +23,19 @@ in
# Speeds up fish launch time on macOS
programs.fish.useBabelfish = true;
programs.fish.shellInit = ''
set -g __nixos_path_original $PATH
function __nixos_path_fix -d "fix PATH value"
set -l result (string split ":" $__nixos_path_original)
for elt in $PATH
if not contains -- $elt $result
set -a result $elt
end
end
set -g PATH $result
end
__nixos_path_fix
'';
};
}

View File

@@ -0,0 +1,70 @@
{
config,
pkgs,
lib,
...
}:
let
inherit (config.nmasur.settings) username;
cfg = config.nmasur.presets.services.daily-summary;
# Remove process urls in favor of using extention
# process_urls = pkgs.writers.writePython3Bin "process-urls" {
# libraries = [
# pkgs.python3Packages.requests
# pkgs.python3Packages.beautifulsoup4
# ];
# } (builtins.readFile ./process-urls.py);
# prompt = "Based on my browser usage for today from the markdown file located in /Users/${username}/Downloads/Sidebery/todays_urls.md, create or update a daily summary markdown file in the generated notes directory located in /Users/${username}/dev/personal/notes/generated/ with the filename format 'YYYY-MM-DD Daily Summary.md'. The resulting markdown file should use /Users/${username}/dev/personal/notes/templates/generated-summary.md as a format template, and it should summarize where I have spent my time today and highlight any notable links that I have visited. Please create markdown links to other relevant notes in /Users/${username}/dev/personal/notes/. If there is an existing markdown file for today, update it to include the newest information.";
prompt = "Based on my browser usage for today from the JSON file located in /Users/${username}/Downloads/firefox-history/history-YYYY-MM-DD.json, create or update a daily summary markdown file in the generated notes directory located in /Users/${username}/dev/personal/notes/generated/ with the filename format 'YYYY-MM-DD Daily Summary.md'. The resulting markdown file should use /Users/${username}/dev/personal/notes/templates/generated-summary.md as a format template, and it should summarize where I have spent my time today and highlight any notable pages that I have visited, using the titles of each URL in the JSON file for markdown links. Please create markdown links to other relevant notes in /Users/${username}/dev/personal/notes/ and explain why they are being referenced. If there is an existing markdown file for today, update it to include the newest information.";
in
{
options.nmasur.presets.services.daily-summary.enable = lib.mkEnableOption "Daily work summary";
config = lib.mkIf cfg.enable {
launchd.user.agents.daily-summary = {
# This replaces program and args entirely
# script = ''
# ${process_urls}/bin/process-urls /Users/${username}/Downloads/Sidebery/
# GEMINI_API_KEY=$(cat /Users/${username}/.config/gemini/.gemini_api_key) ${pkgs.gemini-cli}/bin/gemini --allowed-tools all --yolo --include-directories /Users/${username}/Downloads/Sidebery/ --include-directories /Users/${username}/dev/personal/notes/ "${prompt}"
# '';
script = ''
GEMINI_API_KEY=$(cat /Users/${username}/.config/gemini/.gemini_api_key) ${pkgs.gemini-cli}/bin/gemini --allowed-tools all --yolo --include-directories /Users/${username}/Downloads/firefox-history/ --include-directories /Users/${username}/dev/personal/notes/ "${prompt}"
'';
path = [
pkgs.bash
pkgs.coreutils
];
serviceConfig = {
Label = "com.example.daily-summary";
# Runs the script through /bin/sh automatically
# RunAtLoad = true;
StartCalendarInterval = [
{
Hour = 4;
Minute = 45;
}
{
Hour = 6;
Minute = 0;
}
{
Hour = 9;
Minute = 0;
}
{
Hour = 11;
Minute = 0;
}
];
};
};
};
}

View File

@@ -0,0 +1,115 @@
# Temporarily disabled in favor of using an extension to save history
import requests
from bs4 import BeautifulSoup
import json
import os
import sys
from datetime import datetime
from urllib.parse import urlparse
def find_urls(data):
urls = []
if isinstance(data, dict):
for key, value in data.items():
if key == 'url' and isinstance(value, str):
urls.append(value)
else:
urls.extend(find_urls(value))
elif isinstance(data, list):
for item in data:
urls.extend(find_urls(item))
return urls
def main():
if len(sys.argv) > 1:
base_dir = sys.argv[1]
if not os.path.isdir(base_dir):
print(f"Error: Directory '{base_dir}' not found.")
sys.exit(1)
else:
base_dir = '.'
today = datetime.now().strftime('%Y.%m.%d')
output_filename = 'todays_urls.md'
output_filepath = os.path.join(base_dir, output_filename)
url_titles = {}
print(f"Searching for files in '{base_dir}' "
f"starting with 'snapshot-{today}-'")
with open(output_filepath, 'w') as md_file:
md_file.write(f'# URLs from Sidebery Snapshots for '
f'{today.replace(".", "-")}\n\n')
files_processed = 0
for filename in sorted(os.listdir(base_dir)):
# Debugging print removed
if (filename.startswith(f'snapshot-{today}-')
and filename.endswith('.json')):
files_processed += 1
print(f"Processing file: "
f"{os.path.join(base_dir, filename)}")
# Extract and format date and time from filename
# Example: snapshot-2026.01.25-13.19.29.json
clean_filename = (filename.replace('snapshot-', '')
.replace('.json', ''))
date_time_parts = clean_filename.split('-', 1)
formatted_date = date_time_parts[0].replace('.', '-')
formatted_time = date_time_parts[1].replace('.', ':')
datetime_str = f"{formatted_date} {formatted_time}"
md_file.write(f'## {datetime_str}\n\n')
with open(os.path.join(base_dir, filename), 'r') as json_file:
try:
data = json.load(json_file)
urls = find_urls(data)
print(f" Found {len(urls)} URLs")
for url in urls:
if url not in url_titles:
try:
# Get title of URL
res = requests.get(
url,
timeout=10,
allow_redirects=True
)
soup = BeautifulSoup(
res.text,
'html.parser'
)
if soup.title and soup.title.string:
title = soup.title.string.strip()
else:
domain = urlparse(url).netloc
title = domain if domain else url
url_titles[url] = title
except requests.exceptions.InvalidSchema:
continue
except Exception:
domain = urlparse(url).netloc
title = domain if domain else url
url_titles[url] = title
if url in url_titles:
title = url_titles[url]
md_file.write(f'- [{title}]({url})\n')
md_file.write('\n')
except json.JSONDecodeError:
print(f" Error decoding JSON in {filename}")
md_file.write('- Error decoding JSON\n\n')
if files_processed == 0:
print("No files found for today.")
print(f"Processing complete. Output written to {output_filepath}")
if __name__ == '__main__':
main()

View File

@@ -96,14 +96,14 @@ in
};
};
# Settings that don't have an option in nix-darwin
activationScripts.postActivation.text = ''
echo "Allow apps from anywhere"
SPCTL=$(spctl --status)
if ! [ "$SPCTL" = "assessments disabled" ]; then
sudo spctl --master-disable
fi
'';
# # Settings that don't have an option in nix-darwin
# activationScripts.postActivation.text = ''
# echo "Allow apps from anywhere"
# SPCTL=$(spctl --status)
# if ! [ "$SPCTL" = "assessments disabled" ]; then
# spctl --master-disable
# fi
# '';
};

View File

@@ -22,6 +22,7 @@ in
homebrew.enable = lib.mkDefault true;
};
services = {
daily-summary.enable = lib.mkDefault true;
dock.enable = lib.mkDefault true;
finder.enable = lib.mkDefault true;
hammerspoon.enable = lib.mkDefault true;

View File

@@ -125,7 +125,7 @@ in
services.cloudflare-dyndns.domains = [ hostnames.budget ];
# Backups
services.restic.backups.default.paths = [ "/var/lib/actual" ];
services.restic.backups.default.paths = [ "/var/lib/private/actual" ];
};

View File

@@ -29,7 +29,7 @@ in
caps
)
(defalias
escctrl (tap-hold-press 1000 1000 esc lctrl)
escctrl (tap-hold-press 200 200 esc lctrl)
)
(deflayer base
@escctrl

View File

@@ -0,0 +1,40 @@
{ config, lib, ... }:
let
inherit (config.nmasur.settings) hostnames;
cfg = config.nmasur.presets.services.mealie;
in
{
options.nmasur.presets.services.mealie.enable = lib.mkEnableOption "mealie recipe manager";
config = lib.mkIf cfg.enable {
services.mealie = {
enable = true;
port = 9099;
database.createLocally = true;
listenAddress = "127.0.0.1";
};
nmasur.presets.services.caddy.routes = [
{
match = [ { host = [ hostnames.recipes ]; } ];
handle = [
{
handler = "reverse_proxy";
upstreams = [ { dial = "localhost:${builtins.toString config.services.mealie.port}"; } ];
}
];
}
];
# Configure Cloudflare DNS to point to this machine
services.cloudflare-dyndns.domains = [ hostnames.recipes ];
# Point localhost to the local domain
networking.hosts."127.0.0.1" = [ hostnames.recipes ];
};
}

View File

@@ -2,7 +2,6 @@
# together with triggers.
{ config, lib, ... }:
let
inherit (config.nmasur.settings) hostnames;
cfg = config.nmasur.presets.services.n8n;
@@ -18,18 +17,14 @@ in
services.n8n = {
enable = true;
webhookUrl = "https://${hostnames.n8n}";
settings = {
listen_address = "127.0.0.1";
port = 5678;
environment = {
N8N_LISTEN_ADDRESS = "127.0.0.1";
N8N_PORT = 5678;
N8N_EDITOR_BASE_URL = "https://${hostnames.n8n}";
N8N_RESTRICT_FILE_ACCESS_TO = "/var/lib/n8n";
};
};
systemd.services.n8n.environment = {
N8N_EDITOR_BASE_URL = config.services.n8n.webhookUrl;
};
# Configure Cloudflare DNS to point to this machine
services.cloudflare-dyndns.domains = [ hostnames.n8n ];
@@ -40,7 +35,9 @@ in
handle = [
{
handler = "reverse_proxy";
upstreams = [ { dial = "localhost:${builtins.toString config.services.n8n.settings.port}"; } ];
upstreams = [
{ dial = "localhost:${toString config.services.n8n.environment.N8N_PORT}"; }
];
}
];
}

View File

@@ -17,7 +17,7 @@ in
services.nextcloud = {
enable = true;
package = pkgs.nextcloud31; # Required to specify
package = pkgs.nextcloud32; # Required to specify
configureRedis = true;
datadir = "/data/nextcloud";
database.createLocally = true;

View File

@@ -30,9 +30,10 @@ in
karakeep.enable = lib.mkDefault true;
litestream.enable = lib.mkDefault true;
mathesar.enable = lib.mkDefault true;
minecraft-server.enable = lib.mkDefault true;
mealie.enable = lib.mkDefault true;
minecraft-server.enable = lib.mkDefault false;
n8n.enable = lib.mkDefault true;
nix-autoupgrade.enable = lib.mkDefault false; # On by default for communications
nix-autoupgrade.enable = lib.mkDefault true; # On by default for communications
ntfy-sh.enable = lib.mkDefault true;
pgweb.enable = lib.mkDefault true;
postgresql.enable = lib.mkDefault true;

View File

@@ -44,7 +44,7 @@ in
enable = lib.mkDefault (!config.networking.networkmanager.enable);
# Allows the user to control the WiFi settings.
userControlled.enable = lib.mkDefault true;
userControlled = lib.mkDefault true;
};
# Wake up tempest with a command

View File

@@ -18,7 +18,7 @@
pkgs = import nixpkgs { inherit system; };
in
{
default = pkgs.mkShell { buildInputs = with pkgs; [ nixfmt-rfc-style ]; };
default = pkgs.mkShell { buildInputs = with pkgs; [ nixfmt ]; };
}
);
};