52 lines
2.5 KiB
Nix
52 lines
2.5 KiB
Nix
|
{pkgs, lib, ... }:
|
||
|
|
||
|
let
|
||
|
nixos-cosmic = builtins.fetchGit {
|
||
|
url = "https://github.com/lilyinstarlight/nixos-cosmic.git";
|
||
|
# rev = "c1f1dc29d6c187fd563776837ab53faafa111721";
|
||
|
};
|
||
|
cosmicModule = import "${nixos-cosmic}" {system = "x86_64-linux";};
|
||
|
cosmicPkgsMainDir = builtins.readDir "${nixos-cosmic}/pkgs";
|
||
|
cosmicPkgsDirs = builtins.filter (v: cosmicPkgsMainDir."${v}" == "directory") (builtins.attrNames cosmicPkgsMainDir);
|
||
|
cosmicPkgsOverlay = final: prev: builtins.listToAttrs (
|
||
|
builtins.map (v: {name = v; value = final.callPackage "${nixos-cosmic}/pkgs/${v}/package.nix" {};}) cosmicPkgsDirs
|
||
|
);
|
||
|
in
|
||
|
{
|
||
|
imports = [
|
||
|
cosmicModule
|
||
|
"${nixos-cosmic}/nixos/cosmic-greeter/module.nix"
|
||
|
"${nixos-cosmic}/nixos/cosmic/module.nix"
|
||
|
];
|
||
|
config = {
|
||
|
services.xserver.desktopManager.cosmic.enable = true;
|
||
|
services.xserver.displayManager.cosmic-greeter.enable = true;
|
||
|
nixpkgs.overlays = [ cosmicPkgsOverlay ];
|
||
|
};
|
||
|
options = {
|
||
|
cosmic-applets = lib.mkOption {default = pkgs.cosmic-applets;};
|
||
|
cosmic-applibrary = lib.mkOption {default = pkgs.cosmic-applibrary;};
|
||
|
cosmic-bg = lib.mkOption {default = pkgs.cosmic-bg;};
|
||
|
cosmic-comp = lib.mkOption {default = pkgs.cosmic-comp;};
|
||
|
cosmic-design-demo = lib.mkOption {default = pkgs.cosmic-design;};
|
||
|
cosmic-edit = lib.mkOption {default = pkgs.cosmic-edit;};
|
||
|
cosmic-files = lib.mkOption {default = pkgs.cosmic-files;};
|
||
|
cosmic-greeter = lib.mkOption {default = pkgs.cosmic-greeter;};
|
||
|
cosmic-icons = lib.mkOption {default = pkgs.cosmic-icons;};
|
||
|
cosmic-launcher = lib.mkOption {default = pkgs.cosmic-launcher;};
|
||
|
cosmic-notifications = lib.mkOption {default = pkgs.cosmic-notifications;};
|
||
|
cosmic-osd = lib.mkOption {default = pkgs.cosmic-osd;};
|
||
|
cosmic-panel = lib.mkOption {default = pkgs.cosmic-panel;};
|
||
|
cosmic-protocols = lib.mkOption {default = pkgs.cosmic-protocols;};
|
||
|
cosmic-randr = lib.mkOption {default = pkgs.cosmic-randr;};
|
||
|
cosmic-screenshot = lib.mkOption {default = pkgs.cosmic-screenshot;};
|
||
|
cosmic-session = lib.mkOption {default = pkgs.cosmic-session;};
|
||
|
cosmic-settings = lib.mkOption {default = pkgs.cosmic-settings;};
|
||
|
cosmic-settings-daemon = lib.mkOption {default = pkgs.cosmic-settings;};
|
||
|
cosmic-term = lib.mkOption {default = pkgs.cosmic-term;};
|
||
|
cosmic-workspaces-epoch = lib.mkOption {default = pkgs.cosmic-workspaces;};
|
||
|
wrapCosmicAppsHook = lib.mkOption {default = pkgs.wrapCosmicAppsHook;};
|
||
|
xdg-desktop-portal-cosmic = lib.mkOption {default = pkgs.xdg-desktop-portal-cosmic;};
|
||
|
};
|
||
|
}
|