nixos: remove Deepin

This commit is contained in:
K900
2025-08-12 19:36:52 +03:00
parent 15a586f29d
commit 314fe5f12f
14 changed files with 10 additions and 505 deletions

View File

@@ -543,10 +543,6 @@
./services/desktops/blueman.nix
./services/desktops/bonsaid.nix
./services/desktops/cpupower-gui.nix
./services/desktops/deepin/app-services.nix
./services/desktops/deepin/dde-api.nix
./services/desktops/deepin/dde-daemon.nix
./services/desktops/deepin/deepin-anything.nix
./services/desktops/dleyna.nix
./services/desktops/espanso.nix
./services/desktops/flatpak.nix

View File

@@ -127,6 +127,10 @@ in
"services"
"dd-agent"
] "dd-agent was removed from nixpkgs in favor of the newer datadog-agent.")
(mkRemovedOptionModule [
"services"
"deepin"
] "the Deepin desktop environment has been removed from nixpkgs due to lack of maintenance.")
(mkRemovedOptionModule [ "services" "dnscrypt-proxy" ] "Use services.dnscrypt-proxy2 instead")
(mkRemovedOptionModule [ "services" "dnscrypt-wrapper" ] ''
The dnscrypt-wrapper module was removed since the project has been effectively unmaintained since 2018;
@@ -271,6 +275,12 @@ in
"desktopManager"
"plasma5"
] "the Plasma 5 desktop environment has been removed from nixpkgs, as it has reached EOL upstream.")
(mkRemovedOptionModule [
"services"
"xserver"
"desktopManager"
"deepin"
] "the Deepin desktop environment has been removed from nixpkgs due to lack of maintenance.")
(mkRemovedOptionModule [ "services" "xserver" "multitouch" ] ''
services.xserver.multitouch (which uses xf86_input_mtrack) has been removed
as the underlying package isn't being maintained. Working alternatives are

View File

@@ -1,46 +0,0 @@
{
config,
pkgs,
lib,
...
}:
{
meta = {
maintainers = lib.teams.deepin.members;
};
###### interface
options = {
services.deepin.app-services = {
enable = lib.mkEnableOption "service collection of DDE applications, including dconfig-center";
};
};
###### implementation
config = lib.mkIf config.services.deepin.app-services.enable {
users.groups.dde-dconfig-daemon = { };
users.users.dde-dconfig-daemon = {
description = "Dconfig daemon user";
home = "/var/lib/dde-dconfig-daemon";
createHome = true;
group = "dde-dconfig-daemon";
isSystemUser = true;
};
environment.systemPackages = [ pkgs.deepin.dde-app-services ];
systemd.packages = [ pkgs.deepin.dde-app-services ];
services.dbus.packages = [ pkgs.deepin.dde-app-services ];
environment.pathsToLink = [ "/share/dsg" ];
};
}

View File

@@ -1,51 +0,0 @@
{
config,
pkgs,
lib,
...
}:
{
meta = {
maintainers = lib.teams.deepin.members;
};
###### interface
options = {
services.deepin.dde-api = {
enable = lib.mkEnableOption ''
the DDE API, which provides some dbus interfaces that is used for screen zone detecting,
thumbnail generating, and sound playing in Deepin Desktop Environment
'';
};
};
###### implementation
config = lib.mkIf config.services.deepin.dde-api.enable {
environment.systemPackages = [ pkgs.deepin.dde-api ];
services.dbus.packages = [ pkgs.deepin.dde-api ];
systemd.packages = [ pkgs.deepin.dde-api ];
environment.pathsToLink = [ "/lib/deepin-api" ];
users.groups.deepin-sound-player = { };
users.users.deepin-sound-player = {
description = "Deepin sound player";
home = "/var/lib/deepin-sound-player";
createHome = true;
group = "deepin-sound-player";
isSystemUser = true;
};
};
}

View File

@@ -1,41 +0,0 @@
{
config,
pkgs,
lib,
...
}:
{
meta = {
maintainers = lib.teams.deepin.members;
};
###### interface
options = {
services.deepin.dde-daemon = {
enable = lib.mkEnableOption "daemon for handling the deepin session settings";
};
};
###### implementation
config = lib.mkIf config.services.deepin.dde-daemon.enable {
environment.systemPackages = [ pkgs.deepin.dde-daemon ];
services.dbus.packages = [ pkgs.deepin.dde-daemon ];
services.udev.packages = [ pkgs.deepin.dde-daemon ];
systemd.packages = [ pkgs.deepin.dde-daemon ];
environment.pathsToLink = [ "/lib/deepin-daemon" ];
};
}

View File

@@ -1,43 +0,0 @@
{
config,
pkgs,
lib,
...
}:
{
meta = {
maintainers = lib.teams.deepin.members;
};
options = {
services.deepin.deepin-anything = {
enable = lib.mkEnableOption "deepin anything file search tool";
};
};
config = lib.mkIf config.services.deepin.dde-api.enable {
environment.systemPackages = [ pkgs.deepin.deepin-anything ];
services.dbus.packages = [ pkgs.deepin.deepin-anything ];
users.groups.deepin-anything = { };
users.users.deepin-anything = {
description = "Deepin Anything Server";
home = "/var/lib/deepin-anything";
createHome = true;
group = "deepin-anything";
isSystemUser = true;
};
boot.extraModulePackages = [ config.boot.kernelPackages.deepin-anything-module ];
boot.kernelModules = [ "vfs_monitor" ];
};
}

View File

@@ -1,233 +0,0 @@
{
config,
lib,
pkgs,
utils,
...
}:
with lib;
let
xcfg = config.services.xserver;
cfg = xcfg.desktopManager.deepin;
nixos-gsettings-overrides = pkgs.deepin.dde-gsettings-schemas.override {
extraGSettingsOverridePackages = cfg.extraGSettingsOverridePackages;
extraGSettingsOverrides = cfg.extraGSettingsOverrides;
};
in
{
options = {
services.xserver.desktopManager.deepin = {
enable = mkEnableOption "Deepin desktop manager";
extraGSettingsOverrides = mkOption {
default = "";
type = types.lines;
description = "Additional gsettings overrides.";
};
extraGSettingsOverridePackages = mkOption {
default = [ ];
type = types.listOf types.path;
description = "List of packages for which gsettings are overridden.";
};
};
environment.deepin.excludePackages = mkOption {
default = [ ];
type = types.listOf types.package;
description = "List of default packages to exclude from the configuration";
};
};
config = mkIf cfg.enable {
services.displayManager.sessionPackages = [ pkgs.deepin.dde-session ];
services.displayManager.defaultSession = mkDefault "dde-x11";
# Update the DBus activation environment after launching the desktop manager.
services.xserver.displayManager.sessionCommands = ''
${lib.getBin pkgs.dbus}/bin/dbus-update-activation-environment --systemd --all
'';
hardware.bluetooth.enable = mkDefault true;
security.polkit.enable = true;
services.deepin.dde-daemon.enable = mkForce true;
services.deepin.dde-api.enable = mkForce true;
services.deepin.app-services.enable = mkForce true;
services.colord.enable = mkDefault true;
services.accounts-daemon.enable = mkDefault true;
services.gvfs.enable = mkDefault true;
services.gnome.glib-networking.enable = mkDefault true;
services.gnome.gnome-keyring.enable = mkDefault true;
services.gnome.gcr-ssh-agent.enable = mkDefault true;
services.bamf.enable = mkDefault true;
services.libinput.enable = mkDefault true;
services.udisks2.enable = true;
services.upower.enable = mkDefault config.powerManagement.enable;
networking.networkmanager.enable = mkDefault true;
programs.dconf.enable = mkDefault true;
programs.gnupg.agent.pinentryPackage = mkDefault pkgs.pinentry-qt;
fonts.packages = with pkgs; [ noto-fonts ];
xdg.mime.enable = true;
xdg.menus.enable = true;
xdg.icons.enable = true;
xdg.portal.enable = mkDefault true;
xdg.portal.extraPortals = mkDefault [
pkgs.xdg-desktop-portal-gtk
];
# https://github.com/NixOS/nixpkgs/pull/247766#issuecomment-1722839259
xdg.portal.config.deepin.default = mkDefault [ "gtk" ];
environment.sessionVariables = {
NIX_GSETTINGS_OVERRIDES_DIR = "${nixos-gsettings-overrides}/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas";
DDE_POLKIT_AGENT_PLUGINS_DIRS = [ "${pkgs.deepin.dpa-ext-gnomekeyring}/lib/polkit-1-dde/plugins" ];
};
environment.pathsToLink = [
"/lib/dde-dock/plugins"
"/lib/dde-control-center"
"/lib/dde-session-shell"
"/lib/dde-file-manager"
"/share/backgrounds"
"/share/wallpapers"
"/share/dde-daemon"
"/share/dsg"
"/share/deepin-themes"
"/share/deepin"
"/share/dde-shell"
];
environment.etc = {
"deepin-installer.conf".text = ''
system_info_vendor_name="Copyright (c) 2003-2024 NixOS contributors"
'';
};
systemd.tmpfiles.rules = [
"d /var/lib/AccountsService 0775 root root - -"
"C /var/lib/AccountsService/icons 0775 root root - ${pkgs.deepin.dde-account-faces}/var/lib/AccountsService/icons"
];
security.pam.services.dde-lock.text = ''
# original at {dde-session-shell}/etc/pam.d/dde-lock
auth substack login
account include login
password substack login
session include login
'';
environment.systemPackages =
with pkgs;
with deepin;
let
requiredPackages = [
pciutils # for dtkcore/startdde
xdotool # for dde-daemon
glib # for gsettings program / gdbus
gtk3 # for gtk-launch program
xdg-user-dirs # Update user dirs
util-linux # runuser
polkit_gnome
librsvg # dde-api use rsvg-convert
lshw # for dtkcore
libsForQt5.kde-gtk-config # deepin-api/gtk-thumbnailer need
libsForQt5.kglobalaccel
xsettingsd # lightdm-deepin-greeter
dtkcommon
dtkcore
dtkgui
dtkwidget
dtkdeclarative
qt5platform-plugins
qt6platform-plugins
qt5integration
qt6integration
deepin-pw-check
dde-account-faces
deepin-icon-theme
deepin-desktop-theme
deepin-sound-theme
deepin-gtk-theme
deepin-wallpapers
deepin-desktop-base
startdde
dde-shell
dde-launchpad
dde-session-ui
dde-session-shell
dde-file-manager
dde-control-center
dde-network-core
dde-clipboard
dde-polkit-agent
dpa-ext-gnomekeyring
deepin-desktop-schemas
deepin-kwin
dde-session
dde-widgets
dde-appearance
dde-application-manager
deepin-service-manager
dde-api-proxy
dde-tray-loader
];
optionalPackages = [
dde-calendar
dde-grand-search
deepin-terminal
onboard # dde-dock plugin
deepin-calculator
deepin-compressor
deepin-editor
deepin-system-monitor
deepin-shortcut-viewer
];
in
requiredPackages
++ utils.removePackagesByName optionalPackages config.environment.deepin.excludePackages;
services.dbus.packages = with pkgs.deepin; [
dde-shell
dde-launchpad
dde-session-ui
dde-session-shell
dde-file-manager
dde-control-center
dde-calendar
dde-clipboard
deepin-kwin
deepin-pw-check
dde-widgets
dde-session
dde-appearance
dde-application-manager
deepin-service-manager
dde-grand-search
dde-api-proxy
];
systemd.packages = with pkgs.deepin; [
dde-shell
dde-launchpad
dde-file-manager
dde-calendar
dde-clipboard
deepin-kwin
dde-appearance
dde-widgets
dde-session
dde-application-manager
deepin-service-manager
dde-api-proxy
];
};
}

View File

@@ -38,7 +38,6 @@ in
./cde.nix
./cinnamon.nix
./budgie.nix
./deepin.nix
../../desktop-managers/lomiri.nix
../../desktop-managers/cosmic.nix
../../desktop-managers/gnome.nix

View File

@@ -623,15 +623,6 @@ rec {
}
);
deepin = makeClosure (
{ ... }:
{
services.xserver.enable = true;
services.xserver.displayManager.lightdm.enable = true;
services.xserver.desktopManager.deepin.enable = true;
}
);
# Linux/Apache/PostgreSQL/PHP stack.
lapp = makeClosure (
{ pkgs, ... }:

View File

@@ -423,7 +423,6 @@ in
dconf = runTest ./dconf.nix;
ddns-updater = runTest ./ddns-updater.nix;
deconz = runTest ./deconz.nix;
deepin = runTest ./deepin.nix;
deluge = runTest ./deluge.nix;
dendrite = runTest ./matrix/dendrite.nix;
dependency-track = runTest ./dependency-track.nix;

View File

@@ -1,55 +0,0 @@
{ pkgs, lib, ... }:
{
name = "deepin";
meta.maintainers = lib.teams.deepin.members;
nodes.machine =
{ ... }:
{
imports = [
./common/user-account.nix
];
virtualisation.memorySize = 2048;
services.xserver.enable = true;
services.xserver.displayManager = {
lightdm.enable = true;
autoLogin = {
enable = true;
user = "alice";
};
};
services.xserver.desktopManager.deepin.enable = true;
};
testScript =
{ nodes, ... }:
let
user = nodes.machine.users.users.alice;
in
''
with subtest("Wait for login"):
machine.wait_for_x()
machine.wait_for_file("${user.home}/.Xauthority")
machine.succeed("xauth merge ${user.home}/.Xauthority")
with subtest("Check that logging in has given the user ownership of devices"):
machine.succeed("getfacl -p /dev/snd/timer | grep -q ${user.name}")
with subtest("Check if Deepin session components actually start"):
machine.wait_until_succeeds("pgrep -f dde-session-daemon")
machine.wait_for_window("dde-session-daemon")
machine.wait_until_succeeds("pgrep -f dde-desktop")
machine.wait_for_window("dde-desktop")
with subtest("Open deepin-terminal"):
machine.succeed("su - ${user.name} -c 'DISPLAY=:0 deepin-terminal >&2 &'")
machine.wait_for_window("deepin-terminal")
machine.sleep(20)
machine.screenshot("screen")
'';
}

View File

@@ -36,8 +36,6 @@ let
darktile.pkg = p: p.darktile;
deepin-terminal.pkg = p: p.deepin.deepin-terminal;
eterm.pkg = p: p.eterm;
eterm.executable = "Eterm";
eterm.pinkValue = "#D40055";

View File

@@ -90,14 +90,6 @@ items:
Learn more at <a href=\"https://docs.buddiesofbudgie.org/\">buddiesofbudgie.org</a></html>"
screenshot: "images/budgie.jpg"
- id: deepin
packages: [ deepin ]
name: Deepin
description: "<html>The Deepin Desktop Environment is an elegant, easy to use and reliable desktop environment.<br/>
<br/>
Learn more at <a href=\"https://www.deepin.org/\">deepin.org</a></html>"
screenshot: "images/deepin.jpg"
- id: ""
packages: []
name: "No desktop"

View File

@@ -201,15 +201,6 @@ cfgbudgie = """ # Enable the X11 windowing system.
"""
cfgdeepin = """ # Enable the X11 windowing system.
services.xserver.enable = true;
# Enable the Deepin Desktop Environment.
services.xserver.displayManager.lightdm.enable = true;
services.xserver.desktopManager.deepin.enable = true;
"""
cfgkeymap = """ # Configure keymap in X11
services.xserver.xkb = {
layout = "@@kblayout@@";
@@ -589,8 +580,6 @@ def run():
cfg += cfglumina
elif gs.value("packagechooser_packagechooser") == "budgie":
cfg += cfgbudgie
elif gs.value("packagechooser_packagechooser") == "deepin":
cfg += cfgdeepin
if (
gs.value("keyboardLayout") is not None