Add lib.optionals pkgs.stdenv.isLinux guards to roles that contain Linux-only packages or services to prevent build failures on Darwin: - communication: Guard Electron apps (element-desktop, fluffychat, nextcloud-talk-desktop) that don't build on Darwin due to electron build-from-source limitations - kdeconnect: Guard entire config block since services.kdeconnect requires D-Bus and systemd (Linux-only) - sync: Guard syncthingtray package (requires Linux system tray) - email: Guard systemd.user.services/timers (Darwin uses launchd) - desktop: Guard Linux-only packages, services, and KDE-specific configurations including gnome-keyring, systemd services, and XDG mime associations Implements bead: nixos-configs-tcu
27 lines
715 B
Nix
27 lines
715 B
Nix
{ config, lib, pkgs, globalInputs, system, ... }:
|
|
|
|
with lib;
|
|
|
|
let
|
|
cfg = config.home.roles.communication;
|
|
isLinux = pkgs.stdenv.isLinux;
|
|
in
|
|
{
|
|
options.home.roles.communication = {
|
|
enable = mkEnableOption "Enable communication and messaging applications";
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
home.packages = [
|
|
# For logging back into google chat (cross-platform)
|
|
globalInputs.google-cookie-retrieval.packages.${system}.default
|
|
] ++ optionals isLinux [
|
|
# Linux-only communication apps (Electron apps don't build on Darwin)
|
|
pkgs.element-desktop
|
|
# Re-enabled in 25.11 after security issues were resolved
|
|
pkgs.fluffychat
|
|
pkgs.nextcloud-talk-desktop
|
|
];
|
|
};
|
|
}
|