nixos/hosts/FredOS-Eee.nix

70 lines
2.7 KiB
Nix
Raw Normal View History

# 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"
];
# 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 ];
# 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;
}