diff options
| author | adikro <adikro@disroot.org> | 2026-05-09 21:06:23 +0200 |
|---|---|---|
| committer | adikro <adikro@disroot.org> | 2026-05-09 21:06:23 +0200 |
| commit | baf1cf5664b481de17849c97dc683fa81ade1c2e (patch) | |
| tree | 0836096c9104559d27341d7b99c7c032cf0743ef | |
| parent | 18e7f651ce33b1544178f444c6bd3fbaf44fc831 (diff) | |
laptop sync
| -rw-r--r-- | flake.lock | 390 | ||||
| -rw-r--r-- | flake.nix | 28 | ||||
| -rw-r--r-- | hm/soft/nixvim/binds.nix | 0 | ||||
| -rw-r--r-- | hm/soft/nixvim/nixvim.nix | 270 | ||||
| -rw-r--r-- | hm/soft/soft.nix | 2 | ||||
| -rw-r--r-- | hosts/desktop/configuration.nix | 35 | ||||
| -rw-r--r-- | hosts/desktop/home.nix | 4 | ||||
| -rw-r--r-- | os/srv/default.nix | 2 | ||||
| -rw-r--r-- | os/srv/opnsense.nix | 102 |
9 files changed, 770 insertions, 63 deletions
@@ -138,6 +138,22 @@ "flake-compat": { "flake": false, "locked": { + "lastModified": 1751685974, + "narHash": "sha256-NKw96t+BgHIYzHUjkTK95FqYRVKB8DHpVhefWSz/kTw=", + "ref": "refs/heads/main", + "rev": "549f2762aebeff29a2e5ece7a7dc0f955281a1d1", + "revCount": 92, + "type": "git", + "url": "https://git.lix.systems/lix-project/flake-compat.git" + }, + "original": { + "type": "git", + "url": "https://git.lix.systems/lix-project/flake-compat.git" + } + }, + "flake-compat_2": { + "flake": false, + "locked": { "lastModified": 1650374568, "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", "owner": "edolstra", @@ -151,7 +167,7 @@ "type": "github" } }, - "flake-compat_2": { + "flake-compat_3": { "flake": false, "locked": { "lastModified": 1767039857, @@ -169,6 +185,69 @@ }, "flake-parts": { "inputs": { + "nixpkgs-lib": [ + "neovim-nightly-overlay", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1777988971, + "narHash": "sha256-qIoWPDs+0/8JecyYgE3gpKQxW/4bLW/gp45vow9ioCQ=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "0678d8986be1661af6bb555f3489f2fdfc31f6ff", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_2": { + "inputs": { + "nixpkgs-lib": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1777932387, + "narHash": "sha256-nUYVPiqrzr36ThiQOAr5MKeGHDBSDM3OFWkz0uDjOvc=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "71a3a77326609675e9f8b51084cf23d5d1945899", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_3": { + "inputs": { + "nixpkgs-lib": [ + "nvf", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1769996383, + "narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "57928607ea566b5db3ad13af0e57e921e6b12381", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_4": { + "inputs": { "nixpkgs-lib": "nixpkgs-lib" }, "locked": { @@ -224,7 +303,7 @@ }, "flake-utils_2": { "inputs": { - "systems": "systems_2" + "systems": "systems_4" }, "locked": { "lastModified": 1694529238, @@ -242,7 +321,7 @@ }, "flake-utils_3": { "inputs": { - "systems": "systems_5" + "systems": "systems_7" }, "locked": { "lastModified": 1731533236, @@ -284,11 +363,11 @@ ] }, "locked": { - "lastModified": 1776619539, - "narHash": "sha256-pBQMSlEUICEfmzA+oSonzH0JlAcBjsVE0gT0QwsTNFE=", + "lastModified": 1778271343, + "narHash": "sha256-K1j+PHOkH21qlw0MfxZx23i2jUeRpuv3hdrXyUXyBZ8=", "owner": "Mjoyufull", "repo": "fsel", - "rev": "ad49c5d96bb1b1b738c5ce6f4410ecffea8adb5c", + "rev": "8ebaea09f0ec25fa940aefc3adad07f45909c289", "type": "github" }, "original": { @@ -304,11 +383,11 @@ ] }, "locked": { - "lastModified": 1777780644, - "narHash": "sha256-CYpc+mk28rmcQWGygeM8CA+Z8SZYy8BOyQtiW18spao=", + "lastModified": 1778248595, + "narHash": "sha256-dhFgEjoeJMYN/7OY6xfxS799YB4IjbbYXTjyGIJyLpc=", "owner": "nix-community", "repo": "home-manager", - "rev": "b9311028044a9e9b2cf27db15ef0a87d464e212d", + "rev": "fdb2ccba9d5e1238d32e0c4a3ec1a277efa80c1d", "type": "github" }, "original": { @@ -424,6 +503,27 @@ "type": "github" } }, + "microvm": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ], + "spectrum": "spectrum" + }, + "locked": { + "lastModified": 1778200184, + "narHash": "sha256-WL0cPwbYms7fUVTWnnayo4DhXeNPOfL1a8RDPBuAzBc=", + "owner": "microvm-nix", + "repo": "microvm.nix", + "rev": "b00d7c12745b15442c618c7e23f2d7442d7a51da", + "type": "github" + }, + "original": { + "owner": "microvm-nix", + "repo": "microvm.nix", + "type": "github" + } + }, "millennium": { "inputs": { "abseil-src": "abseil-src", @@ -449,11 +549,11 @@ }, "locked": { "dir": "packages/nix", - "lastModified": 1777567645, - "narHash": "sha256-ccIaFXZnxFBwQh3xF63CerpzqU3QHm8IM3tyQ43WPJk=", + "lastModified": 1778009348, + "narHash": "sha256-hIjlaMu6ildZqBMpxRVieHAGUjxsFSgWi24QMmpqM+Y=", "owner": "SteamClientHomebrew", "repo": "Millennium", - "rev": "fcb0e5627deecf2fc03067ee3dfb63d37e8e82d4", + "rev": "e2c66a276e579ee73c5151b01897bf63503aa12c", "type": "github" }, "original": { @@ -466,17 +566,17 @@ "millennium-src": { "flake": false, "locked": { - "lastModified": 1770463863, - "narHash": "sha256-MceGTpXobCAh5Ll/1iTWcEf6/nHY3Ll1t06JxbYc+Co=", + "lastModified": 1777483535, + "narHash": "sha256-eqbNqc+5PibHLI8xgOrizXOVLcpE52MhmUR4o40S3PY=", "owner": "SteamClientHomebrew", "repo": "Millennium", - "rev": "1bc62c94a06f25f7e8d7e269f11cd968cf576bff", + "rev": "defffd7b6f0cf4d5e53f5a892819966801475704", "type": "github" }, "original": { "owner": "SteamClientHomebrew", "repo": "Millennium", - "rev": "1bc62c94a06f25f7e8d7e269f11cd968cf576bff", + "rev": "defffd7b6f0cf4d5e53f5a892819966801475704", "type": "github" } }, @@ -531,6 +631,21 @@ "type": "github" } }, + "mnw": { + "locked": { + "lastModified": 1777828893, + "narHash": "sha256-gVWVnmyNr74BVKfhMMZDWkhx2699dhmZ2g0W8TTHtkk=", + "owner": "Gerg-L", + "repo": "mnw", + "rev": "c1c0b544bfabe6669b5a6a0383ccb475fe60258b", + "type": "github" + }, + "original": { + "owner": "Gerg-L", + "repo": "mnw", + "type": "github" + } + }, "mygui": { "locked": { "lastModified": 1716480759, @@ -566,6 +681,66 @@ "type": "github" } }, + "ndg": { + "inputs": { + "nixpkgs": [ + "nvf", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1776882296, + "narHash": "sha256-DWZozXwMsgvUqfVlL1mQ8dOxW7GJ/8CdyaDN+1niZRg=", + "owner": "feel-co", + "repo": "ndg", + "rev": "ab7d78d4884b3a34968cf9fa3d16c0c1246d5c6e", + "type": "github" + }, + "original": { + "owner": "feel-co", + "ref": "refs/tags/v2.6.0", + "repo": "ndg", + "type": "github" + } + }, + "neovim-nightly-overlay": { + "inputs": { + "flake-parts": "flake-parts", + "neovim-src": "neovim-src", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1778285091, + "narHash": "sha256-4YwkGkjvLD0EB7rQGCRA9J/zgwrnTL20dJd7Wmnicj0=", + "owner": "nix-community", + "repo": "neovim-nightly-overlay", + "rev": "cca2a2d1c03f763fdcd7066791363d792313c641", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "neovim-nightly-overlay", + "type": "github" + } + }, + "neovim-src": { + "flake": false, + "locked": { + "lastModified": 1778266020, + "narHash": "sha256-qoydKalrn/QGsGYVRicz0Hzb7bfGmV7Z9CnVONXN/Lc=", + "owner": "neovim", + "repo": "neovim", + "rev": "b7d8a41d91dcfebe9a5f3d0cf2f0bb0b8d59e32e", + "type": "github" + }, + "original": { + "owner": "neovim", + "repo": "neovim", + "type": "github" + } + }, "niri": { "inputs": { "niri-stable": "niri-stable", @@ -578,11 +753,11 @@ "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1777737732, - "narHash": "sha256-k5mLtKOpLNdhMHY1TPGcAFefnWDctZsYQ6X4YDvLFhU=", + "lastModified": 1778224717, + "narHash": "sha256-lzpzFAinsI1YriR+iVDIDZVkps2oQw1LG2QvFcDVYCk=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "73b10d69d6c8b3836ff6581004024282f0a4cd15", + "rev": "cb2fdda815a0c2c03f8a7fe7075c433d4ef37110", "type": "github" }, "original": { @@ -611,11 +786,11 @@ "niri-unstable": { "flake": false, "locked": { - "lastModified": 1777733745, - "narHash": "sha256-1TlpdT0WYyBGtUS3PH4oXHUmdno2EUh2TfHadK2BmJo=", + "lastModified": 1778221858, + "narHash": "sha256-+nZlx8MKCs973N9Bm0hNzFHjY+2lmBrBOQeTALeCRhI=", "owner": "YaLTeR", "repo": "niri", - "rev": "1f07cffa9f355298a31d7efe1b400ede93a97728", + "rev": "0200670d9ee8cfbdb154e3e14d92b5ff61aedd59", "type": "github" }, "original": { @@ -632,11 +807,11 @@ ] }, "locked": { - "lastModified": 1777730630, - "narHash": "sha256-bRJ0gAxAMtv6X4sFgiJfEZMRaHxzT37yp6Mj0rAULcI=", + "lastModified": 1778049347, + "narHash": "sha256-K2fq6fo9hmg/lGbhxhmz8Ut7vnkeNEJ60SsFEvOMnSI=", "owner": "powerofthe69", "repo": "nix-gaming-edge", - "rev": "78319d4a685238bb5611dc7a35d6ca812a035af4", + "rev": "207a734bda5bf6631a7e8744e9e9d98c901d4ee8", "type": "github" }, "original": { @@ -647,11 +822,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1776983936, - "narHash": "sha256-ZOQyNqSvJ8UdrrqU1p7vaFcdL53idK+LOM8oRWEWh6o=", + "lastModified": 1778143761, + "narHash": "sha256-lkesY6x2X2qxlqLM7CT2iM/0rP2JB7fruPN3h8POXmI=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "2096f3f411ce46e88a79ae4eafcfc9df8ed41c61", + "rev": "3bcaa367d4c550d687a17ac792fd5cda214ee871", "type": "github" }, "original": { @@ -694,11 +869,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1777428379, - "narHash": "sha256-ypxFOeDz+CqADEQNL72haqGjvZQdBR5Vc7pyx2JDttI=", + "lastModified": 1778003029, + "narHash": "sha256-q/nkKLDtHIyLjZpKhWk3cSK5IYsFqtMd6UtXF3ddjgA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "755f5aa91337890c432639c60b6064bb7fe67769", + "rev": "0c88e1f2bdb93d5999019e99cb0e61e1fe2af4c5", "type": "github" }, "original": { @@ -710,11 +885,11 @@ }, "nixpkgs-stable_2": { "locked": { - "lastModified": 1777428379, - "narHash": "sha256-ypxFOeDz+CqADEQNL72haqGjvZQdBR5Vc7pyx2JDttI=", + "lastModified": 1778003029, + "narHash": "sha256-q/nkKLDtHIyLjZpKhWk3cSK5IYsFqtMd6UtXF3ddjgA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "755f5aa91337890c432639c60b6064bb7fe67769", + "rev": "0c88e1f2bdb93d5999019e99cb0e61e1fe2af4c5", "type": "github" }, "original": { @@ -726,11 +901,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1777578337, - "narHash": "sha256-Ad49moKWeXtKBJNy2ebiTQUEgdLyvGmTeykAQ9xM+Z4=", + "lastModified": 1777954456, + "narHash": "sha256-hGdgeU2Nk87RAuZyYjyDjFL6LK7dAZN5RE9+hrDTkDU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "15f4ee454b1dce334612fa6843b3e05cf546efab", + "rev": "549bd84d6279f9852cae6225e372cc67fb91a4c1", "type": "github" }, "original": { @@ -756,6 +931,53 @@ "type": "github" } }, + "nixvim": { + "inputs": { + "flake-parts": "flake-parts_2", + "nixpkgs": [ + "nixpkgs" + ], + "systems": "systems_2" + }, + "locked": { + "lastModified": 1777991353, + "narHash": "sha256-DFwjggMV+nzCZpwK6Obxj9F+P59rbLVowGqHETfctBk=", + "owner": "nix-community", + "repo": "nixvim", + "rev": "7986a276960b4dfaed9bb2c3c438b5ba71ae08f1", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixvim", + "type": "github" + } + }, + "nvf": { + "inputs": { + "flake-compat": "flake-compat", + "flake-parts": "flake-parts_3", + "mnw": "mnw", + "ndg": "ndg", + "nixpkgs": [ + "nixpkgs" + ], + "systems": "systems_3" + }, + "locked": { + "lastModified": 1778049651, + "narHash": "sha256-EC5pBiLcP/EVmYWldJRNfkChCqF9rkeTnTs8t9Cs+ZY=", + "owner": "NotAShelf", + "repo": "nvf", + "rev": "88dbbad1f44efe3d2c18903e2c7542452f7bdfd6", + "type": "github" + }, + "original": { + "owner": "NotAShelf", + "repo": "nvf", + "type": "github" + } + }, "omnisearch": { "inputs": { "beaker-src": "beaker-src", @@ -804,19 +1026,19 @@ }, "otter-launcher": { "inputs": { - "flake-parts": "flake-parts", + "flake-parts": "flake-parts_4", "home-manager": "home-manager_2", "nixpkgs": [ "nixpkgs" ], - "systems": "systems_3" + "systems": "systems_5" }, "locked": { - "lastModified": 1776906414, - "narHash": "sha256-ImJeI5xbd/w4nchFwc0tSS8v2vYWx/ttwM5uk2BWsCk=", + "lastModified": 1777820061, + "narHash": "sha256-qcfN5FZTP8kdNRiY0FkSoPvuzD4aHCYnFxi1RYCUyrM=", "owner": "kuokuo123", "repo": "otter-launcher", - "rev": "ae647cef5b3c3dd52bedd7a8c881988e412a2dca", + "rev": "332850257a5f33198f96ed2d308b31bb4c95c497", "type": "github" }, "original": { @@ -847,11 +1069,15 @@ "disko": "disko", "fsel": "fsel", "home-manager": "home-manager", + "microvm": "microvm", + "neovim-nightly-overlay": "neovim-nightly-overlay", "niri": "niri", "nix-gaming-edge": "nix-gaming-edge", "nixos-hardware": "nixos-hardware", "nixpkgs": "nixpkgs_2", "nixpkgs-stable": "nixpkgs-stable_2", + "nixvim": "nixvim", + "nvf": "nvf", "omnisearch": "omnisearch", "openmw-nix": "openmw-nix", "otter-launcher": "otter-launcher", @@ -943,11 +1169,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1777353605, - "narHash": "sha256-Pphmz7gGuPlDRuy7Lr2BSPV9rAH3aCJLYb0+1u8DKjM=", + "lastModified": 1778159223, + "narHash": "sha256-zJIgSc4MlL4Yewvg2meMFMcaeoASSDxqb0tv7xT/5l4=", "owner": "gabm", "repo": "Satty", - "rev": "951e91287412f941bbe1a0f5dd0e4e0d43192cb3", + "rev": "772edbc801c3aca16ea7c73848f147b88868dc61", "type": "github" }, "original": { @@ -958,7 +1184,7 @@ }, "snowfall-lib": { "inputs": { - "flake-compat": "flake-compat", + "flake-compat": "flake-compat_2", "flake-utils-plus": "flake-utils-plus", "nixpkgs": [ "openmw-nix", @@ -986,11 +1212,11 @@ ] }, "locked": { - "lastModified": 1777338324, - "narHash": "sha256-bc+ZZCmOTNq86/svGnw0tVpH7vJaLYvGLLKFYP08Q8E=", + "lastModified": 1777944972, + "narHash": "sha256-VfGRo1qTBKOe3s2gOv8LSoA6Fk19PvBlwQ1ECN0Evn8=", "owner": "Mic92", "repo": "sops-nix", - "rev": "8eaee5c45428b28b8c47a83e4c09dccec5f279b5", + "rev": "c591bf665727040c6cc5cb409079acb22dcce33c", "type": "github" }, "original": { @@ -999,12 +1225,28 @@ "type": "github" } }, + "spectrum": { + "flake": false, + "locked": { + "lastModified": 1772189877, + "narHash": "sha256-i1p90Rgssb//aNiTDFq46ZG/fk3LmyRLChtp/9lddyA=", + "ref": "refs/heads/main", + "rev": "fe39e122d898f66e89ffa17d4f4209989ccb5358", + "revCount": 1255, + "type": "git", + "url": "https://spectrum-os.org/git/spectrum" + }, + "original": { + "type": "git", + "url": "https://spectrum-os.org/git/spectrum" + } + }, "spicetify-nix": { "inputs": { "nixpkgs": [ "nixpkgs" ], - "systems": "systems_4" + "systems": "systems_6" }, "locked": { "lastModified": 1777789800, @@ -1052,6 +1294,36 @@ }, "systems_3": { "locked": { + "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": 1689347949, "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", "owner": "nix-systems", @@ -1065,7 +1337,7 @@ "type": "github" } }, - "systems_4": { + "systems_6": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -1080,7 +1352,7 @@ "type": "github" } }, - "systems_5": { + "systems_7": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -1097,17 +1369,17 @@ }, "waybar": { "inputs": { - "flake-compat": "flake-compat_2", + "flake-compat": "flake-compat_3", "nixpkgs": [ "nixpkgs" ] }, "locked": { - "lastModified": 1776883848, - "narHash": "sha256-85yQuBRwF4lOHwDJzFFj8gSqwiOcbWZXLUex0ONZpTw=", + "lastModified": 1777929458, + "narHash": "sha256-51R3mIt8cLNvh/X5qe9vOqeJCj0U9KRyemVE5y+OhiU=", "owner": "Alexays", "repo": "Waybar", - "rev": "cca8dc38b6ed25ef78920669c5653748f31e4ba6", + "rev": "05945748dccce28bf96d26d8f64a9e69a8dd49ba", "type": "github" }, "original": { @@ -1175,11 +1447,11 @@ "rust-overlay": "rust-overlay_2" }, "locked": { - "lastModified": 1777731325, - "narHash": "sha256-GwkNEp/tPf2eDBTpTLpimTsKaH5enVuU4OM4AZ9ZKdc=", + "lastModified": 1778289967, + "narHash": "sha256-dOjtSPuMpCDUcVS6rHWcKdCc2Qn0aB+1g9rdmcJfRX4=", "owner": "sxyazi", "repo": "yazi", - "rev": "62dd22b8daee4fa90dfcc94b1d5d39e1ead3ba0e", + "rev": "92b9ea37945ed128a79ea96d58e182d9d09b7fd1", "type": "github" }, "original": { @@ -8,6 +8,11 @@ # Hardware and gaming nixos-hardware.url = "github:NixOS/nixos-hardware/master"; + microvm = { + url = "github:microvm-nix/microvm.nix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + openmw-nix = { url = "git+https://codeberg.org/PopeRigby/openmw-nix.git"; inputs.nixpkgs.follows = "nixpkgs"; @@ -76,6 +81,21 @@ url = "github:Mjoyufull/fsel"; inputs.nixpkgs.follows = "nixpkgs"; }; + + nixvim = { + url = "github:nix-community/nixvim"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + nvf = { + url = "github:NotAShelf/nvf"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + neovim-nightly-overlay = { + url = "github:nix-community/neovim-nightly-overlay"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; outputs = @@ -87,7 +107,13 @@ }@inputs: let unstablePkgs = import nixpkgs { }; - stablePkgs = import nixpkgs-stable { }; + stablePkgs = import nixpkgs-stable { + system = "x86_64-linux"; + config = { + allowUnfree = true; + permittedInsecurePackages = [ "netbox-4.3.7" ]; + }; + }; mkHost = { hostname, diff --git a/hm/soft/nixvim/binds.nix b/hm/soft/nixvim/binds.nix new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/hm/soft/nixvim/binds.nix diff --git a/hm/soft/nixvim/nixvim.nix b/hm/soft/nixvim/nixvim.nix new file mode 100644 index 0000000..65de006 --- /dev/null +++ b/hm/soft/nixvim/nixvim.nix @@ -0,0 +1,270 @@ +{ + inputs, + config, + lib, + pkgs, + ... +}: +let + cfg = config.hm.editors.nixvim; +in +{ + imports = [ inputs.nixvim.homeModules.nixvim ]; + + options.hm.editors.nixvim.enable = lib.mkEnableOption "enables nixvim config framework"; + + config = lib.mkIf cfg.enable { + programs.nixvim = { + diagnostics.virtual_text = false; + enable = true; + package = inputs.neovim-nightly-overlay.packages.${pkgs.system}.default; + + vimAlias = true; + defaultEditor = true; + waylandSupport = true; + colorschemes.gruvbox.enable = true; + + globals.mapleader = " "; + + clipboard = { + providers.wl-copy.enable = true; + register = "unnamedplus"; + }; + + opts = { + smartindent = true; + autoindent = true; + breakindent = true; + number = true; + relativenumber = true; + termguicolors = true; + ignorecase = true; + smartcase = true; + expandtab = true; + shiftwidth = 2; + encoding = "utf-8"; + fileencoding = "utf-8"; + undofile = true; + swapfile = true; + backup = false; + autoread = true; + cursorline = true; + ruler = true; + gdefault = true; + scrolloff = 5; + }; + + keymaps = [ + { + mode = [ "" ]; + key = "<F1>"; + action = "<NOP>"; + options.silent = true; + } + { + mode = "n"; + key = "<leader>gs"; + action = "<cmd>Neogit<CR>"; + options.desc = "Neogit Status"; + } + { + mode = "n"; + key = "<leader>ff"; + action = "<cmd>Telescope find_files<CR>"; + options.desc = "Find Files"; + } + { + mode = "n"; + key = "gd"; + action = "<cmd>lua vim.lsp.buf.definition()<CR>"; + options.desc = "Go to Definition"; + } + { + mode = "n"; + key = "K"; + action = "<cmd>lua vim.lsp.buf.hover()<CR>"; + options.desc = "Hover Docs"; + } + { + mode = "n"; + key = "<leader>ca"; + action = "<cmd>lua vim.lsp.buf.code_action()<CR>"; + options.desc = "Code Actions"; + } + { + mode = "n"; + key = "<leader>rn"; + action = "<cmd>lua vim.lsp.buf.rename()<CR>"; + options.desc = "Rename Symbol"; + } + { + mode = "n"; + key = "<leauer>fs"; + action = "<cmd>Telescope lsp_document_symbols<CR>"; + options.desc = "Find Symbols (Functions/Variables)"; + } + { + mode = "n"; + key = "<leader>fg"; + action = "<cmd>Telescope live_grep<CR>"; + options.desc = "Live Grep"; + } + { + mode = "n"; + key = "<leader>ma"; + action = "<cmd>MCpattern<CR>"; + options.desc = "Select all matches of pattern"; + } + { + mode = "n"; + key = "<leader>ha"; + action = ''<cmd>lua require("harpoon.mark").add_file()<CR>''; + options.desc = "Harpoon: Mark File"; + } + { + mode = "n"; + key = "<leader>hh"; + action = ''<cmd>lua require("harpoon.ui").toggle_quick_menu()<CR>''; + options.desc = "Harpoon: Show Menu"; + } + { + mode = "n"; + key = "<leader>xx"; + action = "<cmd>Trouble diagnostics toggle<CR>"; + options.desc = "Toggle Trouble (Diagnostics)"; + } + { + mode = "n"; + key = "<leader>p"; + action = "<cmd>Telescope yank_history<CR>"; + options.desc = "Open Yank History"; + } + ]; + + plugins = { + overseer.enable = true; + # neotest.enable = true; + + tiny-inline-diagnostic = { + enable = true; + settings = { + preset = "minimal"; + show_all_diags_on_cursorline = true; + options = { + multilines = { + enabled = true; + always_show = true; + }; + }; + }; + }; + comment.enable = true; + flash = { + enable = true; + settings = { + search.enabled = true; + jump.autojump = true; + }; + }; + notify = { + enable = true; + settings.topDown = false; + }; + yanky = { + enable = true; + settings.ring.history_length = 100; + settings.system_clipboard.sync_with_ring = true; + }; + lualine = { + enable = true; + settings = { + options.theme = "gruvbox-material"; + sections = { + lualine_b = [ "diagnostics" ]; + lualine_c = [ "filename" ]; + lualine_x = [ "filetype" ]; + }; + }; + }; + + treesitter-context = { + enable = true; + settings = { + indent.enable = true; + max_lines = 2; + trim_scope = "outer"; + }; + }; + oil.enable = true; + nvim-autopairs.enable = true; + neoscroll.enable = true; + bufferline.enable = true; + web-devicons.enable = true; + lsp-kind.enable = true; + + blink-cmp = { + enable = true; + settings = { + keymap = { + preset = "default"; + "<C-space>" = [ + "show" + "show_documentation" + "hide" + ]; + # "<CR>" = [ + # "accept" + # "fallback" + # ]; + # "<Tab>" = [ + # "select_next" + # "fallback" + # ]; + # "<S-Tab>" = [ + # "select_prev" + # "fallback" + # ]; + }; + }; + }; + + # gitsigns.enable = true; + which-key.enable = true; + harpoon = { + enable = true; + enableTelescope = true; + }; + toggleterm.enable = true; + treesitter.enable = true; + telescope = { + enable = true; + extensions.fzf-native.enable = true; + }; + noice.enable = true; + dressing.enable = true; + + conform-nvim = { + enable = true; + settings = { + formatters_by_ft = { + nix = [ "alejandra" ]; + }; + format_on_save = { + lsp_fallback = true; + timeout_ms = 500; + }; + }; + }; + + lsp = { + enable = true; + servers = { + zls.enable = true; + nil_ls.enable = true; + clangd.enable = true; + }; + }; + }; + }; + }; +} diff --git a/hm/soft/soft.nix b/hm/soft/soft.nix index 05740bb..127a5fe 100644 --- a/hm/soft/soft.nix +++ b/hm/soft/soft.nix @@ -16,5 +16,7 @@ ./torrent.nix ./yt-dlp.nix ./sioyek.nix + + ./nixvim/nixvim.nix ]; } diff --git a/hosts/desktop/configuration.nix b/hosts/desktop/configuration.nix index 82909c2..b334630 100644 --- a/hosts/desktop/configuration.nix +++ b/hosts/desktop/configuration.nix @@ -1,8 +1,7 @@ { config, username, - inputs, - pkgs, + pkgs-stable, ... }: { @@ -119,4 +118,36 @@ config.boot.kernelPackages.nct6687d ]; }; + + services.netbox = { + enable = true; + package = pkgs-stable.netbox; + secretKeyFile = "/var/lib/netbox/key"; + apiTokenPeppersFile = "/var/lib/netbox/api-pepper"; + + settings = { + ALLOWED_HOSTS = [ + "localhost" + "127.0.0.1" + "[::1]" + ]; + }; + }; + + networking.firewall.allowedTCPPorts = [ 80 ]; + services.nginx = { + enable = true; + user = "netbox"; + recommendedProxySettings = true; + virtualHosts.localhost = { + locations = { + "/" = { + proxyPass = "http://[::1]:8001"; + }; + "/static/" = { + alias = "${config.services.netbox.dataDir}/static/"; + }; + }; + }; + }; } diff --git a/hosts/desktop/home.nix b/hosts/desktop/home.nix index 002f28e..58714f0 100644 --- a/hosts/desktop/home.nix +++ b/hosts/desktop/home.nix @@ -21,6 +21,7 @@ }; xdg-mime.enable = true; }; + editors.nixvim.enable = true; env = { fsel.enable = true; mako.enable = true; @@ -89,6 +90,7 @@ }; home.packages = with pkgs; [ - stow + stow + element-desktop ]; } diff --git a/os/srv/default.nix b/os/srv/default.nix index 4f520a5..7f87cfd 100644 --- a/os/srv/default.nix +++ b/os/srv/default.nix @@ -18,5 +18,7 @@ ./virtualization.nix ./vpn.nix ./yggdrasil.nix + + ./opnsense.nix ]; } diff --git a/os/srv/opnsense.nix b/os/srv/opnsense.nix new file mode 100644 index 0000000..7855e46 --- /dev/null +++ b/os/srv/opnsense.nix @@ -0,0 +1,102 @@ +{ + config, + lib, + inputs, + ... +}: +let + cfg = config.os.srv.opnsense; + makePciArgs = + ids: + builtins.concatLists ( + map (id: [ + "-device" + "vfio-pci,host=${id}" + ]) ids + ); +in +{ + imports = [ inputs.microvm.nixosModules.host ]; + options.os.srv.opnsense = { + enable = lib.mkEnableOption "enables an opnsense microvm"; + pciIDs = lib.mkOption { + type = lib.types.listOf lib.types.str; + default = [ ]; + example = [ + "01:00.0" + "01:00.1" + "01:00.2" + "01:00.3" + ]; + description = "List of PCI bus addresses to pass through to the VM."; + }; + vendorIDs = lib.mkOption { + type = lib.types.listOf lib.types.str; + default = [ ]; + example = [ "8086:1521" ]; + description = "List of Vendor:Device IDs to bind to the vfio-pci driver."; + }; + imagePath = lib.mkOption { + type = lib.types.path; + default = /var/lib/microvm/images/opnsense.qcow2; + description = "Path to the OPNsense qcow2 image"; + }; + }; + config = lib.mkIf cfg.enable { + networking = { + bridges."br-lan".interfaces = [ ]; + + # TODO configure this + interfaces."br-lan".ipv4.addresses = [ + { + address = "10.0.0.2"; + prefixLenght = 16; + } + ]; + }; + boot = { + kernelParams = [ + "intel_iommu=on" + "iommu=pt" + ]; + kernelModules = [ + "vfio_pci" + "vfio" + "vfio_iommu_type1" + ]; + extraModprobeConfig = '' + options vfio-pci ids=${lib.concatStringsSep "," cfg.vendorIDs} + ''; + }; + microvm.vms.opnsense = { + autostart = true; + config = { + imports = [ inputs.microvm.nixosModules.microvm ]; + + networking.hostName = "opnsense"; + + microvm = { + vcpu = 2; + mem = 4096; + hypervisor = "qemu"; + + interfaces = [ + { + type = "bridge"; + id = "vm-lan"; + bridge = "br-lan"; + } + ]; + + qemu.extraArgs = [ + "-machine" + "q35,accel=kvm,kernel-irqchip=on" + "-cpu" + "host" + ] + ++ (makePciArgs cfg.pciIDs); + }; + }; + }; + }; +} |
