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
24 lines
450 B
Nix
24 lines
450 B
Nix
{ config, lib, pkgs, ... }:
|
|
|
|
with lib;
|
|
|
|
let
|
|
cfg = config.home.roles.sync;
|
|
isLinux = pkgs.stdenv.isLinux;
|
|
in
|
|
{
|
|
options.home.roles.sync = {
|
|
enable = mkEnableOption "Enable file synchronization services";
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
# Linux-only: syncthingtray requires system tray support
|
|
home.packages = optionals isLinux (with pkgs; [
|
|
syncthingtray
|
|
]);
|
|
|
|
services.syncthing = {
|
|
enable = true;
|
|
};
|
|
};
|
|
} |