Files
homelab/services/desktop/desktop-apps.nix
T
darmanandClaude Sonnet 5 caab166af8 terra: package Tome, add vivaldi + dotnet dev tools
Tome (née AudibleLibrary) is darman's own Photino/.NET desktop app, private
repo on our own gitea. Fetched as a flake input over ssh with darman's
ambient key — same mechanism as any other git input, private or not.

buildDotnetModule package: the Preact/Vite frontend (Tome.App/ClientApp)
builds as its own buildNpmPackage derivation and gets copied into the
published app's wwwroot, since upstream's in-project MSBuild npm target has
no network access in the Nix sandbox. Photino.Native's runtime deps (gtk3,
webkitgtk_4_1, libnotify) are wrapped in — confirmed via readelf/ldd that
this Photino build already targets webkit2gtk-4.1, not the now-removed 4.0.

Also added dotnet-sdk + nodejs to terra for developing Tome locally, and
vivaldi (unfree, extends the existing allowUnfreePredicate).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-24 00:35:13 +02:00

48 lines
1.1 KiB
Nix

{ pkgs, lib, inputs, ... }:
let
rishot = pkgs.callPackage ../../pkgs/rishot.nix { };
tome = pkgs.callPackage ../../pkgs/tome.nix { src = inputs.tome; };
in
# Desktop applications for a workstation host (currently: terra). Split from
# desktop-hyprland.nix, which owns the *session* (compositor, greeter, audio,
# portals); this owns the things the user actually launches inside it.
{
nixpkgs.config.allowUnfreePredicate = pkg:
builtins.elem (lib.getName pkg) [
"gitkraken"
"jetbrains-toolbox"
"steam"
"steam-unwrapped"
"steam-run"
"claude-code"
"vivaldi"
];
programs.steam = {
enable = true;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = false;
};
hardware.graphics.enable32Bit = true;
environment.systemPackages = with pkgs; [
alacritty
zed-editor
protonplus
gitkraken
jetbrains-toolbox
kdePackages.dolphin
vivaldi
rishot
tome
# Tome development (Tome.App targets net10.0; ClientApp is Preact/Vite).
dotnetCorePackages.sdk_10_0
nodejs
];
fonts.packages = [ pkgs.nerd-fonts.departure-mono ];
}