125 lines
3.7 KiB
Nix
125 lines
3.7 KiB
Nix
# deepin
|
|
|
|
{ config, pkgs, lib, ... }:
|
|
|
|
{
|
|
|
|
###### interface
|
|
|
|
options = {
|
|
|
|
services.deepin.core.enable = lib.mkEnableOption "
|
|
Basic dbus and systemd services, groups and users needed by the
|
|
Deepin Desktop Environment.
|
|
";
|
|
|
|
services.deepin.deepin-menu.enable = lib.mkEnableOption "
|
|
DBus service for unified menus in Deepin Desktop Environment.
|
|
";
|
|
|
|
services.deepin.deepin-turbo.enable = lib.mkEnableOption "
|
|
Turbo service for the Deepin Desktop Environment. It is a daemon
|
|
that helps to launch applications faster.
|
|
";
|
|
|
|
};
|
|
|
|
|
|
###### implementation
|
|
|
|
config = lib.mkMerge [
|
|
|
|
(lib.mkIf config.services.deepin.core.enable {
|
|
environment.systemPackages = [
|
|
pkgs.deepin.dde-api
|
|
pkgs.deepin.dde-calendar
|
|
pkgs.deepin.dde-control-center
|
|
pkgs.deepin.dde-daemon
|
|
pkgs.deepin.dde-dock
|
|
pkgs.deepin.dde-launcher
|
|
pkgs.deepin.dde-file-manager
|
|
pkgs.deepin.dde-session-ui
|
|
pkgs.deepin.deepin-anything
|
|
pkgs.deepin.deepin-image-viewer
|
|
pkgs.deepin.deepin-screenshot
|
|
];
|
|
|
|
services.dbus.packages = [
|
|
pkgs.deepin.dde-api
|
|
pkgs.deepin.dde-calendar
|
|
pkgs.deepin.dde-control-center
|
|
pkgs.deepin.dde-daemon
|
|
pkgs.deepin.dde-dock
|
|
pkgs.deepin.dde-launcher
|
|
pkgs.deepin.dde-file-manager
|
|
pkgs.deepin.dde-session-ui
|
|
pkgs.deepin.deepin-anything
|
|
pkgs.deepin.deepin-image-viewer
|
|
pkgs.deepin.deepin-screenshot
|
|
];
|
|
|
|
systemd.packages = [
|
|
pkgs.deepin.dde-api
|
|
pkgs.deepin.dde-daemon
|
|
pkgs.deepin.dde-file-manager
|
|
pkgs.deepin.deepin-anything
|
|
];
|
|
|
|
boot.extraModulePackages = [ config.boot.kernelPackages.deepin-anything ];
|
|
|
|
boot.kernelModules = [ "vfs_monitor" ];
|
|
|
|
users.groups.deepin-sound-player = { };
|
|
|
|
users.users.deepin-sound-player = {
|
|
description = "Deepin sound player";
|
|
group = "deepin-sound-player";
|
|
isSystemUser = true;
|
|
};
|
|
|
|
users.groups.deepin-daemon = { };
|
|
|
|
users.users.deepin-daemon = {
|
|
description = "Deepin daemon user";
|
|
group = "deepin-daemon";
|
|
isSystemUser = true;
|
|
};
|
|
|
|
users.groups.deepin_anything_server = { };
|
|
|
|
users.users.deepin_anything_server = {
|
|
description = "Deepin Anything Server";
|
|
group = "deepin_anything_server";
|
|
isSystemUser = true;
|
|
};
|
|
|
|
security.pam.services.deepin-auth-keyboard.text = ''
|
|
# original at ${pkgs.deepin.dde-daemon}/etc/pam.d/deepin-auth-keyboard
|
|
auth [success=2 default=ignore] pam_lsass.so
|
|
auth [success=1 default=ignore] pam_unix.so nullok_secure try_first_pass
|
|
auth requisite pam_deny.so
|
|
auth required pam_permit.so
|
|
'';
|
|
|
|
environment.etc = {
|
|
"polkit-1/localauthority/10-vendor.d/com.deepin.api.device.pkla".source = "${pkgs.deepin.dde-api}/etc/polkit-1/localauthority/10-vendor.d/com.deepin.api.device.pkla";
|
|
"polkit-1/localauthority/10-vendor.d/com.deepin.daemon.Accounts.pkla".source = "${pkgs.deepin.dde-daemon}/etc/polkit-1/localauthority/10-vendor.d/com.deepin.daemon.Accounts.pkla";
|
|
"polkit-1/localauthority/10-vendor.d/com.deepin.daemon.Grub2.pkla".source = "${pkgs.deepin.dde-daemon}/etc/polkit-1/localauthority/10-vendor.d/com.deepin.daemon.Grub2.pkla";
|
|
};
|
|
|
|
services.deepin.deepin-menu.enable = true;
|
|
services.deepin.deepin-turbo.enable = true;
|
|
})
|
|
|
|
(lib.mkIf config.services.deepin.deepin-menu.enable {
|
|
services.dbus.packages = [ pkgs.deepin.deepin-menu ];
|
|
})
|
|
|
|
(lib.mkIf config.services.deepin.deepin-turbo.enable {
|
|
environment.systemPackages = [ pkgs.deepin.deepin-turbo ];
|
|
systemd.packages = [ pkgs.deepin.deepin-turbo ];
|
|
})
|
|
|
|
];
|
|
|
|
}
|