{
  inputs,
  lib,
  pkgs,
  self,
  ...
}:

let
  cosmic-configuration = pkgs.substituteAllFiles {
    name = "cosmic-configuration";
    src = ./cosmic-config;
    files = [ "." ]; # All files
    postInstall = ''
      mkdir -p $share/share/cosmic
      cp -rt $share/share/cosmic $out/*
    '';
    outputs = [ "out" "share" ];

    wallpaper = ../../media/wallpaper.png;
    corner_radii_theme = "2.0";
    corner_radii_panel = "2";
  };
in

{
  imports = [
    "${inputs.cosmic-modules}/nixos/cosmic/module.nix"
    "${self}/nix-os/generic/dconf.nix"
  ];
  config = {
    services.desktopManager.cosmic.enable = true;
    environment.cosmic.excludePackages = with pkgs; [
      cosmic-edit
      cosmic-player
      cosmic-term
    ];
    environment.systemPackages = with pkgs; [
      (lib.hiPrio cosmic-configuration.share)
      google-cursor
    ];
    services.gnome.gnome-keyring.enable = true;

    proot.dconf = {
      rules."org/gnome/desktop/interface".cursor-theme = "GoogleDot-White";
      profiles.user.rulesToApply = [
        "org/gnome/desktop/interface"
      ];
    };

    environment.sessionVariables = {
      XCURSOR_SIZE = "16";
      XCURSOR_THEME = "GoogleDot-White";
    };

    environment.etc."xdg/gtk-3.0/settings.ini".text = ''
      [Settings]
      gtk-cursor-theme-name=GoogleDot-White
      gtk-application-prefer-dark-theme=true
    '';
  };
}