{ config, lib, pkgs, ... }: { # Use the extlinux boot loader. (NixOS wants to enable GRUB by default) boot.loader.grub.enable = false; # Enables the generation of /boot/extlinux/extlinux.conf boot.loader.generic-extlinux-compatible.enable = true; _archetypes = { # Use headless profile profiles.headless = { enable = true; home.users.timmy.enable = true; home.users.piframe.enable = true; }; collections = { desktop.xserver.enable = true; }; }; # Install twm as basic window manager to boot into and immediately go fullscreen on immich-frame services.xserver.windowManager.twm.enable = true; # Install immich-frame environment.systemPackages = with pkgs; [ immich-frame ]; # Open 8080 for immich-frame networking.firewall.allowedTCPPorts = [ 8080 ]; # Enable user timmy for ssh maintenance and wifi secrets _users.timmy = { enable = true; wifi.enable = true; }; # Enable piframe user users.users.piframe = { isNormalUser = true; #extraGroups = [ "video" ]; }; # Configure automatic login with getty services.getty.autologinUser = "piframe"; # Configure piframe home home-manager.users.piframe = { services.gammastep = { enable = true; temperature = { day = 6500; night = 3600; }; # Manual location to avoid having to mess with geoclue latitude = 41.881832; longitude = -87.623177; }; programs.bash = { enable = true; profileExtra = '' # startx on tty1 immediately [ -z $DISPLAY ] && [ `tty` = /dev/tty1 ] && startx ''; }; home.file.".xinitrc".text = '' #!/bin/sh gammastep & unclutter --start-hidden & immich-frame --fullscreen & exec twm ''; home.file.".twmrc".text = '' *NoTitle # Hide title bar on all windows *NoBorder # Hide borders on all windows ''; home.stateVersion = "25.11"; }; system.stateVersion = "25.11"; }