diff --git a/maintainers/team-list.nix b/maintainers/team-list.nix index d07f602f0da1..9763c78789aa 100644 --- a/maintainers/team-list.nix +++ b/maintainers/team-list.nix @@ -29,6 +29,13 @@ with lib.maintainers; { scope = "Maintain ACME-related packages and modules."; }; + cinnamon = { + members = [ + mkg20001 + ]; + scope = "Maintain Cinnamon desktop environment and applications made by the LinuxMint team."; + }; + freedesktop = { members = [ jtojnar worldofpeace ]; scope = "Maintain Freedesktop.org packages for graphical desktop."; diff --git a/nixos/modules/services/x11/desktop-managers/cinnamon.nix b/nixos/modules/services/x11/desktop-managers/cinnamon.nix new file mode 100644 index 000000000000..a9c059125e8d --- /dev/null +++ b/nixos/modules/services/x11/desktop-managers/cinnamon.nix @@ -0,0 +1,205 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + + cfg = config.services.xserver.desktopManager.cinnamon; + serviceCfg = config.services.cinnamon; + + nixos-gsettings-overrides = pkgs.cinnamon.cinnamon-gsettings-overrides.override { + extraGSettingsOverridePackages = cfg.extraGSettingsOverridePackages; + extraGSettingsOverrides = cfg.extraGSettingsOverrides; + }; + +in + +{ + options = { + services.cinnamon = { + apps.enable = mkEnableOption "Cinnamon default applications"; + }; + + services.xserver.desktopManager.cinnamon = { + enable = mkEnableOption "the cinnamon desktop manager"; + + sessionPath = mkOption { + default = []; + example = literalExample "[ pkgs.gnome3.gpaste ]"; + description = '' + Additional list of packages to be added to the session search path. + Useful for GSettings-conditional autostart. + + Note that this should be a last resort; patching the package is preferred (see GPaste). + ''; + }; + + 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.cinnamon.excludePackages = mkOption { + default = []; + example = literalExample "[ pkgs.cinnamon.blueberry ]"; + type = types.listOf types.package; + description = "Which packages cinnamon should exclude from the default environment"; + }; + + }; + + config = mkMerge [ + (mkIf (cfg.enable && config.services.xserver.displayManager.lightdm.enable && config.services.xserver.displayManager.lightdm.greeters.gtk.enable) { + services.xserver.displayManager.lightdm.greeters.gtk.extraConfig = mkDefault (builtins.readFile "${pkgs.cinnamon.mint-artwork}/etc/lightdm/lightdm-gtk-greeter.conf.d/99_linuxmint.conf"); + }) + + (mkIf cfg.enable { + services.xserver.displayManager.sessionPackages = [ pkgs.cinnamon.cinnamon-common ]; + + services.xserver.displayManager.sessionCommands = '' + if test "$XDG_CURRENT_DESKTOP" = "Cinnamon"; then + true + ${concatMapStrings (p: '' + if [ -d "${p}/share/gsettings-schemas/${p.name}" ]; then + export XDG_DATA_DIRS=$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}${p}/share/gsettings-schemas/${p.name} + fi + + if [ -d "${p}/lib/girepository-1.0" ]; then + export GI_TYPELIB_PATH=$GI_TYPELIB_PATH''${GI_TYPELIB_PATH:+:}${p}/lib/girepository-1.0 + export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}${p}/lib + fi + '') cfg.sessionPath} + fi + ''; + + # Default services + hardware.bluetooth.enable = mkDefault true; + hardware.pulseaudio.enable = mkDefault true; + security.polkit.enable = true; + services.accounts-daemon.enable = true; + services.system-config-printer.enable = (mkIf config.services.printing.enable (mkDefault true)); + services.dbus.packages = with pkgs.cinnamon; [ + cinnamon-common + cinnamon-screensaver + nemo + xapps + ]; + services.cinnamon.apps.enable = mkDefault true; + services.gnome3.glib-networking.enable = true; + services.gnome3.gnome-keyring.enable = true; + services.gvfs.enable = true; + services.udisks2.enable = true; + services.upower.enable = mkDefault config.powerManagement.enable; + services.xserver.libinput.enable = mkDefault true; + services.xserver.updateDbusEnvironment = true; + networking.networkmanager.enable = mkDefault true; + + # Enable colord server + services.colord.enable = true; + + # Enable dconf + programs.dconf.enable = true; + + # Enable org.a11y.Bus + services.gnome3.at-spi2-core.enable = true; + + # Fix lockscreen + security.pam.services = { + cinnamon-screensaver = {}; + }; + + environment.systemPackages = with pkgs.cinnamon // pkgs; [ + desktop-file-utils + nixos-artwork.wallpapers.simple-dark-gray + onboard + sound-theme-freedesktop + + # common-files + cinnamon-common + cinnamon-session + cinnamon-desktop + cinnamon-menus + + # utils needed by some scripts + killall + + # session requirements + cinnamon-screensaver + # cinnamon-killer-daemon: provided by cinnamon-common + gnome3.networkmanagerapplet # session requirement - also nm-applet not needed + + # packages + nemo + cinnamon-control-center + cinnamon-settings-daemon + gnome3.libgnomekbd + orca + + # theme + gnome3.adwaita-icon-theme + hicolor-icon-theme + gnome3.gnome-themes-extra + gtk3.out + mint-artwork + mint-themes + mint-x-icons + mint-y-icons + vanilla-dmz + + # other + glib # for gsettings + shared-mime-info # for update-mime-database + xdg-user-dirs + ]; + + # Override GSettings schemas + environment.sessionVariables.NIX_GSETTINGS_OVERRIDES_DIR = "${nixos-gsettings-overrides}/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas"; + + environment.pathsToLink = [ + # FIXME: modules should link subdirs of `/share` rather than relying on this + "/share" # TODO: https://github.com/NixOS/nixpkgs/issues/47173 + ]; + + # Shell integration for VTE terminals + programs.bash.vteIntegration = mkDefault true; + programs.zsh.vteIntegration = mkDefault true; + + # Harmonize Qt5 applications under Pantheon + qt5.enable = true; + qt5.platformTheme = "gnome"; + qt5.style = "adwaita"; + + # Default Fonts + fonts.fonts = with pkgs; [ + source-code-pro # Default monospace font in 3.32 + ubuntu_font_family # required for default theme + ]; + }) + + (mkIf serviceCfg.apps.enable { + programs.geary.enable = mkDefault true; + programs.gnome-disks.enable = mkDefault true; + programs.gnome-terminal.enable = mkDefault true; + programs.evince.enable = mkDefault true; + programs.file-roller.enable = mkDefault true; + + environment.systemPackages = (with pkgs // pkgs.gnome3 // pkgs.cinnamon; pkgs.gnome3.removePackagesByName [ + # cinnamon team apps + # warp + # blueberry + + # external apps shipped with linux-mint + hexchat + gnome-calculator + ] config.environment.cinnamon.excludePackages); + }) + ]; +} diff --git a/nixos/modules/services/x11/desktop-managers/default.nix b/nixos/modules/services/x11/desktop-managers/default.nix index 5d3a84d71399..f5559eb53541 100644 --- a/nixos/modules/services/x11/desktop-managers/default.nix +++ b/nixos/modules/services/x11/desktop-managers/default.nix @@ -21,6 +21,7 @@ in ./none.nix ./xterm.nix ./xfce.nix ./plasma5.nix ./lumina.nix ./lxqt.nix ./enlightenment.nix ./gnome3.nix ./kodi.nix ./mate.nix ./pantheon.nix ./surf-display.nix ./cde.nix + ./cinnamon.nix ]; options = { diff --git a/pkgs/data/icons/vanilla-dmz/default.nix b/pkgs/data/icons/vanilla-dmz/default.nix index c92a80527000..55ba320bc988 100644 --- a/pkgs/data/icons/vanilla-dmz/default.nix +++ b/pkgs/data/icons/vanilla-dmz/default.nix @@ -1,21 +1,34 @@ -{ stdenv, lib, fetchzip, xorg, hicolor-icon-theme }: +{ stdenv +, lib +, fetchzip +, xorg +, hicolor-icon-theme +}: stdenv.mkDerivation rec { pname = "vanilla-dmz"; - version = "0.4.4"; + version = "0.4.5"; + src = fetchzip { - url = "http://ftp.de.debian.org/debian/pool/main/d/dmz-cursor-theme/dmz-cursor-theme_${version}.tar.gz"; - sha256 = "1l0c0svk7dy0d7icg7j2181wdn3fvks5gmyqnvjk749ppy5ks8mj"; + url = "mirror://debian/pool/main/d/dmz-cursor-theme/dmz-cursor-theme_${version}.tar.xz"; + sha256 = "14r8fri4byyzavzdifpga6118hxqjwpzd11xxj28s16zxcanq16m"; }; - buildInputs = [ xorg.xcursorgen ]; + + buildInputs = [ + xorg.xcursorgen + ]; + propagatedBuildInputs = [ hicolor-icon-theme ]; + dontDropIconThemeCache = true; + buildPhase = '' cd DMZ-White/pngs; ./make.sh; cd - cd DMZ-Black/pngs; ./make.sh; cd - ''; + installPhase = '' install -d $out/share/icons/Vanilla-DMZ/cursors cp -a DMZ-White/xcursors/* $out/share/icons/Vanilla-DMZ/cursors @@ -25,11 +38,12 @@ stdenv.mkDerivation rec { cp -a DMZ-Black/xcursors/* $out/share/icons/Vanilla-DMZ-AA/cursors install -Dm644 DMZ-Black/index.theme $out/share/icons/Vanilla-DMZ-AA/index.theme ''; + meta = with lib; { homepage = "http://jimmac.musichall.cz"; description = "A style neutral scalable cursor theme"; platforms = platforms.all; - license = licenses.cc-by-nc-sa-30; + license = licenses.cc-by-sa-30; maintainers = with maintainers; [ cstrahan ]; }; } diff --git a/pkgs/data/themes/arc/default.nix b/pkgs/data/themes/arc/default.nix index 1e36eb2f99a1..46664eaaf583 100644 --- a/pkgs/data/themes/arc/default.nix +++ b/pkgs/data/themes/arc/default.nix @@ -8,6 +8,7 @@ , gtk-engine-murrine , optipng , inkscape_0 +, cinnamon }: stdenv.mkDerivation rec { @@ -43,8 +44,8 @@ stdenv.mkDerivation rec { ''; configureFlags = [ + "--with-cinnamon=${cinnamon.cinnamon-common.version}" "--with-gnome-shell=${gnome3.gnome-shell.version}" - "--disable-cinnamon" # not equipped to test "--disable-unity" ]; diff --git a/pkgs/desktops/cinnamon/cinnamon-common/default.nix b/pkgs/desktops/cinnamon/cinnamon-common/default.nix index a67f04473c84..35ca865bc1b9 100644 --- a/pkgs/desktops/cinnamon/cinnamon-common/default.nix +++ b/pkgs/desktops/cinnamon/cinnamon-common/default.nix @@ -6,6 +6,7 @@ , cinnamon-control-center , cinnamon-desktop , cinnamon-menus +, cinnamon-session , cjs , fetchFromGitHub , gdk-pixbuf @@ -40,6 +41,7 @@ , glib-networking , pciutils , timezonemap +, libnma }: let @@ -47,13 +49,13 @@ let in stdenv.mkDerivation rec { pname = "cinnamon-common"; - version = "4.4.1"; + version = "4.6.1"; src = fetchFromGitHub { owner = "linuxmint"; repo = "cinnamon"; rev = version; - sha256 = "0sv7nqd1l6c727qj30dcgdkvfh1wxpszpgmbdyh58ilmc8xklnqd"; + sha256 = "149lhg953fa0glm250f76z2jzyaabh97jxiqkjnqvsk6bjk1d0bw"; }; patches = [ @@ -66,7 +68,7 @@ stdenv.mkDerivation rec { buildInputs = [ # TODO: review if we really need this all - (python3.withPackages (pp: with pp; [ dbus-python setproctitle pygobject3 pycairo xapp pillow pytz tinycss pam pexpect ])) + (python3.withPackages (pp: with pp; [ dbus-python setproctitle pygobject3 pycairo xapp pillow pytz tinycss2 pam pexpect distro ])) atk cacert cinnamon-control-center @@ -99,6 +101,7 @@ stdenv.mkDerivation rec { nemo libnotify accountsservice + libnma # gsi bindings gnome-online-accounts @@ -144,13 +147,20 @@ stdenv.mkDerivation rec { sed "s|/usr/bin|/run/current-system/sw/bin|g" -i ./files/usr/bin/cinnamon-launcher sed 's|"lspci"|"${pciutils}/bin/lspci"|g' -i ./files/usr/share/cinnamon/cinnamon-settings/modules/cs_info.py + + sed "s| cinnamon-session| ${cinnamon-session}/bin/cinnamon-session|g" -i ./files/usr/bin/cinnamon-session-cinnamon -i ./files/usr/bin/cinnamon-session-cinnamon2d + sed "s|/usr/bin|$out/bin|g" -i ./files/usr/share/xsessions/cinnamon.desktop ./files/usr/share/xsessions/cinnamon2d.desktop ''; + passthru = { + providedSessions = ["cinnamon" "cinnamon2d"]; + }; + meta = with stdenv.lib; { homepage = "https://github.com/linuxmint/cinnamon"; description = "The Cinnamon desktop environment"; license = [ licenses.gpl2 ]; platforms = platforms.linux; - maintainers = [ maintainers.mkg20001 ]; + maintainers = teams.cinnamon.members; }; } diff --git a/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix b/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix index 454d65335540..ef934d2389f9 100644 --- a/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix +++ b/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix @@ -6,7 +6,6 @@ , gettext , cinnamon-desktop , intltool -, libxslt , gtk3 , libnotify , gnome-menus @@ -37,22 +36,19 @@ , modemmanager , xorg , gdk-pixbuf -, cups }: stdenv.mkDerivation rec { pname = "cinnamon-control-center"; - version = "4.4.0"; + version = "4.6.0"; src = fetchFromGitHub { owner = "linuxmint"; repo = pname; rev = version; - sha256 = "1rxm5n2prh182rxvjs7psxgjddikrjr8492j22060gmyvq55n7kc"; + sha256 = "0ls2ys4x6qqp0j727c4n7a6319m4k1qsy1ybxkfzlzgf750v9xda"; }; - configureFlags = [ "--enable-systemd" ]; - buildInputs = [ gtk3 glib @@ -61,7 +57,6 @@ stdenv.mkDerivation rec { cinnamon-menus libxml2 dbus-glib - systemd polkit libgnomekbd libxklavier @@ -76,7 +71,6 @@ stdenv.mkDerivation rec { xorg.libXxf86misc xorg.libxkbfile gdk-pixbuf - cups ]; /* ./panels/datetime/test-timezone.c:4:#define TZ_DIR "/usr/share/zoneinfo/" @@ -105,13 +99,14 @@ stdenv.mkDerivation rec { rm -rfv $out ''; + doCheck = true; + nativeBuildInputs = [ pkgconfig autoreconfHook wrapGAppsHook gettext intltool - libxslt libtool ]; @@ -120,6 +115,6 @@ stdenv.mkDerivation rec { description = "A collection of configuration plugins used in cinnamon-settings"; license = licenses.gpl2; platforms = platforms.linux; - maintainers = [ maintainers.mkg20001 ]; + maintainers = teams.cinnamon.members; }; } diff --git a/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix b/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix index c5beff134b3f..cdb8e6a381f9 100644 --- a/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix +++ b/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix @@ -17,13 +17,13 @@ stdenv.mkDerivation rec { pname = "cinnamon-desktop"; - version = "4.4.1"; + version = "4.6.1"; src = fetchFromGitHub { owner = "linuxmint"; repo = pname; rev = version; - sha256 = "10db5rai8cbbzphvcwarr3hm1bd9rxchlc0hcghg7qnmvv52fq03"; + sha256 = "0299m41vy4kcsi74z793ligvqj8nyy3fbzh6xz89jd8l3p9kgrz8"; }; outputs = [ "out" "dev" ]; @@ -72,6 +72,6 @@ stdenv.mkDerivation rec { license = [ licenses.gpl2 licenses.lgpl2 ]; platforms = platforms.linux; - maintainers = [ maintainers.mkg20001 ]; + maintainers = teams.cinnamon.members; }; } diff --git a/pkgs/desktops/cinnamon/cinnamon-gsettings-overrides/default.nix b/pkgs/desktops/cinnamon/cinnamon-gsettings-overrides/default.nix new file mode 100644 index 000000000000..7f2e260e5df3 --- /dev/null +++ b/pkgs/desktops/cinnamon/cinnamon-gsettings-overrides/default.nix @@ -0,0 +1,57 @@ +{ stdenv +, runCommand +, nixos-artwork +, glib +, gtk3 +, gsettings-desktop-schemas +, extraGSettingsOverrides ? "" +, extraGSettingsOverridePackages ? [] +, mint-artwork + +, muffin +, nemo +, xapps +, cinnamon-desktop +, cinnamon-session +, cinnamon-settings-daemon +, cinnamon-common +}: + +let + + gsettingsOverridePackages = [ + # from + mint-artwork + + # on + muffin + nemo + xapps + cinnamon-desktop + cinnamon-session + cinnamon-settings-daemon + cinnamon-common + gtk3 + ] ++ extraGSettingsOverridePackages; + +in + +with stdenv.lib; + +# TODO: Having https://github.com/NixOS/nixpkgs/issues/54150 would supersede this +runCommand "cinnamon-gsettings-overrides" {} + '' + schema_dir=$out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas + + mkdir -p $schema_dir + + ${concatMapStrings (pkg: "cp -rf ${glib.getSchemaPath pkg}/*.xml ${glib.getSchemaPath pkg}/*.gschema.override $schema_dir\n") gsettingsOverridePackages} + + chmod -R a+w $out/share/gsettings-schemas/nixos-gsettings-overrides + + cat - > $schema_dir/nixos-defaults.gschema.override <<- EOF + ${extraGSettingsOverrides} + EOF + + ${glib.dev}/bin/glib-compile-schemas $schema_dir + '' diff --git a/pkgs/desktops/cinnamon/cinnamon-menus/default.nix b/pkgs/desktops/cinnamon/cinnamon-menus/default.nix index 47242cdf38a5..bae9615fb9fa 100644 --- a/pkgs/desktops/cinnamon/cinnamon-menus/default.nix +++ b/pkgs/desktops/cinnamon/cinnamon-menus/default.nix @@ -10,13 +10,13 @@ stdenv.mkDerivation rec { pname = "cinnamon-menus"; - version = "4.4.0"; + version = "4.6.0"; src = fetchFromGitHub { owner = "linuxmint"; repo = pname; rev = version; - sha256 = "0q4qj28swi2y93fj7pfil68l2cf9gmhbk6jmr8d70l54xf7sigsh"; + sha256 = "00jzb3fd96ydi15lrnwnjai12wvka5zlandn9xc61s8iim48lplq"; }; buildInputs = [ @@ -36,6 +36,6 @@ stdenv.mkDerivation rec { description = "A menu system for the Cinnamon project"; license = [ licenses.gpl2 licenses.lgpl2 ]; platforms = platforms.linux; - maintainers = [ maintainers.mkg20001 ]; + maintainers = teams.cinnamon.members; }; } diff --git a/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix b/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix index 97f0138de980..7074e6c329a4 100644 --- a/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix +++ b/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix @@ -1,7 +1,8 @@ { stdenv , fetchFromGitHub , pkgconfig -, autoreconfHook +, meson +, ninja , glib , dbus , gettext @@ -30,32 +31,41 @@ , xapps , xorg , iso-flags-png-320x420 +, fetchpatch }: stdenv.mkDerivation rec { pname = "cinnamon-screensaver"; - version = "4.4.0"; + version = "4.6.0"; src = fetchFromGitHub { owner = "linuxmint"; repo = pname; rev = version; - sha256 = "03v41wk1gmgmyl31j7a3pav52gfv2faibj1jnpj3ycwcv4cch5w5"; + sha256 = "068lh6wcmznfyvny7hx83q2rf4j96b6mv4a5v79y02k9110m7bsm"; }; + patches = [ + (fetchpatch { + url = "https://github.com/linuxmint/cinnamon-screensaver/pull/349/commits/4a9e5715f406bf2ca1aacddd5fd8f830102a423c.patch"; + sha256 = "0fmkmskry4c88zcw0i8vsmh6q14k3m937hqi77p5xi1p93imr46y"; + }) + ]; + nativeBuildInputs = [ pkgconfig - autoreconfHook wrapGAppsHook gettext intltool - dbus # for configure.ac + dbus # for meson.build libxslt libtool + meson + ninja ]; buildInputs = [ - # from configure.ac + # from meson.build gobject-introspection gtk3 glib @@ -79,13 +89,12 @@ stdenv.mkDerivation rec { iso-flags-png-320x420 ]; - NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0"; # TODO: https://github.com/NixOS/nixpkgs/issues/36468 + mesonFlags = [ + # TODO: https://github.com/NixOS/nixpkgs/issues/36468 + "-Dc_args=-I${glib.dev}/include/gio-unix-2.0" + ]; postPatch = '' - patchShebangs autogen.sh - - sed ${stdenv.lib.escapeShellArg "s&DBUS_SESSION_SERVICE_DIR=.*&DBUS_SESSION_SERVICE_DIR=`$PKG_CONFIG --variable session_bus_services_dir dbus-1 | sed -e 's,/usr/share,\${datarootdir},g' | sed 's|^|$out|'`&g"} -i configure.ac - # cscreensaver hardcodes absolute paths everywhere. Nuke from orbit. find . -type f -exec sed -i \ -e s,/usr/share/locale,/run/current-system/sw/share/locale,g \ @@ -97,15 +106,11 @@ stdenv.mkDerivation rec { sed "s|/usr/share/locale|/run/current-system/sw/share/locale|g" -i ./src/cinnamon-screensaver-main.py ''; - autoreconfPhase = '' - NOCONFIGURE=1 bash ./autogen.sh - ''; - meta = with stdenv.lib; { homepage = "https://github.com/linuxmint/cinnamon-screensaver"; description = "The Cinnamon screen locker and screensaver program"; license = [ licenses.gpl2 licenses.lgpl2 ]; platforms = platforms.linux; - maintainers = [ maintainers.mkg20001 ]; + maintainers = teams.cinnamon.members; }; } diff --git a/pkgs/desktops/cinnamon/cinnamon-session/0001-Add-dbus_glib-dependency.patch b/pkgs/desktops/cinnamon/cinnamon-session/0001-Add-dbus_glib-dependency.patch deleted file mode 100644 index 156573c30e9a..000000000000 --- a/pkgs/desktops/cinnamon/cinnamon-session/0001-Add-dbus_glib-dependency.patch +++ /dev/null @@ -1,38 +0,0 @@ -From ddc2c4faeec36675654a2f8f04c3011b807fdf79 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Maciej=20Kr=C3=BCger?= -Date: Sun, 22 Mar 2020 07:36:25 +0100 -Subject: [PATCH] Add dbus_glib dependency - ---- - cinnamon-session/meson.build | 2 +- - meson.build | 1 + - 2 files changed, 2 insertions(+), 1 deletion(-) - -diff --git a/cinnamon-session/meson.build b/cinnamon-session/meson.build -index ee8916f..9dd9283 100644 ---- a/cinnamon-session/meson.build -+++ b/cinnamon-session/meson.build -@@ -74,7 +74,7 @@ executable('cinnamon-session', - xext, - xrender, - xtest, -- # elogind, -+ dbus_glib, - ], - link_with: [ - libegg, -diff --git a/meson.build b/meson.build -index 231a448..db306dc 100644 ---- a/meson.build -+++ b/meson.build -@@ -48,6 +48,7 @@ else - gconf = dependency('', required: false) - endif - conf.set('HAVE_GCONF', gconf.found()) -+dbus_glib = dependency('dbus-glib-1') - - - gio_unix = dependency('gio-unix-2.0', required: false) --- -2.25.1 - diff --git a/pkgs/desktops/cinnamon/cinnamon-session/0001-Use-dbus_glib-instead-of-elogind.patch b/pkgs/desktops/cinnamon/cinnamon-session/0001-Use-dbus_glib-instead-of-elogind.patch new file mode 100644 index 000000000000..1b56b3903f3b --- /dev/null +++ b/pkgs/desktops/cinnamon/cinnamon-session/0001-Use-dbus_glib-instead-of-elogind.patch @@ -0,0 +1,38 @@ +From eb4a1eae754f222b1be902c2f050704fb0511cf7 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Maciej=20Kr=C3=BCger?= +Date: Sat, 5 Sep 2020 23:19:23 +0200 +Subject: [PATCH] Use dbus_glib instead of elogind + +--- + cinnamon-session/meson.build | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/cinnamon-session/meson.build b/cinnamon-session/meson.build +index d8428dc..1f15115 100644 +--- a/cinnamon-session/meson.build ++++ b/cinnamon-session/meson.build +@@ -56,6 +56,7 @@ cinnamon_session_sources = [ + gdbus_sources, + ] + ++dbus_glib = dependency('dbus-glib-1') + executable('cinnamon-session', + cinnamon_session_sources, + dependencies: [ +@@ -74,7 +75,7 @@ executable('cinnamon-session', + xext, + xrender, + xtest, +- elogind, ++ dbus_glib, + ], + link_with: [ + libegg, +@@ -98,4 +99,3 @@ foreach unit: units + dependencies: unit[2] + ) + endforeach +- +-- +2.28.0 + diff --git a/pkgs/desktops/cinnamon/cinnamon-session/default.nix b/pkgs/desktops/cinnamon/cinnamon-session/default.nix index 96910052ac9f..9e1420959619 100644 --- a/pkgs/desktops/cinnamon/cinnamon-session/default.nix +++ b/pkgs/desktops/cinnamon/cinnamon-session/default.nix @@ -27,17 +27,17 @@ stdenv.mkDerivation rec { pname = "cinnamon-session"; - version = "4.4.1"; + version = "4.6.1"; src = fetchFromGitHub { owner = "linuxmint"; repo = pname; rev = version; - sha256 = "1bkhzgdinsk4ahp1b4jf50phxwv2da23rh35cmg9fbm5c88701ga"; + sha256 = "13qqi3zqybz00czh0g5nqjx5iwna54cxd7mk9wkp30kj6raa4qca"; }; patches = [ - ./0001-Add-dbus_glib-dependency.patch + ./0001-Use-dbus_glib-instead-of-elogind.patch ]; buildInputs = [ @@ -100,6 +100,6 @@ stdenv.mkDerivation rec { description = "The Cinnamon session manager"; license = licenses.gpl2; platforms = platforms.linux; - maintainers = [ maintainers.mkg20001 ]; + maintainers = teams.cinnamon.members; }; } diff --git a/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix b/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix index 1dc58e3c3b5b..418107673a35 100644 --- a/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix +++ b/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix @@ -27,11 +27,12 @@ , xorg , fontconfig , tzdata +, nss }: stdenv.mkDerivation rec { pname = "cinnamon-settings-daemon"; - version = "4.4.0"; + version = "4.6.4"; /* csd-power-manager.c:50:10: fatal error: csd-power-proxy.h: No such file or directory #include "csd-power-proxy.h" @@ -46,7 +47,7 @@ stdenv.mkDerivation rec { owner = "linuxmint"; repo = pname; rev = version; - sha256 = "1h74d68a7hx85vv6ak26b85jq0wr56ps9rzfvqsnxwk81zxw2n7q"; + sha256 = "1xcjzjfwnzvkv9jiyw8adsjyhz92almzhyfwb91115774zgqnb7m"; }; patches = [ @@ -81,6 +82,7 @@ stdenv.mkDerivation rec { xorg.libXtst xorg.libXfixes fontconfig + nss ]; nativeBuildInputs = [ @@ -91,6 +93,8 @@ stdenv.mkDerivation rec { pkgconfig ]; + outputs = [ "out" "dev" ]; + postPatch = '' sed "s|/usr/share/zoneinfo|${tzdata}/share/zoneinfo|g" -i plugins/datetime/system-timezone.h ''; diff --git a/pkgs/desktops/cinnamon/cinnamon-translations/default.nix b/pkgs/desktops/cinnamon/cinnamon-translations/default.nix index a679f15887b4..142c586d8d64 100644 --- a/pkgs/desktops/cinnamon/cinnamon-translations/default.nix +++ b/pkgs/desktops/cinnamon/cinnamon-translations/default.nix @@ -27,6 +27,6 @@ stdenv.mkDerivation rec { description = "Translations files for the Cinnamon desktop"; license = licenses.gpl2; platforms = platforms.linux; - maintainers = [ maintainers.mkg20001 ]; + maintainers = teams.cinnamon.members; }; } diff --git a/pkgs/desktops/cinnamon/cjs/default.nix b/pkgs/desktops/cinnamon/cjs/default.nix index d67a5d8386a8..cdbcfa9683e5 100644 --- a/pkgs/desktops/cinnamon/cjs/default.nix +++ b/pkgs/desktops/cinnamon/cjs/default.nix @@ -28,13 +28,13 @@ in stdenv.mkDerivation rec { pname = "cjs"; - version = "4.4.0"; + version = "4.6.0"; src = fetchFromGitHub { owner = "linuxmint"; repo = pname; rev = version; - sha256 = "0q5h2pbwysc6hwq5js3lwi6zn7i5qjjy070ynfhfn3z69lw5iz2d"; + sha256 = "1caa43cplb40dm1bwnwca7z4yafvnrncm96k7mih6kg3m87fxqi5"; }; propagatedBuildInputs = [ @@ -83,6 +83,6 @@ stdenv.mkDerivation rec { mpl11 ]; platforms = platforms.linux; - maintainers = [ maintainers.mkg20001 ]; + maintainers = teams.cinnamon.members; }; } diff --git a/pkgs/desktops/cinnamon/default.nix b/pkgs/desktops/cinnamon/default.nix index 5d054e4646de..e406da2b8e56 100644 --- a/pkgs/desktops/cinnamon/default.nix +++ b/pkgs/desktops/cinnamon/default.nix @@ -15,6 +15,7 @@ lib.makeScope pkgs.newScope (self: with self; { cinnamon-common = callPackage ./cinnamon-common { }; cinnamon-control-center = callPackage ./cinnamon-control-center { }; cinnamon-desktop = callPackage ./cinnamon-desktop { }; + cinnamon-gsettings-overrides = callPackage ./cinnamon-gsettings-overrides { }; cinnamon-menus = callPackage ./cinnamon-menus { }; cinnamon-translations = callPackage ./cinnamon-translations { }; cinnamon-screensaver = callPackage ./cinnamon-screensaver { }; @@ -22,7 +23,9 @@ lib.makeScope pkgs.newScope (self: with self; { cinnamon-settings-daemon = callPackage ./cinnamon-settings-daemon { }; cjs = callPackage ./cjs { }; nemo = callPackage ./nemo { }; + mint-artwork = callPackage ./mint-artwork { }; mint-themes = callPackage ./mint-themes { }; + mint-x-icons = callPackage ./mint-x-icons { }; mint-y-icons = callPackage ./mint-y-icons { }; muffin = callPackage ./muffin { }; xapps = callPackage ./xapps { }; diff --git a/pkgs/desktops/cinnamon/mint-artwork/default.nix b/pkgs/desktops/cinnamon/mint-artwork/default.nix new file mode 100644 index 000000000000..b3a542e513e8 --- /dev/null +++ b/pkgs/desktops/cinnamon/mint-artwork/default.nix @@ -0,0 +1,39 @@ +{ stdenv +, fetchurl +, glib +, nixos-artwork +}: + +stdenv.mkDerivation rec { + pname = "mint-artwork"; + version = "1.4.3"; + + src = fetchurl { + url = "http://packages.linuxmint.com/pool/main/m/mint-artwork/mint-artwork_${version}.tar.xz"; + sha256 = "126asxpg722qfg2wkwcr7bhsplchq3jn6bkdwf1scpc5za8dd62j"; + }; + + nativeBuildInputs = [ + glib + ]; + + installPhase = '' + mkdir $out + + # note: we fuck up a bunch of stuff but idc + find . -type f -exec sed -i \ + -e s,/usr/share/backgrounds/linuxmint/default_background.jpg,${nixos-artwork.wallpapers.simple-dark-gray}/share/artwork/gnome/nix-wallpaper-simple-dark-gray.png,g \ + -e s,/usr/share,$out/share,g \ + -e s,DMZ-White,Vanilla-DMZ,g \ + -e s,DMZ-Black,Vanilla-DMZ-AA,g \ + -e s,linuxmint-logo-5,cinnamon-symbolic,g \ + -e s,^theme-name=Mint-X$,theme-name=Mint-X-Dark,g \ + {} + + + # fixup broken symlink + ln -sf ./sele_ring.jpg usr/share/backgrounds/linuxmint/default_background.jpg + + mv etc $out/etc + mv usr/share $out/share + ''; +} diff --git a/pkgs/desktops/cinnamon/mint-themes/default.nix b/pkgs/desktops/cinnamon/mint-themes/default.nix index 770baf77bcda..a4bc81ec8ec9 100644 --- a/pkgs/desktops/cinnamon/mint-themes/default.nix +++ b/pkgs/desktops/cinnamon/mint-themes/default.nix @@ -7,13 +7,14 @@ stdenv.mkDerivation rec { pname = "mint-themes"; - version = "1.8.0"; + version = "1.8.6"; src = fetchFromGitHub { owner = "linuxmint"; repo = pname; - rev = version; - sha256 = "0a8f2cmcl00y4607v5qr2zdcdjc0z74ixm2yakscvw6qzgsh9fac"; + # commit is named 1.8.6, tags=404 + rev = "fa0b9530f6e68c390aecd622b229072fcd08f05f"; + sha256 = "0pgv5hglsscip5s7nv0mn301vkn0j6wp4rv34vr941yai1jfk2wb"; }; nativeBuildInputs = [ @@ -36,6 +37,6 @@ stdenv.mkDerivation rec { description = "Mint-X and Mint-Y themes for the cinnamon desktop"; license = licenses.gpl3; # from debian/copyright platforms = platforms.linux; - maintainers = [ maintainers.mkg20001 ]; + maintainers = teams.cinnamon.members; }; } diff --git a/pkgs/data/icons/mint-x-icons/default.nix b/pkgs/desktops/cinnamon/mint-x-icons/default.nix similarity index 60% rename from pkgs/data/icons/mint-x-icons/default.nix rename to pkgs/desktops/cinnamon/mint-x-icons/default.nix index 213ba877dc66..2fbb3cc67bc3 100644 --- a/pkgs/data/icons/mint-x-icons/default.nix +++ b/pkgs/desktops/cinnamon/mint-x-icons/default.nix @@ -1,8 +1,9 @@ -{ stdenv -, fetchurl +{ fetchFromGitHub +, stdenv +, gnome3 , gnome-icon-theme -, gtk3 , hicolor-icon-theme +, gtk3 , humanity-icon-theme , ubuntu-themes }: @@ -11,20 +12,24 @@ stdenv.mkDerivation rec { pname = "mint-x-icons"; version = "1.5.5"; - src = fetchurl { - url = "http://packages.linuxmint.com/pool/main/m/${pname}/${pname}_${version}.tar.xz"; - sha256 = "0nq3si06m98b71f33wism0bvlvib57rm96msf0wx852ginw3a5yd"; + src = fetchFromGitHub { + owner = "linuxmint"; + repo = pname; + # commit is named 1.5.5, tags=404 + rev = "ecfbeb62bba41e85a61099df467c4700ac63c1e0"; + sha256 = "1yxm7h7giag5hmymgxsg16vc0rhxb2vn3piaksc463mic4vwfa3i"; }; - nativeBuildInputs = [ - gtk3 - ]; - propagatedBuildInputs = [ + gnome3.adwaita-icon-theme gnome-icon-theme hicolor-icon-theme humanity-icon-theme - ubuntu-themes # provides the parent icon theme: ubuntu-mono-dark + ubuntu-themes # provides ubuntu-mono-dark + ]; + + nativeBuildInputs = [ + gtk3 ]; dontDropIconThemeCache = true; @@ -32,8 +37,8 @@ stdenv.mkDerivation rec { installPhase = '' runHook preInstall - mkdir -p $out/share/icons - cp -vai usr/share/icons/* $out/share/icons + mkdir -p $out + mv usr/share $out for theme in $out/share/icons/*; do gtk-update-icon-cache $theme @@ -43,10 +48,10 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - description = "Mint/metal theme based on mintified versions of Clearlooks Revamp, Elementary and Faenza"; homepage = "https://github.com/linuxmint/mint-x-icons"; - license = licenses.gpl3Plus; + description = "Mint/metal theme based on mintified versions of Clearlooks Revamp, Elementary and Faenza"; + license = licenses.gpl3Plus; # from debian/copyright platforms = platforms.linux; - maintainers = with maintainers; [ romildo ]; + maintainers = teams.cinnamon.members; }; } diff --git a/pkgs/desktops/cinnamon/mint-y-icons/default.nix b/pkgs/desktops/cinnamon/mint-y-icons/default.nix index a7e22dc3d033..d5f2271625c8 100644 --- a/pkgs/desktops/cinnamon/mint-y-icons/default.nix +++ b/pkgs/desktops/cinnamon/mint-y-icons/default.nix @@ -8,13 +8,14 @@ stdenv.mkDerivation rec { pname = "mint-y-icons"; - version = "unstable-2020-03-21"; + version = "1.4.3"; src = fetchFromGitHub { owner = "linuxmint"; repo = pname; - rev = "f169a617bc344cb0b480b2b72f54cdd06af05255"; - sha256 = "1c2a79ylk363i982czwwqcwc7cw6dyzlqphcypqm6nll7xlafq8s"; + # commit is named 1.4.3, tags=404 + rev = "c997af402d425889f2e4277966eebe473f7451f7"; + sha256 = "0yfas949xm85a28vgjqm9ym3bhhynrq256w9vfs8aiqq9nbm18mf"; }; propagatedBuildInputs = [ @@ -47,6 +48,6 @@ stdenv.mkDerivation rec { description = "The Mint-Y icon theme"; license = licenses.gpl3; # from debian/copyright platforms = platforms.linux; - maintainers = [ maintainers.mkg20001 ]; + maintainers = teams.cinnamon.members; }; } diff --git a/pkgs/desktops/cinnamon/muffin/default.nix b/pkgs/desktops/cinnamon/muffin/default.nix index 2913d4761ff8..e16ab1eb6769 100644 --- a/pkgs/desktops/cinnamon/muffin/default.nix +++ b/pkgs/desktops/cinnamon/muffin/default.nix @@ -35,30 +35,15 @@ stdenv.mkDerivation rec { pname = "muffin"; - version = "4.4.2"; + version = "4.6.3"; src = fetchFromGitHub { owner = "linuxmint"; repo = pname; rev = version; - sha256 = "1kzjw4a5p69j8x55vpbpn6gy8pkbbyii6kzw2nzbypmipgnnijw8"; + sha256 = "1p8irzf20wari1id5rfx5sypywih1jsrmn0f83zlyhc5fxg02r5p"; }; - patches = [ - # backport patch that disables wayland components via build flags - # https://github.com/linuxmint/muffin/pull/548#issuecomment-578316820 - (fetchpatch { - url = "https://github.com/linuxmint/muffin/commit/f78bf5b309b3d306848f47cc241b31e9399999a7.patch"; - sha256 = "1c79aa9w2v23xlz86x3l42pavwrqx5d6nmfd9nms29hjsk8mpf4i"; - }) - # mute some warnings that caused build failures - # https://github.com/linuxmint/muffin/issues/535#issuecomment-536917143 - (fetchpatch { - url = "https://src.fedoraproject.org/rpms/muffin/raw/6b0af3a22173e374804371a1cca74e23d696dd37/f/0001-fix-warnings-when-compiling.patch"; - sha256 = "15wdbn3afn3103v7rq1icp8n0vqqwrrya03h0g2rzqlrsc7wrvzw"; - }) - ]; - buildInputs = [ gtk3 glib @@ -110,6 +95,6 @@ stdenv.mkDerivation rec { description = "The window management library for the Cinnamon desktop (libmuffin) and its sample WM binary (muffin)"; license = licenses.gpl2; platforms = platforms.linux; - maintainers = [ maintainers.mkg20001 ]; + maintainers = teams.cinnamon.members; }; } diff --git a/pkgs/desktops/cinnamon/nemo/default.nix b/pkgs/desktops/cinnamon/nemo/default.nix index 419aaf249f70..5037f2351208 100644 --- a/pkgs/desktops/cinnamon/nemo/default.nix +++ b/pkgs/desktops/cinnamon/nemo/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { pname = "nemo"; - version = "4.4.1"; + version = "4.6.5"; # TODO: add plugins support (see https://github.com/NixOS/nixpkgs/issues/78327) @@ -28,16 +28,9 @@ stdenv.mkDerivation rec { owner = "linuxmint"; repo = pname; rev = version; - sha256 = "0sskq0rssxvna937md446x1489hkhxys1zq03hvl8asjqa259w2q"; + sha256 = "04rgdph9pxdj5wzzv2i0pgyhg3s74nh9jf1ry9z6v5bvv222ili4"; }; - patches = [ - (fetchpatch { # details see https://github.com/linuxmint/nemo/pull/2303 - url = "https://github.com/linuxmint/nemo/pull/2303/commits/9c1ec7812abe712419317df07d6b64623e8f639d.patch"; - sha256 = "09dz7lq3i47rbvycawrxwgjmd9g1mhb76ibx2vq85wck6r08arml"; - }) - ]; - outputs = [ "out" "dev" ]; buildInputs = [ @@ -71,6 +64,6 @@ stdenv.mkDerivation rec { description = "File browser for Cinnamon"; license = [ licenses.gpl2 licenses.lgpl2 ]; platforms = platforms.linux; - maintainers = [ maintainers.mkg20001 ]; + maintainers = teams.cinnamon.members; }; } diff --git a/pkgs/desktops/cinnamon/xapps/default.nix b/pkgs/desktops/cinnamon/xapps/default.nix index ff02720e8021..d82cb0514237 100644 --- a/pkgs/desktops/cinnamon/xapps/default.nix +++ b/pkgs/desktops/cinnamon/xapps/default.nix @@ -16,19 +16,28 @@ , wrapGAppsHook , inxi , mate +, dbus +, libdbusmenu-gtk3 }: stdenv.mkDerivation rec { pname = "xapps"; - version = "1.6.10"; + version = "1.8.9"; outputs = [ "out" "dev" ]; + patches = [ + (fetchpatch { + url = "https://github.com/linuxmint/xapp/pull/110/commits/208563d4e2bbcfbeb4425d05f649867065c37615.patch"; + sha256 = "0brqndfgawhayrm36cjh6fkff274729jivjq3h5jx93lprvl2zih"; + }) + ]; + src = fetchFromGitHub { owner = "linuxmint"; repo = pname; rev = version; - sha256 = "1jkxvqv9fxf9il5qfyddn4j4nkxgbxlil8vizbx99xz0kafb81vp"; + sha256 = "01jx7612p0c0pi0r7fn5g08s6zjfmq1gfm5hi0fkzl0fxf2cx7a7"; }; # TODO: https://github.com/NixOS/nixpkgs/issues/36468 @@ -36,13 +45,6 @@ stdenv.mkDerivation rec { "-I${glib.dev}/include/gio-unix-2.0" ]; - patches = [ - (fetchpatch { # details see https://github.com/linuxmint/xapps/pull/65 - url = "https://github.com/linuxmint/xapps/compare/d361d9cf357fade59b4bb68df2dcb2c0c39f90e1...2dfe82ec68981ea046345b2be349bd56293579f7.diff"; - sha256 = "0sffclamvjas8ad57kxrg0vrgrd95xsk0xdl53dc3yivpxkfxrnk"; - }) - ]; - nativeBuildInputs = [ meson ninja @@ -63,6 +65,8 @@ stdenv.mkDerivation rec { xorg.libxkbfile python3.pkgs.pygobject3 # for .pc file mate.mate-panel # for gobject-introspection + dbus + libdbusmenu-gtk3 ]; # Requires in xapp.pc @@ -79,14 +83,9 @@ stdenv.mkDerivation rec { postPatch = '' chmod +x schemas/meson_install_schemas.py # patchShebangs requires executable file - # The fetchpatch hook removes the renames, so postPatch has to rename those files, remove once PR merged - mv files/usr/bin/pastebin scripts/pastebin - mv files/usr/bin/upload-system-info scripts/upload-system-info - mv files/usr/bin/xfce4-set-wallpaper scripts/xfce4-set-wallpaper - mv files/usr/share/icons/hicolor icons - patchShebangs \ libxapp/g-codegen.py \ + meson-scripts/g-codegen.py \ schemas/meson_install_schemas.py # Patch pastebin & inxi location @@ -99,6 +98,6 @@ stdenv.mkDerivation rec { description = "Cross-desktop libraries and common resources"; license = licenses.lgpl3; platforms = platforms.linux; - maintainers = [ maintainers.mkg20001 ]; + maintainers = teams.cinnamon.members; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e8de40a13e73..c41ab34a83a6 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -18948,8 +18948,6 @@ in medio = callPackage ../data/fonts/medio { }; - mint-x-icons = callPackage ../data/icons/mint-x-icons { }; - mno16 = callPackage ../data/fonts/mno16 { }; mnist = callPackage ../data/machine-learning/mnist { }; @@ -25399,6 +25397,8 @@ in cinnamon = recurseIntoAttrs (callPackage ../desktops/cinnamon { }); + inherit (cinnamon) mint-x-icons mint-y-icons; + enlightenment = recurseIntoAttrs (callPackage ../desktops/enlightenment { callPackage = newScope pkgs.enlightenment; });