Compare commits

..
Author SHA1 Message Date
aaron 6df7fcacbb Merge pull request 'fix: ship a numbered udev rule file for vial since otherwise it gets overwritten by systemd's udev file' (#71) from feature/vial into main
Reviewed-on: #71
2026-08-09 14:45:34 +02:00
aaron bc11b464a8 fix: ship a numbered udev rule file for vial since otherwise it gets overwritten by systemd's udev file 2026-08-09 14:45:08 +02:00
aaron 0ac9b45286 Merge pull request 'feature(udev): add support for vial.rocks configurable devices and add the native app as well' (#69) from feature/lily58 into main
Reviewed-on: #69
2026-08-09 14:27:03 +02:00
aaron 55e12b2226 Merge pull request 'feature/appimage' (#70) from feature/bitbox02 into main
Reviewed-on: #70
2026-08-09 14:26:54 +02:00
aaron eab8f4974e feature(appimage): add appimage squashfs support for my nixos 2026-08-09 14:13:52 +02:00
aaron 0b1190a257 feature(appimage): add appimage squashfs support for my nixos 2026-08-09 14:13:06 +02:00
aaron 62954a67b5 feature(udev): add support for vial.rocks configurable devices and add the native app as well 2026-08-09 13:49:46 +02:00
aaron 37d44b64c1 Merge pull request 'chore(flake): update flake file' (#68) from chore/update into main
Reviewed-on: #68
2026-08-06 16:50:04 +02:00
aaron cb5dd91550 chore(flake): update flake file 2026-08-06 16:38:59 +02:00
aaron fb04de1d23 Merge pull request 'feature(tmux): make tmux forward csi-u sequences thus enabling shift-enter in opencode' (#66) from feature/tmux into main
Reviewed-on: #66
2026-07-29 10:46:47 +02:00
aaron f41387e451 feature(tmux): make tmux forward csi-u sequences thus enabling shift-enter in opencode 2026-07-29 10:44:42 +02:00
aaron 2ae9d451f5 Merge pull request 'refactor(tmux): tidy up my old tmux config, use unicode for the seperators and backport augmentations from my at-work-config' (#65) from feature/tmux into main
Reviewed-on: #65
2026-07-29 10:34:05 +02:00
aaron 3feb6d2367 refactor(tmux): tidy up my old tmux config, use unicode for the seperators and backport augmentations from my at-work-config 2026-07-29 10:30:33 +02:00
aaron 41fbb67fc9 Merge pull request 'fix(sleep): revert s2sleep as it introduces crashes after the wake-up of the system' (#64) from fix/sleep into main
Reviewed-on: #64
2026-07-23 17:10:08 +02:00
aaron b15968b004 fix(sleep): revert s2sleep as it introduces crashes after the wake-up of the system 2026-07-23 16:12:50 +02:00
aaron 274c39b213 Merge pull request 'refactor(sleep): move the s2 sleep change to argon only since s2idle would cost more battery on a laptop that s3 deep sleep' (#63) from fix/sleep into main
Reviewed-on: #63
2026-07-23 15:08:41 +02:00
aaron 2a3c439993 refactor(sleep): move the s2 sleep change to argon only since s2idle would cost more battery on a laptop that s3 deep sleep 2026-07-23 15:08:24 +02:00
aaron a2e9ad6035 Merge pull request 'fix(sleep): change sleep mode from s3 deep to s2 idle sleep to prevent issues woth radeon RDNA4 cards' (#62) from fix/sleep into main
Reviewed-on: #62
2026-07-23 14:56:59 +02:00
aaron 6fdde12804 fix(sleep): change sleep mode from s3 deep to s2 idle sleep to prevent issues woth radeon RDNA4 cards 2026-07-23 14:51:55 +02:00
aaron 32291e63bb Merge pull request 'chore(update): update flake file' (#61) from feature/update into main
Reviewed-on: #61
2026-07-23 14:29:18 +02:00
aaron 0e681ec0e2 chore(update): update flake file 2026-07-20 22:51:44 +02:00
aaron 0ce944b327 Merge pull request 'chore(flake): update flake file' (#60) from feature/updates into main
Reviewed-on: #60
2026-07-06 22:12:41 +02:00
aaron 046a17374b chore(flake): update flake file 2026-07-06 21:16:24 +02:00
aaron 626015db9f Merge pull request 'feature(packages): update and add cifs and nfs utils' (#59) from feature/cifs-utils into main
Reviewed-on: #59
2026-06-27 19:07:21 +02:00
aaron dfc2a1ca3a feature(packages): add nfs-utils 2026-06-27 18:51:31 +02:00
aaron e41d02abcc chore(update): upgrade flake file 2026-06-27 18:36:19 +02:00
aaron ec79afe982 feature(packages): add cifs-utils 2026-06-27 18:35:06 +02:00
aaron 536d4df5e4 Merge pull request 'feature(noctalia): add ddcutil to adjust the screens brightness' (#58) from feature/brightnesscontrol into main
Reviewed-on: #58
2026-06-23 13:03:47 +02:00
aaron 3bd71bb5e1 feature(noctalia): add ddcutil to adjust the screens brightness 2026-06-23 13:02:19 +02:00
aaron d7ac5923ff Merge pull request 'feature: astrophotography toolkit' (#57) from feature/astro into main
Reviewed-on: #57
2026-06-23 11:21:10 +02:00
aaron dab8e42797 fix(siril): expose adwaita-qt6 style plugin for dark theme 2026-06-23 11:08:10 +02:00
aaron cd905df8b4 fix(siril): add python3 to the siril wrapper so it sees it in its runtime path 2026-06-23 10:53:21 +02:00
aaron c20c9c0601 chore(flake): update flake file 2026-06-22 23:20:40 +02:00
aaron 853a7cfb17 feature(neon): add claude code to neon 2026-06-22 21:51:11 +02:00
aaron 596b58fab4 fix: add gc and misc settings to neon as well 2026-06-21 00:01:16 +02:00
aaron a58319e08d fix: remove stellarium module from neon 2026-06-20 23:57:20 +02:00
aaron 79b24d9439 fix: add more shared objects for sirils plugins 2026-06-20 21:48:26 +02:00
aaron b295a9a330 feature(siril): make siril plugins work by exposing shared objects 2026-06-20 18:11:34 +02:00
aaron 29db6af86b feature(starnet): add starnet to siril to use ml models for star removal, this needs nix-ld to be enabled 2026-06-20 13:58:29 +02:00
aaron 9d7efb69ac feature(astro): collect astrofotography tools in one module 2026-06-20 12:18:45 +02:00
aaron bf5de3872f Merge pull request 'chore(update): update flake file' (#56) from feature/updates into main
Reviewed-on: #56
2026-06-16 14:44:10 +02:00
aaron 7577e39c88 feature(noctalia): update the noctalia config 2026-06-16 11:33:38 +02:00
aaron 47fb9e7f97 feature(nixvim): pin nixvim to nixpkgs to suppress the non-default warning 2026-06-15 10:54:35 +02:00
aaron 098b92ae45 feature(noctalia): use the noctialia flake to manage my noctalia config for version 5 2026-06-15 10:45:34 +02:00
aaron b987dcf0c6 chore(update): update flake file 2026-06-14 16:49:39 +02:00
aaron 0c6c2dd71b chore(update): update flake file 2026-06-11 16:00:09 +02:00
aaron a329e21711 Merge pull request 'chore(update): update flake file' (#55) from feature/updates into main
Reviewed-on: #55
2026-06-09 20:08:00 +02:00
aaron 91f3e0425b chore(update): update flake file 2026-06-09 20:05:11 +02:00
aaron 85fa00a2e1 Merge pull request 'add stellarium app' (#54) from feature/stellarium into main
Reviewed-on: #54
2026-06-07 18:38:32 +02:00
aaron 1d558f3f7c feature(stellarium): add new module for stellarium 2026-06-07 18:33:29 +02:00
aaron ddaeb1beff Merge pull request 'updates' (#53) from feature/updates into main
Reviewed-on: #53
2026-06-04 20:48:10 +02:00
aaron 5e3867b227 chore(update): update flake file 2026-06-04 20:47:25 +02:00
aaron 7f58c16441 Merge pull request 'omz update' (#52) from feautre/omz_update into main
Reviewed-on: #52
2026-06-04 09:22:13 +02:00
aaron 2edc62ff13 refactor(omz): move theme selection and untracked files to extraConfig 2026-06-04 09:18:33 +02:00
aaron 27fb719555 feature(omz): add option to make omz faster on large repositories 2026-06-04 08:49:53 +02:00
aaron 5ab603b726 Merge pull request 'add thunar' (#51) from feature/thunar into main
Reviewed-on: #51
2026-05-29 20:40:49 +02:00
aaron a3e09d0019 fix: remove typo 2026-05-29 19:19:10 +02:00
aaron ae895dc55f fix: tumbler is a package rather than a programm and thus must be installed with packages 2026-05-29 19:15:40 +02:00
aaron cb0645dd81 feature(thunar): add thunar and thumbler thumbnailer service 2026-05-29 19:06:02 +02:00
aaron 0daf4eec9a Merge pull request 'chore(flake): update flake file to latest state' (#50) from feautre/update into main
Reviewed-on: #50
2026-05-26 20:37:27 +02:00
aaron 59a83f550c chore(flake): update flake file to latest state 2026-05-26 20:37:02 +02:00
aaron 6ceaf560ca Merge pull request 'feature(gnuradio): add gnuradio-companion back to desktop since the compile error has been resolved upstream' (#49) from feature/add_gnuradio into main
Reviewed-on: #49
2026-05-25 18:38:59 +02:00
aaron 553d748f91 feature(gnuradio): add gnuradio-companion back to desktop since the compile error has been resolved upstream 2026-05-25 18:38:16 +02:00
aaron fac89ff665 Merge pull request 'feature/add_proton' (#48) from feature/add_proton into main
Reviewed-on: #48
2026-05-23 15:29:39 +02:00
aaron af42bdc7a3 feature(nix): add wheel and root to the list of trusted users 2026-05-21 11:14:55 +02:00
aaron 45ae50d7a5 chore: update flake 2026-05-19 22:26:49 +02:00
aaron 965de98adb feature(vpn): add protonvpn to neon 2026-05-19 22:05:42 +02:00
aaron 53c39bb8f8 Merge pull request 'feautre/add_claude_code' (#47) from feautre/add_claude_code into main
Reviewed-on: #47
2026-05-01 18:43:47 +02:00
aaron e1a06eee71 fix(firefox): get rid of the warning message for the firefox config home 2026-05-01 18:43:08 +02:00
aaron 8605bf7a6b feature(claude): add claude code as a module 2026-05-01 18:35:28 +02:00
aaron 8b275aac66 Merge pull request 'chore(flake): update flake file to latest state and remove broken packages' (#46) from feature/updates into main
Reviewed-on: #46
2026-05-01 18:33:26 +02:00
aaron 31806ca62d chore(flake): update flake file to latest state and remove broken packages 2026-05-01 18:32:59 +02:00
aaron 738dc4d8bd Merge pull request 'update flake file' (#45) from feature/updates into main
Reviewed-on: #45
2026-04-29 09:22:55 +02:00
aaron 3fd7fba7f9 chore(flake): update flake file 2026-04-29 09:20:30 +02:00
aaron 56231797cc chore(update): update flake file 2026-04-29 08:56:24 +02:00
aaron b1cf8a9d7f Merge pull request 'evaluate typst for note taking during classes' (#43) from feature/add_typst into main
Reviewed-on: #43
2026-04-28 21:10:47 +02:00
aaron 1afbb9115f fix(lsp): remove ansiblels since it isnt needed anyway 2026-04-28 21:09:15 +02:00
aaron e0e2d99951 feature(nixvim): add pyright and ruff as linter and type checker 2026-04-28 21:04:57 +02:00
aaron a6034ee47a fix(nixvim): telescope live grep needs ripgrep as dependency 2026-04-28 19:19:04 +02:00
aaron 975bccfe5f fix(nixvim): remove double definition of treesitter 2026-04-28 19:14:22 +02:00
aaron 9db2c9d76e feature(userprograms): add typst 2026-04-28 19:13:12 +02:00
aaron 8f1cc582e9 feature(nvim): add typst support with lsp and preview for note taking 2026-04-28 19:13:00 +02:00
aaron ae5276444e Merge pull request 'nvim: add markdown-render plugin' (#44) from feature/add_render_markdown into main
Reviewed-on: #44
2026-04-28 16:50:37 +02:00
aaron 393c4ccfc5 refactor: cleanup nixvim config 2026-04-28 16:21:05 +02:00
aaron 6dcbe4e7c7 Merge pull request 'add software for my new hackrf pro' (#42) from feature/add_hackrf into main
Reviewed-on: #42
2026-04-24 20:09:30 +02:00
aaron ee127abe7e chore(update): update flake file 2026-04-24 20:02:50 +02:00
aaron a14e5b5a77 feature(gqrx): add gqrx alongside gnuradio since it will be used anyways 2026-04-24 19:15:48 +02:00
aaron 69ca1dbaca feature(gnuradio): add gnuradio-companion with osmocom extension 2026-04-23 20:27:06 +02:00
aaron c38d3ec7b8 Merge pull request 'feature(calibre): add calibre ebook management' (#41) from feature/add_calibre into main
Reviewed-on: #41
2026-04-15 18:37:14 +02:00
aaron d5d6488761 chore(update): update to the latest release 2026-04-15 18:36:57 +02:00
aaron e0e282a547 feature(calibre): add calibre ebook management 2026-04-09 20:11:19 +02:00
aaron 9f0ee40cc3 Merge pull request 'chore(update): update to the latest release' (#40) from feature/updates into main
Reviewed-on: #40
2026-04-09 19:54:54 +02:00
aaron 68fc3a2df2 chore(update): update to the latest release 2026-04-09 19:54:11 +02:00
aaron 5dfc62fc83 Merge pull request 'feature/updates' (#39) from feature/updates into main
Reviewed-on: #39
2026-03-31 15:44:15 +02:00
aaron 1b82de5c92 chore(protonvpn): change name to proton-vpn due to deprication 2026-03-31 15:42:14 +02:00
aaron c1d1fb7793 chore(update): update flake file 2026-03-31 15:41:36 +02:00
aaron e6bc267161 Merge pull request 'feature/chromium' (#38) from feature/chromium into main
Reviewed-on: #38
2026-03-28 22:08:18 +01:00
aaron 212dddaffd refactor: remove qflipper since that software is not maintained anymore 2026-03-28 22:08:03 +01:00
aaron 58509367a3 refactor(browsers): move browser selection to home-manager module since it is a user choice 2026-03-27 11:32:45 +01:00
aaron fdc93aff91 chore(update): update flake file 2026-03-27 10:39:36 +01:00
aaron f9f9c72498 feature(user): add my user to the dialout group in order to access serial terminal 2026-03-27 10:39:22 +01:00
aaron 0fdada8766 refactor: move chromium to home-manager packages 2026-03-27 10:38:56 +01:00
aaron 554462128e refactor: move chromium to home-manager packages 2026-03-27 10:38:31 +01:00
aaron 7c0bbf18c8 feature(browsers): add chromium browser 2026-03-27 09:29:10 +01:00
aaron d1222fc204 Merge pull request 'feautre(ts6): add teamspeak6-client since ts3 is based on an unmaintained qtwebkit' (#37) from feature/teamspeak into main
Reviewed-on: #37
2026-03-25 21:34:12 +01:00
aaron da8fa17202 feautre(ts6): add teamspeak6-client since ts3 is based on an unmaintained qtwebkit 2026-03-25 21:31:21 +01:00
aaron e143872f25 Merge pull request 'fix(nvim): add plenary as extraPlugins' (#36) from feature/fix_nvim into main
Reviewed-on: #36
2026-03-24 18:15:35 +01:00
aaron db22935910 fix(nvim): add plenary as extraPlugins 2026-03-24 16:17:30 +01:00
aaron b62d9f7630 Merge pull request 'feature/update' (#35) from feature/update into main
Reviewed-on: #35
2026-03-23 13:17:38 +01:00
aaron 20e19bb0be fix(gtk4): adopt the new default behavior and silence a compilation warning 2026-03-23 13:15:54 +01:00
aaron c31478461e fix(sddm): add theme to system packages so the path will be symlinked 2026-03-23 13:14:20 +01:00
aaron 073d257ca8 chore(flake): update flake lock to the latest version 2026-03-23 13:13:01 +01:00
aaron 7b50d5327c chore(flake): update flake lock to the latest version 2026-03-21 19:32:56 +01:00
aaron 642e723fd6 Merge pull request 'cleanup repository' (#34) from feature/repo_cleanup into main
Reviewed-on: #34
2026-03-21 18:08:19 +01:00
aaron 9a8090dac2 refactor(wireguard): set checkReversePath to loose instead of false 2026-03-21 16:45:09 +01:00
aaron 4e9ffcf6bd refactor(unfree): move the unfree setting to the settings module 2026-03-21 16:43:43 +01:00
aaron 02a5d03d1a refactor(packages): move installed packages to their respective nix modules 2026-03-21 16:43:05 +01:00
aaron b480e8224d refactor(flake): simplify nix flake by deduplication 2026-03-21 16:41:34 +01:00
aaron 32a62aadd4 refactor(networking): drop wireless enable since it installs wpa_supplicant and rely on networkmanager instead 2026-03-21 16:40:24 +01:00
aaron 619c00e678 refactor(locales): fix internationalisation to switzerland norms 2026-03-21 16:39:30 +01:00
aaron a02da7f66d refactor(programs): uninstall screenfetch since it is unmaintained software 2026-03-21 16:38:55 +01:00
aaron 8b616b65af refactor(default): remove hardware import from default target since it is a dublicate 2026-03-21 16:38:17 +01:00
aaron 17158618ee refactor(docker): move the docker group to the respective nix module instead of adding the user per default 2026-03-21 16:37:31 +01:00
aaron 64a12d1cae Merge pull request 'feature/updates' (#33) from feature/updates into main
Reviewed-on: #33
2026-03-20 18:18:53 +01:00
aaron 2fb937b19f feature(wifi): enable more firmware to support my wifi chip 2026-03-20 18:17:43 +01:00
aaron a7c5cbad41 chore(update): update flake file 2026-03-20 17:51:08 +01:00
aaron 52a4a7aca0 Merge pull request 'chore(update): update flake file' (#32) from feature/updates into main
Reviewed-on: #32
2026-03-19 09:15:37 +00:00
aaron e420a4d8b3 chore(update): update flake file 2026-03-19 10:13:29 +01:00
aaron 5e19eb0d9a Merge pull request 'fix(backup): instruct home-manager to backup files using a timestamp to avoid collisions' (#31) from feature/backupfiles into main
Reviewed-on: #31
2026-03-16 20:19:44 +01:00
aaron b9450f1bca fix(backup): instruct home-manager to backup files using a timestamp to avoid collisions 2026-03-16 20:01:43 +01:00
aaron a61b330288 Merge pull request 'feature/copypaste' (#30) from feature/copypaste into main
Reviewed-on: #30
2026-03-16 19:47:22 +01:00
aaron 03c520923c Merge pull request 'feature(ghostty): add ssh-terminfo and ssh-env as fallback' (#29) from feature/ssh-terminfo into main
Reviewed-on: #29
2026-03-15 23:03:59 +01:00
aaron a193a08f0b feature(ghostty): add ssh-terminfo and ssh-env as fallback 2026-03-15 23:02:44 +01:00
31 changed files with 580 additions and 188 deletions
Generated
+20 -57
View File
@@ -8,11 +8,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1769996383, "lastModified": 1782949081,
"narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=", "narHash": "sha256-vp6Y/Grm98ESt6ceOkWiHWyZRDV3J1RID4w+6NWK9yA=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "57928607ea566b5db3ad13af0e57e921e6b12381", "rev": "17c9d6cdfc60c64f4ee8d306f9bc0b4ccb51481e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -28,11 +28,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1773332277, "lastModified": 1785958398,
"narHash": "sha256-1V+wRrZD9Sw12AQBUWk9CR+XhDZQ8q6yBE0S3Wjbd1M=", "narHash": "sha256-5r/JgsoNMTx+qIh83WkxpujEKBR7PF5ssnh5vYCuSAw=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "4aeef1941f862fe3a70d1b8264b4e289358c2325", "rev": "a7c70cc290290f373f50cd820403833d250459ac",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -43,11 +43,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1773122722, "lastModified": 1785967620,
"narHash": "sha256-FIqHByVqxCprNjor1NqF80F2QQoiiyqanNNefdlvOg4=", "narHash": "sha256-IItrdb7Puk05RqOBWZYFC5X6Wl1sJmCfh5MWVHw5iMM=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "62dc67aa6a52b4364dd75994ec00b51fbf474e50", "rev": "b7c2ada94fe99c15b0dbcf4d11fd7850b957a436",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -66,11 +66,11 @@
"systems": "systems" "systems": "systems"
}, },
"locked": { "locked": {
"lastModified": 1772402258, "lastModified": 1785763201,
"narHash": "sha256-3DmCFOdmbkFML1/G9gj8Wb+rCCZFPOQtNoMCpqOF8SA=", "narHash": "sha256-wA373y/B9orM3HatLu9oS+Ke5lmdZyBl/bdjd2gLMq4=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixvim", "repo": "nixvim",
"rev": "21ae25e13b01d3b4cdc750b5f9e7bad68b150c10", "rev": "c7be49306b23a952c0151cf4bbeacd944ed82f2a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -83,15 +83,14 @@
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ]
"noctalia-qs": "noctalia-qs"
}, },
"locked": { "locked": {
"lastModified": 1773336753, "lastModified": 1786013897,
"narHash": "sha256-f5UoaExHUvoFuixpxcDXmTL+8UT+VkjwNAuh88/MOrU=", "narHash": "sha256-u14Iaus6ROW6IWQUNGZ/IZJ3TcIUs1ngxn5sUMNnwMM=",
"owner": "noctalia-dev", "owner": "noctalia-dev",
"repo": "noctalia-shell", "repo": "noctalia-shell",
"rev": "5ee84e3ab386727eaf4b2381adfdcd86ad94553b", "rev": "0247e4c5e5268f8c2a5658b60b97cb5f2eca7766",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -100,28 +99,6 @@
"type": "github" "type": "github"
} }
}, },
"noctalia-qs": {
"inputs": {
"nixpkgs": [
"noctalia",
"nixpkgs"
],
"systems": "systems_2"
},
"locked": {
"lastModified": 1773175685,
"narHash": "sha256-YOkWzVq7opym1ovJvSCvqpG6OCDGJwPo/EPeRxcGay4=",
"owner": "noctalia-dev",
"repo": "noctalia-qs",
"rev": "6b9eceefde3d47ca83c544b54bcdd358be4cbd2f",
"type": "github"
},
"original": {
"owner": "noctalia-dev",
"repo": "noctalia-qs",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"home-manager": "home-manager", "home-manager": "home-manager",
@@ -132,33 +109,19 @@
}, },
"systems": { "systems": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1774449309,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "narHash": "sha256-brhZ8DmuGtzkCYHJg4HEd602amKm89Y9ytsFZ5uWD1w=",
"owner": "nix-systems", "owner": "nix-systems",
"repo": "default", "repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "rev": "c29398b59d2048c4ab79345812849c9bd15e9150",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-systems", "owner": "nix-systems",
"ref": "future-26.11",
"repo": "default", "repo": "default",
"type": "github" "type": "github"
} }
},
"systems_2": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
} }
}, },
"root": "root", "root": "root",
+22 -52
View File
@@ -17,59 +17,29 @@
}; };
}; };
outputs = { self, nixpkgs, home-manager, nixvim, ... }@inputs: { outputs = { self, nixpkgs, home-manager, nixvim, ... }@inputs:
let
mkHost = hostName: nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
./hosts/${hostName}/hardware-configuration.nix
./hosts/${hostName}/configuration.nix
home-manager.nixosModules.home-manager
{
home-manager.extraSpecialArgs = { inherit inputs; };
home-manager.users.aaron.imports = [
nixvim.homeModules.nixvim
./users/aaron/home.nix
];
}
];
};
in {
nixosConfigurations = { nixosConfigurations = {
default = mkHost "default";
default = nixpkgs.lib.nixosSystem { neon = mkHost "neon";
system = "x86_64-linux"; argon = mkHost "argon";
specialArgs = { inherit inputs; };
modules = [
./hosts/default/hardware-configuration.nix
./hosts/default/configuration.nix
home-manager.nixosModules.home-manager
{
home-manager.extraSpecialArgs = { inherit inputs; };
home-manager.users.aaron.imports = [
nixvim.homeModules.nixvim
./users/aaron/home.nix
];
}
];
};
neon = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
./hosts/neon/hardware-configuration.nix
./hosts/neon/configuration.nix
home-manager.nixosModules.home-manager
{
home-manager.extraSpecialArgs = { inherit inputs; };
home-manager.users.aaron.imports = [
nixvim.homeModules.nixvim
./users/aaron/home.nix
];
}
];
};
argon = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
./hosts/argon/hardware-configuration.nix
./hosts/argon/configuration.nix
home-manager.nixosModules.home-manager
{
home-manager.extraSpecialArgs = { inherit inputs; };
home-manager.users.aaron.imports = [
nixvim.homeModules.nixvim
./users/aaron/home.nix
];
}
];
};
}; };
}; };
} }
+7
View File
@@ -2,11 +2,16 @@
{ {
imports = [ imports = [
../../modules/nixos/appimage.nix
../../modules/nixos/astro.nix
../../modules/nixos/audio.nix ../../modules/nixos/audio.nix
../../modules/nixos/bootloader.nix ../../modules/nixos/bootloader.nix
../../modules/nixos/calibre.nix
../../modules/nixos/certificates.nix ../../modules/nixos/certificates.nix
../../modules/nixos/claudecode.nix
../../modules/nixos/drives.nix ../../modules/nixos/drives.nix
../../modules/nixos/gnupg.nix ../../modules/nixos/gnupg.nix
../../modules/nixos/gnuradio.nix
../../modules/nixos/graphics.nix ../../modules/nixos/graphics.nix
../../modules/nixos/greetd.nix ../../modules/nixos/greetd.nix
../../modules/nixos/locales.nix ../../modules/nixos/locales.nix
@@ -19,7 +24,9 @@
../../modules/nixos/services.nix ../../modules/nixos/services.nix
../../modules/nixos/settings.nix ../../modules/nixos/settings.nix
../../modules/nixos/steam.nix ../../modules/nixos/steam.nix
../../modules/nixos/thunar.nix
../../modules/nixos/users.nix ../../modules/nixos/users.nix
../../modules/nixos/vial.nix
]; ];
# set hostname # set hostname
-5
View File
@@ -3,11 +3,6 @@
{ pkgs, lib, ... }: { pkgs, lib, ... }:
{ {
imports =
[
./hardware-configuration.nix
];
# use flakes # use flakes
nix.settings.experimental-features = [ "nix-command" "flakes" ]; nix.settings.experimental-features = [ "nix-command" "flakes" ];
+5
View File
@@ -2,9 +2,12 @@
{ {
imports = [ imports = [
../../modules/nixos/appimage.nix
../../modules/nixos/astro.nix
../../modules/nixos/audio.nix ../../modules/nixos/audio.nix
../../modules/nixos/bootloader.nix ../../modules/nixos/bootloader.nix
../../modules/nixos/certificates.nix ../../modules/nixos/certificates.nix
../../modules/nixos/claudecode.nix
../../modules/nixos/docker.nix ../../modules/nixos/docker.nix
../../modules/nixos/gnupg.nix ../../modules/nixos/gnupg.nix
../../modules/nixos/locales.nix ../../modules/nixos/locales.nix
@@ -13,11 +16,13 @@
../../modules/nixos/noctalia.nix ../../modules/nixos/noctalia.nix
../../modules/nixos/openssh.nix ../../modules/nixos/openssh.nix
../../modules/nixos/packages.nix ../../modules/nixos/packages.nix
../../modules/nixos/protonvpn.nix
../../modules/nixos/sddm.nix ../../modules/nixos/sddm.nix
../../modules/nixos/services.nix ../../modules/nixos/services.nix
../../modules/nixos/settings.nix ../../modules/nixos/settings.nix
../../modules/nixos/steam.nix ../../modules/nixos/steam.nix
../../modules/nixos/users.nix ../../modules/nixos/users.nix
../../modules/nixos/vial.nix
]; ];
# set hostname # set hostname
+1
View File
@@ -11,6 +11,7 @@
gtk-titlebar = false; gtk-titlebar = false;
scrollback-limit = 100000; scrollback-limit = 100000;
shell-integration = "zsh"; shell-integration = "zsh";
shell-integration-features = "ssh-env,ssh-terminfo";
theme = "noctalia"; # generated by noctalia-shell theme = "noctalia"; # generated by noctalia-shell
window-decoration = "auto"; window-decoration = "auto";
window-padding-x = 10; window-padding-x = 10;
+82 -5
View File
@@ -2,10 +2,19 @@
{ {
programs.nixvim = { programs.nixvim = {
globals.mapleader = " ";
enable = true; enable = true;
viAlias = false;
# We keep `inputs.nixvim.inputs.nixpkgs.follows = "nixpkgs"` in flake.nix so
# the whole config shares a single nixpkgs. Setting `source` explicitly to
# that same nixpkgs acknowledges the override and silences nixvim's warning
# about its pinned nixpkgs being bypassed.
nixpkgs.source = inputs.nixpkgs;
# set aliases
viAlias = true;
vimAlias = true; vimAlias = true;
# default vim options
opts = { opts = {
number = true; number = true;
relativenumber = true; relativenumber = true;
@@ -14,13 +23,81 @@
expandtab = true; expandtab = true;
incsearch = true; incsearch = true;
}; };
# nvim mapleader for all command below
globals.mapleader = " ";
# set colorscheme to nord
colorschemes.nord.enable = true; colorschemes.nord.enable = true;
# nvim plugins
plugins.indent-blankline.enable = true;
plugins.lualine.enable = true; plugins.lualine.enable = true;
plugins.nix.enable = true; plugins.nix.enable = true;
plugins.nvim-tree.enable = true; plugins.nvim-tree.enable = true;
plugins.treesitter.enable = true;
plugins.telescope.enable = true;
plugins.web-devicons.enable = true; plugins.web-devicons.enable = true;
plugins.indent-blankline.enable = true; plugins.telescope = {
enable = true;
keymaps = {
"<leader>ff" = "find_files";
"<leader>fg" = "live_grep";
"<leader>fb" = "buffers";
"<leader>fh" = "help_tags";
};
};
plugins.lsp = {
enable = true;
servers.tinymist = {
enable = true;
settings = {
formatterMode = "typstyle";
exportPdf = "onSave";
semanticTokens = "disable"; # treesitter handles highlighting better
};
};
servers.pyright.enable = true;
servers.ruff.enable = true;
keymaps.lspBuf = {
"<leader>K" = "hover";
"<leader>gd" = "definition";
"<leader>gr" = "references";
"<leader>f" = "format";
"<leader>rn" = "rename";
"<leader>ca" = "code_action";
};
};
plugins.treesitter = {
enable = true;
settings.ensure_installed = [ "markdown" "markdown_inline" "typst" ];
};
plugins.typst-preview = {
enable = true;
settings = {
open_cmd = "firefox %s";
dependencies_bin = {
tinymist = "tinymist";
websocat = null;
};
};
};
plugins.typst-vim = {
enable = true;
settings.pdf_viewer = "zathura";
};
plugins.render-markdown = {
enable = true;
settings = {
# render in normal mode, raw source in insert
render_modes = [ "n" "c" "t"];
pipe_table.preset = "round";
heading.width = "block";
file_types = [ "markdown" ];
completions.lsp.enabled = true;
};
};
}; };
# install dependencies
home.packages = with pkgs; [
ripgrep
];
} }
+123
View File
@@ -0,0 +1,123 @@
{ config, pkgs, inputs, ... }:
{
# Noctalia v5 shell, managed via its upstream home-manager module.
# See https://docs.noctalia.dev/v5/getting-started/nixos/
imports = [ inputs.noctalia.homeModules.default ];
programs.noctalia = {
enable = true;
# The module's `package` option has no default, so it must be set explicitly.
package = inputs.noctalia.packages.${pkgs.stdenv.hostPlatform.system}.default;
# settings is rendered to ~/.config/noctalia/config.toml
settings = {
# theme / colors
theme = {
source = "builtin";
builtin = "Nord";
mode = "dark";
templates.builtin_ids = [ "ghostty" ];
};
# general
shell = {
font_family = "0xProto Nerd Font Mono";
ui_scale = 1.2;
avatar_path = "/home/aaron/syncthing/pictures/Logo-Aaron-Totenkopf-rund-schwarz.png";
telemetry_enabled = false;
clipboard_enabled = true;
password_style = "random";
panel = {
launcher_compact = true;
open_near_click_control_center = true;
open_near_click_session = true;
open_near_click_wallpaper = true;
transparency_mode = "glass";
};
screen_corners = {
enabled = true;
size = 10;
};
};
# location / weather
location.address = "Bern";
weather = {
enabled = true;
unit = "metric";
};
# wallpaper
wallpaper = {
enabled = true;
directory = "/home/aaron/Pictures/Wallpapers";
fill_mode = "crop";
default.path = "/home/aaron/Pictures/Wallpapers/nord-theme-tower.png";
};
# bar layout
bar = {
order = [ "default" ];
default = {
position = "top";
background_opacity = 0.93;
font_weight = 400;
margin_edge = 0;
margin_ends = 0;
radius = 0;
scale = 1.2;
widget_spacing = 20;
start = [ "control-center" "cpu" "ram" "temp" "active_window" ];
center = [ "workspaces" ];
end = [ "tray" "bluetooth" "notifications" "volume" "network" "clock" ];
};
};
# per-widget styling
widget = {
bluetooth.capsule = true;
control-center = {
capsule_radius = 8;
custom_image = "/home/aaron/Pictures/nix_flake_logo.png";
scale = 1.4;
};
cpu.capsule = true;
network = {
capsule = true;
show_label = false;
};
notifications.capsule = true;
ram.capsule = true;
temp.capsule = true;
volume = {
capsule = true;
show_label = false;
};
};
# idle behavior
idle = {
behavior_order = [ "screen-off" "lock" "lock-and-suspend" ];
behavior = {
"screen-off" = {
enabled = true;
timeout = 600;
};
"lock" = {
enabled = true;
timeout = 660;
};
"lock-and-suspend" = {
enabled = true;
timeout = 1800;
};
};
};
};
};
}
+11 -2
View File
@@ -3,14 +3,23 @@
{ {
# user packages # user packages
home.packages = with pkgs; [ home.packages = with pkgs; [
devenv
discord discord
fastfetch fastfetch
keepassxc keepassxc
screenfetch teamspeak6-client
devenv typst
zathura
]; ];
# services and other software # services and other software
services.syncthing.enable = true; services.syncthing.enable = true;
programs.home-manager.enable = true; programs.home-manager.enable = true;
# browsers
programs.chromium.enable = true;
programs.firefox = {
enable = true;
configPath = "${config.xdg.configHome}/mozilla/firefox";
};
} }
+13 -10
View File
@@ -8,18 +8,21 @@
syntaxHighlighting.enable = true; syntaxHighlighting.enable = true;
oh-my-zsh = { oh-my-zsh = {
enable = true; enable = true;
# theme will be set below # add git and agents as plugins
theme = "";
plugins = [ "git" "ssh-agent" "gpg-agent" ]; plugins = [ "git" "ssh-agent" "gpg-agent" ];
# everything here lands before `source $ZSH/oh-my-zsh.sh`
extraConfig = ''
# make omz faster on large repositories
DISABLE_UNTRACKED_FILES_DIRTY=true
# only display a fancy theme when glyphs are rendered
if [[ "$TERM" == "linux" || "$TERM" == "screen" ]]; then
ZSH_THEME="gentoo"
else
ZSH_THEME="agnoster"
fi
'';
}; };
# only display a fancy theme when glyphs are rendered
initContent = lib.mkOrder 550 ''
if [[ "$TERM" == "linux" || "$TERM" == "screen" ]]; then
ZSH_THEME="gentoo"
else
ZSH_THEME="agnoster"
fi
'';
}; };
# set important env vars # set important env vars
+1
View File
@@ -9,6 +9,7 @@
package = pkgs.gnome-themes-extra; package = pkgs.gnome-themes-extra;
}; };
gtk3.extraConfig.gtk-application-prefer-dark-theme = 1; gtk3.extraConfig.gtk-application-prefer-dark-theme = 1;
gtk4.theme = null;
gtk4.extraConfig.gtk-application-prefer-dark-theme = 1; gtk4.extraConfig.gtk-application-prefer-dark-theme = 1;
}; };
+84 -21
View File
@@ -1,60 +1,123 @@
{ config, pkgs, inputs, ... }: { config, pkgs, inputs, ... }:
let
# Powerline separators, U+E0B0..U+E0B3.
#
# Written as escapes rather than literal glyphs. These are Private Use Area
# codepoints: they render only with a patched font, they survive copy/paste
# badly, and when they get stripped the loss is invisible, the config still
# parses, the status bar just quietly loses its separators. Nix has no \u
# escape of its own, but fromJSON does.
sep = builtins.fromJSON ''
{
"right": "\ue0b0",
"rightThin": "\ue0b1",
"left": "\ue0b2",
"leftThin": "\ue0b3"
}
'';
in
{ {
programs.tmux = { programs.tmux = {
# defaults
enable = true; enable = true;
prefix = "C-a"; prefix = "C-a";
keyMode = "vi"; keyMode = "vi";
mouse = true; mouse = true;
terminal = "screen-256color";
# tmux-256color gives truecolor, italics and undercurl in nvim.
terminal = "tmux-256color";
# Default is 500ms. Causes lag you feel when leaving insert mode in nvim,
# because tmux is waiting to see whether Esc starts an escape sequence.
escapeTime = 10;
# nvim autoread / :checktime react to focus.
focusEvents = true;
# History limit.
historyLimit = 50000;
# Window numbers matching the number row.
baseIndex = 1;
extraConfig = '' extraConfig = ''
# Status keys # Status keys
set -g status-keys vi set -g status-keys vi
# Tell tmux the outer terminal can do 24-bit colour (tmux >= 3.2).
set -sa terminal-features ",*:RGB"
# Shift+Enter / extended keys
# These make tmux forward CSI-u sequences unconditionally.
# Needs tmux >= 3.5 for the format option,
set -s extended-keys always
set -s extended-keys-format csi-u
set -as terminal-features '*:extkeys'
# Status bar options # Status bar options
set -g status-interval 1 set -g status-interval 5
set -g status on
set -g status-justify left set -g status-justify left
# Clock mode # Clock mode
setw -g clock-mode-colour cyan setw -g clock-mode-colour cyan
# Colors # Colors
set -g status-bg black set -g status-bg black
set -g status-fg white set -g status-fg white
# Key bindings # Key bindings
# Reload configuration bind r source-file ~/.config/tmux/tmux.conf \; display-message "tmux.conf reloaded"
bind r source-file ~/.config/tmux/tmux.conf
# Panel split and selection # Panel split and selection, new panes/windows inherit the cwd
unbind % unbind %
unbind '"' unbind '"'
bind v split-window -v bind v split-window -v -c "#{pane_current_path}"
bind c split-window -h bind c split-window -h -c "#{pane_current_path}"
bind i new-window bind i new-window -c "#{pane_current_path}"
bind b previous-window bind -r b previous-window
bind n next-window bind -r n next-window
# Move around panes with hjkl # Move around panes with hjkl
bind h select-pane -L bind h select-pane -L
bind j select-pane -D bind j select-pane -D
bind k select-pane -U bind k select-pane -U
bind l select-pane -R bind l select-pane -R
# Resize panes # Resize panes
bind H resize-pane -L 5 bind -r H resize-pane -L 5
bind J resize-pane -D 5 bind -r J resize-pane -D 5
bind K resize-pane -U 5 bind -r K resize-pane -U 5
bind L resize-pane -R 5 bind -r L resize-pane -R 5
# Wayland clipboard integration # Wayland clipboard integration
# Copy selection to both clipboard (Ctrl+V / Shift+Insert) and primary (middle-click) # Copy selection to both clipboard (Ctrl+V / Shift+Insert) and primary (middle-click)
bind -T copy-mode-vi v send-keys -X begin-selection
bind -T copy-mode-vi C-v send-keys -X rectangle-toggle
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "wl-copy && wl-copy --primary" bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "wl-copy && wl-copy --primary"
bind -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "wl-copy && wl-copy --primary" bind -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "wl-copy && wl-copy --primary"
bind -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "wl-copy && wl-copy --primary" bind -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "wl-copy && wl-copy --primary"
# Uncomment if you want yanks to also travel over SSH via OSC52.
# Locally redundant with wl-copy above.
#set -g set-clipboard on
# Kill commands # Kill commands
bind q kill-window bind q confirm-before -p "kill window #W? (y/n)" kill-window
bind Q kill-session bind Q confirm-before -p "kill session #S? (y/n)" kill-session
# Bars # Bars
# This is the nord-tmux status line. #{prefix_highlight} came from that
# theme's tmux-prefix-highlight integration -- a plugin you never loaded,
# so the token expanded to nothing. tmux can do it natively. Commas inside
# #{?...} are argument separators and have to be escaped as #, hence the
# look of the style spec.
set -g status-left-length 24 set -g status-left-length 24
set -g status-left "#[fg=black,bg=blue,bold] #{=20:session_name} #[fg=blue,bg=black,nobold,noitalics,nounderscore]" set -g status-left "#[fg=black,bg=blue,bold] #{=20:session_name} #[fg=blue,bg=black,nobold,noitalics,nounderscore]${sep.right}"
set -g status-right "#{prefix_highlight}#[fg=brightblack,bg=black,nobold,noitalics,nounderscore]#[fg=white,bg=brightblack] %Y-%m-%d #[fg=white,bg=brightblack,nobold,noitalics,nounderscore]#[fg=white,bg=brightblack] %H:%M #[fg=cyan,bg=brightblack,nobold,noitalics,nounderscore]#[fg=black,bg=cyan,bold] #H " set -g status-right "#{?client_prefix,#[fg=black#,bg=yellow#,bold] ^A ,}#[fg=brightblack,bg=black,nobold,noitalics,nounderscore]${sep.left}#[fg=white,bg=brightblack] %Y-%m-%d #[fg=white,bg=brightblack,nobold,noitalics,nounderscore]${sep.leftThin}#[fg=white,bg=brightblack] %H:%M #[fg=cyan,bg=brightblack,nobold,noitalics,nounderscore]${sep.left}#[fg=black,bg=cyan,bold] #H "
# Windows # Windows
set -g window-status-format "#[fg=black,bg=brightblack,nobold,noitalics,nounderscore] #[fg=white,bg=brightblack]#I #[fg=white,bg=brightblack,nobold,noitalics,nounderscore] #[fg=white,bg=brightblack]#W #F #[fg=brightblack,bg=black,nobold,noitalics,nounderscore]" set -g window-status-format "#[fg=black,bg=brightblack,nobold,noitalics,nounderscore]${sep.right} #[fg=white,bg=brightblack]#I #[fg=white,bg=brightblack,nobold,noitalics,nounderscore]${sep.rightThin} #[fg=white,bg=brightblack]#W #F #[fg=brightblack,bg=black,nobold,noitalics,nounderscore]${sep.right}"
set -g window-status-current-format "#[fg=black,bg=cyan,nobold,noitalics,nounderscore] #[fg=black,bg=cyan]#I #[fg=black,bg=cyan,nobold,noitalics,nounderscore] #[fg=black,bg=cyan]#W #F #[fg=cyan,bg=black,nobold,noitalics,nounderscore]" set -g window-status-current-format "#[fg=black,bg=cyan,nobold,noitalics,nounderscore]${sep.right} #[fg=black,bg=cyan]#I #[fg=black,bg=cyan,nobold,noitalics,nounderscore]${sep.rightThin} #[fg=black,bg=cyan]#W #F #[fg=cyan,bg=black,nobold,noitalics,nounderscore]${sep.right}"
set -g window-status-separator "" set -g window-status-separator ""
''; '';
}; };
+19
View File
@@ -0,0 +1,19 @@
{ config, lib, pkgs, ... }:
{
# AppImages ship a squashfs payload that the bundled runtime mounts through
# libfuse.so.2 at startup. nix-ld resolves the ELF interpreter but not that
# dlopen, so running one directly dies with "dlopen(): error loading
# libfuse.so.2". appimage-run sidesteps the mount entirely: it unpacks the
# image and runs the payload inside an FHS sandbox, which the bundled Qt and
# electron style binaries need anyway.
#
# Used for the BitBox02 wallet AppImage, downloaded fresh from
# https://bitbox.swiss/download/ rather than installed from nixpkgs.
programs.appimage = {
enable = true;
# register AppImages with binfmt_misc so ./Something.AppImage runs as-is,
# no appimage-run prefix to remember.
binfmt = true;
};
}
+78
View File
@@ -0,0 +1,78 @@
{ config, lib, pkgs, ... }:
let
# Siril's Python plugins (sirilpy) run in a venv that pip-installs foreign
# manylinux wheels (numpy, GraXpert deps, ...). Those .so files need
# libstdc++ at runtime. nix-ld does NOT cover this: it only handles the
# initial exec of a foreign binary, but here a *native* nixpkgs python
# dlopen()s the foreign wheel. So we put the libs on LD_LIBRARY_PATH, which
# the python subprocess inherits from the Siril process.
sirilWithPlugins = pkgs.symlinkJoin {
name = "siril-with-plugins";
paths = [ pkgs.siril ];
nativeBuildInputs = [ pkgs.makeWrapper ];
# Siril bootstraps its sirilpy venv at first run by locating a `python3`
# on PATH. nixpkgs only *propagates* python3 from the siril derivation (it
# isn't on the runtime PATH), so without the --prefix PATH below the GUI
# fails with "Python not found in system PATH" and never creates
# ~/.local/share/siril/venv. We add the same interpreter siril references.
#
# The VeraLux PyQt6 wheel ships only the built-in Windows/Fusion styles, so
# the global QT_STYLE_OVERRIDE=adwaita-dark (inherited from the session) is
# rejected ("invalid style override") and windows fall back to a light
# theme. We expose nixpkgs adwaita-qt6's style plugin on QT_PLUGIN_PATH so
# the override resolves. This works because nixpkgs qt6 and the bundled Qt
# share a major.minor (6.11); if they ever drift the plugin is simply
# ignored again (harmless warning + Fusion fallback, no loss of function).
postBuild = ''
wrapProgram $out/bin/siril \
--prefix PATH : ${lib.makeBinPath [ pkgs.python3 ]} \
--prefix QT_PLUGIN_PATH : ${pkgs.adwaita-qt6}/lib/qt-6/plugins \
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath (with pkgs; [
stdenv.cc.cc.lib # libstdc++ / libgcc_s / libgomp (numpy etc.)
zlib
zstd # libzstd.so.1 (PyQt6)
libGL # libGL.so.1 (PyQt6)
# PyQt6 (VeraLux) — Qt bundles xcb support so it needs these even
# on Wayland; libxkbcommon is the keymap lib used by Wayland too.
glib
fontconfig
freetype
dbus
libxkbcommon
# Qt platform plugins: the wayland plugin (libqwayland.so) needs the
# wayland client libs; the xcb fallback needs libxcb-cursor.so.0.
wayland # libwayland-client/cursor/egl (wayland plugin)
libxcb-cursor # libxcb-cursor.so.0 (xcb plugin)
libx11
libxcb
libxcb-util
libxcb-wm
libxcb-image
libxcb-keysyms
libxcb-render-util
])}
'';
};
in
{
# install stellarium for target finding and siril for stacking
environment.systemPackages = with pkgs; [
stellarium
sirilWithPlugins
];
# StarNet++ has no nixpkgs package. Download the StarNet v2 ORT CLI build
# (starnet2_linux_*_ORT_x64_cli) from https://www.starnetastro.com/download/
# and unzip it to ~/.local/share/siril/starnet/. Then in Siril set
# Preferences -> Miscellaneous -> StarNet executable
# to the extracted ./starnet2 binary.
#
# The binary is a generic dynamically-linked ELF, so NixOS needs nix-ld to
# run it. Its own opencv/onnxruntime libs are found via the bundled ./lib.
programs.nix-ld.enable = true;
programs.nix-ld.libraries = with pkgs; [
stdenv.cc.cc.lib # libstdc++ / libgcc_s
zlib
];
}
+1 -1
View File
@@ -17,7 +17,7 @@
}; };
# kernel options # kernel options
boot.kernelParams = [ "quiet" "acpi.debug_level=0"]; boot.kernelParams = [ "quiet" "acpi.debug_level=0" ];
boot.kernelPackages = pkgs.linuxPackages_latest; boot.kernelPackages = pkgs.linuxPackages_latest;
boot.consoleLogLevel = 2; boot.consoleLogLevel = 2;
+8
View File
@@ -0,0 +1,8 @@
{ config, lib, pkgs, ... }:
{
# install calibre for ebook management and kobo syncing
environment.systemPackages = with pkgs; [
calibre
];
}
+7
View File
@@ -0,0 +1,7 @@
{ config, lib, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
claude-code
];
}
+3
View File
@@ -1,6 +1,9 @@
{ config, lib, pkgs, ...}: { config, lib, pkgs, ...}:
{ {
# add docker group to user
users.users.aaron.extraGroups = [ "docker" ];
virtualisation.docker = { virtualisation.docker = {
enable = true; enable = true;
# Customize Docker daemon settings # Customize Docker daemon settings
+12
View File
@@ -0,0 +1,12 @@
{ config, lib, pkgs, ... }:
{
# install gnuradio companion along with it's osmocom library
environment.systemPackages = with pkgs; [
(gnuradio.override {
extraPackages = with gnuradio.pkgs; [ osmosdr ];
})
gqrx
hackrf
];
}
+10 -10
View File
@@ -4,18 +4,18 @@
# set the time zone # set the time zone
time.timeZone = "Europe/Zurich"; time.timeZone = "Europe/Zurich";
# set internationalisation properties # keep system language in english, but use swiss locale for formatting
i18n.defaultLocale = "en_US.UTF-8"; i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = { i18n.extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8"; LC_ADDRESS = "de_CH.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8"; LC_IDENTIFICATION = "de_CH.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8"; LC_MEASUREMENT = "de_CH.UTF-8";
LC_MONETARY = "en_US.UTF-8"; LC_MONETARY = "de_CH.UTF-8";
LC_NAME = "en_US.UTF-8"; LC_NAME = "de_CH.UTF-8";
LC_NUMERIC = "en_US.UTF-8"; LC_NUMERIC = "de_CH.UTF-8";
LC_PAPER = "en_US.UTF-8"; LC_PAPER = "de_CH.UTF-8";
LC_TELEPHONE = "en_US.UTF-8"; LC_TELEPHONE = "de_CH.UTF-8";
LC_TIME = "en_US.UTF-8"; LC_TIME = "de_CH.UTF-8";
}; };
# set console font and keymap # set console font and keymap
+3
View File
@@ -8,6 +8,9 @@
networking.firewall.allowedTCPPorts = [ ]; networking.firewall.allowedTCPPorts = [ ];
networking.firewall.allowedUDPPorts = [ ]; networking.firewall.allowedUDPPorts = [ ];
# enable wifi firmware
hardware.enableAllFirmware = true;
# enable bluetooth # enable bluetooth
hardware.bluetooth.enable = true; hardware.bluetooth.enable = true;
+1
View File
@@ -7,6 +7,7 @@
adwaita-qt adwaita-qt
adwaita-qt6 adwaita-qt6
brightnessctl brightnessctl
ddcutil
playerctl playerctl
]; ];
} }
+5 -12
View File
@@ -1,54 +1,47 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
{ {
# system packges # system packages
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
alacritty
btop btop
cifs-utils
cowsay cowsay
dnsutils dnsutils
ethtool ethtool
file file
fwupd
fwupd-efi
ghostty
git git
imagemagick imagemagick
imv imv
iperf3 iperf3
jq jq
kdePackages.qtmultimedia kdePackages.qtmultimedia
kitty
ldns ldns
lm_sensors lm_sensors
lsof lsof
ltrace ltrace
mtr mtr
neovim neovim
nfs-utils
nh nh
nix-output-monitor nix-output-monitor
nmap nmap
nvd nvd
p7zip p7zip
pciutils pciutils
sddm-astronaut
socat socat
sof-firmware sof-firmware
strace strace
sysstat sysstat
terminus_font
tree tree
unzip unzip
usbutils usbutils
vial
vim vim
wl-clipboard
wget wget
which which
wl-clipboard
xz xz
zip zip
zstd zstd
]; ];
# browser
programs.firefox.enable = true;
} }
+7 -3
View File
@@ -1,9 +1,13 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
{ {
networking.firewall.checkReversePath = false; # protonvpn uses wireguard tunnels, which break strict reverse path filtering
# because packets arrive on the tunnel interface but may be routed back differently.
# "loose" checks that the source is routable through *any* interface (not necessarily
# the same one), which is sufficient for wireguard while still preventing IP spoofing.
networking.firewall.checkReversePath = "loose";
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
wireguard-tools proton-vpn
protonvpn-gui
]; ];
} }
+5
View File
@@ -17,4 +17,9 @@
sddm-astronaut sddm-astronaut
]; ];
}; };
# Make the theme available in the system path so sddm can find it
environment.systemPackages = with pkgs; [
sddm-astronaut
];
} }
+7 -3
View File
@@ -32,13 +32,17 @@
}; };
}; };
# add trusted users (able to modify the nix store)
nix.settings.trusted-users = [ "root" "@wheel" ];
# allow unfree packages (steam, protonvpn, discord, etc.)
nixpkgs.config.allowUnfree = true;
# links /libexec from derivations to /run/current-system/sw # links /libexec from derivations to /run/current-system/sw
environment.pathsToLink = [ "/libexec" ]; environment.pathsToLink = [ "/libexec" ];
# set the default editor to vim
environment.variables.EDITOR = "vim";
# enable home-manager globally # enable home-manager globally
home-manager.useGlobalPkgs = true; home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true; home-manager.useUserPackages = true;
home-manager.backupFileExtension = "backup"; home-manager.backupCommand = "mv -f {file} {file}.hm-bak-$(date +%Y%m%d%H%M%S)";
} }
-3
View File
@@ -1,9 +1,6 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
{ {
# allow unfree to install steam
nixpkgs.config.allowUnfree = true;
# enable steam and open firewall # enable steam and open firewall
programs.steam = { programs.steam = {
enable = true; enable = true;
+14
View File
@@ -0,0 +1,14 @@
{ config, lib, pkgs, ... }:
{
# Enable Thunar
programs.thunar.enable = true;
# Install Tumbler thumbnailer service
environment.systemPackages = with pkgs; [
tumbler
];
# Ensure Thunar can locate the thumbnailer extensions
environment.pathsToLink = [ "share/thumbnailers" ];
}
+1 -1
View File
@@ -5,7 +5,7 @@
users.users.aaron = { users.users.aaron = {
isNormalUser = true; isNormalUser = true;
group = "users"; group = "users";
extraGroups = [ "wheel" "networkmanager" "docker" ]; extraGroups = [ "wheel" "networkmanager" "dialout" ];
shell = pkgs.zsh; shell = pkgs.zsh;
}; };
+26
View File
@@ -0,0 +1,26 @@
{ config, lib, pkgs, ... }:
{
# Vial-capable keyboards (lily58 pro r2g) expose a second, non-keyboard raw
# HID interface that vial.rocks drives over WebHID. Its /dev/hidraw* node is
# root-only by default, so neither chromium nor the native app can open it.
#
# This has to ship as a numbered rules file rather than via
# services.udev.extraRules: extraRules lands in 99-local.rules, but the
# builtin that turns TAG+="uaccess" into an actual ACL is invoked from
# systemd's 73-seat-late.rules. A tag set at 99 is set too late to be seen,
# so the device ends up correctly tagged and still unreadable. 60- sorts
# safely ahead of 73.
services.udev.packages = [
(pkgs.writeTextFile {
name = "vial-udev-rules";
destination = "/lib/udev/rules.d/60-vial.rules";
# Vial firmware advertises itself through a magic USB serial, so this
# matches any vial board rather than just the lily58. uaccess hands the
# device to whoever owns the active seat, no group membership needed.
text = ''
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{serial}=="*vial:f64c2b3c*", TAG+="uaccess"
'';
})
];
}
+1
View File
@@ -6,6 +6,7 @@
../../modules/home-manager/git.nix ../../modules/home-manager/git.nix
../../modules/home-manager/ghostty.nix ../../modules/home-manager/ghostty.nix
../../modules/home-manager/nixvim.nix ../../modules/home-manager/nixvim.nix
../../modules/home-manager/noctalia.nix
../../modules/home-manager/programs.nix ../../modules/home-manager/programs.nix
../../modules/home-manager/shell.nix ../../modules/home-manager/shell.nix
../../modules/home-manager/styling.nix ../../modules/home-manager/styling.nix