{ config, pkgs, osConfig, ... }: { imports = [ ./hyprland.nix ./email/default.nix ./calendar/default.nix ./terminal/default.nix ./emacs/default.nix ./browser/default.nix ]; home = { packages = with pkgs; [ wl-clipboard libreoffice-fresh evince image-roll clapper g4music ffmpeg remmina fractal webcord signal-desktop whatsapp-for-linux teams-for-linux twinkle ]; file.${config.gtk.gtk2.configLocation}.force = true; }; services = { syncthing.enable = true; gammastep = { inherit (osConfig.location) latitude longitude provider; enable = true; tray = true; }; }; gtk = { enable = true; gtk2.configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc"; iconTheme = { package = (pkgs.papirus-icon-theme.override { color = "magenta"; }); name = "Papirus-Light"; }; }; stylix.targets.gtk.extraCss = with config.lib.stylix.scheme.withHashtag; '' @define-color accent_color ${base0E-hex}; @define-color accent_bg_color ${base0E-hex}; ''; xdg = { mime.enable = true; mimeApps = let defaultApplications = import ./mimeapps.nix; in { enable = true; inherit defaultApplications; associations.added = defaultApplications; }; userDirs = { enable = true; createDirectories = true; extraConfig = { XDG_PROJECTS_DIR = "${config.home.homeDirectory}/Projects"; }; }; configFile = { # Stop programs from overriding mimeapps "mimeapps.list".force = true; # 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-for-linux/config.json".text = builtins.toJSON { awayOnSystemIdle = true; closeAppOnCross = false; followSystemTheme = true; notificationMethod = "electron"; optInTeamsV2 = true; spellCheckerLanguages = [ "en_GB" ]; }; }; }; }