Commit Graph
17 Commits
Author SHA1 Message Date
nevaforget f765a460b5 feat: drop moonlock and moonset
The power menu is a Quickshell popout in the moonarch config now, and it
was the last caller of moonlock. Inputs, package entries and both build
recipes are gone, together with the generated /etc configs and the
moonlock PAM stack — swaylock's comes from programs.niri.enable.
2026-08-14 17:48:52 +02:00
nevaforget 630faf5390 feat: regreet and swaylock from nixpkgs, autologin after LUKS
greetd.nix configures services.displayManager.regreet and keeps niri as
the greeter compositor, so niri-greeter.kdl stays the shared file that
carries the German keyboard layout. The moongreet input, its package and
pkgs/moongreet.nix are gone.

extraCss goes through builtins.readFile: the module only recognises a
direct /nix/store child as a path, so passing the file path as a string
wrote the path itself into /etc/greetd/regreet.css.

desktop.nix installs swaylock, seeds ~/.config/swaylock/config with the
wallpaper rewritten to the store path, and now owns the moonlock PAM
stack. The Colloid overrides moved to flake.nix so the greeter and the
desktop share one derivation.

initial_session is set per host because the accounts differ. greetd's
restart option flips itself off, verified.

flake.lock still pins moonarch at the pushed revision; it needs
`nix flake update moonarch` once the moonarch commit is pushed.
2026-08-14 14:32:43 +02:00
nevaforget 1ec12da9ff Declare the disk layout with disko
Installing used to mean six manual steps through Calamares, one of which
copied hardware-configuration.nix into the repo — a step that fails
silently unless the file is also git added, since Nix only sees tracked
files. It also did not scale past one machine.

modules/disk.nix defines moonarch.disk.{enable,device,encrypt,espSize,
swapSize} and builds disko.devices from it, so another machine is a
device path rather than a new layout. Installing is a single
disko-install run from the ISO.

hardware-configuration.nix is no longer needed: nvme, ahci, sd_mod and
the USB HID modules are in the initrd via
boot.initrd.includeDefaultModules, and nixpkgs.hostPlatform comes from
nixosSystem. The testvm copy described a qcow2 that no longer exists and
is deleted; that host now uses the module against /dev/vda.

The user password no longer arrives with the installer, so it is set
once via nixos-enter after installing instead of committing a hash.
2026-08-11 09:50:55 +02:00
nevaforget bf915d66bb Install only the helper scripts that are still called
cpugov, sink-switcher and nightlight were referenced solely by the waybar
config; the Quickshell popouts cover all three. btnote, capsnote, vpn and
waybar-hidpp are unreferenced anywhere.

Adds the two system units for battery threshold restore and camera
shutoff, which had been missed.
2026-08-07 17:12:53 +02:00
nevaforget 9afff20b5e Set moonset background blur to match the Arch user config 2026-08-07 16:48:59 +02:00
nevaforget 7cd63e9e2b Point moonlock and moonset at the wallpaper store path
Both fall back to /usr/share/moonarch/wallpaper.jpg, which does not exist
under Nix, so they rendered without a background.
2026-08-07 16:46:56 +02:00
nevaforget e824177113 Wire stasis into the desktop and add its user service
Upstream ships a systemd unit in the Arch package but not in the source
tarball, so it is declared in the module.
2026-08-07 16:21:14 +02:00
nevaforget 5d9d5e8626 Seed waypaper config into the home directory
waypaper reads only ~/.config/waypaper/config.ini and has no system-wide
fallback, so it wrote its own default with an empty wallpaper entry and
nothing was ever set. systemd.user.tmpfiles 'C' copies the file once
without overwriting later user edits.
2026-08-07 15:41:58 +02:00
nevaforget f6140c07b6 Do not deploy the empty kanshi config
defaults/xdg/kanshi/config is a 0-byte placeholder, unused on Arch as
well, where kanshi reads ~/.config/kanshi/config instead. Deploying it
made kanshi fail to parse and restart in a loop. The unit now starts only
when a user config exists.
2026-08-07 15:36:51 +02:00
nevaforget d6c42526fb Drop waybar and swaync from the desktop set
Both are marked 'kept as a reserve' in the Arch config, a note left over
from the migration to the Quickshell bar. A fresh setup has no reason to
carry them, so the packages, their configs and the waybar-only helper
scripts stay out.
2026-08-07 15:02:39 +02:00
nevaforget 06a0e68bea Emit a complete XML document in fonts.fontconfig.localConf
localConf is written to /etc/fonts/local.conf verbatim. Without the XML
declaration and the fontconfig root element, fontconfig rejects the file
with 'junk after document element' and the generic-family defaults never
take effect.
2026-08-07 14:47:36 +02:00
nevaforget d9d616c45d Fix niri config discovery, polkit path, wallpaper stack
- NIRI_CONFIG points niri at /etc/xdg; without it niri writes its own
  default config, so none of the Moonarch settings applied.
- config.kdl spawns the polkit agent by FHS path, provided via tmpfiles
  instead of diverging the config shared with Arch.
- waypaper was missing entirely, hence no wallpaper. It invokes swww,
  which the maintained awww provides under a different name.
2026-08-07 13:17:46 +02:00
nevaforget 9de88b8d64 Package sweet-cursors and use it in the greeter 2026-08-07 12:58:15 +02:00
nevaforget f4c7b95acd Expose wayland-sessions at the FHS path moongreet expects
moongreet hardcodes /usr/share/wayland-sessions in src/sessions.rs and
greeter.rs calls get_sessions(None, None), so the default cannot be
overridden from config.
2026-08-07 12:47:29 +02:00
nevaforget b24d91e518 Boot into graphical.target so greetd starts
greetd is WantedBy=graphical.target, but an install without a desktop
defaults to multi-user.target and never activates it.
2026-08-07 12:38:04 +02:00
nevaforget e290c674ac Route fontconfig through fonts.fontconfig.localConf
/etc/fonts/conf.d is owned by the NixOS fontconfig module and rejects
environment.etc entries. Same content as
defaults/etc/fonts/conf.d/65-moonarch-fonts.conf.
2026-08-07 12:33:43 +02:00
nevaforget d485783cf7 Add NixOS modules for desktop, greetd and services 2026-08-07 12:26:46 +02:00