{ lib, stdenv , autoreconfHook , fetchurl , gettext , glib , gnome-bluetooth , gnome-desktop , gnome-panel , gnome-session , gnome , gsettings-desktop-schemas , gtk3 , ibus , libcanberra-gtk3 , libpulseaudio , libxkbfile , libxml2 , pkg-config , polkit , gdm , systemd , upower , pam , wrapGAppsHook , writeTextFile , xkeyboard_config , xorg , runCommand , buildEnv }: let pname = "gnome-flashback"; version = "3.40.0"; # From data/sessions/Makefile.am requiredComponentsCommon = enableGnomePanel: [ "gnome-flashback" ] ++ lib.optional enableGnomePanel "gnome-panel"; requiredComponentsGsd = [ "org.gnome.SettingsDaemon.A11ySettings" "org.gnome.SettingsDaemon.Color" "org.gnome.SettingsDaemon.Datetime" "org.gnome.SettingsDaemon.Housekeeping" "org.gnome.SettingsDaemon.Keyboard" "org.gnome.SettingsDaemon.MediaKeys" "org.gnome.SettingsDaemon.Power" "org.gnome.SettingsDaemon.PrintNotifications" "org.gnome.SettingsDaemon.Rfkill" "org.gnome.SettingsDaemon.ScreensaverProxy" "org.gnome.SettingsDaemon.Sharing" "org.gnome.SettingsDaemon.Smartcard" "org.gnome.SettingsDaemon.Sound" "org.gnome.SettingsDaemon.UsbProtection" "org.gnome.SettingsDaemon.Wacom" "org.gnome.SettingsDaemon.XSettings" ]; requiredComponents = wmName: enableGnomePanel: "RequiredComponents=${lib.concatStringsSep ";" ([ wmName ] ++ requiredComponentsCommon enableGnomePanel ++ requiredComponentsGsd)};"; gnome-flashback = stdenv.mkDerivation rec { name = "${pname}-${version}"; src = fetchurl { url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${name}.tar.xz"; sha256 = "0fxv13m2q9z1q3i9jbggl35cb7jlckbdrfsr5sf030hr1w836gz0"; }; # make .desktop Execs absolute postPatch = '' patch -p0 <