8efd0a1139
yolo's desktop is only ever seen through a Moonlight window, so its cursor needs to be tellable apart from the client's at a glance. Bibata-Modern-Amber differs in both colour and silhouette from Nordzy. Threads the theme through an option rather than setting it in one place: it was hardcoded in cursor.nix, in hl.env, in the setcursor autostart, and twice more in darkman's mode scripts, which re-set it on every light/dark switch and would have reverted the override. Also drops a stale hl.env pointing HYPRCURSOR_THEME at rose-pine-hyprcursor, which no host installs. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
85 lines
2.8 KiB
Nix
85 lines
2.8 KiB
Nix
{
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}:
|
|
let
|
|
claudeSettings = "home/yolo/claude-settings.json";
|
|
|
|
# ./claude-settings.json holds only what yolo overrides; everything else is
|
|
# inherited so common changes reach this host. Attrsets merge key-by-key,
|
|
# lists are replaced whole (permissions.allow is yolo's, not a union).
|
|
mergedClaudeSettings = (pkgs.formats.json { }).generate "claude-settings.json" (
|
|
lib.recursiveUpdate (lib.importJSON ../common/programs/claude/settings.json) (
|
|
lib.importJSON ./claude-settings.json
|
|
)
|
|
);
|
|
in
|
|
{
|
|
imports = [
|
|
../common/programs/default.nix
|
|
../common/programs/desktop
|
|
../common/programs/hyprland
|
|
../common/programs/kitty
|
|
../common/programs/gpg.nix
|
|
../common/programs/aoe
|
|
../common/features/xdg.nix
|
|
./monitors.nix
|
|
./services.nix
|
|
./ssh.nix
|
|
];
|
|
|
|
custom.hyprland.cursorSize = 32;
|
|
|
|
# Amber, and a different silhouette to Nordzy — this desktop is only ever seen
|
|
# inside a Moonlight window, so the cursor has to be tellable at a glance from
|
|
# the client's own. Same theme in both modes; darkman would otherwise swap it.
|
|
custom.hyprland.cursorPackage = pkgs.bibata-cursors;
|
|
custom.hyprland.cursorTheme = {
|
|
dark = "Bibata-Modern-Amber";
|
|
light = "Bibata-Modern-Amber";
|
|
};
|
|
|
|
home = {
|
|
# Headless browser driver the agent tooling shells out to. Was a global npm
|
|
# install on the ubuntu box.
|
|
packages = [ pkgs.agent-browser ];
|
|
|
|
# Both default to ~/projects/nixos-config in common/programs; this clone
|
|
# lives under ~/tea. nh.flake sets NH_FLAKE, so without it `nh home switch`
|
|
# with no argument resolves to a path that does not exist.
|
|
mutableFilesRepoPath = "/home/naps62/tea/nixos-config";
|
|
|
|
mutableFiles = {
|
|
# Host-local, not shared: this sets yolo_mode_default = true, which starts
|
|
# aoe sessions with permission checks skipped. Only correct on this box.
|
|
".config/agent-of-empires/config.toml".source = ./aoe-config.toml;
|
|
|
|
# Likewise host-local: carries skipDangerousModePermissionPrompt and the
|
|
# rev hook paths, neither of which belong on a workstation.
|
|
".claude/settings.json" = {
|
|
source = lib.mkForce mergedClaudeSettings;
|
|
upstreamPath = claudeSettings;
|
|
};
|
|
};
|
|
};
|
|
|
|
programs.agentSkills.machine = "yolo";
|
|
programs.nh.flake = "/home/naps62/tea/nixos-config";
|
|
|
|
# Idle lock and dpms-off blank the virtual output: Sunshine then captures a
|
|
# flat frame and Moonlight goes black, with no console to unlock from.
|
|
services.hypridle.enable = lib.mkForce false;
|
|
|
|
# Blur and shadow cost a fullscreen pass per frame, and every frame here is
|
|
# also x264-encoded for the stream — on a virtio-gpu with no VirGL, in software.
|
|
wayland.windowManager.hyprland.extraConfig = ''
|
|
hl.config({
|
|
decoration = {
|
|
blur = { enabled = false },
|
|
shadow = { enabled = false },
|
|
},
|
|
})
|
|
'';
|
|
}
|