Compare commits

...

10 Commits

26 changed files with 929 additions and 368 deletions

View File

@ -1,21 +1,5 @@
{ {
"nodes": { "nodes": {
"actions-preview-nvim": {
"flake": false,
"locked": {
"lastModified": 1718540350,
"narHash": "sha256-lYjsv8y1fMuTGpBF/iG7cm/a7tLdh748vJhVsSp/Iz8=",
"owner": "aznhe21",
"repo": "actions-preview.nvim",
"rev": "9f52a01c374318e91337697ebed51c6fae57f8a4",
"type": "github"
},
"original": {
"owner": "aznhe21",
"repo": "actions-preview.nvim",
"type": "github"
}
},
"agenix": { "agenix": {
"inputs": { "inputs": {
"darwin": "darwin", "darwin": "darwin",
@ -59,11 +43,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1723920171, "lastModified": 1727261104,
"narHash": "sha256-dVCMrAe+D/5S91erhwQj2DSzHOVzAanWqoy+vPWB9DY=", "narHash": "sha256-rxDI7WrxIRV9it9mDCHcLa7xQykf1JloXnoXr5xQ8zI=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "aquamarine", "repo": "aquamarine",
"rev": "71d49670fe246cdaff4860b0effba0ab9f163b72", "rev": "b82fdaff917582a9d568969e15e61b398c71e990",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -75,11 +59,11 @@
"arkenfox-userjs": { "arkenfox-userjs": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1722919020, "lastModified": 1724661688,
"narHash": "sha256-tTKGJXg/yicwpCI9WwFmbKYL6cyQ0OOetbvT9i/psUk=", "narHash": "sha256-XLswsa2u2qsUPsLYRYn6lwis7VwSjAW6BRNdI4brbSM=",
"owner": "arkenfox", "owner": "arkenfox",
"repo": "user.js", "repo": "user.js",
"rev": "11582f905a21971eb5869b48ef8c3f2d4eac4d89", "rev": "f906f7f3b41fe3f6aaa744980431f4fdcd086379",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -105,22 +89,6 @@
"type": "github" "type": "github"
} }
}, },
"cmp-vimtex": {
"flake": false,
"locked": {
"lastModified": 1722941837,
"narHash": "sha256-pD2dPdpyn5A/uwonDdAxCX138yBeDqbXDdlG/IKjVTU=",
"owner": "micangl",
"repo": "cmp-vimtex",
"rev": "5283bf9108ef33d41e704027b9ef22437ce7a15b",
"type": "github"
},
"original": {
"owner": "micangl",
"repo": "cmp-vimtex",
"type": "github"
}
},
"darwin": { "darwin": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -166,11 +134,11 @@
"nixpkgs": "nixpkgs_2" "nixpkgs": "nixpkgs_2"
}, },
"locked": { "locked": {
"lastModified": 1723685519, "lastModified": 1728109432,
"narHash": "sha256-GkXQIoZmW2zCPp1YFtAYGg/xHNyFH/Mgm79lcs81rq0=", "narHash": "sha256-wmbErh8FG7dRKOtMMpHUqDtFjeqt9Zjx4zssSeTalwU=",
"owner": "nix-community", "owner": "nix-community",
"repo": "disko", "repo": "disko",
"rev": "276a0d055a720691912c6a34abb724e395c8e38a", "rev": "48ebb577855fb2398653f033b3b2208a9249203d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -228,6 +196,20 @@
} }
}, },
"flake-compat_4": { "flake-compat_4": {
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"revCount": 57,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
}
},
"flake-compat_5": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1696426674, "lastModified": 1696426674,
@ -248,11 +230,11 @@
"nixpkgs-lib": "nixpkgs-lib" "nixpkgs-lib": "nixpkgs-lib"
}, },
"locked": { "locked": {
"lastModified": 1722555600, "lastModified": 1727826117,
"narHash": "sha256-XOQkdLafnb/p9ij77byFQjDf5m5QYl9b2REiVClC+x4=", "narHash": "sha256-K5ZLCyfO/Zj9mPFldf3iwS6oZStJcU4tSpiXTMYaaL0=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "8471fe90ad337a8074e957b69ca4d0089218391d", "rev": "3d04084d54bedc3d6b8b736c70ef449225c361b1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -269,11 +251,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1722555600, "lastModified": 1727826117,
"narHash": "sha256-XOQkdLafnb/p9ij77byFQjDf5m5QYl9b2REiVClC+x4=", "narHash": "sha256-K5ZLCyfO/Zj9mPFldf3iwS6oZStJcU4tSpiXTMYaaL0=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "8471fe90ad337a8074e957b69ca4d0089218391d", "rev": "3d04084d54bedc3d6b8b736c70ef449225c361b1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -329,11 +311,11 @@
"systems": "systems_2" "systems": "systems_2"
}, },
"locked": { "locked": {
"lastModified": 1710146030, "lastModified": 1726560853,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -342,19 +324,21 @@
"type": "github" "type": "github"
} }
}, },
"gen-nvim": { "flake-utils_2": {
"flake": false, "inputs": {
"systems": "systems_4"
},
"locked": { "locked": {
"lastModified": 1723301200, "lastModified": 1726560853,
"narHash": "sha256-Yp7HrDMOyR929AfM7IjEz4dP3RhIx9kXZ1Z3zRr5yJg=", "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
"owner": "David-Kunz", "owner": "numtide",
"repo": "gen.nvim", "repo": "flake-utils",
"rev": "c9a73d8c0d462333da6d2191806ff98f2884d706", "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "David-Kunz", "owner": "numtide",
"repo": "gen.nvim", "repo": "flake-utils",
"type": "github" "type": "github"
} }
}, },
@ -372,11 +356,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1723803910, "lastModified": 1727805723,
"narHash": "sha256-yezvUuFiEnCFbGuwj/bQcqg7RykIEqudOy/RBrId0pc=", "narHash": "sha256-b8flytpuc4Ey/g3mcvpS/ICORcD4h56QDZeP5LogevY=",
"owner": "cachix", "owner": "cachix",
"repo": "git-hooks.nix", "repo": "git-hooks.nix",
"rev": "bfef0ada09e2c8ac55bbcd0831bd0c9d42e651ba", "rev": "2f5ae3fc91db865eff2c5a418da85a0fbe6238a3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -416,6 +400,36 @@
"type": "github" "type": "github"
} }
}, },
"git-hooks_2": {
"inputs": {
"flake-compat": [
"nixvim",
"flake-compat"
],
"gitignore": "gitignore_2",
"nixpkgs": [
"nixvim",
"nixpkgs"
],
"nixpkgs-stable": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1728092656,
"narHash": "sha256-eMeCTJZ5xBeQ0f9Os7K8DThNVSo9gy4umZLDfF5q6OM=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "1211305a5b237771e13fcca0c51e60ad47326a9a",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"gitignore": { "gitignore": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -439,6 +453,28 @@
} }
}, },
"gitignore_2": { "gitignore_2": {
"inputs": {
"nixpkgs": [
"nixvim",
"git-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"gitignore_3": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"pre-commit-hooks", "pre-commit-hooks",
@ -459,22 +495,6 @@
"type": "github" "type": "github"
} }
}, },
"hawtkeys-nvim": {
"flake": false,
"locked": {
"lastModified": 1715069568,
"narHash": "sha256-oVpWh5pVU/OMnQ8ZRgW3iNG8I0xsLJnRBvt67yPWLQ0=",
"owner": "tris203",
"repo": "hawtkeys.nvim",
"rev": "261cc311d4abdc88decceca6dc1013faa14c56ea",
"type": "github"
},
"original": {
"owner": "tris203",
"repo": "hawtkeys.nvim",
"type": "github"
}
},
"hercules-ci-effects": { "hercules-ci-effects": {
"inputs": { "inputs": {
"flake-parts": "flake-parts_3", "flake-parts": "flake-parts_3",
@ -484,11 +504,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1719226092, "lastModified": 1724947644,
"narHash": "sha256-YNkUMcCUCpnULp40g+svYsaH1RbSEj6s4WdZY/SHe38=", "narHash": "sha256-MHHrHasTngp7EYQOObHJ1a/IsRF+wodHqOckhH6uZbk=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "hercules-ci-effects", "repo": "hercules-ci-effects",
"rev": "11e4b8dc112e2f485d7c97e1cee77f9958f498f5", "rev": "dba4367b9a9d9615456c430a6d6af716f6e84cef",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -525,11 +545,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1723399884, "lastModified": 1728041527,
"narHash": "sha256-97wn0ihhGqfMb8WcUgzzkM/TuAxce2Gd20A8oiruju4=", "narHash": "sha256-03liqiJtk9UP7YQHW4r8MduKCK242FQzud8iWvvlK+o=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "086f619dd991a4d355c07837448244029fc2d9ab", "rev": "509dbf8d45606b618e9ec3bbe4e936b7c5bc6c1e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -543,11 +563,11 @@
"nixpkgs": "nixpkgs_3" "nixpkgs": "nixpkgs_3"
}, },
"locked": { "locked": {
"lastModified": 1722636442, "lastModified": 1725551787,
"narHash": "sha256-+7IS0n3/F0I5j6ZbrVlLcIIPHY3o+/vLAqg/G48sG+w=", "narHash": "sha256-6LgsZHz8w3g4c9bRUwRAR+WIMwFGGf3P1VZQcKNRf2o=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "contrib", "repo": "contrib",
"rev": "9d67858b437d4a1299be496d371b66fc0d3e01f6", "rev": "1e531dc49ad36c88b45bf836081a7a2c8927e072",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -572,11 +592,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1722623071, "lastModified": 1727532803,
"narHash": "sha256-sLADpVgebpCBFXkA1FlCXtvEPu1tdEsTfqK1hfeHySE=", "narHash": "sha256-ZaZ7h7PY8mQc4vtGmVqWLAq9CAO02gHMyNR5yY8zDmM=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprcursor", "repo": "hyprcursor",
"rev": "912d56025f03d41b1ad29510c423757b4379eb1c", "rev": "b98726e431d4d3ed58bd58bee1047cdb81cec69f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -589,6 +609,7 @@
"inputs": { "inputs": {
"aquamarine": "aquamarine", "aquamarine": "aquamarine",
"hyprcursor": "hyprcursor", "hyprcursor": "hyprcursor",
"hyprland-protocols": "hyprland-protocols",
"hyprlang": "hyprlang", "hyprlang": "hyprlang",
"hyprutils": "hyprutils", "hyprutils": "hyprutils",
"hyprwayland-scanner": "hyprwayland-scanner", "hyprwayland-scanner": "hyprwayland-scanner",
@ -597,11 +618,11 @@
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
"lastModified": 1723969407, "lastModified": 1728223706,
"narHash": "sha256-COChiv/1EsfN0aVQcDBPXqNR/T5sUXtalsuO1RGvwcY=", "narHash": "sha256-HrsylIpk+17wwsh/+sgUBmL7VHakF+EWv9v9Dx1268I=",
"ref": "refs/heads/main", "ref": "refs/heads/main",
"rev": "1006663b6eaa55149e9a21aa8a34e41c85eb08ca", "rev": "4e41cda27ed4176005082436cb35878335e63fae",
"revCount": 5103, "revCount": 5301,
"submodules": true, "submodules": true,
"type": "git", "type": "git",
"url": "https://github.com/hyprwm/Hyprland" "url": "https://github.com/hyprwm/Hyprland"
@ -613,6 +634,31 @@
} }
}, },
"hyprland-protocols": { "hyprland-protocols": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1727451107,
"narHash": "sha256-qV9savtHwmZUa0eJE294WYJjKPGB2+bJhwByFShsVyo=",
"owner": "hyprwm",
"repo": "hyprland-protocols",
"rev": "6b3261ee13a6d2b99de79a31d352f6996e35bde3",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-protocols",
"type": "github"
}
},
"hyprland-protocols_2": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"hyprland", "hyprland",
@ -655,11 +701,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1721324361, "lastModified": 1725997860,
"narHash": "sha256-BiJKO0IIdnSwHQBSrEJlKlFr753urkLE48wtt0UhNG4=", "narHash": "sha256-d/rZ/fHR5l1n7PeyLw0StWMNLXVU9c4HFyfskw568so=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprlang", "repo": "hyprlang",
"rev": "adbefbf49664a6c2c8bf36b6487fd31e3eb68086", "rev": "dfeb5811dd6485490cce18d6cc1e38a055eea876",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -680,11 +726,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1722869141, "lastModified": 1727300645,
"narHash": "sha256-0KU4qhyMp441qfwbirNg3+wbm489KnEjXOz2I/RbeFs=", "narHash": "sha256-OvAtVLaSRPnbXzOwlR1fVqCXR7i+ICRX3aPMCdIiv+c=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprutils", "repo": "hyprutils",
"rev": "0252fd13e78e60fb0da512a212e56007515a49f7", "rev": "3f5293432b6dc6a99f26aca2eba3876d2660665c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -705,11 +751,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1721324119, "lastModified": 1726874836,
"narHash": "sha256-SOOqIT27/X792+vsLSeFdrNTF+OSRp5qXv6Te+fb2Qg=", "narHash": "sha256-VKR0sf0PSNCB0wPHVKSAn41mCNVCnegWmgkrneKDhHM=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprwayland-scanner", "repo": "hyprwayland-scanner",
"rev": "a048a6cb015340bd82f97c1f40a4b595ca85cc30", "rev": "500c81a9e1a76760371049a8d99e008ea77aa59e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -720,11 +766,11 @@
}, },
"impermanence": { "impermanence": {
"locked": { "locked": {
"lastModified": 1719091691, "lastModified": 1727649413,
"narHash": "sha256-AxaLX5cBEcGtE02PeGsfscSb/fWMnyS7zMWBXQWDKbE=", "narHash": "sha256-FA53of86DjFdeQzRDVtvgWF9o52rWK70VHGx0Y8fElQ=",
"owner": "nix-community", "owner": "nix-community",
"repo": "impermanence", "repo": "impermanence",
"rev": "23c1f06316b67cb5dabdfe2973da3785cfe9c34a", "rev": "d0b38e550039a72aff896ee65b0918e975e6d48e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -752,11 +798,11 @@
}, },
"master": { "master": {
"locked": { "locked": {
"lastModified": 1723976400, "lastModified": 1728286420,
"narHash": "sha256-WpKvJffFrcvNMGMR3hNtQIRa/CTAvrWYohPMAFElLJE=", "narHash": "sha256-o2MfGdzZsQxcBDlAiYASBqMrAUOgz2b/EzzCtIo6RNI=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "7c87c474f1b4f020b1ab9d2b962fde094c2599cf", "rev": "a825406b157355e5fe73c48d04db97439a02edc9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -787,23 +833,6 @@
"type": "github" "type": "github"
} }
}, },
"neotest-python": {
"flake": false,
"locked": {
"lastModified": 1698425037,
"narHash": "sha256-C3Dw+fl1QNYU9tg0fE52EzOqeGXxu1vq5SPmDnv2LD8=",
"owner": "MoritzBoehme",
"repo": "neotest-python",
"rev": "3c09dbafb0a1e3ac8b19eabc7157ec312cc2f2ee",
"type": "github"
},
"original": {
"owner": "MoritzBoehme",
"ref": "fix-runtimepath-search",
"repo": "neotest-python",
"type": "github"
}
},
"neovim-nightly-overlay": { "neovim-nightly-overlay": {
"inputs": { "inputs": {
"flake-compat": "flake-compat", "flake-compat": "flake-compat",
@ -814,11 +843,11 @@
"nixpkgs": "nixpkgs_5" "nixpkgs": "nixpkgs_5"
}, },
"locked": { "locked": {
"lastModified": 1723969597, "lastModified": 1727852635,
"narHash": "sha256-nNSmyoR8k2gEw9LZ+nFcBQm+bquflzw2R44BeJ4gmKk=", "narHash": "sha256-eY0Y5ZDMo5IS+K42kMwAMCLsYHoAgPW3R4UxeGfzP0U=",
"owner": "nix-community", "owner": "nix-community",
"repo": "neovim-nightly-overlay", "repo": "neovim-nightly-overlay",
"rev": "ec3ee3674c80882ac54d93b5575426c66e3f430d", "rev": "377cf41246ee443c86c4ae48f66f5100038fe158",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -830,11 +859,11 @@
"neovim-src": { "neovim-src": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1723936741, "lastModified": 1727825968,
"narHash": "sha256-x/0wYCshhLSA9zW4fvPK+W6g3gTqE8fMJQZrIucDyXg=", "narHash": "sha256-7DbbGIAbJesqYEkZh2FaEo5wycZ/cRbvZP6k01Z5+ZM=",
"owner": "neovim", "owner": "neovim",
"repo": "neovim", "repo": "neovim",
"rev": "d1bdeacb00186ba72fa61f3c7f2951fd018ae21d", "rev": "2168d772b864fd05109fb4299e409d4bdc1df39d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -843,6 +872,27 @@
"type": "github" "type": "github"
} }
}, },
"nix-darwin": {
"inputs": {
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1727999297,
"narHash": "sha256-LTJuQPCsSItZ/8TieFeP30iY+uaLoD0mT0tAj1gLeyQ=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "8c8388ade72e58efdeae71b4cbb79e872c23a56b",
"type": "github"
},
"original": {
"owner": "lnl7",
"repo": "nix-darwin",
"type": "github"
}
},
"nix-index-database": { "nix-index-database": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -850,11 +900,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1723950649, "lastModified": 1728263287,
"narHash": "sha256-dHMkGjwwCGj0c2MKyCjRXVBXq2Sz3TWbbM23AS7/5Hc=", "narHash": "sha256-GJDtsxz2/zw6g/Nrp4XVWBS5IaZ7ZUkuvxPOBEDe7pg=",
"owner": "Mic92", "owner": "Mic92",
"repo": "nix-index-database", "repo": "nix-index-database",
"rev": "392828aafbed62a6ea6ccab13728df2e67481805", "rev": "5fce10c871bab6d7d5ac9e5e7efbb3a2783f5259",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -863,21 +913,6 @@
"type": "github" "type": "github"
} }
}, },
"nix-lazy-nvim": {
"locked": {
"lastModified": 1698421129,
"narHash": "sha256-pwpLc6SS3c4s6i2+MZa8y+JigFwAbFw69bwN8S1CYwQ=",
"ref": "refs/heads/main",
"rev": "408ab5cad386453e3cce8233b377fc95320e4637",
"revCount": 5,
"type": "git",
"url": "https://git.moritzboeh.me/moritz/NixLazy.nvim"
},
"original": {
"type": "git",
"url": "https://git.moritzboeh.me/moritz/NixLazy.nvim"
}
},
"nix-monitored": { "nix-monitored": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -956,14 +991,14 @@
}, },
"nixpkgs-lib": { "nixpkgs-lib": {
"locked": { "locked": {
"lastModified": 1722555339, "lastModified": 1727825735,
"narHash": "sha256-uFf2QeW7eAHlYXuDktm9c25OxOyCoUOQmh5SZ9amE5Q=", "narHash": "sha256-0xHYkMkeLVQAMa7gvkddbPqpxph+hDzdu1XdGPJR+Os=",
"type": "tarball", "type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/a5d394176e64ab29c852d03346c1fc9b0b7d33eb.tar.gz" "url": "https://github.com/NixOS/nixpkgs/archive/fb192fec7cc7a4c26d51779e9bab07ce6fa5597a.tar.gz"
}, },
"original": { "original": {
"type": "tarball", "type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/a5d394176e64ab29c852d03346c1fc9b0b7d33eb.tar.gz" "url": "https://github.com/NixOS/nixpkgs/archive/fb192fec7cc7a4c26d51779e9bab07ce6fa5597a.tar.gz"
} }
}, },
"nixpkgs-regression": { "nixpkgs-regression": {
@ -998,13 +1033,29 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_2": { "nixpkgs_10": {
"locked": { "locked": {
"lastModified": 1723603349, "lastModified": 1692934111,
"narHash": "sha256-VMg6N7MryOuvSJ8Sj6YydarnUCkL7cvMdrMcnsJnJCE=", "narHash": "sha256-9EEE59v/esKNMR5zKbLRV9NoRPYvERw5jHQOnfr47bk=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "daf7bb95821b789db24fc1ac21f613db0c1bf2cb", "rev": "1e44a037bbf4fcaba041436e65e87be88f3f495b",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1725194671,
"narHash": "sha256-tLGCFEFTB5TaOKkpfw3iYT9dnk4awTP/q4w+ROpMfuw=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "b833ff01a0d694b910daca6e2ff4a3f26dee478c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1032,11 +1083,11 @@
}, },
"nixpkgs_4": { "nixpkgs_4": {
"locked": { "locked": {
"lastModified": 1723637854, "lastModified": 1727348695,
"narHash": "sha256-med8+5DSWa2UnOqtdICndjDAEjxr5D7zaIiK4pn0Q7c=", "narHash": "sha256-J+PeFKSDV+pHL7ukkfpVzCOO7mBSrrpJ3svwBFABbhI=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "c3aa7b8938b17aebd2deecf7be0636000d62a2b9", "rev": "1925c603f17fc89f4c8f6bf6f631a802ad85d784",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1048,11 +1099,11 @@
}, },
"nixpkgs_5": { "nixpkgs_5": {
"locked": { "locked": {
"lastModified": 1723856861, "lastModified": 1727747005,
"narHash": "sha256-OTDg91+Zzs2SpU3csK4xVdSQFoG8cK1lNUwKmTqERyE=", "narHash": "sha256-2PBox0LkPhxirg1asEIpvfFARjq5KLw0EHPCy4unjPs=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "cd7b95ee3725af7113bacbce91dd6549cee58ca5", "rev": "9682b2197dabc185fcca802ac1ac21136e48fcc2",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1080,11 +1131,11 @@
}, },
"nixpkgs_7": { "nixpkgs_7": {
"locked": { "locked": {
"lastModified": 1723891200, "lastModified": 1728249353,
"narHash": "sha256-uljX21+D/DZgb9uEFFG2dkkQbPZN+ig4Z6+UCLWFVAk=", "narHash": "sha256-7NBJm1jfMeAowE1J2oljYqWVvI9X7FyyxBY4O8uB/Os=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "a0d6390cb3e82062a35d0288979c45756e481f60", "rev": "c8a17040be4a20b29589cb4043a9e0c36af1930e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1095,6 +1146,22 @@
} }
}, },
"nixpkgs_8": { "nixpkgs_8": {
"locked": {
"lastModified": 1728018373,
"narHash": "sha256-NOiTvBbRLIOe5F6RbHaAh6++BNjsb149fGZd1T4+KBg=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "bc947f541ae55e999ffdb4013441347d83b00feb",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_9": {
"locked": { "locked": {
"lastModified": 1719082008, "lastModified": 1719082008,
"narHash": "sha256-jHJSUH619zBQ6WdC21fFAlDxHErKVDJ5fpN0Hgx4sjs=", "narHash": "sha256-jHJSUH619zBQ6WdC21fFAlDxHErKVDJ5fpN0Hgx4sjs=",
@ -1110,45 +1177,45 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_9": { "nixvim": {
"inputs": {
"devshell": [
"devshell"
],
"flake-compat": "flake-compat_4",
"flake-parts": [
"flake-parts"
],
"git-hooks": "git-hooks_2",
"home-manager": [
"home-manager"
],
"nix-darwin": "nix-darwin",
"nixpkgs": "nixpkgs_8",
"nuschtosSearch": "nuschtosSearch",
"treefmt-nix": "treefmt-nix"
},
"locked": { "locked": {
"lastModified": 1692934111, "lastModified": 1728245494,
"narHash": "sha256-9EEE59v/esKNMR5zKbLRV9NoRPYvERw5jHQOnfr47bk=", "narHash": "sha256-bulK/Z+SEJaHM2PPk7W/kRvO51Ag9bTebcaWai9EEJc=",
"owner": "NixOS", "owner": "nix-community",
"repo": "nixpkgs", "repo": "nixvim",
"rev": "1e44a037bbf4fcaba041436e65e87be88f3f495b", "rev": "33d030d23c9b88bb29e300d702aade58c3734612",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "nix-community",
"ref": "nixpkgs-unstable", "repo": "nixvim",
"repo": "nixpkgs",
"type": "github"
}
},
"none-ls-shellcheck-nvim": {
"flake": false,
"locked": {
"lastModified": 1710845791,
"narHash": "sha256-t06Nu7wVEGoJtaaZh/psvuC9kdYhwh6JeOd0cg3WVHY=",
"owner": "gbprod",
"repo": "none-ls-shellcheck.nvim",
"rev": "0f84461241e76e376a95fb7391deac82dc3efdbf",
"type": "github"
},
"original": {
"owner": "gbprod",
"repo": "none-ls-shellcheck.nvim",
"type": "github" "type": "github"
} }
}, },
"nur": { "nur": {
"locked": { "locked": {
"lastModified": 1723976478, "lastModified": 1728282432,
"narHash": "sha256-eF815/buOMQlX2XbtNgN3GtA9bwv4psLbckU9iTBsxs=", "narHash": "sha256-ftGSLQ5W9Jq8lQa3+ta/v7RtnY3MNwLQ6ybXtLbbLSw=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NUR", "repo": "NUR",
"rev": "575ee4dc4dc7c031663bdcfe2e8779abacc80d0a", "rev": "baa11edb344e5715eedaeb2a92b6bc5c220a69e4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1157,35 +1224,41 @@
"type": "github" "type": "github"
} }
}, },
"nvim-lspconfig": { "nuschtosSearch": {
"flake": false, "inputs": {
"flake-utils": "flake-utils_2",
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": { "locked": {
"lastModified": 1723788573, "lastModified": 1728017046,
"narHash": "sha256-y64E6q6bB0kzJzxHnOYWjCZW5tpBTzhAVs/lvpmOpU0=", "narHash": "sha256-ofWYux/uUAv8wq7sWw8XWke0sh8p4qYxSOn8d+EaJ8c=",
"owner": "neovim", "owner": "NuschtOS",
"repo": "nvim-lspconfig", "repo": "search",
"rev": "a89de2e049b5f89a0ee55029d5a31213bd4de6f8", "rev": "ba81d9c1eae20fc3a1cd066062a05ac2e799e629",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "neovim", "owner": "NuschtOS",
"repo": "nvim-lspconfig", "repo": "search",
"type": "github" "type": "github"
} }
}, },
"pre-commit-hooks": { "pre-commit-hooks": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_4", "flake-compat": "flake-compat_5",
"gitignore": "gitignore_2", "gitignore": "gitignore_3",
"nixpkgs": "nixpkgs_8", "nixpkgs": "nixpkgs_9",
"nixpkgs-stable": "nixpkgs-stable" "nixpkgs-stable": "nixpkgs-stable"
}, },
"locked": { "locked": {
"lastModified": 1723803910, "lastModified": 1728092656,
"narHash": "sha256-yezvUuFiEnCFbGuwj/bQcqg7RykIEqudOy/RBrId0pc=", "narHash": "sha256-eMeCTJZ5xBeQ0f9Os7K8DThNVSo9gy4umZLDfF5q6OM=",
"owner": "cachix", "owner": "cachix",
"repo": "pre-commit-hooks.nix", "repo": "pre-commit-hooks.nix",
"rev": "bfef0ada09e2c8ac55bbcd0831bd0c9d42e651ba", "rev": "1211305a5b237771e13fcca0c51e60ad47326a9a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1197,11 +1270,11 @@
"river": { "river": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1723715391, "lastModified": 1727948541,
"narHash": "sha256-Tc0FYZJsQ/YDFl7czKfsDxTEUr1a0d41MyRrdyhdcjw=", "narHash": "sha256-pC8D581CMhh3XCVBbwZ/8woAuD58ilGCrBX4ic5G9Zo=",
"ref": "refs/heads/master", "ref": "refs/heads/master",
"rev": "f82b2f58163eb092941d7d2e05e1d0eeaa9f50fe", "rev": "fd55f51ba1b53af95fe3a24611490d42a895ef98",
"revCount": 1293, "revCount": 1297,
"submodules": true, "submodules": true,
"type": "git", "type": "git",
"url": "https://github.com/riverwm/river" "url": "https://github.com/riverwm/river"
@ -1214,63 +1287,38 @@
}, },
"root": { "root": {
"inputs": { "inputs": {
"actions-preview-nvim": "actions-preview-nvim",
"agenix": "agenix", "agenix": "agenix",
"arkenfox-userjs": "arkenfox-userjs", "arkenfox-userjs": "arkenfox-userjs",
"asus-touchpad-numpad-driver": "asus-touchpad-numpad-driver", "asus-touchpad-numpad-driver": "asus-touchpad-numpad-driver",
"cmp-vimtex": "cmp-vimtex",
"devshell": "devshell", "devshell": "devshell",
"disko": "disko", "disko": "disko",
"flake-parts": "flake-parts", "flake-parts": "flake-parts",
"flake-utils": "flake-utils", "flake-utils": "flake-utils",
"gen-nvim": "gen-nvim",
"hawtkeys-nvim": "hawtkeys-nvim",
"home-manager": "home-manager_2", "home-manager": "home-manager_2",
"hypr-contrib": "hypr-contrib", "hypr-contrib": "hypr-contrib",
"hyprland": "hyprland", "hyprland": "hyprland",
"impermanence": "impermanence", "impermanence": "impermanence",
"master": "master", "master": "master",
"neotest-python": "neotest-python",
"neovim-nightly-overlay": "neovim-nightly-overlay", "neovim-nightly-overlay": "neovim-nightly-overlay",
"nix-index-database": "nix-index-database", "nix-index-database": "nix-index-database",
"nix-lazy-nvim": "nix-lazy-nvim",
"nix-monitored": "nix-monitored", "nix-monitored": "nix-monitored",
"nix-super": "nix-super", "nix-super": "nix-super",
"nixpkgs": "nixpkgs_7", "nixpkgs": "nixpkgs_7",
"none-ls-shellcheck-nvim": "none-ls-shellcheck-nvim", "nixvim": "nixvim",
"nur": "nur", "nur": "nur",
"nvim-lspconfig": "nvim-lspconfig",
"pre-commit-hooks": "pre-commit-hooks", "pre-commit-hooks": "pre-commit-hooks",
"river": "river", "river": "river",
"smartcolumn-nvim": "smartcolumn-nvim",
"stable": "stable", "stable": "stable",
"telekasten-nvim": "telekasten-nvim",
"timers": "timers" "timers": "timers"
} }
}, },
"smartcolumn-nvim": {
"flake": false,
"locked": {
"lastModified": 1710067624,
"narHash": "sha256-DHIeDNUF9n9s14GVeojIwc5QUPwJMYYl3gRvhvO/rdE=",
"owner": "m4xshen",
"repo": "smartcolumn.nvim",
"rev": "cefb17be095ad5526030a21bb2a80553cae09127",
"type": "github"
},
"original": {
"owner": "m4xshen",
"repo": "smartcolumn.nvim",
"type": "github"
}
},
"stable": { "stable": {
"locked": { "locked": {
"lastModified": 1723688146, "lastModified": 1728193676,
"narHash": "sha256-sqLwJcHYeWLOeP/XoLwAtYjr01TISlkOfz+NG82pbdg=", "narHash": "sha256-PbDWAIjKJdlVg+qQRhzdSor04bAPApDqIv2DofTyynk=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "c3d4ac725177c030b1e289015989da2ad9d56af0", "rev": "ecbc1ca8ffd6aea8372ad16be9ebbb39889e55b6",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1340,26 +1388,25 @@
"type": "github" "type": "github"
} }
}, },
"telekasten-nvim": { "systems_5": {
"flake": false,
"locked": { "locked": {
"lastModified": 1713773667, "lastModified": 1681028828,
"narHash": "sha256-RsxzOa9bQMKB6LRyo4Vc9hxIJGJ35NSBrLdEi2BSaBU=", "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "renerocksai", "owner": "nix-systems",
"repo": "telekasten.nvim", "repo": "default",
"rev": "319276a7853ff996b7bb1ed4250d8047c84ad29d", "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "renerocksai", "owner": "nix-systems",
"repo": "telekasten.nvim", "repo": "default",
"type": "github" "type": "github"
} }
}, },
"timers": { "timers": {
"inputs": { "inputs": {
"naersk": "naersk", "naersk": "naersk",
"nixpkgs": "nixpkgs_9", "nixpkgs": "nixpkgs_10",
"utils": "utils" "utils": "utils"
}, },
"locked": { "locked": {
@ -1376,9 +1423,30 @@
"url": "https://gitea.moritzboeh.me/moritz/timers.git" "url": "https://gitea.moritzboeh.me/moritz/timers.git"
} }
}, },
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1727984844,
"narHash": "sha256-xpRqITAoD8rHlXQafYZOLvUXCF6cnZkPfoq67ThN0Hc=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "4446c7a6fc0775df028c5a3f6727945ba8400e64",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"utils": { "utils": {
"inputs": { "inputs": {
"systems": "systems_4" "systems": "systems_5"
}, },
"locked": { "locked": {
"lastModified": 1692799911, "lastModified": 1692799911,
@ -1396,11 +1464,19 @@
}, },
"xdph": { "xdph": {
"inputs": { "inputs": {
"hyprland-protocols": "hyprland-protocols", "hyprland-protocols": "hyprland-protocols_2",
"hyprlang": [ "hyprlang": [
"hyprland", "hyprland",
"hyprlang" "hyprlang"
], ],
"hyprutils": [
"hyprland",
"hyprutils"
],
"hyprwayland-scanner": [
"hyprland",
"hyprwayland-scanner"
],
"nixpkgs": [ "nixpkgs": [
"hyprland", "hyprland",
"nixpkgs" "nixpkgs"
@ -1411,11 +1487,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1722365976, "lastModified": 1727524473,
"narHash": "sha256-Khdm+mDzYA//XaU0M+hftod+rKr5q9SSHSEuiQ0/9ow=", "narHash": "sha256-1DGktDtSWIJpnDbVoj/qpvJSH5zg6JbOfuh6xqZMap0=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland", "repo": "xdg-desktop-portal-hyprland",
"rev": "7f2a77ddf60390248e2a3de2261d7102a13e5341", "rev": "7e500e679ede40e79cf2d89b5f5fa3e34923bd26",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@ -27,26 +27,12 @@
timers.url = "git+https://gitea.moritzboeh.me/moritz/timers.git"; timers.url = "git+https://gitea.moritzboeh.me/moritz/timers.git";
# Neovim # Neovim
actions-preview-nvim.flake = false;
actions-preview-nvim.url = "github:aznhe21/actions-preview.nvim";
neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay"; neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay";
nix-lazy-nvim.url = "git+https://git.moritzboeh.me/moritz/NixLazy.nvim";
nvim-lspconfig.flake = false; nixvim.url = "github:nix-community/nixvim";
nvim-lspconfig.url = "github:neovim/nvim-lspconfig"; nixvim.inputs.devshell.follows = "devshell";
smartcolumn-nvim.flake = false; nixvim.inputs.flake-parts.follows = "flake-parts";
smartcolumn-nvim.url = "github:m4xshen/smartcolumn.nvim"; nixvim.inputs.home-manager.follows = "home-manager";
telekasten-nvim.flake = false;
telekasten-nvim.url = "github:renerocksai/telekasten.nvim";
neotest-python.flake = false;
neotest-python.url = "github:MoritzBoehme/neotest-python/fix-runtimepath-search";
gen-nvim.flake = false;
gen-nvim.url = "github:David-Kunz/gen.nvim";
hawtkeys-nvim.flake = false;
hawtkeys-nvim.url = "github:tris203/hawtkeys.nvim";
none-ls-shellcheck-nvim.flake = false;
none-ls-shellcheck-nvim.url = "github:gbprod/none-ls-shellcheck.nvim";
cmp-vimtex.flake = false;
cmp-vimtex.url = "github:micangl/cmp-vimtex";
# river # river
river.url = "git+https://github.com/riverwm/river?submodules=1"; river.url = "git+https://github.com/riverwm/river?submodules=1";
@ -116,6 +102,7 @@
packages = with pkgs; [ packages = with pkgs; [
stylua stylua
sumneko-lua-language-server sumneko-lua-language-server
nixpkgs-fmt
]; ];
}; };
@ -153,7 +140,9 @@
useGlobalPkgs = true; useGlobalPkgs = true;
useUserPackages = true; useUserPackages = true;
extraSpecialArgs = { inherit inputs self; }; extraSpecialArgs = { inherit inputs self; };
sharedModules = [ inputs.nix-lazy-nvim.homeManagerModules.default ]; sharedModules = [
inputs.nixvim.homeManagerModules.nixvim
];
}; };
} }
inputs.agenix.nixosModules.age inputs.agenix.nixosModules.age

View File

@ -137,6 +137,7 @@
boot = { boot = {
supportedFilesystems = [ "zfs" ]; supportedFilesystems = [ "zfs" ];
loader.systemd-boot.enable = true; loader.systemd-boot.enable = true;
loader.efi.canTouchEfiVariables = true;
}; };
# SERVICES # SERVICES

View File

@ -1,4 +1,4 @@
{ lib, ... }: { lib, pkgs, ... }:
{ {
# needed for zfs pool # needed for zfs pool
@ -76,9 +76,27 @@
}; };
}; };
# rollback to blank # rollback to blank
boot.initrd.postDeviceCommands = lib.mkAfter '' boot.initrd.systemd.services.rollback = {
zfs rollback -r zroot/encrypted/root@blank description = "Rollback ZFS datasets to a pristine state";
''; wantedBy = [
"initrd.target"
];
after = [
"zfs-import-zroot.service"
];
before = [
"sysroot.mount"
];
path = with pkgs; [
zfs
];
unitConfig.DefaultDependencies = "no";
serviceConfig.Type = "oneshot";
script = ''
zfs rollback -r zroot/encrypted/root@blank && echo "rollback complete"
'';
};
boot.initrd.systemd.enable = true;
fileSystems."/persist".neededForBoot = true; fileSystems."/persist".neededForBoot = true;
# HACK: to fix issue of agenix running before impermanence # HACK: to fix issue of agenix running before impermanence
age.identityPaths = [ age.identityPaths = [

View File

@ -6,51 +6,56 @@ let
cfg = config.my.programs.nvim; cfg = config.my.programs.nvim;
in in
{ {
imports = lib.my.listModulesRec ./plugins; imports = lib.my.listModulesRec ./new_plugins;
options.my.programs.nvim.enable = mkEnableOption "nvim"; options.my.programs.nvim.enable = mkEnableOption "nvim";
config = mkIf cfg.enable { config = mkIf cfg.enable {
home-manager.users.moritz = { home-manager.users.moritz = {
xdg.configFile."nvim/snippets" = {
recursive = true;
source = ./plugins/snippets;
};
home.packages = with pkgs; [ home.packages = with pkgs; [
xdotool # for vimtex xdotool # for vimtex
]; ];
programs.neovim = { # programs.neovim = {
# extraPackages = with pkgs;
# [
# alejandra
# checkmake
# codespell
# deadnix
# dotenv-linter
# fish
# jq
# nil
# nixd
# nixpkgs-fmt
# nodePackages.bash-language-server
# python3Packages.python-lsp-server
# shellcheck
# shfmt
# stable.yamlfix
# statix
# taplo
# yamllint
# ];
# };
programs.nixvim = {
enable = true; enable = true;
package = inputs.neovim-nightly-overlay.packages.${pkgs.system}.default; package = inputs.neovim-nightly-overlay.packages.${pkgs.system}.default;
vimAlias = true; vimAlias = true;
vimdiffAlias = true; extraConfigLuaPre = readFile ./options.lua;
withNodeJs = true; performance = {
withPython3 = true; byteCompileLua = {
extraPackages = with pkgs; enable = true;
[ configs = true;
alejandra initLua = true;
checkmake nvimRuntime = true;
codespell plugins = true;
deadnix };
dotenv-linter combinePlugins.enable = true;
fish };
jq
nil
nixd
nixpkgs-fmt
nodePackages.bash-language-server
python3Packages.python-lsp-server
shellcheck
shfmt
stable.yamlfix
statix
taplo
yamllint
];
extraLuaConfig = readFile ./options.lua;
lazy.enable = true;
}; };
}; };
}; };

View File

@ -0,0 +1,37 @@
{ config, lib, pkgs, inputs, ... }:
let
inherit (lib) mkEnableOption mkIf readFile;
in
{
home-manager.users.moritz.programs.nixvim = {
extraPlugins = with pkgs.vimPlugins; [
nui-nvim
render-markdown-nvim
avante-nvim
];
extraConfigLuaPost = ''
require("render-markdown").setup({ file_types = {"markdown", "Avante"} })
require("avante_lib").load()
require("avante").setup({
provider = "openai",
auto_suggestions_provider = "openai",
behaviour = {
-- auto_suggestions = true,
},
openai = {
model = "gpt-4o",
api_key_name = "cmd:cat /run/agenix/openai"
}
})
'';
# plugins.copilot-lua.enable = true;
# plugins.copilot-lua.suggestion.enabled = false;
# plugins.copilot-lua.panel.enabled = false;
plugins.dressing.enable = true;
# performance.combinePlugins.standalonePlugins = [ "copilot.lua" ];
};
age.secrets."openai".file = ../../../../secrets/openai.age;
age.secrets."openai".owner = "moritz";
}

View File

@ -0,0 +1,15 @@
{ config, lib, pkgs, inputs, ... }:
let
inherit (lib) mkEnableOption mkIf readFile;
in
{
home-manager.users.moritz.programs.nixvim = {
colorschemes.catppuccin = {
enable = true;
settings.flavour = "macchiato";
};
};
}

View File

@ -0,0 +1,77 @@
{ config, lib, pkgs, inputs, ... }:
let
inherit (lib) mkEnableOption mkIf readFile;
in
{
home-manager.users.moritz.programs.nixvim = {
extraConfigLuaPre = ''
local has_words_before = function()
if vim.api.nvim_buf_get_option(0, "buftype") == "prompt" then
return false
end
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
return col ~= 0 and vim.api.nvim_buf_get_text(0, line-1, 0, line-1, col, {})[1]:match("^%s@*$") == nil
end
'';
plugins.cmp = {
autoEnableSources = true;
enable = true;
settings.sources = [
{ priority = 1; name = "async_path"; }
{ priority = 1; name = "buffer"; }
{ priority = 2; name = "nvim_lsp"; }
{ priority = 3; name = "nvim_lsp_signature_help"; }
{ priority = 4; name = "luasnip"; }
{ priority = 4; name = "vimtex"; }
];
settings.mapping = {
__raw = ''
cmp.mapping.preset.insert({
['<C-b>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete(),
['<C-e>'] = cmp.mapping.abort(),
['<CR>'] = cmp.mapping.confirm({ select = true }),
["<Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item({ behavior = cmp.SelectBehavior.Select })
elseif require("luasnip").locally_jumpable(1) and has_words_before() then
require("luasnip").jump(1)
else
fallback()
end
end, { "i", "s" }),
["<S-Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item({ behavior = cmp.SelectBehavior.Select })
elseif require("luasnip").locally_jumpable(-1) then
require("luasnip").jump(-1)
else
fallback()
end
end, { "i", "s" }),
["<C-n>"] = cmp.mapping(function(fallback)
if require("luasnip").choice_active() then
require("luasnip").change_choice(1)
elseif require("luasnip").locally_jumpable(1) then
require("luasnip").jump(1)
else
fallback()
end
end, { "i", "s" }),
["<C-p>"] = cmp.mapping(function(fallback)
if require("luasnip").choice_active() then
require("luasnip").change_choice(-1)
elseif require("luasnip").locally_jumpable(-1) then
require("luasnip").jump(-1)
else
fallback()
end
end, { "i", "s" }),
})
'';
};
};
};
}

View File

@ -0,0 +1,73 @@
{ config, lib, pkgs, inputs, ... }:
let
inherit (lib) mkEnableOption mkIf readFile;
in
{
home-manager.users.moritz.programs.nixvim = {
plugins.conform-nvim = {
enable = true;
settings.formatters_by_ft = {
"*" = [ "codespell" "trim_whitespace" ];
elixir = [ "mix" ];
gleam = [ "gleam" ];
go = [ "gofmt" ];
json = [ "jq" ];
lua = [ "stylua" ];
nix.__raw = ''{ "nixpkgs_fmt", "alejandra", stop_after_first=true }'';
python.__raw = ''
function(bufnr)
return { first("ruff_organize_imports", "isort"), first("ruff_format", "black")}
end
'';
rust = [ "rustfmt" ];
sh = [ "shfmt" ];
tex = [ "latexindent" ];
toml = [ "taplo" ];
yaml = [ "yamlfix" ];
};
};
opts.formatexpr = "v:lua.require'conform'.formatexpr()";
extraConfigLuaPre = ''
---@param bufnr integer
---@param ... string
---@return string
local function first(bufnr, ...)
local conform = require("conform")
for i = 1, select("#", ...) do
local formatter = select(i, ...)
if conform.get_formatter_info(formatter, bufnr).available then
return formatter
end
end
return select(1, ...)
end
vim.api.nvim_create_user_command("Format", function(opts)
require("conform").format({ formatters = opts.fargs })
end, {
nargs = "+",
complete = function()
local formatters_by_ft = require("conform").formatters_by_ft
local names = formatters_by_ft[vim.bo.filetype] or formatters_by_ft["_"] or {}
names = vim.list_extend(names, formatters_by_ft["*"] or {})
names = vim.tbl_flatten(names)
local formatters = vim.tbl_map(require("conform").get_formatter_info, names)
formatters = vim.tbl_filter(function(formatter)
return formatter.available
end, formatters)
return vim.tbl_map(function(formatter_info)
return formatter_info.name
end, formatters)
end,
})
'';
performance.combinePlugins.standalonePlugins = [
"conform.nvim"
];
keymaps = [
{ key = "<leader>cf"; action.__raw = ''function() require("conform").format() end''; options.desc = "Format current file"; }
];
};
}

View File

@ -0,0 +1,33 @@
{ config, lib, pkgs, inputs, ... }:
let
inherit (lib) mkEnableOption mkIf readFile;
in
{
home-manager.users.moritz.programs.nixvim = {
plugins.lsp = {
enable = true;
inlayHints = true;
servers.elixirls.enable = true;
servers.nextls.enable = true;
servers.nil-ls.enable = true;
servers.nixd.enable = true;
servers.nixd.extraOptions.settings.nixd = {
nixpkgs = {
expr = "import <nixpkgs> { }";
};
options = {
nixos = {
expr = ''(builtins.getFlake ("git+file://" + toString ./.)).nixosConfigurations.nixos-desktop.options'';
};
"flake-parts" = {
expr = ''(builtins.getFlake ("git+file://" + toString ./.)).debug.options'';
};
"flake-parts2" = {
expr = ''(builtins.getFlake ("git+file://" + toString ./.)).currentSystem.options'';
};
};
};
};
};
}

View File

@ -0,0 +1,45 @@
{ config, lib, pkgs, inputs, ... }:
let
inherit (lib) mkEnableOption mkIf readFile;
in
{
home-manager.users.moritz.programs.nixvim = {
plugins = {
lspsaga = {
enable = true;
codeAction.keys.quit = "<esc>";
lightbulb.virtualText = false;
};
web-devicons.enable = true;
};
keymapsOnEvents = {
LspAttach = [
{
key = "<leader>cc";
action = "<cmd>Lspsaga code_action<cr>";
options.desc = "Code Action";
options.buffer = true;
}
{
key = "gd";
action = "<cmd>Lspsaga goto_definition<cr>";
options.desc = "Goto Definition";
options.buffer = true;
}
{
key = "<leader>cr";
action = "<cmd>Lspsaga rename<cr>";
options.desc = "Rename";
options.buffer = true;
}
{
key = "K";
action = "<cmd>Lspsaga hover_doc<cr>";
options.desc = "Hover";
options.buffer = true;
}
];
};
};
}

View File

@ -0,0 +1,10 @@
{ config, lib, pkgs, inputs, ... }:
let
inherit (lib) mkEnableOption mkIf readFile;
in
{
home-manager.users.moritz.programs.nixvim = {
plugins.lualine.enable = true;
};
}

View File

@ -0,0 +1,38 @@
{ config, lib, pkgs, inputs, ... }:
let
inherit (lib) mkEnableOption mkIf readFile;
in
{
home-manager.users.moritz = {
xdg.configFile."nvim/snippets" = {
recursive = true;
source = ../snippets;
};
programs.nixvim = {
plugins.luasnip = {
enable = true;
settings = {
history = true;
update_events = "TextChanged,TextChangedI";
delete_check_events = "TextChanged";
ext_opts.__raw = ''
{
[require("luasnip.util.types").choiceNode] = {
active = {
virt_text = { { "<--", "Error" } },
},
},
}
'';
ft_func.__raw = ''require("luasnip.extras.filetype_functions").from_pos_or_filetype'';
};
};
extraConfigLuaPost = ''
require("luasnip.loaders.from_lua").load({ paths = "~/.config/nvim/snippets" })
require("luasnip.loaders.from_snipmate").lazy_load({ paths = "~/.config/nvim/snippets" })
require("luasnip.loaders.from_vscode").lazy_load()
'';
};
};
}

View File

@ -0,0 +1,10 @@
{ config, lib, pkgs, inputs, ... }:
let
inherit (lib) mkEnableOption mkIf readFile;
in
{
home-manager.users.moritz.programs.nixvim = {
plugins.nvim-ufo.enable = true;
};
}

View File

@ -0,0 +1,89 @@
{ config, lib, pkgs, inputs, ... }:
let
inherit (lib) mkEnableOption mkIf readFile;
in
{
home-manager.users.moritz = {
programs.nixvim = lib.mkMerge [
{ plugins.which-key.enable = true; }
{ plugins.lastplace.enable = true; }
{ plugins.comment.enable = true; }
{ plugins.ts-context-commentstring.enable = true; }
{
plugins.vimtex = {
enable = true;
settings.view_method = "zathura";
};
}
{
plugins.todo-comments = {
enable = true;
keymaps.todoTelescope.key = "<leader>fc";
};
}
{
keymaps = [
{ key = "<esc>"; action = "<cmd>noh<cr><esc>"; options.desc = "Escape and clear hlsearch"; mode = [ "i" "n" ]; }
];
}
{ plugins.oil.enable = true; }
{
plugins = {
telescope = {
enable = true;
extensions.fzf-native.enable = true;
keymaps = {
"<leader>ff" = {
action = "find_files";
options.desc = "Find files";
};
"<leader>fb" = {
action = "buffers";
options.desc = "Find buffers";
};
"<leader>fl" = {
action = "current_buffer_fuzzy_find";
options.desc = "Search lines";
};
"<leader>fg" = {
action = "live_grep";
options.desc = "Live grep";
};
"<leader>fh" = {
action = "help_tags";
options.desc = "Help tags";
};
"<leader>fr" = {
action = "oldfiles";
options.desc = "Recent files";
};
};
};
web-devicons.enable = true;
};
}
{ plugins.nvim-autopairs.enable = true; }
{ plugins.vim-surround.enable = true; }
{
plugins.lint.enable = true;
# TODO: add linters
plugins.lint.lintersByFt = { };
}
{
plugins.marks.enable = true;
plugins.marks.defaultMappings = false;
}
{
plugins.hmts.enable = true;
performance.combinePlugins.standalonePlugins = [ "hmts.nvim" ];
}
{ plugins.gitsigns.enable = true; }
{ plugins.fugitive.enable = true; }
{ plugins.friendly-snippets.enable = true; }
{ plugins.direnv.enable = true; }
{ plugins.crates-nvim.enable = true; }
];
};
}

View File

@ -0,0 +1,19 @@
{ config, lib, pkgs, inputs, ... }:
let
inherit (lib) mkEnableOption mkIf readFile;
in
{
home-manager.users.moritz.programs.nixvim = {
plugins.treesitter = {
enable = true;
folding = true;
nixvimInjections = true;
settings.indent.enable = true;
settings.highlight.enable = true;
};
performance.combinePlugins.standalonePlugins = [
"nvim-treesitter"
];
};
}

View File

@ -23,6 +23,7 @@ vim.opt.termguicolors = true
vim.opt.undofile = true vim.opt.undofile = true
vim.opt.undolevels = 10000 vim.opt.undolevels = 10000
vim.opt.updatetime = 300 vim.opt.updatetime = 300
vim.opt.foldlevel = 99
vim.opt_local.spell = true vim.opt_local.spell = true
vim.opt_local.spelllang = { "en", "de_20" } -- all English regions and new German spelling vim.opt_local.spelllang = { "en", "de_20" } -- all English regions and new German spelling

View File

@ -1,46 +0,0 @@
local ls = require("luasnip")
local s = ls.snippet
local sn = ls.snippet_node
local isn = ls.indent_snippet_node
local t = ls.text_node
local i = ls.insert_node
local f = ls.function_node
local c = ls.choice_node
local d = ls.dynamic_node
local r = ls.restore_node
local events = require("luasnip.util.events")
local ai = require("luasnip.nodes.absolute_indexer")
local extras = require("luasnip.extras")
local l = extras.lambda
local rep = extras.rep
local p = extras.partial
local m = extras.match
local n = extras.nonempty
local dl = extras.dynamic_lambda
local fmt = require("luasnip.extras.fmt").fmt
local fmta = require("luasnip.extras.fmt").fmta
local conds = require("luasnip.extras.expand_conditions")
local postfix = require("luasnip.extras.postfix").postfix
local types = require("luasnip.util.types")
local parse = require("luasnip.util.parser").parse_snippet
local ms = ls.multi_snippet
local k = require("luasnip.nodes.key_indexer").new_key
local def_template = [[
def {fname}({args}) do
{final}
end
]]
local def = s(
"def",
fmt(def_template, {
fname = i(1, "fname"),
args = i(2),
final = i(3),
}, { priority = 1001 })
)
return {
def,
}

View File

@ -0,0 +1,71 @@
snippet defmodule "Define a new module"
defmodule ${1} do
${2}
end
snippet def "Define a function"
def ${1} do
${2}
end
snippet defw "Define a function with guard"
def ${1}(${2}) when ${3} do
${4}
end
snippet defa "Define a function with arguments"
def ${1}(${2}) do
${3}
end
snippet defp "Define a private function"
defp ${1} do
${2}
end
snippet defpw "Define a private function with guard"
defp ${1}(${2}) when ${3} do
${4}
end
snippet defpa "Define a private function with arguments"
defp ${1}(${2}) do
${3}
end
snippet defmacro "Define a macro"
defmacro ${1}(${2}) do
${3}
end
snippet defmacrow "Define a macro with guard"
defmacro ${1}(${2}) when ${3} do
${4}
end
snippet quote "Quote block"
quote do
${1}
end
snippet quoteb "Quote block with bind_quoted"
quote bind_quoted: [${1}] do
${2}
end
snippet do "Do block"
do
${1}
end
snippet if "If block"
if ${1} do
${2}
end
snippet ife "If-Else block"
if ${1} do
${2}
else
${3}
end

View File

@ -0,0 +1,7 @@
snippet snip
snippet ${1:trigger} "${2:description}"
${0:${VISUAL}}
snippet v
{VISUAL}
snippet $
${${1:1}:${0:text}}

View File

@ -152,14 +152,6 @@ in
# add waybar as a status bar # add waybar as a status bar
programs.waybar = { programs.waybar = {
enable = true; enable = true;
package = pkgs.waybar.overrideAttrs (old: {
patches = old.patches or [ ] ++ [
(pkgs.fetchpatch {
url = "https://gitlab.archlinux.org/archlinux/packaging/packages/waybar/-/raw/0306af03fcb6de6aee1e288f42b0bf1b223513bd/a544f4b2cdcf632f1a4424b89f6e3d85ef5aaa85.patch";
sha256 = "sha256-S/1oUj9Aj6BElNTsDY8CTcKtS1j7Gl54JFgCywH05pg=";
})
];
});
# start using systemd service # start using systemd service
systemd = { systemd = {

BIN
secrets/openai.age Normal file

Binary file not shown.

View File

@ -26,4 +26,5 @@ in
"root-password.age".publicKeys = personal; "root-password.age".publicKeys = personal;
"moritz-password.age".publicKeys = personal; "moritz-password.age".publicKeys = personal;
"exercism.age".publicKeys = personal; "exercism.age".publicKeys = personal;
"openai.age".publicKeys = personal;
} }