{ osConfig, config, pkgs, lib, ... }: with lib; let inherit (osConfig.module.stylix) theme; cfg = config.desktop.cosmic; in { options = { desktop.cosmic.enable = mkEnableOption "enable cosmic desktop"; }; config = mkIf cfg.enable { stylix.targets = { qt.enable = false; gtk.enable = false; }; home.packages = with pkgs; [ helvum loupe papers junction celluloid mission-center dconf libnotify playerctl wdisplays pwvucontrol wl-clipboard ]; gtk = { enable = true; iconTheme = { name = if config.stylix.polarity == "dark" then "Papirus-Dark" else "Papirus-Light"; package = if (removeSuffix "-light" theme) == "nord" then pkgs.papirus-nord else pkgs.papirus-icon-theme; }; }; qt = { enable = true; platformTheme.name = "gtk3"; }; services = { gnome-keyring = { enable = true; components = ["secrets"]; }; }; dconf.settings = { "org/gnome/desktop/wm/preferences" = { button-layout = "icon:minimize,maximize,close"; }; "org/gnome/desktop/interface" = { icon-theme = config.gtk.iconTheme.name; }; }; xdg = { mime.enable = true; mimeApps = { enable = true; defaultApplications = let file_manager = ["org.gnome.Nautilus.desktop"]; image_viewer = ["org.gnome.Loupe.desktop"]; pdf_reader = ["org.gnome.Papers.desktop"]; video_player = ["io.github.celluloid_player.Celluloid.desktop"]; web_browser = ["re.sonny.Junction.desktop"]; in { "application/pdf" = pdf_reader; "image/jpeg" = image_viewer; "image/png" = image_viewer; "inode/directory" = file_manager; "text/html" = web_browser; "video/mp4" = video_player; "video/mpeg" = video_player; "video/x-matroska" = video_player; "video/x-mpeg" = video_player; "x-scheme-handler/about" = web_browser; "x-scheme-handler/http" = web_browser; "x-scheme-handler/https" = web_browser; "x-scheme-handler/unknown" = web_browser; }; }; }; }; }