Files
homelab/services/desktop/desktop-apps.nix
T
darman 67b12cb96b terra: add Ryzen 9 5900X desktop (Hyprland, tailnet, dev tools)
Replaces CachyOS on the OS SSD (Kingston SA400, disko-managed). Dev-data
disks (sdc ext4 /mnt/hdd_01, LVM vg_ssd /mnt/ssd_01) stay out of disko and
are mounted as plain filesystems so they're never wiped. Desktop split into
services/desktop/desktop-hyprland.nix (session: compositor, greeter, audio,
portals) and desktop-apps.nix (things darman actually launches, including
claude-code — allowlisted alongside the other unfree desktop apps).
2026-07-23 23:14:36 +02:00

39 lines
1.3 KiB
Nix

{ pkgs, lib, ... }:
# 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.
{
# gitkraken / jetbrains-toolbox / steam are unfree. Allow exactly those
# rather than flipping allowUnfree globally, so an unfree dep sneaking into
# a server host's closure still fails loudly.
nixpkgs.config.allowUnfreePredicate = pkg:
builtins.elem (lib.getName pkg) [
"gitkraken"
"jetbrains-toolbox"
"steam"
"steam-unwrapped"
"steam-run"
"claude-code"
];
# Steam needs its own module (not just the package): it sets up the FHS
# wrapper, the udev rules for controllers, and the 32-bit graphics stack.
programs.steam = {
enable = true;
remotePlay.openFirewall = true; # in-home streaming
dedicatedServer.openFirewall = false;
};
hardware.graphics.enable32Bit = true; # required by steam's 32-bit games
environment.systemPackages = with pkgs; [
zed-editor
protonplus # manages Proton-GE / Wine-GE builds for steam + lutris
gitkraken
jetbrains-toolbox
kdePackages.dolphin
];
fonts.packages = [ pkgs.nerd-fonts.departure-mono ]; # alacritty's font, see hosts/terra/home.nix
}