34 Commits

Author SHA1 Message Date
Noah Masur
68d8e60b7e try to statically set caddy to prevent cloudflare hash breaking 2025-10-11 13:27:44 -04:00
Noah Masur
774773c748 fix: ghostty keybinds invalid after update 2025-09-23 15:40:01 -04:00
Noah Masur
c85d292d1a comment out flake check for neovim to try to fix gh actions 2025-09-20 11:28:26 -04:00
Noah Masur
78cc3559f6 fix: renamed settings for logind 2025-09-20 11:27:55 -04:00
Noah Masur
a35e758c2f python language server 2025-09-20 09:57:20 -04:00
Noah Masur
72f30cbab1 add chawan web browser 2025-09-20 09:57:20 -04:00
Noah Masur
17b30de163 fix ghostty on darwin 2025-09-20 09:57:20 -04:00
Noah Masur
8b3ab57b34 enable stalwart-mail for contacts 2025-09-17 03:35:20 +00:00
Noah Masur
483833cdcb fix: must update stateversion to fix meilisearch out of date 2025-09-17 02:45:46 +00:00
Noah Masur
57e593aabc fix: only sync gitea repos to backups 2025-09-16 11:47:46 +00:00
Noah Masur
b119256ba6 update cloudflare caddy 2025-09-16 11:45:03 +00:00
Noah Masur
54948353dd enable paperless email processing to pdf 2025-09-16 11:44:56 +00:00
github-actions[bot]
9c4219da40 flake.lock: Update
Flake lock file updates:

• Updated input 'disko':
    'github:nix-community/disko/4073ff2f481f9ef3501678ff479ed81402caae6d' (2025-08-18)
  → 'github:nix-community/disko/bafad29f89e83b2d861b493aa23034ea16595560' (2025-08-25)
• Updated input 'helix':
    'github:helix-editor/helix/22a3b10dd8ab907367ae1fe57d9703e22b30d391' (2025-08-22)
  → 'github:helix-editor/helix/77ff51caa440b1066e0a1920007ab5e148dd4856' (2025-08-29)
• Updated input 'home-manager':
    'github:nix-community/home-manager/8b55a6ac58b678199e5bba701aaff69e2b3281c0' (2025-08-23)
  → 'github:nix-community/home-manager/77a71380c38fb2a440b4b5881bbc839f6230e1cb' (2025-08-29)
• Updated input 'mac-app-util':
    'github:hraban/mac-app-util/341ede93f290df7957047682482c298e47291b4d' (2025-03-16)
  → 'github:hraban/mac-app-util/8414fa1e2cb775b17793104a9095aabeeada63ef' (2025-08-24)
• Added input 'mac-app-util/treefmt-nix':
    'github:numtide/treefmt-nix/74e1a52d5bd9430312f8d1b8b0354c92c17453e5' (2025-08-23)
• Added input 'mac-app-util/treefmt-nix/nixpkgs':
    'github:nixos/nixpkgs/cab778239e705082fe97bb4990e0d24c50924c04' (2025-08-04)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/20075955deac2583bb12f07151c2df830ef346b4' (2025-08-19)
  → 'github:nixos/nixpkgs/dfb2f12e899db4876308eba6d93455ab7da304cd' (2025-08-28)
• Updated input 'nur':
    'github:nix-community/nur/1a47d83c521c098debd6d1f2c2ae313a5bb729f9' (2025-08-23)
  → 'github:nix-community/nur/e82a8b0095f54edb6bbbb1d862f3da502dca1396' (2025-08-30)
2025-08-30 03:54:09 +00:00
Noah Masur
ae3735586e fix: accidentally doubled cloudflare plugins 2025-08-24 18:47:10 -04:00
Noah Masur
cb00bb2e72 remove deprecated cargo package settings 2025-08-24 16:46:21 -04:00
github-actions[bot]
e64a9f14d0 flake.lock: Update
Flake lock file updates:

• Updated input 'darwin':
    'github:lnl7/nix-darwin/7220b01d679e93ede8d7b25d6f392855b81dd475' (2025-08-15)
  → 'github:lnl7/nix-darwin/8df64f819698c1fee0c2969696f54a843b2231e8' (2025-08-22)
• Updated input 'disko':
    'github:nix-community/disko/8246829f2e675a46919718f9a64b71afe3bfb22d' (2025-08-12)
  → 'github:nix-community/disko/4073ff2f481f9ef3501678ff479ed81402caae6d' (2025-08-18)
• Updated input 'helix':
    'github:helix-editor/helix/a4a2b50a50971bc43952f5f75d19a56689793a6a' (2025-08-15)
  → 'github:helix-editor/helix/22a3b10dd8ab907367ae1fe57d9703e22b30d391' (2025-08-22)
• Updated input 'home-manager':
    'github:nix-community/home-manager/2a749f4790a14f7168be67cdf6e548ef1c944e10' (2025-08-16)
  → 'github:nix-community/home-manager/8b55a6ac58b678199e5bba701aaff69e2b3281c0' (2025-08-23)
• Updated input 'nix2vim':
    'github:gytis-ivaskevicius/nix2vim/94f136cece965e33aa4ccccb4ca1af04772851f4' (2025-07-15)
  → 'github:gytis-ivaskevicius/nix2vim/78467c8de07719f92397179844bf75cdf2e58b83' (2025-08-16)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/fbcf476f790d8a217c3eab4e12033dc4a0f6d23c' (2025-08-14)
  → 'github:nixos/nixpkgs/20075955deac2583bb12f07151c2df830ef346b4' (2025-08-19)
• Updated input 'nur':
    'github:nix-community/nur/160c1c1c8737a0e2109b6181a191779ac2e42f7f' (2025-08-16)
  → 'github:nix-community/nur/1a47d83c521c098debd6d1f2c2ae313a5bb729f9' (2025-08-23)
2025-08-23 03:58:42 +00:00
Noah Masur
e2e179c0e5 Try to fix automatic timezone issues 2025-08-19 08:51:18 -04:00
Noah Masur
e975db7385 replace cloudflare caddy with exact commit 2025-08-17 20:23:22 -04:00
Noah Masur
08ec8ce4b8 reenable zellij by default in the shell 2025-08-17 20:23:17 -04:00
Noah Masur
7388eed876 disable swipe for back and forward in firefox 2025-08-17 20:04:49 -04:00
github-actions[bot]
e53d9eb1a9 flake.lock: Update
Flake lock file updates:

• Updated input 'darwin':
    'github:lnl7/nix-darwin/e04a388232d9a6ba56967ce5b53a8a6f713cdfcf' (2025-06-30)
  → 'github:lnl7/nix-darwin/7220b01d679e93ede8d7b25d6f392855b81dd475' (2025-08-15)
• Updated input 'disko':
    'github:nix-community/disko/545aba02960caa78a31bd9a8709a0ad4b6320a5c' (2025-07-21)
  → 'github:nix-community/disko/8246829f2e675a46919718f9a64b71afe3bfb22d' (2025-08-12)
• Updated input 'helix':
    'github:helix-editor/helix/18572973e6332101810169668894a99261bcd96b' (2025-08-08)
  → 'github:helix-editor/helix/a4a2b50a50971bc43952f5f75d19a56689793a6a' (2025-08-15)
• Updated input 'home-manager':
    'github:nix-community/home-manager/cc2fa2331aebf9661d22bb507d362b39852ac73f' (2025-08-08)
  → 'github:nix-community/home-manager/2a749f4790a14f7168be67cdf6e548ef1c944e10' (2025-08-16)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/c2ae88e026f9525daf89587f3cbee584b92b6134' (2025-08-06)
  → 'github:nixos/nixpkgs/fbcf476f790d8a217c3eab4e12033dc4a0f6d23c' (2025-08-14)
• Updated input 'nur':
    'github:nix-community/nur/5df63ce98cc60ec5de75ffd36366e284995351cc' (2025-08-09)
  → 'github:nix-community/nur/160c1c1c8737a0e2109b6181a191779ac2e42f7f' (2025-08-16)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/ca55236cd9ef3cdea29b51a0b52a9402c60e9a27' (2025-08-04)
  → 'github:nix-community/NixOS-WSL/203a7b463f307c60026136dd1191d9001c43457f' (2025-08-15)
2025-08-16 04:04:28 +00:00
github-actions[bot]
b956f9dd82 flake.lock: Update
Flake lock file updates:

• Updated input 'helix':
    'github:helix-editor/helix/758f80a4fc9da88ab835248b646468f033162019' (2025-07-31)
  → 'github:helix-editor/helix/18572973e6332101810169668894a99261bcd96b' (2025-08-08)
• Updated input 'home-manager':
    'github:nix-community/home-manager/e102920c1becb114645c6f92fe14edc0b05cc229' (2025-08-01)
  → 'github:nix-community/home-manager/cc2fa2331aebf9661d22bb507d362b39852ac73f' (2025-08-08)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/94def634a20494ee057c76998843c015909d6311' (2025-07-31)
  → 'github:nixos/nixpkgs/c2ae88e026f9525daf89587f3cbee584b92b6134' (2025-08-06)
• Updated input 'nur':
    'github:nix-community/nur/f10201b250cda809132a875a03e7b37faff9c0e6' (2025-08-02)
  → 'github:nix-community/nur/5df63ce98cc60ec5de75ffd36366e284995351cc' (2025-08-09)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/58c814cc6d4a789191f9c12e18277107144b0c91' (2025-07-28)
  → 'github:nix-community/NixOS-WSL/ca55236cd9ef3cdea29b51a0b52a9402c60e9a27' (2025-08-04)
2025-08-09 04:11:30 +00:00
github-actions[bot]
d7969cc8fc flake.lock: Update
Flake lock file updates:

• Updated input 'helix':
    'github:helix-editor/helix/4281228da35b02b0dcca3b4772b93d48d79ce046' (2025-07-24)
  → 'github:helix-editor/helix/758f80a4fc9da88ab835248b646468f033162019' (2025-07-31)
• Updated input 'home-manager':
    'github:nix-community/home-manager/a1817d1c0e5eabe7dfdfe4caa46c94d9d8f3fdb6' (2025-07-25)
  → 'github:nix-community/home-manager/e102920c1becb114645c6f92fe14edc0b05cc229' (2025-08-01)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/fc02ee70efb805d3b2865908a13ddd4474557ecf' (2025-07-23)
  → 'github:nixos/nixpkgs/94def634a20494ee057c76998843c015909d6311' (2025-07-31)
• Updated input 'nur':
    'github:nix-community/nur/dd7b97b8d11ebe7c7513d6c58e13104441862896' (2025-07-26)
  → 'github:nix-community/nur/f10201b250cda809132a875a03e7b37faff9c0e6' (2025-08-02)
• Updated input 'wsl':
    'github:nix-community/NixOS-WSL/a8dfcd2962f6e788759a75b36ca86b14aa44d8e5' (2025-07-25)
  → 'github:nix-community/NixOS-WSL/58c814cc6d4a789191f9c12e18277107144b0c91' (2025-07-28)
2025-08-02 04:16:19 +00:00
Noah Masur
21d66d2be1 adjust helix colors for the cursor theme
make it easier to see the matching parentheses and determine whether you are on the primary or matching side. also make the cursor more white and less yellow in general.
2025-07-30 15:57:26 -04:00
Noah Masur
518848181a fix git blame when there are spaces in the file name 2025-07-30 15:54:17 -04:00
Noah Masur
f9bf763f91 add shortcut to quit helix without saving 2025-07-29 21:48:29 -04:00
Noah Masur
ca20fa0732 improve commandline git blame in helix 2025-07-29 21:48:29 -04:00
Noah Masur
56d10c2765 make lazyjj basically fullscreen floating pane 2025-07-27 21:30:21 -04:00
Noah Masur
3b6b4bd2e6 update lazyjj to be a floating pane 2025-07-27 16:59:16 -04:00
Noah Masur
6f06b0a0c5 add lazyjj integration for zellij 2025-07-27 16:49:37 -04:00
Noah Masur
d3e69faf2f add quit shortcut for helix 2025-07-27 16:30:29 -04:00
Noah Masur
4755a27089 add zellij session toggle feature 2025-07-27 15:42:16 -04:00
Noah Masur
57303d61e9 add normal mode newline in helix 2025-07-27 12:56:15 -04:00
Noah Masur
b67c90dae0 add git blame inside helix 2025-07-27 10:19:52 -04:00
23 changed files with 258 additions and 96 deletions

97
flake.lock generated
View File

@@ -22,11 +22,11 @@
]
},
"locked": {
"lastModified": 1751313918,
"narHash": "sha256-HsJM3XLa43WpG+665aGEh8iS8AfEwOIQWk3Mke3e7nk=",
"lastModified": 1755825449,
"narHash": "sha256-XkiN4NM9Xdy59h69Pc+Vg4PxkSm9EWl6u7k6D5FZ5cM=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "e04a388232d9a6ba56967ce5b53a8a6f713cdfcf",
"rev": "8df64f819698c1fee0c2969696f54a843b2231e8",
"type": "github"
},
"original": {
@@ -43,11 +43,11 @@
]
},
"locked": {
"lastModified": 1753140376,
"narHash": "sha256-7lrVrE0jSvZHrxEzvnfHFE/Wkk9DDqb+mYCodI5uuB8=",
"lastModified": 1756115622,
"narHash": "sha256-iv8xVtmLMNLWFcDM/HcAPLRGONyTRpzL9NS09RnryRM=",
"owner": "nix-community",
"repo": "disko",
"rev": "545aba02960caa78a31bd9a8709a0ad4b6320a5c",
"rev": "bafad29f89e83b2d861b493aa23034ea16595560",
"type": "github"
},
"original": {
@@ -156,11 +156,11 @@
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1753376980,
"narHash": "sha256-h7Say1U7r1ke3mfg3yvbzYnk3izmJ2g1zXzX5APNA8Q=",
"lastModified": 1756477005,
"narHash": "sha256-e/FNNIT/LPuoruzRQZf5z5L5GApq1G2y2PShy+Lakhs=",
"owner": "helix-editor",
"repo": "helix",
"rev": "4281228da35b02b0dcca3b4772b93d48d79ce046",
"rev": "77ff51caa440b1066e0a1920007ab5e148dd4856",
"type": "github"
},
"original": {
@@ -176,11 +176,11 @@
]
},
"locked": {
"lastModified": 1753470191,
"narHash": "sha256-hOUWU5L62G9sm8NxdiLWlLIJZz9H52VuFiDllHdwmVA=",
"lastModified": 1756496801,
"narHash": "sha256-IYIsnPy+cJxe8RbDHBrCtfJY0ry2bG2H7WvMcewiGS8=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "a1817d1c0e5eabe7dfdfe4caa46c94d9d8f3fdb6",
"rev": "77a71380c38fb2a440b4b5881bbc839f6230e1cb",
"type": "github"
},
"original": {
@@ -198,14 +198,15 @@
"nixpkgs": [
"nixpkgs"
],
"systems": "systems"
"systems": "systems",
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1742156590,
"narHash": "sha256-aTM/2CrNN5utdVEQGsOA+kl4UozgH7VPLBQL5OXtBrg=",
"lastModified": 1756057867,
"narHash": "sha256-ziR5eQGqRWhW8tf8r0TIplaqNt+HXu1G1X41LUr4IYo=",
"owner": "hraban",
"repo": "mac-app-util",
"rev": "341ede93f290df7957047682482c298e47291b4d",
"rev": "8414fa1e2cb775b17793104a9095aabeeada63ef",
"type": "github"
},
"original": {
@@ -222,11 +223,11 @@
]
},
"locked": {
"lastModified": 1752588843,
"narHash": "sha256-T4vw0himO8ami5uR7cry+El9HlQkqNcy/UtIFwkcTMw=",
"lastModified": 1755344765,
"narHash": "sha256-k/Cvh/mzb5lSvilKdgwNBCyAyYmD8YPr1nc0sTSgwxI=",
"owner": "gytis-ivaskevicius",
"repo": "nix2vim",
"rev": "94f136cece965e33aa4ccccb4ca1af04772851f4",
"rev": "78467c8de07719f92397179844bf75cdf2e58b83",
"type": "github"
},
"original": {
@@ -273,16 +274,16 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1753250450,
"narHash": "sha256-i+CQV2rPmP8wHxj0aq4siYyohHwVlsh40kV89f3nw1s=",
"lastModified": 1754340878,
"narHash": "sha256-lgmUyVQL9tSnvvIvBp7x1euhkkCho7n3TMzgjdvgPoU=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "fc02ee70efb805d3b2865908a13ddd4474557ecf",
"rev": "cab778239e705082fe97bb4990e0d24c50924c04",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
@@ -304,6 +305,22 @@
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1756386758,
"narHash": "sha256-1wxxznpW2CKvI9VdniaUnTT2Os6rdRJcRUf65ZK9OtE=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "dfb2f12e899db4876308eba6d93455ab7da304cd",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1728538411,
"narHash": "sha256-f0SBJz1eZ2yOuKUr5CA9BHULGXVSn6miBuUWdTyhUhU=",
@@ -327,11 +344,11 @@
]
},
"locked": {
"lastModified": 1753502740,
"narHash": "sha256-g6D9WfAHVq9D76D1t9FahCtuBq+MfTo4dChFde0XosI=",
"lastModified": 1756524478,
"narHash": "sha256-2oSBlcYCgwrVxUZwM8MV6hBFsfsWFbeN5ErQiCA+38s=",
"owner": "nix-community",
"repo": "nur",
"rev": "dd7b97b8d11ebe7c7513d6c58e13104441862896",
"rev": "e82a8b0095f54edb6bbbb1d862f3da502dca1396",
"type": "github"
},
"original": {
@@ -349,7 +366,7 @@
"mac-app-util": "mac-app-util",
"nix2vim": "nix2vim",
"nixos-generators": "nixos-generators",
"nixpkgs": "nixpkgs",
"nixpkgs": "nixpkgs_2",
"nixpkgs-stable": "nixpkgs-stable",
"nur": "nur",
"wsl": "wsl",
@@ -380,7 +397,7 @@
},
"rust-overlay_2": {
"inputs": {
"nixpkgs": "nixpkgs_2"
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1736476219,
@@ -441,6 +458,24 @@
"type": "github"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1755934250,
"narHash": "sha256-CsDojnMgYsfshQw3t4zjRUkmMmUdZGthl16bXVWgRYU=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "74e1a52d5bd9430312f8d1b8b0354c92c17453e5",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"wsl": {
"inputs": {
"flake-compat": "flake-compat_2",
@@ -449,11 +484,11 @@
]
},
"locked": {
"lastModified": 1753450337,
"narHash": "sha256-l0QLEenVKuU6U2g1wI0zuf9IAm7QpisIbf8wAI6BUX4=",
"lastModified": 1755261305,
"narHash": "sha256-EOqCupB5X5WoGVHVcfOZcqy0SbKWNuY3kq+lj1wHdu8=",
"owner": "nix-community",
"repo": "NixOS-WSL",
"rev": "a8dfcd2962f6e788759a75b36ca86b14aa44d8e5",
"rev": "203a7b463f307c60026136dd1191d9001c43457f",
"type": "github"
},
"original": {

View File

@@ -114,6 +114,7 @@
bookmarks = "keep.${baseName}";
books = "books.${baseName}";
budget = "money.${baseName}";
contacts = "contacts.${baseName}";
content = "cloud.${baseName}";
download = "download.${baseName}";
files = "files.${baseName}";
@@ -246,30 +247,30 @@
default = lib.pkgsBySystem.${system}.nmasur.dotfiles-devshell;
});
checks = lib.forAllSystems (
system:
let
pkgs = import nixpkgs {
inherit system;
overlays = lib.overlays;
};
in
{
neovim =
pkgs.runCommand "neovim-check-health" { buildInputs = [ inputs.self.packages.${system}.neovim ]; }
''
mkdir -p $out
export HOME=$TMPDIR
nvim -c "checkhealth" -c "write $out/health.log" -c "quitall"
# checks = lib.forAllSystems (
# system:
# let
# pkgs = import nixpkgs {
# inherit system;
# overlays = lib.overlays;
# };
# in
# {
# neovim =
# pkgs.runCommand "neovim-check-health" { buildInputs = [ inputs.self.packages.${system}.neovim ]; }
# ''
# mkdir -p $out
# export HOME=$TMPDIR
# nvim -c "checkhealth" -c "write $out/health.log" -c "quitall"
# Check for errors inside the health log
if $(grep "ERROR" $out/health.log); then
cat $out/health.log
exit 1
fi
'';
}
);
# # Check for errors inside the health log
# if $(grep "ERROR" $out/health.log); then
# cat $out/health.log
# exit 1
# fi
# '';
# }
# );
formatter = lib.forAllSystems (
system:

View File

@@ -31,10 +31,10 @@ rec {
power-user.enable = true;
};
nmasur.presets.programs.helix.enable = true;
home.stateVersion = "23.05";
home.stateVersion = "25.05";
};
system.stateVersion = "23.05";
system.stateVersion = "25.05";
# File systems must be declared in order to boot
# # This is the root filesystem containing NixOS

View File

@@ -33,9 +33,6 @@ rec {
system.stateVersion = "23.05";
# Overrides
services.automatic-timezoned.enable = false;
# Not sure what's necessary but too afraid to remove anything
boot.initrd.availableKernelModules = [
"xhci_pci"

15
pkgs/caddy/package.nix Normal file
View File

@@ -0,0 +1,15 @@
# Caddy with Cloudflare DNS
{
pkgs,
...
}:
# Maintain a static version so that the plugin hash doesn't keep breaking
(pkgs.caddy.override {
version = "2.10.2";
}).withPlugins
{
plugins = [ "github.com/caddy-dns/cloudflare@v0.2.1" ];
hash = "sha256-AcWko5513hO8I0lvbCLqVbM1eWegAhoM0J0qXoWL/vI=";
}

View File

@@ -8,6 +8,5 @@ pkgs.rustPlatform.buildRustPackage {
rev = "50c40172e354caffee48932266edd7c7a76a20fd";
sha256 = "sha256-zVIt6Xp+Mvym6gySvHIZJt1QgzKVP/wbTGTubWk6kzI=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-lSeO/GaJPZ8zosOIJRXVIEuPXaBg1GBvKBIuXtu1xZg=";
}

View File

@@ -8,6 +8,5 @@ pkgs.rustPlatform.buildRustPackage {
rev = "2a24f95170aa14b5182b2287125664a62f8688ef";
sha256 = "sha256-gBxrbGCy6JEHnmgJmcm8sgtEvCAqra8/gPGsfCEfLqg=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-t4tfQaFq4EV4ZWeU+IestSFiSAIeVQslTZhLbpKVoO4=";
}

View File

@@ -74,6 +74,8 @@ in
"svg.context-properties.content.enabled" = true; # Sidebery styling
"browser.tabs.hoverPreview.enabled" = false; # Disable tab previews
"browser.tabs.hoverPreview.showThumbnails" = false; # Disable tab previews
"browser.gesture.swipe.left" = "cmd_scrollLeft"; # Disable swipe to go back
"browser.gesture.swipe.right" = "cmd_scrollRight"; # Disable swipe to go forward
};
userChrome = ''
:root {

View File

@@ -21,7 +21,7 @@ in
programs.ghostty = {
enable = true;
package = if pkgs.stdenv.isDarwin then pkgs.nur.repos.DimitarNestorov.ghostty else pkgs.ghostty;
package = if pkgs.stdenv.isDarwin then null else pkgs.ghostty;
enableFishIntegration = true;
enableBashIntegration = true;
@@ -37,8 +37,8 @@ in
fullscreen = if pkgs.stdenv.isDarwin then true else false;
keybind = [
"super+t=unbind" # Pass super-t to underlying tool (e.g. zellij tabs)
"super+shift+]=unbind"
"super+shift+[=unbind"
"super+shift+bracket_right=unbind"
"super+shift+bracket_left=unbind"
"ctrl+tab=unbind"
"ctrl+shift+tab=unbind"
"ctrl+tab=text:\\x1b[9;5u"

View File

@@ -46,6 +46,10 @@ in
command = "${pkgs.nixd}/bin/nixd";
};
language-server.ty = {
command = "${pkgs.ty}/bin/ty";
};
language-server.fish-lsp = {
command = "${pkgs.fish-lsp}/bin/fish-lsp";
};
@@ -59,7 +63,8 @@ in
};
language-server.terraform-ls = {
command = "${lib.getExe pkgs.terraform-ls} serve";
command = "${lib.getExe pkgs.terraform-ls}";
args = [ "serve" ];
};
language-server.bash-language-server = {
@@ -147,6 +152,10 @@ in
"keep_primary_selection"
];
# Quit shortcuts
space.q = ":quit-all";
space.x = ":quit-all!";
# Enable and disable inlay hints
space.H = ":toggle lsp.display-inlay-hints";
@@ -161,7 +170,7 @@ in
space.l = [
":write-all"
":new"
":insert-output ${lib.getExe pkgs.lazygit}"
":insert-output ${lib.getExe pkgs.lazygit} > /dev/tty"
":buffer-close!"
":redraw"
":reload-all"
@@ -169,6 +178,9 @@ in
":set mouse true"
];
# 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
@@ -196,13 +208,26 @@ in
"paste_before"
];
A-S-ret = [
"open_above"
"normal_mode"
];
A-ret = [
"open_below"
"normal_mode"
];
};
keys.insert = {
# Allows not continuing the comment
"A-ret" = [
"insert_newline"
"delete_word_backward"
"extend_to_line_bounds"
"delete_selection"
"insert_newline"
"move_line_up"
"insert_mode"
];
};
@@ -331,7 +356,7 @@ in
bg = config.theme.colors.base00;
};
"ui.cursor" = {
fg = config.theme.colors.base0A;
fg = config.theme.colors.base04;
modifiers = [ "reversed" ];
};
"ui.cursor.insert" = {
@@ -343,11 +368,11 @@ in
bg = config.theme.colors.base01;
};
"ui.cursor.match" = {
fg = config.theme.colors.base0A;
fg = config.theme.colors.base03;
modifiers = [ "reversed" ];
};
"ui.cursor.select" = {
fg = config.theme.colors.base0A;
fg = config.theme.colors.base04;
modifiers = [ "reversed" ];
};
"ui.gutter" = {

View File

@@ -7,6 +7,15 @@
let
cfg = config.nmasur.presets.programs.zellij;
zellij-switch-to-last = pkgs.writeShellScriptBin "zellij-switch-to-last" ''
TARGET_SESSION=$(cat ~/.local/state/zellij-last-session)
if [ -z "$TARGET_SESSION" ]; then
return 1
fi
echo "$ZELLIJ_SESSION_NAME" > ~/.local/state/zellij-last-session
zellij pipe --plugin file:$(which zellij-switch.wasm) -- "--session $TARGET_SESSION"
'';
in
{
@@ -31,6 +40,7 @@ in
if test "$TARGET_DIR" = $(pwd)
return 1
end
echo "$ZELLIJ_SESSION_NAME" > ~/.local/state/zellij-last-session
zellij pipe --plugin file:$(which zellij-switch.wasm) -- "--cwd $TARGET_DIR --layout default --session $(basename $TARGET_DIR)"
'';
};
@@ -69,13 +79,13 @@ in
programs.zellij = {
enable = true;
# Auto start on shell init
enableBashIntegration = true;
enableFishIntegration = true;
enableZshIntegration = true;
# Not yet available in unstable
# attachExistingSession = true;
# exitShellOnExit = true;
attachExistingSession = true;
exitShellOnExit = false;
settings = {
default_mode = "locked";
@@ -109,6 +119,14 @@ in
};
};
shared = {
"bind \"Alt Shift s\"" = {
Run = {
_args = [
(lib.getExe zellij-switch-to-last)
];
close_on_exit = true;
};
};
"bind \"Alt Shift p\"" = {
Run = {
_args = [
@@ -167,6 +185,19 @@ in
];
};
};
"bind \"Alt Shift j\"" = {
Run = {
_args = [
(lib.getExe pkgs.lazyjj)
];
close_on_exit = true;
floating = true;
x = "1%";
y = "1%";
width = "99%";
height = "99%";
};
};
"bind \"Super Shift ]\"" = {
GoToNextTab = { };
};
@@ -190,11 +221,6 @@ in
_args = [ "scroll" ];
};
};
"bind \"Alt k\"" = lib.mkIf pkgs.stdenv.isLinux {
SwitchToMode = {
_args = [ "scroll" ];
};
};
"bind \"Super Shift e\"" = lib.mkIf pkgs.stdenv.isDarwin {
EditScrollback = { };
SwitchToMode = {

View File

@@ -57,7 +57,7 @@ function obj:init()
self.launcher:bind("ctrl", "space", function() end)
self.launcher:bind("", "return", function()
-- self:switch("@wezterm@")
self:switch("@ghostty@")
self:switch("/Applications/Ghostty.app")
end)
self.launcher:bind("", "C", function()
self:switch("Calendar.app")

View File

@@ -23,7 +23,6 @@ in
{
discord = "${pkgs.discord}/Applications/Discord.app";
firefox = "${pkgs.firefox-unwrapped}/Applications/Firefox.app";
ghostty = "${config.programs.ghostty.package}/Applications/Ghostty.app";
obsidian = "${pkgs.obsidian}/Applications/Obsidian.app";
slack = "${pkgs.slack}/Applications/Slack.app";
wezterm = "${pkgs.wezterm}/Applications/WezTerm.app";

View File

@@ -29,6 +29,8 @@ in
pkgs.charm # Manage account and filesystem
pkgs.pop # Send emails from a TUI
pkgs.chawan # Browser TUI
];
programs.gh-dash.enable = lib.mkDefault true;

View File

@@ -6,7 +6,6 @@
}:
let
inherit (config.nmasur.settings) username;
cfg = config.nmasur.presets.services.dock;
in
@@ -50,7 +49,7 @@ in
"/System/Applications/Messages.app"
"/System/Applications/Mail.app"
"/Applications/zoom.us.app"
"${config.home-manager.users.${username}.programs.ghostty.package}/Applications/Ghostty.app"
"/Applications/Ghostty.app"
"${pkgs.discord}/Applications/Discord.app"
"${pkgs.obsidian}/Applications/Obsidian.app"
];

View File

@@ -39,6 +39,7 @@ in
"scroll-reverser" # Different scroll style for mouse vs. trackpad
"notunes" # Don't launch Apple Music with the play button
"topnotch" # Darkens the menu bar to complete black
"ghostty" # Terminal application (not buildable on Nix on macOS)
];
};

View File

@@ -66,10 +66,7 @@ in
nmasur.presets.services.caddy.cidrAllowlist = cloudflareIpRanges;
# Tell Caddy to use Cloudflare DNS for ACME challenge validation
services.caddy.package = pkgs.caddy.withPlugins {
plugins = [ "github.com/caddy-dns/cloudflare@v0.2.1" ];
hash = "sha256-2D7dnG50CwtCho+U+iHmSj2w14zllQXPjmTHr6lJZ/A=";
};
services.caddy.package = pkgs.nmasur.caddy;
nmasur.presets.services.caddy.tlsPolicies = [
{
issuers = [
@@ -159,12 +156,13 @@ in
requires = [ "cloudflare-api-secret.service" ];
script =
let
args =
[ "--cache-file /var/lib/cloudflare-dyndns/ip.cache" ]
++ (if config.services.cloudflare-dyndns.ipv4 then [ "-4" ] else [ "-no-4" ])
++ (if config.services.cloudflare-dyndns.ipv6 then [ "-6" ] else [ "-no-6" ])
++ lib.optional config.services.cloudflare-dyndns.deleteMissing "--delete-missing"
++ lib.optional config.services.cloudflare-dyndns.proxied "--proxied";
args = [
"--cache-file /var/lib/cloudflare-dyndns/ip.cache"
]
++ (if config.services.cloudflare-dyndns.ipv4 then [ "-4" ] else [ "-no-4" ])
++ (if config.services.cloudflare-dyndns.ipv6 then [ "-6" ] else [ "-no-6" ])
++ lib.optional config.services.cloudflare-dyndns.deleteMissing "--delete-missing"
++ lib.optional config.services.cloudflare-dyndns.proxied "--proxied";
in
lib.mkForce ''
export CLOUDFLARE_API_TOKEN=$(cat ''${CREDENTIALS_DIRECTORY}/apiToken)

View File

@@ -158,7 +158,7 @@ in
};
script = ''
${pkgs.awscli2}/bin/aws s3 sync --exclude */gitea.db* \
${giteaPath}/ \
${giteaPath}/repositories/ \
s3://${config.nmasur.presets.services.litestream.s3.bucket}/gitea-data/ \
--endpoint-url=https://${config.nmasur.presets.services.litestream.s3.endpoint}
'';

View File

@@ -10,8 +10,8 @@ in
config = lib.mkIf cfg.enable {
# Use power button to sleep instead of poweroff
services.logind.powerKey = "suspend";
services.logind.powerKeyLongPress = "poweroff";
services.logind.settings.Login.HandlePowerKey = "suspend";
services.logind.settings.Login.HandlePowerKeyLongPress = "poweroff";
};

View File

@@ -17,9 +17,11 @@ in
enable = true;
mediaDir = "/data/generic/paperless";
passwordFile = config.secrets.paperless.dest;
configureTika = true; # Enable processing of emails
settings = {
PAPERLESS_OCR_USER_ARGS = builtins.toJSON { invalidate_digital_signatures = true; };
PAPERLESS_URL = "https://${hostnames.paperless}";
PAPERLESS_DATE_ORDER = "MDY"; # Check document for US-formatted dates
# Enable if changing the path name in Caddy
# PAPERLESS_FORCE_SCRIPT_NAME = "/paperless";

View File

@@ -0,0 +1,56 @@
# Stalwart is a self-hosted email service, but in my case I want to use it as a
# vCard contacts database server and ignore the email component.
{ config, lib, ... }:
let
inherit (config.nmasur.settings) hostnames;
cfg = config.nmasur.presets.services.stalwart-mail;
in
{
options.nmasur.presets.services.stalwart-mail = {
enable = lib.mkEnableOption "Stalwart mail and contacts server";
port = lib.mkOption {
type = lib.types.port;
description = "Port to use for the localhost";
default = 7982;
};
};
config = lib.mkIf cfg.enable {
services.stalwart-mail = {
enable = true;
settings = {
server.listener.http = {
bind = [ "127.0.0.1:${builtins.toString cfg.port}" ];
protocol = "http";
};
authentication.fallback-admin = {
user = "admin";
secret = "$6$W/zXJP0xtZSUQqIe$DedCz9ncAn8mtfQVCg8Fzguuz.x8u1dfVU/d7wKyc6ujLuY4WCdtY0OeYwpv8huJfKAgBKE3go2MTrT99ID7I1";
};
};
};
# Configure Cloudflare DNS to point to this machine
services.cloudflare-dyndns.domains = [ hostnames.contacts ];
# Allow web traffic to Caddy
nmasur.presets.services.caddy.routes = [
{
match = [ { host = [ hostnames.contacts ]; } ];
handle = [
{
handler = "reverse_proxy";
upstreams = [
{ dial = "localhost:${builtins.toString cfg.port}"; }
];
}
];
}
];
};
}

View File

@@ -36,6 +36,7 @@ in
ntfy-sh.enable = lib.mkDefault true;
pgweb.enable = lib.mkDefault true;
postgresql.enable = lib.mkDefault true;
stalwart-mail.enable = lib.mkDefault true;
thelounge.enable = lib.mkDefault true;
uptime-kuma.enable = lib.mkDefault true;
vaultwarden.enable = lib.mkDefault true;

View File

@@ -24,6 +24,11 @@ in
# Enable automatic timezone updates based on location
services.automatic-timezoned.enable = lib.mkDefault true;
services.geoclue2 = {
# see: https://github.com/NixOS/nixpkgs/issues/68489#issuecomment-1484030107
enableDemoAgent = lib.mkForce true;
geoProviderUrl = "https://beacondb.net/v1/geolocate";
};
# Allow reading from Windows drives
boot.supportedFilesystems = [ "ntfs" ];