summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoradikro <adikro@disroot.org>2026-05-09 21:06:23 +0200
committeradikro <adikro@disroot.org>2026-05-09 21:06:23 +0200
commitbaf1cf5664b481de17849c97dc683fa81ade1c2e (patch)
tree0836096c9104559d27341d7b99c7c032cf0743ef
parent18e7f651ce33b1544178f444c6bd3fbaf44fc831 (diff)
laptop sync
-rw-r--r--flake.lock390
-rw-r--r--flake.nix28
-rw-r--r--hm/soft/nixvim/binds.nix0
-rw-r--r--hm/soft/nixvim/nixvim.nix270
-rw-r--r--hm/soft/soft.nix2
-rw-r--r--hosts/desktop/configuration.nix35
-rw-r--r--hosts/desktop/home.nix4
-rw-r--r--os/srv/default.nix2
-rw-r--r--os/srv/opnsense.nix102
9 files changed, 770 insertions, 63 deletions
diff --git a/flake.lock b/flake.lock
index 7a6c689..e734e91 100644
--- a/flake.lock
+++ b/flake.lock
@@ -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": {
diff --git a/flake.nix b/flake.nix
index fb57535..bdbe9d6 100644
--- a/flake.nix
+++ b/flake.nix
@@ -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);
+ };
+ };
+ };
+ };
+}