# Desktop apps and what they need from the system. { pkgs, ... }: { programs.firefox.enable = true; environment.systemPackages = with pkgs; [ claude-desktop signal-desktop-themed discord bitwarden-desktop opendeck kdePackages.dolphin kdePackages.ark kdePackages.kio-extras kdePackages.ffmpegthumbs cosmic-files kdePackages.partitionmanager meld mpv vlc pavucontrol pulsemixer playerctl nwg-look qalculate-gtk alacritty ]; # --- Claude Desktop's Cowork ---------------------------------------------------- # Cowork runs its tasks in a QEMU/KVM virtual machine. The app looks for the # UEFI firmware at the path Debian uses, so it is linked there; QEMU, socat # and virtiofsd come with the package (pkgs/claude-desktop). boot.kernelModules = [ "vhost_vsock" ]; systemd.tmpfiles.rules = [ "L+ /usr/share/OVMF/OVMF_CODE_4M.fd - - - - ${pkgs.OVMF.fd}/FV/OVMF_CODE.fd" ]; # --- OpenDeck ------------------------------------------------------------------- # Lets your user open the Stream Deck (40-streamdeck.rules on CachyOS). services.udev.packages = [ pkgs.opendeck ]; # --- Flatpak -------------------------------------------------------------------- # Bolt (RuneScape launcher) was a system Flatpak on CachyOS. System Flatpaks # live outside /home, so it is installed again here the first time the system # boots with a network; its data in ~/.var/app/com.adamcake.Bolt is kept. services.flatpak.enable = true; systemd.services.flatpak-bolt = { description = "Install Bolt from Flathub"; wantedBy = [ "multi-user.target" ]; wants = [ "network-online.target" ]; after = [ "network-online.target" ]; path = [ pkgs.flatpak ]; serviceConfig = { Type = "oneshot"; Restart = "on-failure"; RestartSec = "1min"; }; script = '' flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo flatpak info com.adamcake.Bolt >/dev/null 2>&1 || flatpak install --noninteractive flathub com.adamcake.Bolt ''; }; }