sept rice

This commit is contained in:
iofq 2025-08-03 10:38:37 -05:00
parent 89ab499605
commit 66ba28aaf3
12 changed files with 572 additions and 293 deletions

447
flake.lock generated
View file

@ -1,5 +1,21 @@
{ {
"nodes": { "nodes": {
"dart": {
"inputs": {
"flake-utils": "flake-utils_2",
"nixpkgs": "nixpkgs_5"
},
"locked": {
"lastModified": 1756785063,
"narHash": "sha256-1FFTyq3/evKrFi/0U/e5b93BxyYm5gcv7Hr3H9hd/HU=",
"path": "/home/e/dev/dart.nvim",
"type": "path"
},
"original": {
"path": "/home/e/dev/dart.nvim",
"type": "path"
}
},
"deploy-rs": { "deploy-rs": {
"inputs": { "inputs": {
"flake-compat": "flake-compat", "flake-compat": "flake-compat",
@ -9,10 +25,11 @@
"utils": "utils" "utils": "utils"
}, },
"locked": { "locked": {
"lastModified": 1749105467, "lastModified": 1756719547,
"narHash": "sha256-N9gBKUmjwRKPxAafXEk1EGadfk2qDZPBQp4vXWPHINQ=",
"owner": "serokell", "owner": "serokell",
"repo": "deploy-rs", "repo": "deploy-rs",
"rev": "6bc76b872374845ba9d645a2f012b764fecd765f", "rev": "125ae9e3ecf62fb2c0fd4f2d894eb971f1ecaed2",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -34,12 +51,12 @@
"nixpkgs": "nixpkgs_2" "nixpkgs": "nixpkgs_2"
}, },
"locked": { "locked": {
"lastModified": 1753068796, "lastModified": 1757033802,
"narHash": "sha256-jq04XAgT5Rci907wxd69trNwZixpnBLz5tH02h6JcoA=", "narHash": "sha256-BLUHtWWoHFR6UJJJwkmivSv7RTjo92wlT0Y7kbCd2MY=",
"rev": "9919bed0779086df2ce22a77f9406b7a347e340d", "rev": "e154f8433851f8f2509490f33680e3285d553df4",
"revCount": 261, "revCount": 301,
"type": "tarball", "type": "tarball",
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/determinate/3.8.4/01982b0e-46ed-709c-973b-7096ceb2a596/source.tar.gz" "url": "https://api.flakehub.com/f/pinned/DeterminateSystems/determinate/3.11.1/01991762-b4e5-7a3b-8bfc-5d0f1ed4965e/source.tar.gz"
}, },
"original": { "original": {
"type": "tarball", "type": "tarball",
@ -49,37 +66,37 @@
"determinate-nixd-aarch64-darwin": { "determinate-nixd-aarch64-darwin": {
"flake": false, "flake": false,
"locked": { "locked": {
"narHash": "sha256-tEhYb3OWFIPFvWa/orkyBMvS2joRRrqKHpK2cSd20hU=", "narHash": "sha256-Dym4kTLMTxAxNyZcrHRKRVMBINQPA7qgr+7dHozNrps=",
"type": "file", "type": "file",
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.8.4/macOS" "url": "https://install.determinate.systems/determinate-nixd/tag/v3.11.1/macOS"
}, },
"original": { "original": {
"type": "file", "type": "file",
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.8.4/macOS" "url": "https://install.determinate.systems/determinate-nixd/tag/v3.11.1/macOS"
} }
}, },
"determinate-nixd-aarch64-linux": { "determinate-nixd-aarch64-linux": {
"flake": false, "flake": false,
"locked": { "locked": {
"narHash": "sha256-BGDnwwbo30fdSAv26G2MFYKx2+qIQ8G40+muwKH9SPM=", "narHash": "sha256-eYVSpk+ly2YRSYvgT47ABmFRwG0DliNO/8ntBkoRmjI=",
"type": "file", "type": "file",
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.8.4/aarch64-linux" "url": "https://install.determinate.systems/determinate-nixd/tag/v3.11.1/aarch64-linux"
}, },
"original": { "original": {
"type": "file", "type": "file",
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.8.4/aarch64-linux" "url": "https://install.determinate.systems/determinate-nixd/tag/v3.11.1/aarch64-linux"
} }
}, },
"determinate-nixd-x86_64-linux": { "determinate-nixd-x86_64-linux": {
"flake": false, "flake": false,
"locked": { "locked": {
"narHash": "sha256-P4EJCgSsapE5tggKXiLUeS56PNciGLgonWAm7F1xf6E=", "narHash": "sha256-ZvRoKG/v0WS2XrDgkV+/hq3ARGokGisyelncKwlefvk=",
"type": "file", "type": "file",
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.8.4/x86_64-linux" "url": "https://install.determinate.systems/determinate-nixd/tag/v3.11.1/x86_64-linux"
}, },
"original": { "original": {
"type": "file", "type": "file",
"url": "https://install.determinate.systems/determinate-nixd/tag/v3.8.4/x86_64-linux" "url": "https://install.determinate.systems/determinate-nixd/tag/v3.11.1/x86_64-linux"
} }
}, },
"flake-compat": { "flake-compat": {
@ -133,11 +150,11 @@
"flake-compat_4": { "flake-compat_4": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1696426674, "lastModified": 1747046372,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
"owner": "edolstra", "owner": "edolstra",
"repo": "flake-compat", "repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -181,11 +198,11 @@
"flake-compat_7": { "flake-compat_7": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1696426674, "lastModified": 1747046372,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
"owner": "edolstra", "owner": "edolstra",
"repo": "flake-compat", "repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -197,11 +214,11 @@
"flake-compat_8": { "flake-compat_8": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1696426674, "lastModified": 1747046372,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
"owner": "edolstra", "owner": "edolstra",
"repo": "flake-compat", "repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -239,11 +256,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1753121425, "lastModified": 1756770412,
"narHash": "sha256-TVcTNvOeWWk1DXljFxVRp+E0tzG1LhrVjOGGoMHuXio=", "narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "644e0fc48951a860279da645ba77fe4a6e814c5e", "rev": "4524271976b625a4a605beefd893f270620fd751",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -261,11 +278,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1751413152, "lastModified": 1754487366,
"narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=", "narHash": "sha256-pHYj8gUBapuUzKV/kN/tR3Zvqc7o6gdFB9XKXIp1SQ8=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "77826244401ea9de6e3bac47c2db46005e1f30b5", "rev": "af66ad14b28a127c5c0f3bbb298218fc63528a18",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -300,11 +317,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1751413152, "lastModified": 1756770412,
"narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=", "narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "77826244401ea9de6e3bac47c2db46005e1f30b5", "rev": "4524271976b625a4a605beefd893f270620fd751",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -323,11 +340,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1751413152, "lastModified": 1754487366,
"narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=", "narHash": "sha256-pHYj8gUBapuUzKV/kN/tR3Zvqc7o6gdFB9XKXIp1SQ8=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "77826244401ea9de6e3bac47c2db46005e1f30b5", "rev": "af66ad14b28a127c5c0f3bbb298218fc63528a18",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -341,6 +358,42 @@
}, },
"locked": { "locked": {
"lastModified": 1731533236, "lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_2": {
"inputs": {
"systems": "systems_3"
},
"locked": {
"lastModified": 1731533236,
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_3": {
"inputs": {
"systems": "systems_4"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
@ -363,10 +416,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1724097937, "lastModified": 1755304025,
"narHash": "sha256-xVKfjFwc0zMbLMjLTiHz+0llggkjs93SmHkhaa9S3M4=",
"owner": "mrcjkb", "owner": "mrcjkb",
"repo": "nix-gen-luarc-json", "repo": "nix-gen-luarc-json",
"rev": "b36b69c4ded9f31b079523bc452e23458734cf00", "rev": "1865b0ebb753ae5324d7381b1fa8c98c04ec7509",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -385,11 +439,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1750779888, "lastModified": 1757239681,
"narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=", "narHash": "sha256-E9spYi9lxm2f1zWQLQ7xQt8Xs2nWgr1T4QM7ZjLFphM=",
"owner": "cachix", "owner": "cachix",
"repo": "git-hooks.nix", "repo": "git-hooks.nix",
"rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d", "rev": "ab82ab08d6bf74085bd328de2a8722c12d97bd9d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -460,11 +514,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1750779888, "lastModified": 1755960406,
"narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=", "narHash": "sha256-RF7j6C1TmSTK9tYWO6CdEMtg6XZaUKcvZwOCD2SICZs=",
"owner": "cachix", "owner": "cachix",
"repo": "git-hooks.nix", "repo": "git-hooks.nix",
"rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d", "rev": "e891a93b193fcaf2fc8012d890dc7f0befe86ec2",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -571,11 +625,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1752595130, "lastModified": 1755233722,
"narHash": "sha256-CNBgr4OZSuklGtNOa9CnTNo9+Xceqn/EDAC1Tc43fH8=", "narHash": "sha256-AavrbMltJKcC2Fx0lfJoZfmy7g87ebXU0ddVenhajLA=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "hercules-ci-effects", "repo": "hercules-ci-effects",
"rev": "5f2e09654b2e70ba643e41609d9f9b6640f22113", "rev": "99e03e72e3f7e13506f80ef9ebaedccb929d84d0",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -594,11 +648,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1752595130, "lastModified": 1755233722,
"narHash": "sha256-CNBgr4OZSuklGtNOa9CnTNo9+Xceqn/EDAC1Tc43fH8=", "narHash": "sha256-AavrbMltJKcC2Fx0lfJoZfmy7g87ebXU0ddVenhajLA=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "hercules-ci-effects", "repo": "hercules-ci-effects",
"rev": "5f2e09654b2e70ba643e41609d9f9b6640f22113", "rev": "99e03e72e3f7e13506f80ef9ebaedccb929d84d0",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -614,10 +668,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1753617834, "lastModified": 1757529548,
"narHash": "sha256-If5AT3dPXH0BM+q+pwyZvtWLTmlqJmGW6IDZ2MqlGRU=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "72cc1e3134a35005006f06640724319caa424737", "rev": "e0154ae41614e32a443c43ee51eee9eed3ad9a48",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -627,6 +682,28 @@
"type": "github" "type": "github"
} }
}, },
"jj": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": [
"nixpkgs"
],
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1757497639,
"narHash": "sha256-VPauACTdeoMi8DyyRbSBSbaWOmHuAl7D1jv49DC/Shk=",
"owner": "jj-vcs",
"repo": "jj",
"rev": "5f6f938a243385071ca2b22cf66b86f55efdcf43",
"type": "github"
},
"original": {
"owner": "jj-vcs",
"repo": "jj",
"type": "github"
}
},
"luvit-meta": { "luvit-meta": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -654,10 +731,11 @@
"treefmt-nix": "treefmt-nix" "treefmt-nix": "treefmt-nix"
}, },
"locked": { "locked": {
"lastModified": 1753637925, "lastModified": 1757549103,
"narHash": "sha256-g9yeQvHbdZhudGCm8tpLACcRIm+mGG6kqqwzCI1y4eY=",
"owner": "nix-community", "owner": "nix-community",
"repo": "neovim-nightly-overlay", "repo": "neovim-nightly-overlay",
"rev": "06556188ee8c7ddfbe7b39d652cf409d0f912705", "rev": "c6159f587252f3269c462d25db23b3432f53c410",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -673,14 +751,15 @@
"git-hooks": "git-hooks_3", "git-hooks": "git-hooks_3",
"hercules-ci-effects": "hercules-ci-effects_2", "hercules-ci-effects": "hercules-ci-effects_2",
"neovim-src": "neovim-src_2", "neovim-src": "neovim-src_2",
"nixpkgs": "nixpkgs_5", "nixpkgs": "nixpkgs_6",
"treefmt-nix": "treefmt-nix_2" "treefmt-nix": "treefmt-nix_2"
}, },
"locked": { "locked": {
"lastModified": 1753116172, "lastModified": 1756771594,
"narHash": "sha256-Ln3i7qWzBThCgsetcPgotG1TK7TCZPzPudwKzGKtmPc=",
"owner": "nix-community", "owner": "nix-community",
"repo": "neovim-nightly-overlay", "repo": "neovim-nightly-overlay",
"rev": "e63079523e06e0b7d8d766d40573409d2c5ecc9d", "rev": "68c0096bd5d0ff8b9c436cf5338f1fb24957d980",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -692,11 +771,11 @@
"neovim-src": { "neovim-src": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1753559931, "lastModified": 1757544943,
"narHash": "sha256-QIsckK2f4A1PG8hF3TboXYWrYEv3DtVtz+tTFs9V00w=", "narHash": "sha256-zcbqe73qpBAW6jHqObRXXXInVHf80EST3DbX1w3iBHg=",
"owner": "neovim", "owner": "neovim",
"repo": "neovim", "repo": "neovim",
"rev": "b4ba27c238ec342bcb01fa59ab1eaf6996a4c6ee", "rev": "9076fdc1238c4d9720efa89c72b44154be729a2c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -708,11 +787,11 @@
"neovim-src_2": { "neovim-src_2": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1753055671, "lastModified": 1756770793,
"narHash": "sha256-VHCJ/E+3iI5pH20rW+aqq830erPrAzTfOT8Wndax2pI=", "narHash": "sha256-qlgoWy70c9Qcr/jpru16XwSQlkq0tFbFOZcyfmQRPu4=",
"owner": "neovim", "owner": "neovim",
"repo": "neovim", "repo": "neovim",
"rev": "8ee82da3cfd228d50816aeb5f5db22175f5a4ede", "rev": "4f374bf938283b2d8c842bddb4583337aba0555d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -728,10 +807,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1753546142, "lastModified": 1757505144,
"narHash": "sha256-ZYlFuJO0gOeWGgClBfAI7quhfmpksQspoOp66gEhdPc=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nh", "repo": "nh",
"rev": "d9a869acec8dd35efa658234c158e6fc82e7064a", "rev": "a7d8a3ff279d52236632f8fab33017f74cc3a9dd",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -749,12 +829,12 @@
"nixpkgs-regression": "nixpkgs-regression" "nixpkgs-regression": "nixpkgs-regression"
}, },
"locked": { "locked": {
"lastModified": 1753066555, "lastModified": 1757029043,
"narHash": "sha256-/WmweOcc4DfQPfGkNxllsuEVgTwX3RVROOy3e/mAvr0=", "narHash": "sha256-/XtKs/hpYXJPeT3WppFVFZH1WvPDmeTt11hMWt/Bwas=",
"rev": "47281531ec83e22a1bb0249db5a6e4d0d854f0a5", "rev": "7143558a0989008c8e08cc27c3cb6a031f30b356",
"revCount": 21541, "revCount": 22309,
"type": "tarball", "type": "tarball",
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/nix-src/3.8.4/01982aff-6f3f-7bcc-85c8-b0d4e0cb35d8/source.tar.gz" "url": "https://api.flakehub.com/f/pinned/DeterminateSystems/nix-src/3.11.1/01991737-661d-7932-b7c9-d3a0499b4c3f/source.tar.gz"
}, },
"original": { "original": {
"type": "tarball", "type": "tarball",
@ -768,10 +848,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1753589988, "lastModified": 1757218147,
"narHash": "sha256-IwOwN70HvoBNB2ckaROxcaCvj5NudNc52taPsv5wtLk=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nix-index-database", "repo": "nix-index-database",
"rev": "f0736b09c43028fd726fb70c3eb3d1f0795454cf", "rev": "9b144dc3ef6e42b888c4190e02746aab13b0e97f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -782,10 +863,11 @@
}, },
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1753122741, "lastModified": 1757103352,
"narHash": "sha256-PtT7ix43ss8PONJ1VJw3f6t2yAoGH+q462Sn8lrmWmk=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "cc66fddc6cb04ab479a1bb062f4d4da27c936a22", "rev": "11b2a10c7be726321bb854403fdeec391e798bf0",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -796,16 +878,16 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1747179050, "lastModified": 1755922037,
"narHash": "sha256-qhFMmDkeJX9KJwr5H32f1r7Prs7XbQWtO0h3V0a0rFY=", "narHash": "sha256-wY1+2JPH0ZZC4BQefoZw/k+3+DowFyfOxv17CN/idKs=",
"rev": "adaa24fbf46737f3f1b5497bf64bae750f82942e", "rev": "b1b3291469652d5a2edb0becc4ef0246fff97a7c",
"revCount": 799423, "revCount": 808723,
"type": "tarball", "type": "tarball",
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.1.799423%2Brev-adaa24fbf46737f3f1b5497bf64bae750f82942e/0196d1c3-1974-7bf1-bcf6-06620ac40c8c/source.tar.gz" "url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2505.808723%2Brev-b1b3291469652d5a2edb0becc4ef0246fff97a7c/0198daf7-011a-7703-95d7-57146e794342/source.tar.gz"
}, },
"original": { "original": {
"type": "tarball", "type": "tarball",
"url": "https://flakehub.com/f/NixOS/nixpkgs/%3D0.1.799423" "url": "https://flakehub.com/f/NixOS/nixpkgs/0.2505"
} }
}, },
"nixpkgs-23-11": { "nixpkgs-23-11": {
@ -870,12 +952,12 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1752077645, "lastModified": 1756696532,
"narHash": "sha256-HM791ZQtXV93xtCY+ZxG1REzhQenSQO020cu6rHtAPk=", "narHash": "sha256-6FWagzm0b7I/IGigOv9pr6LL7NQ86mextfE8g8Q6HBg=",
"rev": "be9e214982e20b8310878ac2baa063a961c1bdf6", "rev": "58dcbf1ec551914c3756c267b8b9c8c86baa1b2f",
"revCount": 827262, "revCount": 854745,
"type": "tarball", "type": "tarball",
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/nixpkgs-weekly/0.1.827262%2Brev-be9e214982e20b8310878ac2baa063a961c1bdf6/01980c9a-3044-72c0-b718-a99e9076d3d6/source.tar.gz" "url": "https://api.flakehub.com/f/pinned/DeterminateSystems/nixpkgs-weekly/0.1.854745%2Brev-58dcbf1ec551914c3756c267b8b9c8c86baa1b2f/019908ed-e731-796e-b7c5-ea173f5d3b8d/source.tar.gz"
}, },
"original": { "original": {
"type": "tarball", "type": "tarball",
@ -884,11 +966,11 @@
}, },
"nixpkgs_3": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1753432016, "lastModified": 1757034884,
"narHash": "sha256-cnL5WWn/xkZoyH/03NNUS7QgW5vI7D1i74g48qplCvg=", "narHash": "sha256-PgLSZDBEWUHpfTRfFyklmiiLBE1i1aGCtz4eRA3POao=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "6027c30c8e9810896b92429f0092f624f7b1aace", "rev": "ca77296380960cd497a765102eeb1356eb80fed0",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -900,10 +982,11 @@
}, },
"nixpkgs_4": { "nixpkgs_4": {
"locked": { "locked": {
"lastModified": 1753429684, "lastModified": 1757347588,
"narHash": "sha256-tLdkkC6XnsY9EOZW9TlpesTclELy8W7lL2ClL+nma8o=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "7fd36ee82c0275fb545775cc5e4d30542899511d", "rev": "b599843bad24621dcaa5ab60dac98f9b0eb1cabe",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -915,11 +998,26 @@
}, },
"nixpkgs_5": { "nixpkgs_5": {
"locked": { "locked": {
"lastModified": 1752900028, "lastModified": 1755660401,
"narHash": "sha256-dPALCtmik9Wr14MGqVXm+OQcv7vhPBXcWNIOThGnB/Q=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "6b4955211758ba47fac850c040a27f23b9b4008f", "rev": "5788de501b965d7413f2beaac10aeeb56f9a19a8",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "master",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_6": {
"locked": {
"lastModified": 1756696532,
"narHash": "sha256-6FWagzm0b7I/IGigOv9pr6LL7NQ86mextfE8g8Q6HBg=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "58dcbf1ec551914c3756c267b8b9c8c86baa1b2f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -929,25 +1027,74 @@
"type": "github" "type": "github"
} }
}, },
"nvim": { "nixpkgs_7": {
"inputs": {
"flake-utils": "flake-utils",
"gen-luarc": "gen-luarc",
"neovim-nightly-overlay": "neovim-nightly-overlay_2",
"nixpkgs": [
"nixpkgs"
]
},
"locked": { "locked": {
"lastModified": 1753255826, "lastModified": 1756785263,
"owner": "iofq", "narHash": "sha256-EPOPPfDnxKZna6Qt1Pl2OsECN8SMLVw7QKeRntWJUa4=",
"repo": "nvim.nix", "owner": "NixOS",
"rev": "d7ae87e67182f5fdd00cc08b61efa3436abf9a7b", "repo": "nixpkgs",
"rev": "10bee29e15dab2dd3f406aebbdf79ea4af52ceeb",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "iofq", "owner": "NixOS",
"repo": "nvim.nix", "ref": "master",
"repo": "nixpkgs",
"type": "github"
}
},
"nvim": {
"inputs": {
"dart": "dart",
"flake-utils": "flake-utils_3",
"gen-luarc": "gen-luarc",
"neovim-nightly-overlay": "neovim-nightly-overlay_2",
"nixpkgs": "nixpkgs_7",
"nvim-treesitter": "nvim-treesitter",
"nvim-treesitter-textobjects": "nvim-treesitter-textobjects"
},
"locked": {
"lastModified": 1756787950,
"narHash": "sha256-QBC/2h8Da1yq3Cd9Erhgk7icwWouDcMAoBoDJVxB0sA=",
"path": "/home/e/dev/nvim.nix",
"type": "path"
},
"original": {
"path": "/home/e/dev/nvim.nix",
"type": "path"
}
},
"nvim-treesitter": {
"flake": false,
"locked": {
"lastModified": 1756620408,
"narHash": "sha256-UR9cj1pYXSZ5gYvY1tj+/8ZLsK2uzY2owxCOeqb08f4=",
"owner": "nvim-treesitter",
"repo": "nvim-treesitter",
"rev": "802195d8f1980db25a7a39a55f9a25df21756c73",
"type": "github"
},
"original": {
"owner": "nvim-treesitter",
"ref": "main",
"repo": "nvim-treesitter",
"type": "github"
}
},
"nvim-treesitter-textobjects": {
"flake": false,
"locked": {
"lastModified": 1756368113,
"narHash": "sha256-+KmOpRi4JAqm6UqYdtk80jwFrJhLCs0lZM/Liofq0R4=",
"owner": "nvim-treesitter",
"repo": "nvim-treesitter-textobjects",
"rev": "1b2d85d3de6114c4bcea89ffb2cd1ce9e3a19931",
"type": "github"
},
"original": {
"owner": "nvim-treesitter",
"ref": "main",
"repo": "nvim-treesitter-textobjects",
"type": "github" "type": "github"
} }
}, },
@ -960,10 +1107,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1750779888, "lastModified": 1757239681,
"narHash": "sha256-E9spYi9lxm2f1zWQLQ7xQt8Xs2nWgr1T4QM7ZjLFphM=",
"owner": "cachix", "owner": "cachix",
"repo": "pre-commit-hooks.nix", "repo": "pre-commit-hooks.nix",
"rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d", "rev": "ab82ab08d6bf74085bd328de2a8722c12d97bd9d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -977,6 +1125,7 @@
"deploy-rs": "deploy-rs", "deploy-rs": "deploy-rs",
"determinate": "determinate", "determinate": "determinate",
"home-manager": "home-manager", "home-manager": "home-manager",
"jj": "jj",
"neovim-nightly-overlay": "neovim-nightly-overlay", "neovim-nightly-overlay": "neovim-nightly-overlay",
"nh": "nh", "nh": "nh",
"nix-index-database": "nix-index-database", "nix-index-database": "nix-index-database",
@ -985,10 +1134,31 @@
"nvim": "nvim", "nvim": "nvim",
"pre-commit-hooks": "pre-commit-hooks", "pre-commit-hooks": "pre-commit-hooks",
"sops-nix": "sops-nix", "sops-nix": "sops-nix",
"systems": "systems_3", "systems": "systems_5",
"treefmt-nix": "treefmt-nix_3" "treefmt-nix": "treefmt-nix_3"
} }
}, },
"rust-overlay": {
"inputs": {
"nixpkgs": [
"jj",
"nixpkgs"
]
},
"locked": {
"lastModified": 1755139244,
"narHash": "sha256-SN1BFA00m+siVAQiGLtTwjv9LV9TH5n8tQcSziV6Nv4=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "aeae248beb2a419e39d483dd9b7fec924aba8d4d",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"sops-nix": { "sops-nix": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -996,10 +1166,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1752544651, "lastModified": 1757503115,
"narHash": "sha256-S9F6bHUBh+CFEUalv/qxNImRapCxvSnOzWBUZgK1zDU=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "2c8def626f54708a9c38a5861866660395bb3461", "rev": "0bf793823386187dff101ee2a9d4ed26de8bbf8c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1041,6 +1212,37 @@
"systems_3": { "systems_3": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"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"
}
},
"systems_5": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems", "owner": "nix-systems",
"repo": "default", "repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
@ -1059,11 +1261,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1753439394, "lastModified": 1756662192,
"narHash": "sha256-Bv9h1AJegLI8uAhiJ1sZ4XAndYxhgf38tMgCQwiEpmc=", "narHash": "sha256-F1oFfV51AE259I85av+MAia221XwMHCOtZCMcZLK2Jk=",
"owner": "numtide", "owner": "numtide",
"repo": "treefmt-nix", "repo": "treefmt-nix",
"rev": "2673921c03d6e75fdf4aa93e025772608d1482cf", "rev": "1aabc6c05ccbcbf4a635fb7a90400e44282f61c4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1081,11 +1283,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1753006367, "lastModified": 1756662192,
"narHash": "sha256-tzbhc4XttkyEhswByk5R38l+ztN9UDbnj0cTcP6Hp9A=", "narHash": "sha256-F1oFfV51AE259I85av+MAia221XwMHCOtZCMcZLK2Jk=",
"owner": "numtide", "owner": "numtide",
"repo": "treefmt-nix", "repo": "treefmt-nix",
"rev": "421b56313c65a0815a52b424777f55acf0b56ddf", "rev": "1aabc6c05ccbcbf4a635fb7a90400e44282f61c4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1101,10 +1303,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1753439394, "lastModified": 1756662192,
"narHash": "sha256-F1oFfV51AE259I85av+MAia221XwMHCOtZCMcZLK2Jk=",
"owner": "numtide", "owner": "numtide",
"repo": "treefmt-nix", "repo": "treefmt-nix",
"rev": "2673921c03d6e75fdf4aa93e025772608d1482cf", "rev": "1aabc6c05ccbcbf4a635fb7a90400e44282f61c4",
"type": "github" "type": "github"
}, },
"original": { "original": {

129
flake.nix
View file

@ -23,9 +23,11 @@
url = "github:nix-community/home-manager/master"; url = "github:nix-community/home-manager/master";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
# nvim = {
# url = "github:iofq/nvim.nix";
# };
nvim = { nvim = {
url = "github:iofq/nvim.nix"; url = "path:/home/e/dev/nvim.nix";
inputs.nixpkgs.follows = "nixpkgs";
}; };
deploy-rs = { deploy-rs = {
url = "github:serokell/deploy-rs"; url = "github:serokell/deploy-rs";
@ -35,65 +37,82 @@
url = "github:nix-community/nh"; url = "github:nix-community/nh";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
jj = {
url = "github:jj-vcs/jj";
inputs.nixpkgs.follows = "nixpkgs";
};
neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay"; neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay";
determinate.url = "https://flakehub.com/f/DeterminateSystems/determinate/*"; determinate.url = "https://flakehub.com/f/DeterminateSystems/determinate/*";
}; };
outputs = { outputs =
self, {
nixpkgs, self,
systems, nixpkgs,
... systems,
} @ inputs: let ...
attrs = { }@inputs:
username = "e"; let
}; attrs = {
system = "x86_64-linux"; username = "e";
pkgs = import nixpkgs { };
inherit system; system = "x86_64-linux";
config.allowUnfree = true; pkgs = import nixpkgs {
overlays = [ inherit system;
inputs.neovim-nightly-overlay.overlays.default config.allowUnfree = true;
inputs.nvim.overlays.default overlays = [
inputs.nh.overlays.default inputs.neovim-nightly-overlay.overlays.default
]; inputs.nvim.overlays.default
}; inputs.nh.overlays.default
eachSystem = f: nixpkgs.lib.genAttrs (import systems) (system: f nixpkgs.legacyPackages.${system}); (old: new: {
treefmtEval = eachSystem (pkgs: inputs.treefmt-nix.lib.evalModule pkgs ./treefmt.nix); jujutsu = inputs.jj.packages.${system}.jujutsu;
in { })
nixosConfigurations = import ./nixos {inherit inputs pkgs attrs system;}; ];
homeConfigurations = import ./home-manager {inherit inputs pkgs attrs;}; };
checks = { eachSystem = f: nixpkgs.lib.genAttrs (import systems) (system: f nixpkgs.legacyPackages.${system});
pre-commit-check = inputs.pre-commit-hooks.lib.${system}.run { treefmtEval = eachSystem (pkgs: inputs.treefmt-nix.lib.evalModule pkgs ./treefmt.nix);
src = inputs.self; in
hooks = { {
treefmt.enable = true; nixosConfigurations = import ./nixos {
treefmt.package = treefmtEval.${system}.config.build.wrapper; inherit
inputs
pkgs
attrs
system
;
};
homeConfigurations = import ./home-manager { inherit inputs pkgs attrs; };
checks = {
pre-commit-check = inputs.pre-commit-hooks.lib.${system}.run {
src = inputs.self;
hooks = {
treefmt.enable = true;
treefmt.package = treefmtEval.${system}.config.build.wrapper;
};
}; };
}; };
}; deploy.nodes = {
deploy.nodes = { consensus = {
consensus = { hostname = "consensus";
hostname = "consensus"; sshUser = "e";
sshUser = "root"; remoteBuild = true;
remoteBuild = true; profiles.system = {
profiles.system = { user = "root";
user = "root"; path = inputs.deploy-rs.lib.${system}.activate.nixos self.nixosConfigurations.consensus;
path = inputs.deploy-rs.lib.${system}.activate.nixos self.nixosConfigurations.consensus; };
}; };
}; };
formatter = eachSystem (pkgs: treefmtEval.${pkgs.system}.config.build.wrapper);
devShells.${system}.default = pkgs.mkShell {
inherit (self.checks.pre-commit-check) shellHook;
buildInputs = [
pkgs.home-manager
pkgs.git
pkgs.ssh-to-age
pkgs.sops
pkgs.age
pkgs.deploy-rs
treefmtEval.${system}.config.build.wrapper
];
};
}; };
formatter = eachSystem (pkgs: treefmtEval.${pkgs.system}.config.build.wrapper);
devShells.${system}.default = pkgs.mkShell {
inherit (self.checks.pre-commit-check) shellHook;
buildInputs = [
pkgs.home-manager
pkgs.git
pkgs.ssh-to-age
pkgs.sops
pkgs.age
pkgs.deploy-rs
treefmtEval.${system}.config.build.wrapper
];
};
};
} }

View file

@ -93,7 +93,7 @@
services.gpg-agent = { services.gpg-agent = {
enable = true; enable = true;
enableSshSupport = true; enableSshSupport = true;
pinentry.package = pkgs.pinentry-curses; pinentry.package = pkgs.pinentry-rofi;
extraConfig = '' extraConfig = ''
allow-loopback-pinentry allow-loopback-pinentry
''; '';

View file

@ -1,4 +1,4 @@
{ pkgs, ... }: { pkgs, config, ... }:
{ {
programs.git = { programs.git = {
enable = true; enable = true;
@ -77,6 +77,24 @@
git -C "$right" clean -q -df # remove untracked files git -C "$right" clean -q -df # remove untracked files
'' ''
]; ];
diff-args = [
"-c"
''
set -eu
rm -f "$right/JJ-INSTRUCTIONS"
git -C "$left" init -q
git -C "$left" add -A
git -C "$left" commit -q -m baseline --allow-empty
mv "$left/.git" "$right"
git -C "$right" add --intent-to-add -A
(cd "$right"; nvim -c "lua vim.g.snacks_indent=false" -c "lua require('lazy').load({plugins = {'diffview.nvim'}})" -c DiffviewOpen)
git -C "$right" diff-index --quiet --cached HEAD && { echo "No changes done, aborting split."; exit 1; }
git -C "$right" commit -q -m split
git -C "$right" restore . # undo changes in modified files
git -C "$right" reset . # undo --intent-to-add
git -C "$right" clean -q -df # remove untracked files
''
];
}; };
snapshot = { snapshot = {
max-new-file-size = "10MiB"; max-new-file-size = "10MiB";

View file

@ -1,6 +1,8 @@
{config, ...}: { { config, pkgs, ... }:
{
programs.tmux = { programs.tmux = {
enable = true; enable = true;
terminal = "xterm-256color";
keyMode = "vi"; keyMode = "vi";
mouse = true; mouse = true;
newSession = true; newSession = true;
@ -11,10 +13,13 @@
customPaneNavigationAndResize = true; customPaneNavigationAndResize = true;
extraConfig = '' extraConfig = ''
bind-key -T copy-mode-vi 'v' send -X begin-selection bind-key -T copy-mode-vi 'v' send -X begin-selection
bind-key -T copy-mode-vi 'y' send-keys -X copy-pipe-and-cancel 'xclip -sel clip -i' bind-key -T copy-mode-vi 'y' send-keys -X copy-pipe-and-cancel '${pkgs.wl-clipboard}/bin/wl-copy'
set -g status-right "" set -g status-right ""
setw -g status-style 'bg=colour0 fg=colour7' setw -g status-style 'bg=terminal fg=colour7'
setw -g window-status-current-format '[#P:#W*] ' setw -g window-status-current-format '[#P:#W*] '
set-option -g history-limit 50000
bind-key C-a last-window
bind-key C-s run-shell 'export tmpfile=$(mktemp) && tmux capture-pane -pS -32768 > "$tmpfile" && tmux new-window "nvim $tmpfile"'
''; '';
}; };

View file

@ -1,11 +1,12 @@
{pkgs, ...}: { { pkgs, ... }:
{
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
enable = true; enable = true;
systemd.enable = true; systemd.enable = true;
extraConfig = '' extraConfig = ''
monitor=,preferred,auto,1 monitor=,preferred,auto,1
''; '';
plugins = [pkgs.hyprlandPlugins.hyprexpo]; plugins = [ pkgs.hyprlandPlugins.hyprexpo ];
settings = { settings = {
"$mod" = "SUPER"; "$mod" = "SUPER";
general = { general = {
@ -49,6 +50,7 @@
accel_profile = "flat"; accel_profile = "flat";
sensitivity = 0.4; sensitivity = 0.4;
touchpad = { touchpad = {
disable_while_typing = true;
natural_scroll = true; natural_scroll = true;
tap_button_map = "lrm"; tap_button_map = "lrm";
middle_button_emulation = false; middle_button_emulation = false;
@ -68,65 +70,68 @@
"$mod ALT, j, resizeactive, 0 50" "$mod ALT, j, resizeactive, 0 50"
"$mod ALT, k, resizeactive, 0 -50" "$mod ALT, k, resizeactive, 0 -50"
]; ];
bind = bind = [
[ "$mod, a, hyprexpo:expo, toggle"
"$mod, a, hyprexpo:expo, toggle" "$mod, Return, exec, alacritty"
"$mod, Return, exec, alacritty" "$mod, x, killactive"
"$mod, x, killactive" "$mod, f, fullscreen"
"$mod, f, fullscreen" "$mod SHIFT, Escape, exit"
"$mod SHIFT, Escape, exit" "$mod SHIFT, f, fullscreenstate, 0 3"
"$mod SHIFT, f, fullscreenstate, 0 3" "$mod, Space, exec, ${pkgs.wofi}/bin/wofi --show run"
"$mod, Space, exec, ${pkgs.wofi}/bin/wofi --show run" "$mod, Escape, exec, ${pkgs.wlogout}/bin/wlogout"
"$mod, Escape, exec, ${pkgs.wlogout}/bin/wlogout" "$mod, t, togglefloating"
"$mod, t, togglefloating" "$mod, g, togglegroup"
"$mod, g, togglegroup" "$mod, b, exec, pkill -SIGUSR1 waybar"
"$mod, b, exec, pkill -SIGUSR1 waybar" "$mod, bracketleft, exec, grimshot --notify save area /tmp/scrot-$(date \"+%Y-%m-%d\"T\"%H:%M:%S\").png"
"$mod, bracketleft, exec, grimshot --notify save area /tmp/scrot-$(date \"+%Y-%m-%d\"T\"%H:%M:%S\").png" "$mod, bracketright, exec, grimshot --notify copy area"
"$mod, bracketright, exec, grimshot --notify copy area" "$mod SHIFT, q, exec, swaylock"
"$mod SHIFT, q, exec, swaylock" ",XF86MonBrightnessDown, exec, light -U 10"
",XF86MonBrightnessDown, exec, light -U 10" ",XF86MonBrightnessUp, exec, light -A 10"
",XF86MonBrightnessUp, exec, light -A 10" ",XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +1%"
",XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +1%" ",XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -1%"
",XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -1%" ",XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle"
",XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle"
## Movement ## Movement
"$mod, m, layoutmsg, swapwithmaster" "$mod, m, layoutmsg, swapwithmaster"
"$mod, e, layoutmsg, orientationnext" "$mod, e, layoutmsg, orientationnext"
"$mod, i, layoutmsg, addmaster" "$mod, i, layoutmsg, addmaster"
"$mod, d, layoutmsg, removemaster" "$mod, d, layoutmsg, removemaster"
"$mod, h, movefocus, l" "$mod, h, movefocus, l"
"$mod, l, movefocus, r" "$mod, l, movefocus, r"
"$mod, k, movefocus, u" "$mod, k, movefocus, u"
"$mod, j, movefocus, d" "$mod, j, movefocus, d"
"$mod, n, changegroupactive, f" "$mod, n, changegroupactive, f"
"$mod, p, changegroupactive, b" "$mod, p, changegroupactive, b"
"$mod SHIFT, h, movewindoworgroup, l" "$mod SHIFT, h, movewindoworgroup, l"
"$mod SHIFT, l, movewindoworgroup, r" "$mod SHIFT, l, movewindoworgroup, r"
"$mod SHIFT, k, movewindoworgroup, u" "$mod SHIFT, k, movewindoworgroup, u"
"$mod SHIFT, j, movewindoworgroup, d" "$mod SHIFT, j, movewindoworgroup, d"
"$mod, COMMA, focusmonitor, l" "$mod, COMMA, focusmonitor, l"
"$mod, PERIOD, focusmonitor, r" "$mod, PERIOD, focusmonitor, r"
"$mod SHIFT, COMMA, movewindow, mon:l" "$mod SHIFT, COMMA, movewindow, mon:l"
"$mod SHIFT, PERIOD, movewindow, mon:r" "$mod SHIFT, PERIOD, movewindow, mon:r"
"$mod, s, togglespecialworkspace" "$mod, s, togglespecialworkspace"
] ]
++ ( ++ (
# workspaces # workspaces
# binds $mod + [shift +] {1..10} to [move to] workspace {1..10} # binds $mod + [shift +] {1..10} to [move to] workspace {1..10}
builtins.concatLists (builtins.genList ( builtins.concatLists (
x: let builtins.genList (
ws = let x:
let
ws =
let
c = (x + 1) / 10; c = (x + 1) / 10;
in in
builtins.toString (x + 1 - (c * 10)); builtins.toString (x + 1 - (c * 10));
in [ in
"$mod, ${ws}, focusworkspaceoncurrentmonitor, ${toString (x + 1)}" [
"$mod SHIFT, ${ws}, movetoworkspacesilent, ${toString (x + 1)}" "$mod, ${ws}, focusworkspaceoncurrentmonitor, ${toString (x + 1)}"
] "$mod SHIFT, ${ws}, movetoworkspacesilent, ${toString (x + 1)}"
) ]
10) ) 10
); )
);
windowrulev2 = [ windowrulev2 = [
"workspace 9, class:^(Discord|discord)$" "workspace 9, class:^(Discord|discord)$"
"workspace 9, class:^(Signal|signal)$" "workspace 9, class:^(Signal|signal)$"
@ -153,7 +158,7 @@
services.hyprpaper = { services.hyprpaper = {
enable = true; enable = true;
settings = { settings = {
preload = ["/home/pape"]; preload = [ "/home/pape" ];
wallpaper = ",/home/pape"; wallpaper = ",/home/pape";
ipc = "off"; ipc = "off";
splash = false; splash = false;

View file

@ -2,7 +2,8 @@
pkgs, pkgs,
lib, lib,
... ...
}: { }:
{
imports = [ imports = [
../shared/programs/default.nix ../shared/programs/default.nix
../shared/wayland/default.nix ../shared/wayland/default.nix
@ -42,6 +43,7 @@
programs.librewolf.enable = true; programs.librewolf.enable = true;
programs.ssh = { programs.ssh = {
enable = true; enable = true;
enableDefaultConfig = false;
matchBlocks = { matchBlocks = {
"consensus" = { "consensus" = {
port = 2022; port = 2022;

View file

@ -1,10 +1,11 @@
{config, ...}: { { config, ... }:
{
sops = { sops = {
defaultSopsFile = ../../secrets/restic.yaml; defaultSopsFile = ../../secrets/restic.yaml;
secrets = { secrets = {
"b2-immich/env" = {}; "b2-immich/env" = { };
"b2-immich/repo" = {}; "b2-immich/repo" = { };
"b2-immich/password" = {}; "b2-immich/password" = { };
}; };
}; };
services.restic.backups = { services.restic.backups = {
@ -15,7 +16,7 @@
passwordFile = config.sops.secrets."b2-immich/password".path; passwordFile = config.sops.secrets."b2-immich/password".path;
paths = [ paths = [
"/rice/immich" "/srv/immich"
]; ];
timerConfig = { timerConfig = {
OnCalendar = "06:00"; OnCalendar = "06:00";

View file

@ -3,14 +3,17 @@
pkgs, pkgs,
config, config,
... ...
}: { }:
{
imports = [ imports = [
./hardware-configuration.nix ./hardware-configuration.nix
./backups.nix ./backups.nix
]; ];
sops = { sops = {
secrets = { secrets = {
"env" = {sopsFile = ../../secrets/cf-acme.yaml;}; "env" = {
sopsFile = ../../secrets/cf-acme.yaml;
};
}; };
}; };
documentation = { documentation = {
@ -55,7 +58,7 @@
}; };
openssh = { openssh = {
enable = true; enable = true;
ports = [2022]; ports = [ 2022 ];
settings = { settings = {
PasswordAuthentication = false; PasswordAuthentication = false;
PermitRootLogin = "prohibit-password"; PermitRootLogin = "prohibit-password";
@ -81,19 +84,19 @@
]; ];
}; };
immich = { immich = {
# enable = true;
enable = false; enable = false;
port = 2283; port = 2283;
host = "localhost"; host = "localhost";
openFirewall = true; openFirewall = true;
machine-learning.enable = true; machine-learning.enable = true;
mediaLocation = "/rice/immich"; mediaLocation = "/srv/immich";
}; };
nginx = { nginx = {
enable = true; enable = false;
virtualHosts."img.10110110.xyz" = { virtualHosts."img.consensus.tailc353f.ts.net" = {
useACMEHost = "10110110.xyz"; # forceSSL = true;
forceSSL = true; # sslCertificate = "/etc/nginx/certs/consensus.tailc353f.ts.net.crt";
# sslCertificateKey = "/etc/nginx/certs/consensus.tailc353f.ts.net.key";
locations."/" = { locations."/" = {
proxyPass = "http://localhost:${toString config.services.immich.port}"; proxyPass = "http://localhost:${toString config.services.immich.port}";
proxyWebsockets = true; proxyWebsockets = true;
@ -145,31 +148,33 @@
}; };
users.users = { users.users = {
root = { root = {
openssh.authorizedKeys.keys = [''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHM4Zr0PFN7QdOG2aJ+nuzRCK6caulrpY6bphA1Ppl8Y e@t14'']; openssh.authorizedKeys.keys = [
''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHM4Zr0PFN7QdOG2aJ+nuzRCK6caulrpY6bphA1Ppl8Y e@t14''
];
}; };
e = { e = {
isNormalUser = true; isNormalUser = true;
extraGroups = ["wheel"]; extraGroups = [ "wheel" ];
home = "/home/e"; home = "/home/e";
openssh.authorizedKeys.keys = [ openssh.authorizedKeys.keys = [
''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHM4Zr0PFN7QdOG2aJ+nuzRCK6caulrpY6bphA1Ppl8Y e@t14'' ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHM4Zr0PFN7QdOG2aJ+nuzRCK6caulrpY6bphA1Ppl8Y e@t14''
''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAdo4PS8myKaKAdyIqSFj2VJ+oZ9DNRIp7PBz8IWKjjy'' ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJou+k8HtIWdlztpWog7fVfJgxJnRIo7c5xVPUBhBxhi'' # phone
]; ];
}; };
}; };
security.sudo-rs.wheelNeedsPassword = false; security.sudo-rs.wheelNeedsPassword = false;
security.acme = { # security.acme = {
acceptTerms = true; # acceptTerms = true;
defaults.email = "acme@10110110.xyz"; # defaults.email = "acme@10110110.xyz";
certs = { # certs = {
"10110110.xyz" = { # "10110110.xyz" = {
domain = "*.10110110.xyz"; # domain = "*.10110110.xyz";
group = config.services.nginx.group; # group = config.services.nginx.group;
dnsProvider = "cloudflare"; # dnsProvider = "cloudflare";
environmentFile = config.sops.secrets."env".path; # environmentFile = config.sops.secrets."env".path;
}; # };
}; # };
}; # };
nix.settings.trusted-users = ["e"]; nix.settings.trusted-users = [ "e" ];
system.stateVersion = "23.11"; system.stateVersion = "23.11";
} }

View file

@ -2,11 +2,17 @@
lib, lib,
modulesPath, modulesPath,
... ...
}: { }:
imports = [(modulesPath + "/profiles/qemu-guest.nix")]; {
imports = [ (modulesPath + "/profiles/qemu-guest.nix") ];
boot.loader.grub.device = "/dev/nvme0n1"; boot.loader.grub.device = "/dev/nvme0n1";
boot.initrd.availableKernelModules = ["ata_piix" "uhci_hcd" "xen_blkfront" "vmw_pvscsi"]; boot.initrd.availableKernelModules = [
boot.initrd.kernelModules = ["nvme"]; "ata_piix"
"uhci_hcd"
"xen_blkfront"
"vmw_pvscsi"
];
boot.initrd.kernelModules = [ "nvme" ];
fileSystems."/" = { fileSystems."/" = {
device = "/dev/mapper/vg-root"; device = "/dev/mapper/vg-root";
fsType = "btrfs"; fsType = "btrfs";
@ -15,5 +21,9 @@
device = "/dev/mapper/vg-var"; device = "/dev/mapper/vg-var";
fsType = "btrfs"; fsType = "btrfs";
}; };
fileSystems."/srv" = {
device = "/dev/ext/srv";
fsType = "ext4";
};
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
} }

View file

@ -1,11 +1,12 @@
{config, ...}: { { config, ... }:
{
sops = { sops = {
defaultSopsFile = ../../secrets/restic.yaml; defaultSopsFile = ../../secrets/restic.yaml;
age.keyFile = "/home/e/.config/sops/age/keys.txt"; age.keyFile = "/home/e/.config/sops/age/keys.txt";
secrets = { secrets = {
"b2-home/env" = {}; "b2-home/env" = { };
"b2-home/repo" = {}; "b2-home/repo" = { };
"b2-home/password" = {}; "b2-home/password" = { };
}; };
}; };
services.restic.backups = { services.restic.backups = {
@ -21,6 +22,7 @@
"/home/e/.ssh" "/home/e/.ssh"
"/home/e/.librewolf" "/home/e/.librewolf"
"/home/e/.runelite" "/home/e/.runelite"
"/home/e/.local/share/PrismLauncher/instances"
]; ];
timerConfig = { timerConfig = {
OnCalendar = "01:00"; OnCalendar = "01:00";

View file

@ -2,10 +2,12 @@
pkgs, pkgs,
attrs, attrs,
... ...
}: let }:
let
# Horrid workaround for https://github.com/nix-community/home-manager/issues/1011 # Horrid workaround for https://github.com/nix-community/home-manager/issues/1011
homeManagerSessionVars = "/etc/profiles/per-user/${attrs.username}/etc/profile.d/hm-session-vars.sh"; homeManagerSessionVars = "/etc/profiles/per-user/${attrs.username}/etc/profile.d/hm-session-vars.sh";
in { in
{
imports = [ imports = [
./hardware-configuration.nix ./hardware-configuration.nix
./backups.nix ./backups.nix
@ -24,21 +26,24 @@ in {
loader.systemd-boot.enable = true; loader.systemd-boot.enable = true;
loader.efi.canTouchEfiVariables = true; loader.efi.canTouchEfiVariables = true;
kernelPackages = pkgs.linuxPackages_latest; kernelPackages = pkgs.linuxPackages_latest;
blacklistedKernelModules = ["bluetooth"]; blacklistedKernelModules = [ "bluetooth" ];
}; };
# Networking # Networking
networking = { networking = {
hostId = "1185c58e"; hostId = "1185c58e";
nameservers = ["9.9.9.9" "1.1.1.1"]; nameservers = [
"9.9.9.9"
"1.1.1.1"
];
networkmanager = { networkmanager = {
enable = true; enable = true;
dns = "systemd-resolved"; dns = "systemd-resolved";
}; };
firewall = { firewall = {
enable = true; enable = true;
allowedTCPPorts = [11111]; allowedTCPPorts = [ 11111 ];
allowedUDPPorts = []; allowedUDPPorts = [ ];
trustedInterfaces = ["tailscale0"]; trustedInterfaces = [ "tailscale0" ];
logRefusedConnections = true; logRefusedConnections = true;
}; };
}; };
@ -50,11 +55,11 @@ in {
}; };
}; };
security.pam.services.swaylock = {}; security.pam.services.swaylock = { };
xdg.portal = { xdg.portal = {
enable = true; enable = true;
xdgOpenUsePortal = false; xdgOpenUsePortal = false;
extraPortals = [pkgs.xdg-desktop-portal-gtk]; extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
}; };
programs = { programs = {
light.enable = true; light.enable = true;
@ -64,13 +69,16 @@ in {
}; };
steam.enable = true; steam.enable = true;
adb.enable = true; adb.enable = true;
fish.enable = true; #enable vendor completions fish.enable = true; # enable vendor completions
}; };
# workaround for wait-online killing nixos build # workaround for wait-online killing nixos build
systemd.services.NetworkManager-wait-online = { systemd.services.NetworkManager-wait-online = {
serviceConfig = { serviceConfig = {
ExecStart = ["" "${pkgs.networkmanager}/bin/nm-online -q"]; ExecStart = [
""
"${pkgs.networkmanager}/bin/nm-online -q"
];
}; };
}; };
@ -128,7 +136,7 @@ in {
enable = true; enable = true;
keyboards = { keyboards = {
default = { default = {
ids = ["*"]; ids = [ "*" ];
settings = { settings = {
main = { main = {
pause = "timeout(esc, 150, space)"; pause = "timeout(esc, 150, space)";
@ -145,6 +153,7 @@ in {
trezord.enable = true; trezord.enable = true;
udisks2.enable = true; # kindle udisks2.enable = true; # kindle
ollama.enable = true;
}; };
fonts = { fonts = {
# Set a sane system-wide default font # Set a sane system-wide default font
@ -152,7 +161,7 @@ in {
nerd-fonts.ubuntu-mono nerd-fonts.ubuntu-mono
spleen spleen
]; ];
fontconfig.defaultFonts.monospace = ["UbuntuMono"]; fontconfig.defaultFonts.monospace = [ "UbuntuMono" ];
}; };
system.stateVersion = "22.11"; system.stateVersion = "22.11";
} }