{ config, pkgs, ... }: { imports = [ ./plasma/default.nix ./email/default.nix ./calendar/default.nix ./terminal/default.nix ./emacs/default.nix ./browser/default.nix ]; home = { packages = with pkgs; [ webcord signal-desktop whatsapp-for-linux teams-for-linux x2goclient nomachine-client ]; file.${config.gtk.gtk2.configLocation}.force = true; # Stop clashing with KDE }; services.syncthing.enable = true; gtk = { enable = true; gtk2.configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc"; iconTheme = { package = (pkgs.papirus-icon-theme.override { color = "magenta"; }); name = "Papirus"; }; }; xdg = { mime.enable = true; mimeApps = let defaultApplications = import ./mimeapps/default.nix; in { enable = true; inherit defaultApplications; associations.added = defaultApplications; }; userDirs = { enable = true; createDirectories = true; extraConfig = { XDG_PROJECTS_DIR = "${config.home.homeDirectory}/Projects"; }; }; configFile = { # Ensure GTK config is set "gtk-3.0/gtk.css".force = true; "gtk-3.0/settings.ini".force = true; "gtk-4.0/gtk.css".force = true; "gtk-4.0/settings.ini".force = true; # Autostart some programs "autostart/signal-desktop.desktop".source = "${pkgs.signal-desktop}/share/applications/signal-desktop.desktop"; "autostart/com.github.eneshecan.WhatsAppForLinux.desktop".source = "${pkgs.whatsapp-for-linux}/share/applications/com.github.eneshecan.WhatsAppForLinux.desktop"; # Teams configuration "teams-for-linux/config.json".text = builtins.toJSON { awayOnSystemIdle = true; closeAppOnCross = false; followSystemTheme = true; notificationMethod = "electron"; optInTeamsV2 = true; spellCheckerLanguages = [ "en_GB" ]; }; }; }; }