Compare commits

...

126 Commits

Author SHA1 Message Date
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
aaron 34cad2a944 fix(omz): replace initBeforeCompInit due to deprication 2026-03-14 20:23:19 +01:00
aaron eda6cd9997 feature(tmux): fix copy-paste issues for tmux and opencode 2026-03-14 16:44:14 +01:00
aaron 0e68a12e47 Merge pull request 'feature/add_devenv' (#28) from feature/add_devenv into main
Reviewed-on: #28
2026-03-13 16:59:02 +01:00
aaron d5ce65c91d chore(flake): update flake file to latest state 2026-03-12 19:38:23 +01:00
aaron 4944f87ce9 feature(devenv): add devenv to home-manager 2026-03-12 19:32:02 +01:00
aaron 81b04a8b1c Merge pull request 'improve zsh config' (#27) from feautre/zshimprovements into main
Reviewed-on: #27
2026-03-07 21:07:50 +01:00
aaron ea30328d6b feature(zsh): only display a theme with glyphs if the terminal is able to render them 2026-03-07 21:06:33 +01:00
aaron 97f782b3d9 Merge pull request 'update and cleanup' (#26) from feature/cleanup into main
Reviewed-on: #26
2026-03-06 23:01:47 +01:00
aaron ad50c751d6 chore(update): update flake file 2026-03-06 22:28:18 +01:00
aaron 3494a85734 refactor(noctalia): remove quickshell dependency as noctalia-qs already gets pulled in by the flake 2026-03-06 22:21:11 +01:00
aaron fcb0161e83 Merge pull request 'feature/argon' (#25) from feature/argon into main
Reviewed-on: #25
2026-03-06 18:37:01 +01:00
aaron 9b02617698 refactor(drives): add disclaimer and change order 2026-03-06 18:34:15 +01:00
aaron bd6546263b refactor(greetd): rename package to omit warning 2026-03-06 18:25:28 +01:00
aaron 53c2cf1a63 refactor(graphics): add amdgpu_top to systempackages 2026-03-06 18:16:40 +01:00
aaron 80638a920b feature(greeter): replace sddm with greetd since sddm has issues with rdna4 2026-03-05 22:15:56 +01:00
aaron e4674e5828 refactor(networking): remove general hostname 2026-03-05 21:58:56 +01:00
aaron 16ea94e160 feature(graphics): add amdgpu_top to the default pkgs 2026-03-05 21:58:36 +01:00
aaron afd3113cf3 feature(graphics): add amdgpu to the initrd 2026-03-05 21:50:46 +01:00
aaron d7a08c2571 feature(protonvpn): add protonvpn nix module 2026-03-05 21:36:10 +01:00
aaron 8cdcb15618 fix(drives): remove password fallback 2026-03-05 21:23:34 +01:00
aaron a0fd1e9264 feature(drives): add encrypted drives for argon 2026-03-05 20:53:40 +01:00
aaron d60bdd1245 fix(noctalia): add quickshell since it is a dependency of noctalia 2026-03-05 20:52:51 +01:00
aaron 404868aa85 refactor(shell): remove omz config from users file and add to home-manager 2026-03-05 20:52:19 +01:00
aaron 7566d0d1ef fix(graphics): explicitly add graphics accelleration 2026-03-05 20:50:50 +01:00
aaron 6a132670e2 fix(hostnames): move hostname to configuration.nix 2026-03-05 17:38:00 +01:00
aaron f182b2418a feature(argon): add config for argon 2026-03-05 17:37:12 +01:00
aaron eb0bc149e8 Merge pull request 'chore(flake): update flake lock to the latest version' (#24) from feature/update into main
Reviewed-on: #24
2026-03-04 17:16:10 +01:00
aaron f53a2aceee chore(flake): update flake lock to the latest version 2026-03-04 17:10:18 +01:00
aaron d64f10ad3f Merge pull request 'add docker to the system' (#23) from feature/docker into main
Reviewed-on: #23
2026-02-22 18:14:40 +01:00
aaron cc44e68a2e feature(users): add docker group to the main user 2026-02-21 21:17:19 +01:00
aaron b97d6cc47d feature(neon): add docker to neon 2026-02-21 21:16:42 +01:00
aaron 0d495039ee feature(docker): add docker daemon config for nixos 2026-02-21 21:16:17 +01:00
aaron 64b76ad7fd Merge pull request 'feature(ssh): add more security to the ssh config' (#22) from feature/openssh into main
Reviewed-on: #22
2026-02-21 18:09:31 +01:00
aaron aea7ba5c97 feature(ssh): add more security to the ssh config 2026-02-21 18:04:47 +01:00
aaron 135f2bdac9 Merge pull request 'refactor(installguide): unify device naming, add notes and correct typos' (#21) from feature/installguide into main
Reviewed-on: #21
2026-02-21 17:56:00 +01:00
aaron d288f6828f refactor(installguide): unify device naming, add notes and correct typos 2026-02-21 17:55:32 +01:00
aaron 159cd6f2f2 Merge pull request 'feature(update): update flake' (#20) from feature/update into main
Reviewed-on: #20
2026-02-19 21:01:57 +01:00
aaron 763a69bf09 feature(update): update flake 2026-02-19 20:53:18 +01:00
aaron 9b6ed91d37 Merge pull request 'feature(update): update flake' (#19) from feature/update into main
Reviewed-on: #19
2026-02-14 13:20:12 +00:00
aaron 39f7658a34 feature(update): update flake 2026-02-14 14:18:32 +01:00
aaron 50b2aaae60 Merge pull request 'refactor(readme): separate installation doc from main readme' (#18) from feature/documentation into main
Reviewed-on: #18
2026-02-08 10:17:27 +00:00
31 changed files with 520 additions and 133 deletions
+15 -22
View File
@@ -4,7 +4,6 @@
- For simplicity I'm using device labels rather than uuids - For simplicity I'm using device labels rather than uuids
1. the partitioning layout should look somewhat like this after the installation 1. the partitioning layout should look somewhat like this after the installation
```bash ```bash
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
nvme0n1 259:0 0 476.9G 0 disk nvme0n1 259:0 0 476.9G 0 disk
@@ -13,25 +12,26 @@ nvme0n1 259:0 0 476.9G 0 disk
└─cryptroot 254:0 0 474.9G 0 crypt └─cryptroot 254:0 0 474.9G 0 crypt
├─lvmroot-swap 254:1 0 20G 0 lvm [SWAP] ├─lvmroot-swap 254:1 0 20G 0 lvm [SWAP]
├─lvmroot-home 254:2 0 250G 0 lvm /home ├─lvmroot-home 254:2 0 250G 0 lvm /home
└─lvmroot-root 254:3 0 204.9G 0 lvm /nix/store └─lvmroot-root 254:3 0 204.9G 0 lvm /
``` ```
> Note: `lsblk` may additionally show `/nix/store` as a mountpoint on `lvmroot-root`. This is not a separate partition. NixOS mounts the root device a second time at `/nix/store` with `ro,nosuid,nodev` flags to enforce store immutability at runtime.
2. prepare the installation 2. prepare the installation
```bash ```bash
# format the boot partition # format the boot partition
mkfs.fat -F 32 /dev/sda1 -n "nixboot" mkfs.fat -F 32 /dev/nvme0n1p1 -n "nixboot"
# create an encrypted partition # create an encrypted partition
cryptsetup luksFormat -y --label="nixcrypt" /dev/sda2 cryptsetup luksFormat -y --label="nixcrypt" /dev/nvme0n1p2
# open the encrypted partition and map it to /dev/mapper/cryptroot # open the encrypted partition and map it to /dev/mapper/cryptroot
cryptsetup luksOpen /dev/sda2 cryptroot cryptsetup luksOpen /dev/nvme0n1p2 cryptroot
# create the physical volume # create the physical volume
pvcreate /dev/mapper/cryptroot pvcreate /dev/mapper/cryptroot
# create a volume group inside # create a volume group inside
vgcreate lvmroot /dev/mapper/cryptroot vgcreate lvmroot /dev/mapper/cryptroot
# create the swap volume # create the swap volume
lvcreate --size 8G lvmroot --name nwap lvcreate --size 8G lvmroot --name swap
# if you desire, create a home volume # if you desire, create a home volume
lvcreate --size 150G lvmroot --name home lvcreate --size 150G lvmroot --name home
# create the root volume # create the root volume
@@ -47,7 +47,7 @@ mkswap -L "nixswap" /dev/mapper/lvmroot-swap
# mount root # mount root
mount /dev/disk/by-label/nixroot /mnt mount /dev/disk/by-label/nixroot /mnt
# mount boot # mount boot
mount --mkdir /dev/sda1 /mnt/boot mount --mkdir /dev/nvme0n1p1 /mnt/boot
# again, if you did the home volume # again, if you did the home volume
mount --mkdir /dev/disk/by-label/nixhome /mnt/home mount --mkdir /dev/disk/by-label/nixhome /mnt/home
# turn on swap # turn on swap
@@ -55,13 +55,12 @@ swapon /dev/disk/by-label/nixswap
``` ```
3. prepare nixos 3. prepare nixos
```bash ```bash
# generate templates and update the hardware-configuration.nix # generate templates and update the hardware-configuration.nix
sudo nixos-generate-config --root /mnt nixos-generate-config --root /mnt
# add cryptd to the kernelModules # add dm-crypt and dm-mod to the kernelModules
boot.initrd.kernelModules = [ "dm-snapshot" "cryptd" ]; boot.initrd.kernelModules = [ "dm-crypt" "dm-mod" ];
# add file systems using labels # add file systems using labels
fileSystems."/" = fileSystems."/" =
@@ -86,25 +85,20 @@ boot.initrd.luks.devices."cryptroot".device = "/dev/disk/by-label/nixcrypt";
``` ```
4. install nixos 4. install nixos
```bash ```bash
cd /mnt nixos-install
sudo nixos-install
``` ```
## how to deploy the inital config ## how to deploy the initial config
- Don't forget to install the bootloader, if you changed it since `nixos-install` - Don't forget to install the bootloader, if you changed it since `nixos-install`
```bash ```bash
$ sudo nixos-rebuild --install-bootloader switch --flake .#host_name $ sudo nixos-rebuild --install-bootloader switch --flake .#host_name
``` ```
## how to upgrade the system ## how to upgrade the system
```bash ```bash
$ cd /path/to/repo $ cd /path/to/repo
$ sudo nix flake update $ nix flake update
$ sudo nixos-rebuild switch --flake .#host_name $ sudo nixos-rebuild switch --flake .#host_name
$ sudo nix-collect-garbage $ sudo nix-collect-garbage
``` ```
@@ -114,7 +108,6 @@ $ sudo nix-collect-garbage
The tool nix-helper is installed by this configuration. It simplifies administrating nixos and adds more output to the rebuild command. It also features a diff after a successful build. The command uses the `NH_FLAKE` environment variable to be able to run from whatever directory. The tool nix-helper is installed by this configuration. It simplifies administrating nixos and adds more output to the rebuild command. It also features a diff after a successful build. The command uses the `NH_FLAKE` environment variable to be able to run from whatever directory.
Basic commands with a set `NH_FLAKE` variable are: Basic commands with a set `NH_FLAKE` variable are:
```bash ```bash
$ nh os switch $ nh os switch
$ nh os build $ nh os build
Generated
+81 -19
View File
@@ -8,11 +8,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1769996383, "lastModified": 1778716662,
"narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=", "narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "57928607ea566b5db3ad13af0e57e921e6b12381", "rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -28,11 +28,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1770491427, "lastModified": 1780593650,
"narHash": "sha256-8b+0vixdqGnIIcgsPhjdX7EGPdzcVQqYxF+ujjex654=", "narHash": "sha256-CHo7k65YTL3HY+WQVedDTupji+LMgNlKCdrtRHZFAK4=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "cbd8a72e5fe6af19d40e2741dc440d9227836860", "rev": "447fd9ff62501dae7206dfe180ee89f8de27b7d5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -43,11 +43,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1770197578, "lastModified": 1780243769,
"narHash": "sha256-AYqlWrX09+HvGs8zM6ebZ1pwUqjkfpnv8mewYwAo+iM=", "narHash": "sha256-x5UQuRsH3MqI0U9afaXSNqzTPSeZlRLvFAav2Ux1pNw=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", "rev": "331800de5053fcebacf6813adb5db9c9dca22a0c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -66,11 +66,11 @@
"systems": "systems" "systems": "systems"
}, },
"locked": { "locked": {
"lastModified": 1770388595, "lastModified": 1780421606,
"narHash": "sha256-0NvpmDqFcJAtRFJE3RDZWnN7PDJBZutoDtN+Cl8a3DY=", "narHash": "sha256-ZRAMRXQE1UKBtpnPwwOqV8teaPDD/fdABvUXMjcyhow=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixvim", "repo": "nixvim",
"rev": "51abc532525e486176f9a7b24b17908c60017b54", "rev": "b7521616f15ad73c6bec458d64ed7f06f4095edb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -83,14 +83,15 @@
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
] ],
"noctalia-qs": "noctalia-qs"
}, },
"locked": { "locked": {
"lastModified": 1770543184, "lastModified": 1780371321,
"narHash": "sha256-2FFYjurrYjCAT6bpN2Fv63G6vDuWybB91uvqBjJfcWE=", "narHash": "sha256-WCaU6npdMdjZSZHe3XATNDFijmzRnsV8V+iR80e5deg=",
"owner": "noctalia-dev", "owner": "noctalia-dev",
"repo": "noctalia-shell", "repo": "noctalia-shell",
"rev": "bf1a0f76bb5ca48991d51130022af6bead64d153", "rev": "3aab45a2f34fd47666b05892b95054952e788de1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -99,6 +100,29 @@
"type": "github" "type": "github"
} }
}, },
"noctalia-qs": {
"inputs": {
"nixpkgs": [
"noctalia",
"nixpkgs"
],
"systems": "systems_2",
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1780194487,
"narHash": "sha256-M+YtjKCTkHrkplNaKVyaxfa8hAWjRF6wFOUBAZvxQ4U=",
"owner": "noctalia-dev",
"repo": "noctalia-qs",
"rev": "07398e12b54f194e3a2d47c87e3fd10b8eeaa27d",
"type": "github"
},
"original": {
"owner": "noctalia-dev",
"repo": "noctalia-qs",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"home-manager": "home-manager", "home-manager": "home-manager",
@@ -109,18 +133,56 @@
}, },
"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"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"noctalia",
"noctalia-qs",
"nixpkgs"
]
},
"locked": {
"lastModified": 1775636079,
"narHash": "sha256-pc20NRoMdiar8oPQceQT47UUZMBTiMdUuWrYu2obUP0=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "790751ff7fd3801feeaf96d7dc416a8d581265ba",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
} }
}, },
"root": "root", "root": "root",
+24 -37
View File
@@ -1,6 +1,6 @@
{ {
description = "0x29a NixOS flake"; description = "0x29a NixOS flake";
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
home-manager = { home-manager = {
@@ -16,43 +16,30 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
}; };
outputs = { self, nixpkgs, home-manager, nixvim, ... }@inputs: {
nixosConfigurations = {
default = nixpkgs.lib.nixosSystem { outputs = { self, nixpkgs, home-manager, nixvim, ... }@inputs:
system = "x86_64-linux"; let
specialArgs = { inherit inputs; }; mkHost = hostName: nixpkgs.lib.nixosSystem {
modules = [ system = "x86_64-linux";
./hosts/default/hardware-configuration.nix specialArgs = { inherit inputs; };
./hosts/default/configuration.nix modules = [
home-manager.nixosModules.home-manager ./hosts/${hostName}/hardware-configuration.nix
{ ./hosts/${hostName}/configuration.nix
home-manager.extraSpecialArgs = { inherit inputs; }; home-manager.nixosModules.home-manager
home-manager.users.aaron.imports = [ {
nixvim.homeModules.nixvim home-manager.extraSpecialArgs = { inherit inputs; };
./users/aaron/home.nix home-manager.users.aaron.imports = [
]; nixvim.homeModules.nixvim
} ./users/aaron/home.nix
]; ];
}; }
];
neon = nixpkgs.lib.nixosSystem { };
system = "x86_64-linux"; in {
specialArgs = { inherit inputs; }; nixosConfigurations = {
modules = [ default = mkHost "default";
./hosts/neon/hardware-configuration.nix neon = mkHost "neon";
./hosts/neon/configuration.nix argon = mkHost "argon";
home-manager.nixosModules.home-manager
{
home-manager.extraSpecialArgs = { inherit inputs; };
home-manager.users.aaron.imports = [
nixvim.homeModules.nixvim
./users/aaron/home.nix
];
}
];
};
}; };
}; };
} }
+36
View File
@@ -0,0 +1,36 @@
{ config, pkgs, inputs, ... }:
{
imports = [
../../modules/nixos/audio.nix
../../modules/nixos/bootloader.nix
../../modules/nixos/calibre.nix
../../modules/nixos/claudecode.nix
../../modules/nixos/certificates.nix
../../modules/nixos/drives.nix
../../modules/nixos/gnupg.nix
../../modules/nixos/gnuradio.nix
../../modules/nixos/graphics.nix
../../modules/nixos/greetd.nix
../../modules/nixos/locales.nix
../../modules/nixos/networking.nix
../../modules/nixos/niri.nix
../../modules/nixos/noctalia.nix
../../modules/nixos/openssh.nix
../../modules/nixos/packages.nix
../../modules/nixos/protonvpn.nix
../../modules/nixos/services.nix
../../modules/nixos/settings.nix
../../modules/nixos/stellarium.nix
../../modules/nixos/thunar.nix
../../modules/nixos/steam.nix
../../modules/nixos/users.nix
];
# set hostname
networking.hostName = "argon";
# install state version
system.stateVersion = "25.11"; # Don't change
}
+39
View File
@@ -0,0 +1,39 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ "dm-crypt dm-mod" ];
boot.initrd.luks.devices."cryptroot".device = "/dev/disk/by-label/nixcrypt";
boot.kernelModules = [ ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/mapper/lvmroot-root";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/AC1C-20EB";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
};
fileSystems."/home" =
{ device = "/dev/mapper/lvmroot-home";
fsType = "ext4";
};
swapDevices =
[ { device = "/dev/mapper/lvmroot-swap"; }
];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}
-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" ];
+6
View File
@@ -5,6 +5,7 @@
../../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/docker.nix
../../modules/nixos/gnupg.nix ../../modules/nixos/gnupg.nix
../../modules/nixos/locales.nix ../../modules/nixos/locales.nix
../../modules/nixos/networking.nix ../../modules/nixos/networking.nix
@@ -12,13 +13,18 @@
../../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/stellarium.nix
../../modules/nixos/steam.nix ../../modules/nixos/steam.nix
../../modules/nixos/users.nix ../../modules/nixos/users.nix
]; ];
# set hostname
networking.hostName = "neon";
# install state version # install state version
system.stateVersion = "25.11"; # Don't change system.stateVersion = "25.11"; # Don't change
} }
+3 -2
View File
@@ -7,10 +7,11 @@
clipboard-paste-protection = false; clipboard-paste-protection = false;
clipboard-read = "allow"; clipboard-read = "allow";
font-family = "0xProto Nerd Font Mono"; font-family = "0xProto Nerd Font Mono";
font-size = 9; font-size = 12;
gtk-titlebar = false; gtk-titlebar = false;
scrollback-limit = 10000; 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;
+76 -5
View File
@@ -2,10 +2,13 @@
{ {
programs.nixvim = { programs.nixvim = {
globals.mapleader = " ";
enable = true; enable = true;
viAlias = false;
# set aliases
viAlias = true;
vimAlias = true; vimAlias = true;
# default vim options
opts = { opts = {
number = true; number = true;
relativenumber = true; relativenumber = true;
@@ -14,13 +17,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
];
} }
+11 -1
View File
@@ -3,13 +3,23 @@
{ {
# user packages # user packages
home.packages = with pkgs; [ home.packages = with pkgs; [
devenv
discord discord
fastfetch fastfetch
keepassxc keepassxc
screenfetch teamspeak6-client
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";
};
} }
+17 -4
View File
@@ -1,14 +1,27 @@
{ config, pkgs, inputs, ... }: { config, lib, pkgs, inputs, ... }:
{ {
# configure z-shell to use omz with some plugins
programs.zsh = { programs.zsh = {
enable = true; enable = true;
autosuggestion.enable = true; autosuggestion.enable = true;
syntaxHighlighting.enable = true; syntaxHighlighting.enable = true;
oh-my-zsh = { oh-my-zsh = {
enable = true; enable = true;
theme = "agnoster"; # add git and agents as plugins
#plugins = [ "git" "ssh-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
'';
}; };
}; };
+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;
}; };
+7 -2
View File
@@ -40,12 +40,17 @@
bind J resize-pane -D 5 bind J resize-pane -D 5
bind K resize-pane -U 5 bind K resize-pane -U 5
bind L resize-pane -R 5 bind L resize-pane -R 5
# Wayland clipboard integration
# Copy selection to both clipboard (Ctrl+V / Shift+Insert) and primary (middle-click)
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 MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "wl-copy && wl-copy --primary"
# Kill commands # Kill commands
bind q kill-window bind q kill-window
bind Q kill-session bind Q kill-session
# Bars # Bars
set -g status-left "#[fg=black,bg=blue,bold] #S#[fg=blue,bg=black,nobold,noitalics,nounderscore]" set -g status-left-length 24
set -g status-left "#[fg=black,bg=blue,bold] #S #[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]"
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 "#{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 "
# 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] #[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]"
+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
];
}
+26
View File
@@ -0,0 +1,26 @@
{ config, lib, pkgs, ...}:
{
# add docker group to user
users.users.aaron.extraGroups = [ "docker" ];
virtualisation.docker = {
enable = true;
# Customize Docker daemon settings
daemon.settings = {
dns = [ "1.1.1.1" "8.8.8.8" ];
log-driver = "journald";
registry-mirrors = [ "https://mirror.gcr.io" ];
storage-driver = "overlay2";
};
# Use the rootless mode
rootless = {
enable = true;
setSocketVariable = true;
};
# Install docker-compose
extraPackages = with pkgs; [
docker-compose
];
};
}
+47
View File
@@ -0,0 +1,47 @@
{ config, lib, pkgs, ... }:
# Add encrypted drives to argon
{
# copy keyfiles into initrd to make them available during early boot
boot.initrd.secrets = {
"/etc/nixos/keys/data1.key" = "/etc/nixos/keys/data1.key";
"/etc/nixos/keys/data2.key" = "/etc/nixos/keys/data2.key";
"/etc/nixos/keys/nvmecache.key" = "/etc/nixos/keys/nvmecache.key";
};
# decrypt data drives with keyfiles for argon
boot.initrd.luks.devices = {
"data1" = {
device = "/dev/disk/by-uuid/dfae62cc-bad1-4879-bf9a-461bde833625";
keyFile = "/etc/nixos/keys/data1.key";
};
"data2" = {
device = "/dev/disk/by-uuid/8312edae-9247-481b-a313-52a7f848f027";
keyFile = "/etc/nixos/keys/data2.key";
};
"nvmecache" = {
device = "/dev/disk/by-uuid/2352250e-4ebe-4f9a-bf66-0d4aaa961bd8";
keyFile = "/etc/nixos/keys/nvmecache.key";
};
};
# mount decrypted filesystems
fileSystems."/mnt/data1" = {
device = "/dev/mapper/data1";
fsType = "ext4";
options = [ "nofail" ];
};
fileSystems."/mnt/data2" = {
device = "/dev/mapper/data2";
fsType = "ext4";
options = [ "nofail" ];
};
fileSystems."/mnt/nvmecache" = {
device = "/dev/mapper/nvmecache";
fsType = "ext4";
options = [ "nofail" ];
};
}
+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
];
}
+17
View File
@@ -0,0 +1,17 @@
{ config, lib, pkgs, ... }:
{
# enable amd GPU acceleration (mesa, vulkan, egl)
hardware.graphics = {
enable = true;
enable32Bit = true;
};
# install amdgpu_top
environment.systemPackages = with pkgs; [
amdgpu_top
];
# add amdgpu to the initrd for plymouth
hardware.amdgpu.initrd.enable = true;
}
+14
View File
@@ -0,0 +1,14 @@
{ config, lib, pkgs, ... }:
{
# greetd display manager with tuigreet
services.greetd = {
enable = true;
settings = {
default_session = {
command = "${pkgs.tuigreet}/bin/tuigreet --time --cmd niri-session";
user = "greeter";
};
};
};
}
+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 -3
View File
@@ -1,9 +1,6 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
{ {
# set hostnname
networking.hostName = "neon";
# user networkmanager # user networkmanager
networking.networkmanager.enable = true; networking.networkmanager.enable = true;
@@ -11,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;
+10
View File
@@ -5,5 +5,15 @@
services.openssh = { services.openssh = {
enable = true; enable = true;
openFirewall = true; openFirewall = true;
ports = [ 666 ];
settings = {
AuthenticationMethods = "publickey";
KbdInteractiveAuthentication = false;
MaxAuthTries = 5;
PasswordAuthentication = false;
PermitRootLogin = "no";
X11Forwarding = false;
};
}; };
} }
+2 -11
View File
@@ -1,24 +1,19 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
{ {
# system packges # system packages
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
alacritty
btop btop
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
@@ -31,23 +26,19 @@
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
vim vim
wl-clipboard
wget wget
which which
xz xz
zip zip
zstd zstd
]; ];
# browser
programs.firefox.enable = true;
} }
+13
View File
@@ -0,0 +1,13 @@
{ config, lib, pkgs, ... }:
{
# 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; [
proton-vpn
];
}
+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
@@ -31,14 +31,18 @@
options = "--delete-older-than 7d"; options = "--delete-older-than 7d";
}; };
}; };
# 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;
+8
View File
@@ -0,0 +1,8 @@
{ config, lib, pkgs, ... }:
{
# install stellarium for stargazing and sky simulation
environment.systemPackages = with pkgs; [
stellarium
];
}
+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 -6
View File
@@ -5,7 +5,7 @@
users.users.aaron = { users.users.aaron = {
isNormalUser = true; isNormalUser = true;
group = "users"; group = "users";
extraGroups = [ "wheel" "networkmanager" ]; extraGroups = [ "wheel" "networkmanager" "dialout" ];
shell = pkgs.zsh; shell = pkgs.zsh;
}; };
@@ -14,10 +14,5 @@
enable = true; enable = true;
enableCompletion = true; enableCompletion = true;
autosuggestions.enable = true; autosuggestions.enable = true;
ohMyZsh = {
enable = true;
plugins = [ "git" "sudo" ];
theme = "gentoo";
};
}; };
} }