30 Commits

Author SHA1 Message Date
81b04a8b1c Merge pull request 'improve zsh config' (#27) from feautre/zshimprovements into main
Reviewed-on: #27
2026-03-07 21:07:50 +01:00
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
97f782b3d9 Merge pull request 'update and cleanup' (#26) from feature/cleanup into main
Reviewed-on: #26
2026-03-06 23:01:47 +01:00
ad50c751d6 chore(update): update flake file 2026-03-06 22:28:18 +01:00
3494a85734 refactor(noctalia): remove quickshell dependency as noctalia-qs already gets pulled in by the flake 2026-03-06 22:21:11 +01:00
fcb0161e83 Merge pull request 'feature/argon' (#25) from feature/argon into main
Reviewed-on: #25
2026-03-06 18:37:01 +01:00
9b02617698 refactor(drives): add disclaimer and change order 2026-03-06 18:34:15 +01:00
bd6546263b refactor(greetd): rename package to omit warning 2026-03-06 18:25:28 +01:00
53c2cf1a63 refactor(graphics): add amdgpu_top to systempackages 2026-03-06 18:16:40 +01:00
80638a920b feature(greeter): replace sddm with greetd since sddm has issues with rdna4 2026-03-05 22:15:56 +01:00
e4674e5828 refactor(networking): remove general hostname 2026-03-05 21:58:56 +01:00
16ea94e160 feature(graphics): add amdgpu_top to the default pkgs 2026-03-05 21:58:36 +01:00
afd3113cf3 feature(graphics): add amdgpu to the initrd 2026-03-05 21:50:46 +01:00
d7a08c2571 feature(protonvpn): add protonvpn nix module 2026-03-05 21:36:10 +01:00
8cdcb15618 fix(drives): remove password fallback 2026-03-05 21:23:34 +01:00
a0fd1e9264 feature(drives): add encrypted drives for argon 2026-03-05 20:53:40 +01:00
d60bdd1245 fix(noctalia): add quickshell since it is a dependency of noctalia 2026-03-05 20:52:51 +01:00
404868aa85 refactor(shell): remove omz config from users file and add to home-manager 2026-03-05 20:52:19 +01:00
7566d0d1ef fix(graphics): explicitly add graphics accelleration 2026-03-05 20:50:50 +01:00
6a132670e2 fix(hostnames): move hostname to configuration.nix 2026-03-05 17:38:00 +01:00
f182b2418a feature(argon): add config for argon 2026-03-05 17:37:12 +01:00
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
f53a2aceee chore(flake): update flake lock to the latest version 2026-03-04 17:10:18 +01:00
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
cc44e68a2e feature(users): add docker group to the main user 2026-02-21 21:17:19 +01:00
b97d6cc47d feature(neon): add docker to neon 2026-02-21 21:16:42 +01:00
0d495039ee feature(docker): add docker daemon config for nixos 2026-02-21 21:16:17 +01:00
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
aea7ba5c97 feature(ssh): add more security to the ssh config 2026-02-21 18:04:47 +01:00
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
15 changed files with 261 additions and 26 deletions

48
flake.lock generated
View File

@@ -28,11 +28,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1771519029, "lastModified": 1772807318,
"narHash": "sha256-H59Qf82wv5kBXVoyXsmUKW+9J3o8FqgY4uKaLdsLdLg=", "narHash": "sha256-Qjw6ILt8cb2HQQpCmWNLMZZ63wEo1KjTQt+1BcQBr7k=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "167e0b6837115e672ec5f58e2b0ea39093abe807", "rev": "daa2c221320809f5514edde74d0ad0193ad54ed8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -43,11 +43,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1771369470, "lastModified": 1772624091,
"narHash": "sha256-0NBlEBKkN3lufyvFegY4TYv5mCNHbi5OmBDrzihbBMQ=", "narHash": "sha256-QKyJ0QGWBn6r0invrMAK8dmJoBYWoOWy7lN+UHzW1jc=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "0182a361324364ae3f436a63005877674cf45efb", "rev": "80bdc1e5ce51f56b19791b52b2901187931f5353",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -66,11 +66,11 @@
"systems": "systems" "systems": "systems"
}, },
"locked": { "locked": {
"lastModified": 1771135771, "lastModified": 1772402258,
"narHash": "sha256-wyvBIhDuyCRyjB3yPg77qoyxrlgQtBR1rVW3c9knV3E=", "narHash": "sha256-3DmCFOdmbkFML1/G9gj8Wb+rCCZFPOQtNoMCpqOF8SA=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixvim", "repo": "nixvim",
"rev": "ed0424f0b08d303a7348f52f7850ad1b2704f9ba", "rev": "21ae25e13b01d3b4cdc750b5f9e7bad68b150c10",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -83,14 +83,15 @@
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
] ],
"noctalia-qs": "noctalia-qs"
}, },
"locked": { "locked": {
"lastModified": 1771513929, "lastModified": 1772821410,
"narHash": "sha256-dPeHevAT1Cb2w/Wrfz/d5i6RfO8bvbGl/KrTPxU2l3w=", "narHash": "sha256-KE3cnl3eKdfoPwo5aTWmb9j2ROPcdaxWCZ9wSt2VDLc=",
"owner": "noctalia-dev", "owner": "noctalia-dev",
"repo": "noctalia-shell", "repo": "noctalia-shell",
"rev": "9c47ce03f200e0b8fc515d973440d5bc3e359785", "rev": "c685b70f10bc59180e515ccad86a80a671ce80a0",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -99,6 +100,27 @@
"type": "github" "type": "github"
} }
}, },
"noctalia-qs": {
"inputs": {
"nixpkgs": [
"noctalia",
"nixpkgs"
]
},
"locked": {
"lastModified": 1772673824,
"narHash": "sha256-TLHXPoELZA6VeuzC1Zpx+MnSsYzrJs+DSieMgfjAOJc=",
"owner": "noctalia-dev",
"repo": "noctalia-qs",
"rev": "f8531192cd09b9ea2e78d18e9cfc9d3dba498690",
"type": "github"
},
"original": {
"owner": "noctalia-dev",
"repo": "noctalia-qs",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"home-manager": "home-manager", "home-manager": "home-manager",

View File

@@ -53,6 +53,23 @@
} }
]; ];
}; };
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
];
}
];
};
}; };
}; };
} }

View File

@@ -0,0 +1,31 @@
{ config, pkgs, inputs, ... }:
{
imports = [
../../modules/nixos/audio.nix
../../modules/nixos/bootloader.nix
../../modules/nixos/certificates.nix
../../modules/nixos/drives.nix
../../modules/nixos/gnupg.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/steam.nix
../../modules/nixos/users.nix
];
# set hostname
networking.hostName = "argon";
# install state version
system.stateVersion = "25.11"; # Don't change
}

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;
}

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
@@ -19,6 +20,9 @@
../../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
} }

View File

@@ -7,9 +7,9 @@
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";
theme = "noctalia"; # generated by noctalia-shell theme = "noctalia"; # generated by noctalia-shell
window-decoration = "auto"; window-decoration = "auto";

View File

@@ -1,15 +1,25 @@
{ config, pkgs, inputs, ... }: { config, 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"; # theme will be set below
#plugins = [ "git" "ssh-agent" ]; theme = "";
plugins = [ "git" "ssh-agent" "gpg-agent" ];
}; };
# only display a fancy theme when glyphs are rendered
initExtraBeforeCompInit = ''
if [[ "$TERM" == "linux" || "$TERM" == "screen" ]]; then
ZSH_THEME="gentoo"
else
ZSH_THEME="agnoster"
fi
'';
}; };
# set important env vars # set important env vars

23
modules/nixos/docker.nix Normal file
View File

@@ -0,0 +1,23 @@
{ config, lib, pkgs, ...}:
{
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
modules/nixos/drives.nix Normal file
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" ];
};
}

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
modules/nixos/greetd.nix Normal file
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";
};
};
};
}

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;

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;
};
}; };
} }

View File

@@ -0,0 +1,9 @@
{ config, lib, pkgs, ... }:
{
networking.firewall.checkReversePath = false;
environment.systemPackages = with pkgs; [
wireguard-tools
protonvpn-gui
];
}

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" "docker" ];
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";
};
}; };
} }