diff options
| -rw-r--r-- | archetypes/profiles/headless/default.nix | 6 | ||||
| -rw-r--r-- | hosts/piframe/configuration.nix | 55 | ||||
| -rw-r--r-- | pkgs/immich-frame/default.nix | 5 | ||||
| -rw-r--r-- | users/timmy/default.nix | 5 |
4 files changed, 54 insertions, 17 deletions
diff --git a/archetypes/profiles/headless/default.nix b/archetypes/profiles/headless/default.nix index d40e9dd..3441aa4 100644 --- a/archetypes/profiles/headless/default.nix +++ b/archetypes/profiles/headless/default.nix @@ -22,8 +22,10 @@ }; homeConfig = { - home._repos = { - enable = mkHeadless true; + # Disable fontconfig features explicitly to avoid warnings + fonts.fontconfig = { + subpixelRendering = mkHeadless "none"; + hinting = mkHeadless "none"; }; }; in { diff --git a/hosts/piframe/configuration.nix b/hosts/piframe/configuration.nix index dc9fc4f..585b011 100644 --- a/hosts/piframe/configuration.nix +++ b/hosts/piframe/configuration.nix @@ -9,38 +9,67 @@ profiles.headless = { enable = true; home.users.timmy.enable = true; + home.users.piframe.enable = true; }; collections = { desktop.xserver.enable = true; }; }; - # Enable geoclue for redshift - services._geoclue2.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 ]; - # Enable user timmy + # Enable user timmy for ssh maintenance and wifi secrets _users.timmy = { enable = true; - autologin.enable = true; wifi.enable = true; }; - # Configure home - home-manager.users.timmy = { - services._redshift.enable = true; - home.file.".xinitrc" = { - text = '' - #!/bin/sh - redshift & - unclutter & - exec immich-frame + # 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 + redshift & + 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"; diff --git a/pkgs/immich-frame/default.nix b/pkgs/immich-frame/default.nix index 2343019..598ffa3 100644 --- a/pkgs/immich-frame/default.nix +++ b/pkgs/immich-frame/default.nix @@ -6,11 +6,11 @@ }: let - version = "0.3.0"; + version = "0.3.1"; src = fetchgit { url = "https://git.tjkeller.xyz/immich-frame"; tag = "v${version}"; - hash = "sha256-zHpbjaa0PH82adsz1kXbJs2FZscbQQmoZTFw63ffuso="; + hash = "sha256-xDZAPprXRDRxZ8oJdskpijkO9DK6wzEn48vD9bBdCVY="; }; frontend = buildNpmPackage { @@ -39,6 +39,7 @@ in python3Packages.buildPythonApplication { flask-socketio numpy pillow + platformdirs pygame pyopengl requests diff --git a/users/timmy/default.nix b/users/timmy/default.nix index d91c5c1..e118395 100644 --- a/users/timmy/default.nix +++ b/users/timmy/default.nix @@ -115,6 +115,11 @@ in { }; }; + # Clone repos + home._repos = { + enable = true; + }; + # Setup gtk bookmarks gtk.gtk3.bookmarks = ( lib.mapAttrsToList (name: dir: |
