feat: add little-rascal laptop configuration and deployment

- Add complete NixOS configuration for little-rascal laptop
- Include Niri window manager and CLI-focused setup
- Add hardware configuration for laptop hardware
- Include deployment script for little-rascal
- Update flake.nix to include little-rascal as build target
- Add deploy-rs configuration for little-rascal deployment

The little-rascal laptop is now fully integrated into the Home Lab
infrastructure with complete NixOS configuration management.
This commit is contained in:
Geir Okkenhaug Jerstad 2025-06-30 11:40:31 +02:00
parent f42bae513c
commit 3715e542b2
6 changed files with 355 additions and 46 deletions

View file

@ -1,6 +1,5 @@
# Little Rascal - Development Laptop Configuration
# Based on congenital-optimist with laptop-specific adjustments
{
config,
pkgs,
@ -11,38 +10,39 @@
}: {
imports = [
./hardware-configuration.nix
# Common modules
../../modules/common/base.nix
../../modules/common/nix.nix
../../modules/common/tty.nix
../../modules/common/emacs.nix
# Desktop
../../modules/desktop/niri.nix
../../modules/desktop/cosmic.nix
../../modules/desktop/fonts.nix
# Development
# Development
../../modules/development/tools.nix
../../modules/ai/claude-code.nix
# Users
../../modules/users/geir.nix
../../modules/users/common.nix
../../modules/users/shell-aliases.nix
# Virtualization
../../modules/virtualization/libvirt.nix
../../modules/virtualization/incus.nix
../../modules/virtualization/podman.nix
# Audio
../../modules/sound/pipewire.nix
# Network
../../modules/network/common.nix
../../modules/network/extraHosts.nix
# Security
../../modules/security/ssh-keys.nix
];
@ -50,26 +50,26 @@
networking = {
hostName = "little-rascal";
networkmanager.enable = true;
# Tailscale for home lab access
firewall = {
enable = true;
allowedUDPPorts = [ 41641 ]; # Tailscale
allowedTCPPorts = [ 22 ]; # SSH
allowedUDPPorts = [41641]; # Tailscale
allowedTCPPorts = [22]; # SSH
};
};
# Boot configuration
# Boot configuration
boot = {
loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
timeout = 3;
};
kernelModules = [ "kvm-amd" "zram" ];
kernelModules = ["kvm-amd" "zram"];
tmp.cleanOnBoot = true;
# zram swap like other machines
kernel.sysctl."vm.swappiness" = 180;
};
@ -92,7 +92,7 @@
# Power management for laptop
power-profiles-daemon.enable = true;
upower.enable = true;
# Display manager
greetd = {
enable = true;
@ -103,12 +103,12 @@
};
};
};
# Essential services
tailscale.enable = true;
blueman.enable = true;
printing.enable = true;
# Location services for time zone
geoclue2.enable = true;
};
@ -123,4 +123,4 @@
# System version
system.stateVersion = "25.05";
}
}