mirror of
https://github.com/nmasur/dotfiles
synced 2026-02-14 21:39:46 +00:00
Compare commits
53 Commits
caddy-clou
...
adbc2bd261
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
adbc2bd261 | ||
|
|
117fd8a06e | ||
|
|
d9fbdf7bfe | ||
|
|
2d13780d2e | ||
|
|
53a712a217 | ||
|
|
31d34c6540 | ||
|
|
a978e67346 | ||
|
|
a6915a6d2d | ||
|
|
44c4034236 | ||
|
|
a99c14a8c2 | ||
|
|
f1c8e26044 | ||
|
|
29cd253d9c | ||
|
|
603b9a2eff | ||
|
|
9c35744ab9 | ||
|
|
7d6b29c30b | ||
|
|
fd589b66ef | ||
|
|
853aa644fa | ||
|
|
b6e7221cc6 | ||
|
|
235901b3b0 | ||
|
|
7cd74986df | ||
|
|
a6e15b71cd | ||
|
|
2e4467b6ea | ||
|
|
431ebd732c | ||
|
|
2d576bd25d | ||
|
|
a1615eda67 | ||
|
|
444582a5a5 | ||
|
|
fbabdadb32 | ||
|
|
f8dfa2a817 | ||
|
|
e4a8ef15ce | ||
|
|
5c922310f5 | ||
|
|
2f274cd652 | ||
|
|
407e9c3af8 | ||
|
|
c13e029805 | ||
|
|
c56bc30200 | ||
|
|
6064fdb0e0 | ||
|
|
5cf27d6d66 | ||
|
|
ceca1ffd5a | ||
|
|
ebbc9c5a5d | ||
|
|
aea3e95ef5 | ||
|
|
d79c1ba7df | ||
|
|
422131134a | ||
|
|
5d8e10b814 | ||
|
|
fdd5eb6418 | ||
|
|
72c548e707 | ||
|
|
a57207dd5d | ||
|
|
94b4217be3 | ||
|
|
7619ac6ea2 | ||
|
|
7543721020 | ||
|
|
bf52069886 | ||
|
|
839ca079c2 | ||
|
|
85f09b1126 | ||
|
|
29c7a27135 | ||
|
|
3523f20665 |
302
flake.lock
generated
302
flake.lock
generated
@@ -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": 1767718503,
|
||||
"narHash": "sha256-V+VkFs0aSG0ca8p/N3gib7FAf4cq9jyr5Gm+ZBrHQpo=",
|
||||
"owner": "lnl7",
|
||||
"repo": "nix-darwin",
|
||||
"rev": "8df64f819698c1fee0c2969696f54a843b2231e8",
|
||||
"rev": "9f48ffaca1f44b3e590976b4da8666a9e86e6eb1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -43,11 +49,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1756115622,
|
||||
"narHash": "sha256-iv8xVtmLMNLWFcDM/HcAPLRGONyTRpzL9NS09RnryRM=",
|
||||
"lastModified": 1766150702,
|
||||
"narHash": "sha256-P0kM+5o+DKnB6raXgFEk3azw8Wqg5FL6wyl9jD+G5a4=",
|
||||
"owner": "nix-community",
|
||||
"repo": "disko",
|
||||
"rev": "bafad29f89e83b2d861b493aa23034ea16595560",
|
||||
"rev": "916506443ecd0d0b4a0f4cf9d40a3c22ce39b378",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -76,11 +82,11 @@
|
||||
"flake-compat_2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1747046372,
|
||||
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
||||
"lastModified": 1765121682,
|
||||
"narHash": "sha256-4VBOP18BFeiPkyhy9o4ssBNQEvfvv1kXkasAYd0+rrA=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
||||
"rev": "65f23138d8d09a92e30f1e5c87611b23ef451bf3",
|
||||
"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": 1768065415,
|
||||
"narHash": "sha256-GFwoRFzCP5vpT/tdO/Y6/799gb9OIAV9cOBPVM0Kq54=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "77a71380c38fb2a440b4b5881bbc839f6230e1cb",
|
||||
"rev": "d0aefc169fa9a0bd2b1239aeb98899c77d6da5b2",
|
||||
"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": 1764234087,
|
||||
"narHash": "sha256-NHF7QWa0ZPT8hsJrvijREW3+nifmF2rTXgS2v0tpcEA=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixos-generators",
|
||||
"rev": "032decf9db65efed428afd2fa39d80f7089085eb",
|
||||
"rev": "032a1878682fafe829edfcf5fdfad635a2efe748",
|
||||
"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": 1767892417,
|
||||
"narHash": "sha256-dhhvQY67aboBk8b0/u0XB6vwHdgbROZT3fJAjyNh5Ww=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "dfb2f12e899db4876308eba6d93455ab7da304cd",
|
||||
"rev": "3497aa5c9457a9d88d71fa93a4a8368816fbeeba",
|
||||
"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": 1768059548,
|
||||
"narHash": "sha256-NSMGzFQtoZxdxrQiShWjfJ5k2gzW+atxcr8MiywI1eI=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nur",
|
||||
"rev": "e82a8b0095f54edb6bbbb1d862f3da502dca1396",
|
||||
"rev": "a4f7c05a5f80044f9dcf3dfeb55a16b5a2713caf",
|
||||
"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": 1768012928,
|
||||
"narHash": "sha256-HFFVQaux1JoOjEvgBT0ASk1Je+jsipyO5c91FoLMed8=",
|
||||
"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": "312b4371e72f644ffcff25b23615195e3b390643",
|
||||
"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": 1765841014,
|
||||
"narHash": "sha256-55V0AJ36V5Egh4kMhWtDh117eE3GOjwq5LhwxDn9eHg=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NixOS-WSL",
|
||||
"rev": "203a7b463f307c60026136dd1191d9001c43457f",
|
||||
"rev": "be4af8042e7a61fa12fda58fe9a3b3babdefe17b",
|
||||
"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": {
|
||||
|
||||
21
flake.nix
21
flake.nix
@@ -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
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -4,7 +4,8 @@
|
||||
inputs: _final: prev: {
|
||||
# Provides `pkgs.stable`.
|
||||
stable = import inputs.nixpkgs-stable {
|
||||
inherit (prev) system config;
|
||||
system = prev.stdenv.hostPlatform.system;
|
||||
inherit (prev) config;
|
||||
overlays = [
|
||||
# inputs.self.overlays.vim-plugins
|
||||
];
|
||||
|
||||
@@ -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
|
||||
];
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -18,5 +18,5 @@
|
||||
}).withPlugins
|
||||
{
|
||||
plugins = [ "github.com/caddy-dns/cloudflare@v0.2.1" ];
|
||||
hash = "sha256-AcWko5513hO8I0lvbCLqVbM1eWegAhoM0J0qXoWL/vI=";
|
||||
hash = "sha256-Dvifm7rRwFfgXfcYvXcPDNlMaoxKd5h4mHEK6kJ+T4A=";
|
||||
}
|
||||
|
||||
@@ -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))"
|
||||
|
||||
@@ -5,7 +5,7 @@ pkgs.mkShell {
|
||||
buildInputs = with pkgs; [
|
||||
git
|
||||
stylua
|
||||
nixfmt-rfc-style
|
||||
nixfmt
|
||||
shfmt
|
||||
shellcheck
|
||||
];
|
||||
|
||||
@@ -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 ../../../../.}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -27,6 +27,7 @@ in
|
||||
rustfmt
|
||||
pkg-config
|
||||
openssl
|
||||
rust-analyzer
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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";
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
@@ -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 = {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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}";
|
||||
|
||||
@@ -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 = {
|
||||
|
||||
@@ -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 isn’t 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 file’s 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 = {
|
||||
@@ -454,6 +529,27 @@ in
|
||||
|
||||
};
|
||||
|
||||
# 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"$@" '')
|
||||
];
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -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
|
||||
];
|
||||
|
||||
};
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -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" ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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-----
|
||||
@@ -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" ];
|
||||
# };
|
||||
# };
|
||||
|
||||
};
|
||||
}
|
||||
@@ -16,6 +16,7 @@ in
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.zed-editor = {
|
||||
enable = true;
|
||||
package = pkgs.stable.zed-editor;
|
||||
|
||||
extensions = [
|
||||
"nix"
|
||||
|
||||
@@ -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=${config.home.homeDirectory}/.nix-profile/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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -19,6 +19,10 @@ in
|
||||
pkgs.pgcli # Postgres client with autocomplete
|
||||
];
|
||||
|
||||
nmasur.presets = {
|
||||
programs.cargo.enable = lib.mkDefault true;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
];
|
||||
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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
|
||||
# '';
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
40
platforms/nixos/modules/nmasur/presets/services/mealie.nix
Normal file
40
platforms/nixos/modules/nmasur/presets/services/mealie.nix
Normal 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 ];
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
@@ -2,7 +2,6 @@
|
||||
# together with triggers.
|
||||
|
||||
{ config, lib, ... }:
|
||||
|
||||
let
|
||||
inherit (config.nmasur.settings) hostnames;
|
||||
cfg = config.nmasur.presets.services.n8n;
|
||||
@@ -18,18 +17,13 @@ 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}";
|
||||
};
|
||||
};
|
||||
|
||||
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 +34,9 @@ in
|
||||
handle = [
|
||||
{
|
||||
handler = "reverse_proxy";
|
||||
upstreams = [ { dial = "localhost:${builtins.toString config.services.n8n.settings.port}"; } ];
|
||||
upstreams = [
|
||||
{ dial = "localhost:${builtins.toString config.services.n8n.environment.N8N_PORT}"; }
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 ]; };
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user