# FredOS-Eee — Asus Eee PC 1000HG, a toy netbook running XFCE. # # Not built from common.nix: stylix, home-manager and hyprland would all # compile from source for i686 (almost nothing is in cache.nixos.org for it) # and wouldn't fit in 1GB anyway. Only locale + users are shared. # # Build on the server, never on the Eee — evaluating this flake alone would # eat its 1GB. { config, lib, pkgs, ... }: { imports = [ ../settings/locale.nix ../settings/users.nix ]; nixpkgs.overlays = [ (final: prev: { # partial-protected-regular-retry-linux fails on i686; the binary is fine. rsync = prev.rsync.overrideAttrs { doCheck = false; }; # Tests need gjs -> spidermonkey, an hour+ of i686 compile for a check. libsecret = prev.libsecret.overrideAttrs { doCheck = false; }; # libultrahdr misses -latomic on i686; icon themes only need plain convert. imagemagick = prev.imagemagick.override { libultrahdrSupport = false; }; # nixpkgs' own i686 test patch no longer applies; it only touches tests. upower = prev.upower.overrideAttrs (o: { patches = lib.filter (p: !lib.hasSuffix "i686-test-remove-battery-check.patch" (toString p)) o.patches; doCheck = false; }); # 64-bit getint64 tests fail on 32-bit. iniparser = prev.iniparser.overrideAttrs { doCheck = false; }; }) ]; # Portals (flatpak-style sandbox plumbing) drag in gnome-settings-daemon, # cinnamon-desktop and pulseaudio. Nothing here needs them. xdg.portal.enable = lib.mkForce false; # Plain gvfs: no gnome-online-accounts. services.gvfs.package = pkgs.gvfs; nix.settings.experimental-features = [ "nix-command" "flakes" ]; networking.networkmanager.enable = true; services.xserver.enable = true; services.xserver.desktopManager.xfce.enable = true; # Thunar thumbnails: tumbler -> libgepub -> webkitgtk, hours of i686 compile. services.tumbler.enable = lib.mkForce false; services.displayManager.autoLogin = { enable = true; user = "fred"; }; services.openssh.enable = true; # The server's key, so it can push closures and poke at the box. users.users.fred.openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMbIdOSPjnJYQ7z7n0mHKo8T8PnAkCyIBCmT4KpsHyy/ fred@FredOS-Mediaserver" ]; # 1GB RAM: compressed swap in front of the disk swap. zramSwap.enable = true; # The NixOS manual is a big from-source build on i686 for a page nobody reads. documentation.nixos.enable = false; }