2026-09-28 14:40:05 +01:00
|
|
|
# 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; };
|
2026-09-28 18:43:16 +01:00
|
|
|
# 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; };
|
2026-09-28 14:40:05 +01:00
|
|
|
})
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
# 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"
|
|
|
|
|
];
|
|
|
|
|
|
2026-09-28 19:50:32 +01:00
|
|
|
# Firefox is marked unsupported on i686 (Mozilla dropped 32-bit Linux), so
|
|
|
|
|
# WebKit is the only engine left that handles the modern web.
|
|
|
|
|
environment.systemPackages = [ pkgs.epiphany ];
|
|
|
|
|
|
2026-09-28 14:40:05 +01:00
|
|
|
# 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;
|
|
|
|
|
}
|