Merge pull request #97256 from mkg20001/cinnamon-module

nixos/cinnamon: init
This commit is contained in:
WORLDofPEACE 2020-09-07 19:48:19 -04:00 committed by GitHub
commit fcc395d7fc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
26 changed files with 486 additions and 161 deletions

View File

@ -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.";

View File

@ -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);
})
];
}

View File

@ -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 = {

View File

@ -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 ];
};
}

View File

@ -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"
];

View File

@ -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;
};
}

View File

@ -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;
};
}

View File

@ -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;
};
}

View File

@ -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
''

View File

@ -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;
};
}

View File

@ -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;
};
}

View File

@ -1,38 +0,0 @@
From ddc2c4faeec36675654a2f8f04c3011b807fdf79 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Maciej=20Kr=C3=BCger?= <mkg20001@gmail.com>
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

View File

@ -0,0 +1,38 @@
From eb4a1eae754f222b1be902c2f050704fb0511cf7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Maciej=20Kr=C3=BCger?= <mkg20001@gmail.com>
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

View File

@ -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;
};
}

View File

@ -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
'';

View File

@ -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;
};
}

View File

@ -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;
};
}

View File

@ -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 { };

View File

@ -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
'';
}

View File

@ -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;
};
}

View File

@ -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;
};
}

View File

@ -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;
};
}

View File

@ -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;
};
}

View File

@ -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;
};
}

View File

@ -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;
};
}

View File

@ -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;
});