131 lines
2.7 KiB
Nix
131 lines
2.7 KiB
Nix
# Little Rascal - Development Laptop Configuration
|
|
# Based on congenital-optimist with laptop-specific adjustments
|
|
{
|
|
config,
|
|
pkgs,
|
|
lib,
|
|
inputs,
|
|
unstable,
|
|
...
|
|
}: {
|
|
imports = [
|
|
./hardware-configuration.nix
|
|
|
|
# Common modules
|
|
../../modules/common/base.nix
|
|
../../modules/common/nix.nix
|
|
../../modules/common/tty.nix
|
|
|
|
# Desktop
|
|
../../modules/desktop/niri.nix
|
|
../../modules/desktop/cosmic.nix
|
|
../../modules/desktop/fonts.nix
|
|
../../modules/desktop/input.nix
|
|
|
|
# Development
|
|
../../modules/development/tools.nix
|
|
../../modules/development/emacs.nix
|
|
../../modules/ai/claude-code.nix
|
|
|
|
# Users
|
|
../../modules/users/geir.nix
|
|
../../modules/users/sma.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
|
|
|
|
# Services
|
|
../../modules/services/seatd.nix
|
|
];
|
|
|
|
networking = {
|
|
hostName = "little-rascal";
|
|
networkmanager.enable = true;
|
|
|
|
# Tailscale for home lab access
|
|
firewall = {
|
|
enable = true;
|
|
allowedUDPPorts = [41641]; # Tailscale
|
|
allowedTCPPorts = [22]; # SSH
|
|
};
|
|
};
|
|
|
|
# Boot configuration
|
|
boot = {
|
|
loader = {
|
|
systemd-boot.enable = true;
|
|
efi.canTouchEfiVariables = true;
|
|
timeout = 3;
|
|
};
|
|
|
|
kernelModules = ["kvm-amd" "zram"];
|
|
tmp.cleanOnBoot = true;
|
|
|
|
# zram swap like other machines
|
|
kernel.sysctl."vm.swappiness" = 180;
|
|
};
|
|
|
|
# Emacs laptop configuration
|
|
services.emacs-profiles = {
|
|
enable = true;
|
|
profile = "laptop";
|
|
enableDaemon = true;
|
|
user = "geir";
|
|
};
|
|
|
|
# zram configuration
|
|
zramSwap = {
|
|
enable = true;
|
|
algorithm = "zstd";
|
|
memoryPercent = 25; # Use 25% of RAM for zram
|
|
};
|
|
|
|
# Hardware - minimal for laptop
|
|
hardware = {
|
|
bluetooth.enable = true;
|
|
graphics.enable = true;
|
|
};
|
|
|
|
# Laptop-specific services
|
|
services = {
|
|
# Enable clean seatd/greetd login
|
|
seatd-clean.enable = true;
|
|
|
|
# Power management for laptop
|
|
power-profiles-daemon.enable = true;
|
|
upower.enable = true;
|
|
|
|
# Essential services
|
|
tailscale.enable = true;
|
|
blueman.enable = true;
|
|
printing.enable = true;
|
|
|
|
# Location services for time zone
|
|
geoclue2.enable = true;
|
|
};
|
|
|
|
# Localization
|
|
time.timeZone = "Europe/Oslo";
|
|
i18n.defaultLocale = "en_US.UTF-8";
|
|
console = {
|
|
font = "Lat2-Terminus16";
|
|
keyMap = "no";
|
|
};
|
|
|
|
# System version
|
|
system.stateVersion = "25.05";
|
|
}
|