summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--archetypes/profiles/headless/default.nix6
-rw-r--r--hosts/piframe/configuration.nix55
-rw-r--r--pkgs/immich-frame/default.nix5
-rw-r--r--users/timmy/default.nix5
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: