95 lines
2.3 KiB
Nix
95 lines
2.3 KiB
Nix
{
|
|
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;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|