Commit Graph

100 Commits

Author SHA1 Message Date
Miguel Palhas c79436d340 refactor: fix yolo config drift and restart traps
CI / lint (push) Successful in 32s
CI / eval (push) Successful in 2m7s
yolo's .claude/settings.json was a full fork of the common file, not the
narrow override its comment claimed: sandbox, defaultMode, voiceEnabled,
$schema and feedbackSurveyState were absent, and five more keys had
diverged. It now holds only yolo's overrides and merges over common via
recursiveUpdate. sandbox.enabled stays pinned false — inheriting it would
newly sandbox every Bash call on a box built for unattended agents.

mutableFiles maps a source back to a repo path for the "bring changes
upstream" hint, which only works inside the flake tree. Generated sources
would print a /nix/store path to copy onto, so add upstreamPath.

rev and rev-deploy set Restart=always with RestartSec=2, which burns
systemd's default 5-starts-per-10s budget and parks the unit in `failed`
until a manual reset-failed. StartLimitIntervalSec=0 lifts the cap.

programs.nh.flake and home.mutableFilesRepoPath become mkDefault so yolo
overrides them plainly instead of with mkForce in three places.

Also clears the outstanding nixfmt and statix findings. The yolo system
derivation hash is unchanged.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-18 07:32:08 +01:00
Miguel Palhas 6a08ec3805 Merge remote-tracking branch 'origin/moonlight'
CI / lint (push) Successful in 30s
CI / eval (push) Successful in 2m5s
2026-08-17 18:22:56 +01:00
Miguel Palhas 51f6cb013f fix: drop sunshine fec_percentage to 1
At the default 20, FEC mangles large frames and moonlight draws horizontal
bands over an otherwise-fine stream, with no error on either side.
2026-08-17 18:22:52 +01:00
Miguel Palhas fbf5ce2616 fix: stream real frames from yolo instead of a black picture
Three separate faults, each producing a black Moonlight stream:

- sunshine's wlr backend takes wlr-screencopy's dmabuf path, which on this
  virtio-gpu returns empty buffers. Reproduced locally over 127.0.0.1, so it
  is not the network or the client. Switch to kms capture.
- hypridle locked the session and cut dpms, blanking the captured output with
  no console to unlock from. Disable it on this host.
- qemu picked the nvidia render node by readdir order, so virgl fell back to
  llvmpipe. Pin renderD128 via the VM's args.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 17:48:41 +01:00
Miguel Palhas df319322b9 fix: authenticate nix github fetches to dodge the 60/hr rate limit
CI / lint (push) Successful in 29s
CI / eval (push) Failing after 20m25s
Unauthenticated flake input fetches from github.com were hitting 429.
Token lives in /etc/nix/github-token.conf (root:root 600, out-of-band —
never in git or /nix/store) and nix.conf !includes it.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-17 15:03:31 +01:00
Miguel Palhas 352700fdab fix: point nvchad-starter to git.naps.pt/naps62/nvim-config, add /bin/bash symlink
CI / lint (push) Successful in 29s
CI / eval (push) Failing after 20m59s
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-17 14:29:39 +01:00
naps62 38bfd6a76d fix: raise sunshine fd limit
It leaks a /dev/dri/renderD fd per encoder probe, hits the 1024 default,
and mesa can then no longer dlopen the GBM driver — capture degrades to a
black picture with no error surfaced.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-17 09:05:28 +00:00
naps62 37e44b9a3d fix: sunshine capture value is wlr, not wlgrab
wlgrab is the name the backend logs under, not a valid config value.
Sunshine rejects it, then starts anyway with no encoder — moonlight sees
a 503.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-17 08:51:55 +00:00
naps62 77bdbe108d feat: add yolo host
New NixOS VM on proxmox, replacing the Ubuntu box. Reuses the existing
Hyprland config; remote access is Sunshine/Moonlight rather than xrdp,
since xrdp cannot drive a wayland compositor.

Two fixes here are not yolo-specific and affect any fresh install:
git at system level (nix needs it for the type = "git" hyprland input,
but git only came from home-manager, so neither rebuild could run), and
dropping the yogurt input, whose private repo made home-manager
un-evaluatable without GitHub auth.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-17 06:30:54 +00:00
Miguel Palhas 3d9c273fd3 wip
CI / lint (push) Successful in 33s
CI / eval (push) Failing after 1m41s
2026-07-30 13:18:47 +01:00
Miguel Palhas 5ed3026903 updates 2026-07-29 15:49:43 +01:00
Miguel Palhas 3c7a65b190 retroarch
CI / lint (push) Successful in 1m21s
CI / eval (push) Failing after 2m29s
2026-07-06 16:28:40 +01:00
Miguel Palhas eea9bdb095 sunshine fixes 2026-07-06 09:54:23 +01:00
Miguel Palhas 4d4f9a0b5e steam: stop Big Picture GPU sandbox crash (-cef-disable-gpu-sandbox)
Steam's CEF UI intermittently crashed its GPU child (exit_code=8704) on
NVIDIA+Wayland, falling back to CPU rendering and making Big Picture a
slideshow at 4K/HiDPI. Bake -cef-disable-gpu-sandbox into every steam
invocation via extraArgs so it covers all entry points (desktop, CLI,
Sunshine's Big Picture tile) — launch flags only apply on the invocation
that first starts Steam.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 14:59:22 +01:00
Miguel Palhas a273e10d29 sunshine: enable NVENC hardware encoding on NVIDIA
Default nixpkgs sunshine is built -DSUNSHINE_ENABLE_CUDA=FALSE, so every
NVENC probe died with "Couldn't scale frame" and it fell back to CPU
x264. Fix:

- package = sunshine.override { cudaSupport = true; } — gives it the
  CUDA scaling/colour-conversion path. Verified: probe now finds
  h264_nvenc / hevc_nvenc / av1_nvenc.
- LD_LIBRARY_PATH=/run/opengl-driver/lib on the service so libcuda.so.1
  (NVIDIA driver) is discoverable.
- capSysAdmin = false — Hyprland/wlroots capture via wlr-screencopy needs
  no CAP_SYS_ADMIN, and the setcap wrapper's secure-exec mode would strip
  LD_LIBRARY_PATH and break libcuda loading.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-03 10:56:38 +01:00
Miguel Palhas 7fff73e776 gaming: add Steam/Sunshine stack + user-space toolkit
Host (hosts/common/features/gaming/):
- move steam.nix under gaming/, add gamemode + gamescope (capSysNice)
- sunshine.nix: Sunshine stream host for Moonlight/Nvidia Shield
  (openFirewall, capSysAdmin for Wayland/KMS capture, autoStart)

Home (home/common/programs/gaming.nix):
- reusable custom.gaming module: Lutris, Heroic, ProtonPlus,
  protontricks, MangoHud, vkbasalt, vulkan-tools
- NVIDIA-specific extras isolated behind custom.gaming.nvidia

Wire konishi: host imports ../gaming; home enables custom.gaming
with nvidia = true.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-03 10:50:38 +01:00
Miguel Palhas 817c2f4f5e System tweaks, gitea CI, boot limit
CI / lint (push) Failing after 1m52s
CI / eval (push) Failing after 2m38s
- nix: keep-outputs + keep-derivations (preserve devshells across GC)
- zramSwap + fstrim
- systemd-boot configurationLimit = 20
- expand .gitignore (editor/AI/stray dotfiles); track statix.toml
- gitea Actions CI: blocking flake-check eval + informational statix/deadnix/nixfmt

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-27 18:52:20 +01:00
Miguel Palhas 39e6276c7d Session overhaul: dev tooling, cleanup, theming, fixes
Tooling:
- nh + nvd/nom/statix/deadnix/comma (new programs/nix.nix); GC via nh clean
- zoxide (cd), atuin, just, lazydocker, dust, duf, difftastic (git dft)

Structure:
- rename desktop -> konishi; homeConfigurations -> "user@host" for nh autodetect

Removals (heavy/unused):
- android-studio, unity/.NET/omnisharp/vscode, kicad, zoom, calibre,
  google-fonts, nerd-dictation

Screen recording:
- kooha + vokoscreen-ng + `webcam` corner-cam command/window-rule

Fixes:
- WEBKIT_DISABLE_DMABUF_RENDERER moved to common (electron/tauri on intel)
- kitty pinned to Catppuccin-Mocha; darkman no longer toggles kitty/claude
- claude theme dark + statusline locale fix
- ssh: migrate to settings API + multiplexing/keepalive/AddKeysToAgent;
  gpg-agent enableSshSupport
- silence hyprland configType / gtk4 / xdg userDirs deprecations

Flake hygiene:
- follows=nixpkgs for foundry/hardware/rose-pine/zen/spicetify (10->5 nixpkgs)
- zoxide _ZO_DOCTOR=0

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-27 18:17:25 +01:00
Miguel Palhas 474bd840d2 statix 2026-06-27 14:18:03 +01:00
Miguel Palhas a2b4d0f479 deadnix 2026-06-27 14:17:02 +01:00
Miguel Palhas 4eeef628b0 a few more additions 2026-06-27 14:16:30 +01:00
Miguel Palhas 559edbe89a various fixes 2026-06-27 11:21:45 +01:00
Miguel Palhas 4aa2e67794 wip 2026-05-08 13:21:42 +01:00
Miguel Palhas d48267c8ad wip 2026-04-09 18:16:31 +01:00
Miguel Palhas 02a7d44b57 remmina 2026-03-26 18:35:35 +00:00
Miguel Palhas 6f67e5f451 fixes 2026-03-26 14:30:47 +00:00
Miguel Palhas 6c397bc61a fixes 2026-03-25 16:40:15 +00:00
Miguel Palhas 9af55f9e16 wip 2026-03-21 16:01:20 +00:00
Miguel Palhas 5939224604 wf-recorder 2026-02-18 13:49:44 +00:00
Miguel Palhas a5089b77e9 termfilechooser 2026-02-17 20:35:11 +00:00
Miguel Palhas e8086e8528 Several hyprland updates:
plugins, new cursor, light/dark themes, new app launcher, ...
2026-02-16 17:33:40 +00:00
Miguel Palhas f9dfa0404e wip 2026-02-04 14:02:11 +00:00
Miguel Palhas 488721bc7c updaates 2025-10-30 14:20:48 +00:00
Miguel Palhas d1a39f7d19 android studio 2025-10-27 07:21:50 +00:00
Miguel Palhas 4793175aa4 wip 2025-10-23 08:35:35 +01:00
Miguel Palhas d4659b1b04 wip 2025-10-06 16:47:27 +01:00
Miguel Palhas d026c0c4fa hyprpanel fixed 2025-09-25 09:57:55 +01:00
Miguel Palhas d140e4fe20 wip 2025-09-18 22:37:21 +01:00
Miguel Palhas 80530a876e wip 2025-09-18 22:37:21 +01:00
Miguel Palhas aab35e484c ethui 2025-07-25 12:29:23 +01:00
Miguel Palhas 4ea74bd1ab i3 updates 2025-07-14 13:57:36 +01:00
Miguel Palhas c41f1c5c70 wip 2025-07-01 18:33:27 +01:00
Miguel Palhas ffcc7b397f wip 2025-07-01 18:12:54 +01:00
Miguel Palhas 9100ab46ac fixes 2025-06-30 19:20:54 +01:00
Miguel Palhas d497c84643 wip 2025-06-29 16:59:45 +01:00
Miguel Palhas 7f6cd33011 wip 2025-06-29 16:24:31 +01:00
Miguel Palhas bf1acd55b7 wip 2025-06-29 16:24:28 +01:00
Miguel Palhas 7de527822c wip 2025-06-29 16:15:48 +01:00
Miguel Palhas 2d1bd96434 wip 2025-06-29 15:13:01 +01:00
Miguel Palhas 0f2a209c52 wip 2025-06-29 14:50:36 +01:00