Merge pull request 'chore: linting' (#81) from chore/lint into main

Reviewed-on: #81
This commit was merged in pull request #81.
This commit is contained in:
2026-10-01 11:42:15 +02:00
48 changed files with 328 additions and 213 deletions
+2
View File
@@ -0,0 +1,2 @@
# nixfmt reformat
2231d2fc3fb4dc140c5f3257523dcdb513ac4dea
+3 -1
View File
@@ -15,8 +15,10 @@
scripts = {
lint.exec = ''
set -e
statix check .
deadnix --fail .
# hardware-configuration.nix is generated; statix skips it via statix.toml
deadnix --fail --exclude hosts/*/hardware-configuration.nix -- .
'';
fmt.exec = ''
nixfmt $(git ls-files '*.nix')
+12 -3
View File
@@ -17,9 +17,17 @@
};
};
outputs = { self, nixpkgs, home-manager, nixvim, ... }@inputs:
outputs =
{
nixpkgs,
home-manager,
nixvim,
...
}@inputs:
let
mkHost = hostName: nixpkgs.lib.nixosSystem {
mkHost =
hostName:
nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
@@ -35,7 +43,8 @@
}
];
};
in {
in
{
nixosConfigurations = {
default = mkHost "default";
neon = mkHost "neon";
-3
View File
@@ -1,5 +1,3 @@
{ config, pkgs, inputs, ... }:
{
imports = [
../../modules/nixos/appimage.nix
@@ -34,4 +32,3 @@
# install state version
system.stateVersion = "25.11"; # Don't change
}
+29 -13
View File
@@ -1,37 +1,53 @@
# 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, ... }:
{
config,
lib,
pkgs,
modulesPath,
...
}:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
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";
fileSystems."/" = {
device = "/dev/mapper/lvmroot-root";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/AC1C-20EB";
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/AC1C-20EB";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
options = [
"fmask=0022"
"dmask=0022"
];
};
fileSystems."/home" =
{ device = "/dev/mapper/lvmroot-home";
fileSystems."/home" = {
device = "/dev/mapper/lvmroot-home";
fsType = "ext4";
};
swapDevices =
[ { device = "/dev/mapper/lvmroot-swap"; }
swapDevices = [
{ device = "/dev/mapper/lvmroot-swap"; }
];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
+11 -5
View File
@@ -1,10 +1,13 @@
# 0x29a nixos conifg
{ pkgs, lib, ... }:
{ pkgs, ... }:
{
# use flakes
nix.settings.experimental-features = [ "nix-command" "flakes" ];
nix.settings.experimental-features = [
"nix-command"
"flakes"
];
# configure bootloader
boot.loader.systemd-boot.enable = false;
@@ -60,7 +63,8 @@
windowManager.qtile = {
enable = true;
extraPackages = python3Packages: with python3Packages; [
extraPackages =
python3Packages: with python3Packages; [
qtile-extras
];
};
@@ -97,7 +101,10 @@
autosuggestions.enable = true;
ohMyZsh = {
enable = true;
plugins = [ "git" "sudo" ];
plugins = [
"git"
"sudo"
];
theme = "agnoster";
};
};
@@ -130,4 +137,3 @@
# install state version
system.stateVersion = "25.05"; # Don't change
}
+34 -14
View File
@@ -1,35 +1,55 @@
# 0x29a nixos hardware configuration
{ config, lib, pkgs, modulesPath, ... }:
{
config,
lib,
pkgs,
modulesPath,
...
}:
{
imports =
[ (modulesPath + "/profiles/qemu-guest.nix")
imports = [
(modulesPath + "/profiles/qemu-guest.nix")
];
# boot and initrd configs
boot.initrd.availableKernelModules = [ "uhci_hcd" "ehci_pci" "ahci" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod" ];
boot.initrd.kernelModules = [ "dm-snapshot" "cryptd" ];
boot.initrd.availableKernelModules = [
"uhci_hcd"
"ehci_pci"
"ahci"
"virtio_pci"
"virtio_scsi"
"sd_mod"
"sr_mod"
];
boot.initrd.kernelModules = [
"dm-snapshot"
"cryptd"
];
boot.kernelModules = [ ];
boot.extraModulePackages = [ ];
boot.initrd.luks.devices."cryptroot".device = "/dev/disk/by-label/nixcrypt";
# file systems
fileSystems."/" =
{ device = "/dev/disk/by-label/nixroot";
fileSystems."/" = {
device = "/dev/disk/by-label/nixroot";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-label/nixboot";
fileSystems."/boot" = {
device = "/dev/disk/by-label/nixboot";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
options = [
"fmask=0022"
"dmask=0022"
];
};
fileSystems."/home" =
{ device = "/dev/disk/by-label/nixhome";
fileSystems."/home" = {
device = "/dev/disk/by-label/nixhome";
fsType = "ext4";
};
swapDevices =
[ { device = "/dev/disk/by-label/nixswap"; }
swapDevices = [
{ device = "/dev/disk/by-label/nixswap"; }
];
# enable dhcp on all interfaces
+7 -3
View File
@@ -1,4 +1,4 @@
{ config, pkgs, ... }:
{ pkgs, ... }:
{
# user config
@@ -50,12 +50,16 @@
syntaxHighlighting.enable = true;
oh-my-zsh = {
enable = true;
plugins = [ "git" "sudo" "python" "ansible" ];
plugins = [
"git"
"sudo"
"python"
"ansible"
];
theme = "agnoster";
};
};
## deploy qtile config
#home.file."qtile-config" = {
# target = ".config/qtile/config.py";
-3
View File
@@ -1,5 +1,3 @@
{ config, pkgs, inputs, ... }:
{
imports = [
../../modules/nixos/appimage.nix
@@ -31,4 +29,3 @@
# install state version
system.stateVersion = "25.11"; # Don't change
}
+32 -14
View File
@@ -1,38 +1,56 @@
# 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, ... }:
{
config,
lib,
pkgs,
modulesPath,
...
}:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
boot.initrd.kernelModules = [ "dm-snapshot" "cryptd" ];
boot.initrd.availableKernelModules = [
"xhci_pci"
"nvme"
"usb_storage"
"sd_mod"
"rtsx_pci_sdmmc"
];
boot.initrd.kernelModules = [
"dm-snapshot"
"cryptd"
];
boot.initrd.luks.devices."cryptroot".device = "/dev/disk/by-label/nixcrypt";
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-label/nixroot";
fileSystems."/" = {
device = "/dev/disk/by-label/nixroot";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-label/nixboot";
fileSystems."/boot" = {
device = "/dev/disk/by-label/nixboot";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
options = [
"fmask=0022"
"dmask=0022"
];
};
fileSystems."/home" =
{ device = "/dev/disk/by-label/nixhome";
fileSystems."/home" = {
device = "/dev/disk/by-label/nixhome";
fsType = "ext4";
};
swapDevices =
[ { device = "/dev/disk/by-label/nixswap"; }
swapDevices = [
{ device = "/dev/disk/by-label/nixswap"; }
];
networking.useDHCP = lib.mkDefault true;
+1 -1
View File
@@ -1,4 +1,4 @@
{ config, pkgs, inputs, ... }:
{ pkgs, ... }:
{
# user fonts
-2
View File
@@ -1,5 +1,3 @@
{ config, pkgs, inputs, ... }:
{
programs.ghostty = {
enable = true;
+13 -5
View File
@@ -1,4 +1,9 @@
{ config, lib, pkgs, inputs, ... }:
{
config,
lib,
pkgs,
...
}:
let
email = "aaron@0x29a.ch";
@@ -14,16 +19,19 @@ in
{
# gitea verifies signatures against the account keys, this teaches the local
# git the same trust so `git log --show-signature` resolves as well
xdg.configFile."git/allowed_signers".text =
lib.concatMapStrings (key: "${email} ${key}\n") signingKeys;
xdg.configFile."git/allowed_signers".text = lib.concatMapStrings (
key: "${email} ${key}\n"
) signingKeys;
programs.git = {
enable = true;
settings = {
push = { autoSetupRemote = true; };
push = {
autoSetupRemote = true;
};
user = {
name = "aaron";
email = email;
inherit email;
};
gpg.ssh.allowedSignersFile = "${config.xdg.configHome}/git/allowed_signers";
};
+11 -3
View File
@@ -1,4 +1,4 @@
{ config, pkgs, inputs, ... }:
{ pkgs, inputs, ... }:
{
programs.nixvim = {
@@ -67,7 +67,11 @@
};
plugins.treesitter = {
enable = true;
settings.ensure_installed = [ "markdown" "markdown_inline" "typst" ];
settings.ensure_installed = [
"markdown"
"markdown_inline"
"typst"
];
};
plugins.typst-preview = {
enable = true;
@@ -87,7 +91,11 @@
enable = true;
settings = {
# render in normal mode, raw source in insert
render_modes = [ "n" "c" "t"];
render_modes = [
"n"
"c"
"t"
];
pipe_table.preset = "round";
heading.width = "block";
file_types = [ "markdown" ];
+21 -4
View File
@@ -1,4 +1,4 @@
{ config, pkgs, inputs, ... }:
{ pkgs, inputs, ... }:
{
# Noctalia v5 shell, managed via home-manager's built-in programs.noctalia module.
@@ -73,9 +73,22 @@
radius = 0;
scale = 1.2;
widget_spacing = 20;
start = [ "control-center" "cpu" "ram" "temp" "active_window" ];
start = [
"control-center"
"cpu"
"ram"
"temp"
"active_window"
];
center = [ "workspaces" ];
end = [ "tray" "bluetooth" "notifications" "volume" "network" "clock" ];
end = [
"tray"
"bluetooth"
"notifications"
"volume"
"network"
"clock"
];
};
};
@@ -103,7 +116,11 @@
# idle behavior
idle = {
behavior_order = [ "screen-off" "lock" "lock-and-suspend" ];
behavior_order = [
"screen-off"
"lock"
"lock-and-suspend"
];
behavior = {
"screen-off" = {
enabled = true;
+1 -1
View File
@@ -1,4 +1,4 @@
{ config, pkgs, inputs, ... }:
{ config, pkgs, ... }:
{
# user packages
+6 -2
View File
@@ -1,4 +1,4 @@
{ config, lib, pkgs, inputs, ... }:
{ lib, ... }:
{
# configure z-shell to use omz with some plugins
@@ -9,7 +9,11 @@
oh-my-zsh = {
enable = true;
# add git and agents as plugins
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
+1 -1
View File
@@ -1,4 +1,4 @@
{ config, pkgs, inputs, ... }:
{ pkgs, ... }:
{
# set gtk theme
-2
View File
@@ -1,5 +1,3 @@
{ config, pkgs, inputs, ... }:
let
# Powerline separators, U+E0B0..U+E0B3.
#
-2
View File
@@ -1,5 +1,3 @@
{ 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
+8 -3
View File
@@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }:
{ lib, pkgs, ... }:
let
# Siril's Python plugins (sirilpy) run in a venv that pip-installs foreign
@@ -36,7 +36,10 @@ let
wrapProgram $out/bin/siril \
--prefix PATH : /etc/siril/bin \
--prefix QT_PLUGIN_PATH : ${pkgs.adwaita-qt6}/lib/qt-6/plugins \
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath (with pkgs; [
--prefix LD_LIBRARY_PATH : ${
lib.makeLibraryPath (
with pkgs;
[
stdenv.cc.cc.lib # libstdc++ / libgcc_s / libgomp (numpy etc.)
zlib
zstd # libzstd.so.1 (PyQt6)
@@ -59,7 +62,9 @@ let
libxcb-image
libxcb-keysyms
libxcb-render-util
])}
]
)
}
'';
};
in
-2
View File
@@ -1,5 +1,3 @@
{ config, lib, pkgs, ... }:
{
# enable sound through pipewire
services.pipewire = {
+5 -2
View File
@@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }:
{ pkgs, ... }:
{
# set bootloader to systemd
@@ -17,7 +17,10 @@
};
# kernel options
boot.kernelParams = [ "quiet" "acpi.debug_level=0" ];
boot.kernelParams = [
"quiet"
"acpi.debug_level=0"
];
boot.kernelPackages = pkgs.linuxPackages_latest;
boot.consoleLogLevel = 2;
+1 -1
View File
@@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }:
{ pkgs, ... }:
{
# install calibre for ebook management and kobo syncing
-2
View File
@@ -1,5 +1,3 @@
{ config, lib, pkgs, ... }:
let
caddyRootCA = ''
-----BEGIN CERTIFICATE-----
+1 -1
View File
@@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }:
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
+5 -2
View File
@@ -1,4 +1,4 @@
{ config, lib, pkgs, ...}:
{ pkgs, ... }:
{
# add docker group to user
@@ -8,7 +8,10 @@
enable = true;
# Customize Docker daemon settings
daemon.settings = {
dns = [ "1.1.1.1" "8.8.8.8" ];
dns = [
"1.1.1.1"
"8.8.8.8"
];
log-driver = "journald";
registry-mirrors = [ "https://mirror.gcr.io" ];
storage-driver = "overlay2";
-2
View File
@@ -1,5 +1,3 @@
{ config, lib, pkgs, ... }:
# Add encrypted drives to argon
{
+1 -1
View File
@@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }:
{ config, pkgs, ... }:
{
# enable gnupg agent
+1 -1
View File
@@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }:
{ pkgs, ... }:
{
# install gnuradio companion along with it's osmocom library
+1 -1
View File
@@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }:
{ pkgs, ... }:
{
# enable amd GPU acceleration (mesa, vulkan, egl)
+1 -1
View File
@@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }:
{ pkgs, ... }:
{
# greetd display manager with tuigreet
-2
View File
@@ -1,5 +1,3 @@
{ config, lib, pkgs, ... }:
{
# set the time zone
time.timeZone = "Europe/Zurich";
+1 -1
View File
@@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }:
{ pkgs, ... }:
{
# user networkmanager
+1 -1
View File
@@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }:
{ pkgs, ... }:
{
# just enable and install niri
+1 -1
View File
@@ -1,4 +1,4 @@
{ config, lib, pkgs, inputs, ... }:
{ pkgs, inputs, ... }:
{
# install noctalia and helper packages
environment.systemPackages = with pkgs; [
-2
View File
@@ -1,5 +1,3 @@
{ config, lib, pkgs, ... }:
{
# enable the openssh daemon
services.openssh = {
+1 -1
View File
@@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }:
{ pkgs, ... }:
{
# system packages
+1 -1
View File
@@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }:
{ pkgs, ... }:
{
# protonvpn uses wireguard tunnels, which break strict reverse path filtering
+1 -1
View File
@@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }:
{ pkgs, ... }:
{
# enable sddm and use astronaut theme
-2
View File
@@ -1,5 +1,3 @@
{ config, lib, pkgs, ... }:
{
# list of enabled services on the system
services = {
+8 -4
View File
@@ -1,11 +1,12 @@
{ config, lib, pkgs, ... }:
{
nix = {
# nix settings
settings = {
# enable flakes and nix-command
experimental-features = [ "nix-command" "flakes" ];
experimental-features = [
"nix-command"
"flakes"
];
# auto-optimize my nix-store
auto-optimise-store = true;
# use all cores
@@ -33,7 +34,10 @@
};
# add trusted users (able to modify the nix store)
nix.settings.trusted-users = [ "root" "@wheel" ];
nix.settings.trusted-users = [
"root"
"@wheel"
];
# allow unfree packages (steam, protonvpn, discord, etc.)
nixpkgs.config.allowUnfree = true;
+1 -1
View File
@@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }:
{ pkgs, ... }:
{
# enable steam and open firewall
+1 -1
View File
@@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }:
{ pkgs, ... }:
{
# Enable Thunar
+6 -2
View File
@@ -1,11 +1,15 @@
{ config, lib, pkgs, ... }:
{ pkgs, ... }:
{
# create users
users.users.aaron = {
isNormalUser = true;
group = "users";
extraGroups = [ "wheel" "networkmanager" "dialout" ];
extraGroups = [
"wheel"
"networkmanager"
"dialout"
];
shell = pkgs.zsh;
};
+1 -1
View File
@@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }:
{ pkgs, ... }:
{
# Vial-capable keyboards (lily58 pro r2g) expose a second, non-keyboard raw
+8
View File
@@ -0,0 +1,8 @@
# statix configuration (run via `lint` in the devenv)
# Flat assignments like `boot.loader = ...; boot.plymouth = ...;` are the
# preferred style in this repo, so don't ask for them to be merged.
disabled = [ "repeated_keys" ]
# Generated by nixos-generate-config, not maintained by hand.
ignore = [ "hosts/*/hardware-configuration.nix" ]
-2
View File
@@ -1,5 +1,3 @@
{ config, pkgs, ... }:
{
imports = [
../../modules/home-manager/fonts.nix