Simon Gardling 9250147c36 game-mods: list-merged launchOptions, init mode, writable targets
Three additions on top of the file-replacement scaffolding:

- mode = "init": create-on-first-apply, leave-alone-otherwise. For
  files the application writes back to (configs edited in-game, save
  files). Operator pushes a new template by deleting the target.

- chmod 644 after every copy. shutil.copy2 preserved the source's
  /nix/store mode (0o444), which made dropped DLL configs read-only.
  Apps that wrote back (OptiScaler "Save INI") got EACCES, which in
  OptiScaler's case cascaded into CreateSwapChainForHwnd returning
  E_FAIL and crashed FH5 on launch.

- launchOptions = listOf str. Multiple mods targeting the same
  steamAppId have their lists concatenated (mod-name alphabetical),
  joined with spaces, %command% appended once. Written into Steam's
  per-app block in userdata/<id>/config/localconfig.vdf via vdf
  parse + atomic os.replace. Idempotent.

- X-ConfigHash on the systemd unit so switch-to-configuration switch
  re-runs apply when the manifest changes.
2026-05-03 00:35:49 -04:00
2026-05-03 00:35:49 -04:00
2026-04-23 01:17:10 -04:00
2026-05-03 00:35:49 -04:00
2026-05-03 00:35:48 -04:00
2026-04-22 07:28:56 -04:00
2026-05-03 00:35:48 -04:00
2026-04-30 02:15:24 -04:00
2026-04-25 22:24:36 -04:00
2026-04-23 20:23:37 -04:00

My NixOS configs

Hosts

  • mreow: My personal Framework 13 laptop
  • yarn: Machine I usually just play games on. Boots into SteamOS-like interface.
  • muffin: Homeserver, runs various services.

Desktop/Laptop

What do I use?

Browser: Firefox 🦊 (actually Zen Browser :p)

Text Editor: Doom Emacs

Terminal: ghostty

Shell: fish with the pure prompt

WM: niri

Background

  • Got my background from here and used the command magick input.png -filter Point -resize 2880x1920! output.png to upscale it bilinearly
Description
Unified NixOS flake for mreow, yarn, muffin
Readme 4.8 MiB
Languages
Nix 80%
Python 15.7%
Emacs Lisp 2.4%
Shell 1.9%