From d507691743e5ba838497caeed6458c722a7e1d04 Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Mon, 20 Aug 2018 16:26:49 -0400 Subject: pantheon-terminal: drop --- .../pantheon/apps/pantheon-terminal/default.nix | 29 ---------------------- 1 file changed, 29 deletions(-) delete mode 100644 pkgs/desktops/pantheon/apps/pantheon-terminal/default.nix (limited to 'pkgs/desktops/pantheon') diff --git a/pkgs/desktops/pantheon/apps/pantheon-terminal/default.nix b/pkgs/desktops/pantheon/apps/pantheon-terminal/default.nix deleted file mode 100644 index d6bc8f5330b0..000000000000 --- a/pkgs/desktops/pantheon/apps/pantheon-terminal/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ stdenv, fetchurl, perl, cmake, vala_0_38, pkgconfig, glib, gtk3, granite, gnome3, vte_290, libnotify, gettext, wrapGAppsHook, gobject-introspection }: - -stdenv.mkDerivation rec { - majorVersion = "0.4"; - minorVersion = "3"; - name = "pantheon-terminal-${majorVersion}.${minorVersion}"; - src = fetchurl { - url = "https://launchpad.net/pantheon-terminal/${majorVersion}.x/${majorVersion}.${minorVersion}/+download/${name}.tgz"; - sha256 = "0bfrqxig26i9qhm15kk7h9lgmzgnqada5snbbwqkp0n0pnyyh4ss"; - }; - - nativeBuildInputs = [ - perl cmake vala_0_38 pkgconfig wrapGAppsHook - # For setup hook - gobject-introspection - ]; - buildInputs = with gnome3; [ - glib gtk3 granite libnotify gettext vte_290 libgee - gsettings-desktop-schemas defaultIconTheme - ]; - meta = { - description = "Elementary OS's terminal"; - longDescription = "A super lightweight, beautiful, and simple terminal. It's designed to be setup with sane defaults and little to no configuration. It's just a terminal, nothing more, nothing less. Designed for elementary OS."; - homepage = https://launchpad.net/pantheon-terminal; - license = stdenv.lib.licenses.gpl3; - platforms = stdenv.lib.platforms.linux; - maintainers = [ stdenv.lib.maintainers.vozz ]; - }; -} -- cgit 1.4.1 From 78da8d668b51b10d12285483a661307e1d3052eb Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Mon, 20 Aug 2018 16:31:18 -0400 Subject: pantheon: init a 5.0 --- nixos/modules/module-list.nix | 3 + .../services/desktops/pantheon/contractor.nix | 39 ++++ nixos/modules/services/desktops/pantheon/files.nix | 36 ++++ nixos/modules/services/desktops/tumbler.nix | 50 +++++ .../services/x11/desktop-managers/default.nix | 2 +- .../services/x11/desktop-managers/pantheon.nix | 195 ++++++++++++++++++ .../display-managers/lightdm-greeters/pantheon.nix | 47 +++++ .../services/x11/display-managers/lightdm.nix | 1 + nixos/release-combined.nix | 1 + nixos/tests/pantheon.nix | 55 +++++ pkgs/applications/audio/vocal/default.nix | 8 +- pkgs/applications/editors/quilter/default.nix | 12 +- pkgs/applications/misc/notejot/default.nix | 10 +- pkgs/applications/misc/regextester/default.nix | 18 +- pkgs/applications/misc/sequeler/default.nix | 8 +- pkgs/applications/misc/tootle/default.nix | 9 +- pkgs/applications/networking/ftp/taxi/default.nix | 6 +- .../networking/transporter/default.nix | 20 +- .../networking/weather/meteo/default.nix | 2 +- pkgs/applications/office/aesop/default.nix | 8 +- pkgs/applications/office/bookworm/default.nix | 12 +- pkgs/applications/office/spice-up/default.nix | 17 +- pkgs/applications/science/math/nasc/default.nix | 14 +- pkgs/data/icons/faba-icon-theme/default.nix | 4 +- pkgs/desktops/deepin/deepin-wm/default.nix | 4 +- .../apps/elementary-calculator/default.nix | 58 ++++++ .../pantheon/apps/elementary-calendar/default.nix | 66 ++++++ .../pantheon/apps/elementary-camera/default.nix | 64 ++++++ .../pantheon/apps/elementary-code/default.nix | 80 ++++++++ .../pantheon/apps/elementary-files/default.nix | 77 +++++++ .../apps/elementary-files/hardcode-gsettings.patch | 22 ++ .../pantheon/apps/elementary-music/default.nix | 78 +++++++ .../pantheon/apps/elementary-photos/default.nix | 80 ++++++++ .../apps/elementary-screenshot-tool/default.nix | 67 +++++++ .../elementary-screenshot-tool/redacted-script.nix | 28 +++ .../pantheon/apps/elementary-terminal/default.nix | 66 ++++++ .../pantheon/apps/elementary-videos/default.nix | 64 ++++++ .../apps/switchboard-plugs/a11y/default.nix | 45 +++++ .../apps/switchboard-plugs/about/default.nix | 54 +++++ .../apps/switchboard-plugs/about/lspci-path.patch | 13 ++ .../about/remove-update-button.patch | 55 +++++ .../switchboard-plugs/applications/default.nix | 45 +++++ .../apps/switchboard-plugs/bluetooth/default.nix | 47 +++++ .../switchboard-plugs/datetime/clock-format.patch | 12 ++ .../apps/switchboard-plugs/datetime/default.nix | 55 +++++ .../apps/switchboard-plugs/datetime/timezone.patch | 13 ++ .../apps/switchboard-plugs/display/default.nix | 45 +++++ .../apps/switchboard-plugs/keyboard/default.nix | 57 ++++++ .../apps/switchboard-plugs/keyboard/xkb.patch | 22 ++ .../switchboard-plugs/mouse-touchpad/default.nix | 45 +++++ .../apps/switchboard-plugs/network/default.nix | 55 +++++ .../apps/switchboard-plugs/network/nma.patch | 43 ++++ .../switchboard-plugs/notifications/default.nix | 45 +++++ .../switchboard-plugs/onlineaccounts/default.nix | 56 ++++++ .../pantheon-shell/backgrounds.patch | 26 +++ .../switchboard-plugs/pantheon-shell/default.nix | 63 ++++++ .../pantheon-shell/hardcode-gsettings.patch | 23 +++ .../apps/switchboard-plugs/power/default.nix | 64 ++++++ .../switchboard-plugs/power/dpms-helper-exec.patch | 13 ++ .../power/hardcode-gsettings.patch | 20 ++ .../apps/switchboard-plugs/printers/default.nix | 47 +++++ .../switchboard-plugs/security-privacy/default.nix | 62 ++++++ .../security-privacy/hardcode-gsettings.patch | 36 ++++ .../apps/switchboard-plugs/sharing/default.nix | 45 +++++ .../apps/switchboard-plugs/sound/default.nix | 49 +++++ .../desktops/pantheon/apps/switchboard/default.nix | 56 ++++++ .../pantheon/apps/switchboard/plugs-path-env.patch | 25 +++ .../desktops/pantheon/apps/switchboard/wrapper.nix | 19 ++ .../artwork/elementary-gtk-theme/default.nix | 35 ++++ .../artwork/elementary-icon-theme/default.nix | 55 +++++ .../artwork/elementary-sound-theme/default.nix | 36 ++++ .../artwork/elementary-wallpapers/default.nix | 38 ++++ pkgs/desktops/pantheon/default.nix | 222 ++++++++++++++++++++ .../correct-override.patch | 25 +++ .../elementary-default-settings/default.nix | 60 ++++++ .../io.elementary.greeter.whitelist | 6 + .../launchers/gala-multitaskingview.dockitem | 2 + .../launchers/io.elementary.calendar.dockitem | 2 + .../launchers/io.elementary.music.dockitem | 2 + .../launchers/io.elementary.photos.dockitem | 2 + .../launchers/io.elementary.switchboard.dockitem | 2 + .../launchers/io.elementary.videos.dockitem | 2 + .../launchers/org.gnome.Epiphany.dockitem | 2 + .../launchers/org.gnome.Geary.dockitem | 2 + .../elementary-greeter/01-sysconfdir-install.patch | 25 +++ .../desktop/elementary-greeter/default.nix | 103 ++++++++++ .../pantheon/desktop/elementary-greeter/gsd.patch | 13 ++ .../desktop/elementary-greeter/numlockx.patch | 13 ++ .../elementary-gsettings-schemas/default.nix | 44 ++++ .../desktop/elementary-print-shim/default.nix | 39 ++++ .../default-elementary-dockitems.desktop | 8 + .../elementary-session-settings/default.nix | 107 ++++++++++ .../elementary-shortcut-overlay/default.nix | 50 +++++ .../desktop/extra-elementary-contracts/default.nix | 39 ++++ .../extra-elementary-contracts/exec-path.patch | 34 ++++ pkgs/desktops/pantheon/desktop/gala/default.nix | 66 ++++++ .../pantheon/desktop/gala/plugins-dir.patch | 22 ++ .../applications-menu/bc.patch | 24 +++ .../applications-menu/default.nix | 72 +++++++ .../applications-menu/xdg.patch | 13 ++ .../wingpanel-indicators/bluetooth/default.nix | 56 ++++++ .../datetime/calendar-exec.patch | 13 ++ .../wingpanel-indicators/datetime/default.nix | 71 +++++++ .../wingpanel-indicators/keyboard/default.nix | 57 ++++++ .../wingpanel-indicators/keyboard/fix-paths.patch | 26 +++ .../wingpanel-indicators/network/default.nix | 50 +++++ .../wingpanel-indicators/nightlight/default.nix | 49 +++++ .../wingpanel-indicators/notifications/default.nix | 48 +++++ .../desktop/wingpanel-indicators/power/default.nix | 57 ++++++ .../wingpanel-indicators/session/default.nix | 49 +++++ .../desktop/wingpanel-indicators/sound/default.nix | 59 ++++++ .../pantheon/desktop/wingpanel/default.nix | 61 ++++++ .../pantheon/desktop/wingpanel/indicators.patch | 21 ++ .../pantheon/desktop/wingpanel/wrapper.nix | 23 +++ .../02-datetime-clock-format-gsettings.patch | 129 ++++++++++++ pkgs/desktops/pantheon/granite/default.nix | 69 +++++++ .../desktops/pantheon/services/cerbere/default.nix | 48 +++++ .../pantheon/services/contractor/default.nix | 45 +++++ .../services/elementary-capnet-assist/default.nix | 58 ++++++ .../remove-capnet-test.patch | 13 ++ .../services/elementary-dpms-helper/default.nix | 57 ++++++ .../elementary-settings-daemon/default.nix | 117 +++++++++++ .../elementary-settings-daemon/fix-paths.patch | 15 ++ .../services/pantheon-agent-geoclue2/default.nix | 49 +++++ .../services/pantheon-agent-polkit/default.nix | 43 ++++ pkgs/desktops/pantheon/update.nix | 18 ++ pkgs/desktops/pantheon/update.sh | 223 +++++++++++++++++++++ .../02-datetime-clock-format-gsettings.patch | 129 ------------ pkgs/development/libraries/granite/default.nix | 63 ------ pkgs/tools/misc/hashit/default.nix | 10 +- pkgs/top-level/all-packages.nix | 3 +- 131 files changed, 5201 insertions(+), 279 deletions(-) create mode 100644 nixos/modules/services/desktops/pantheon/contractor.nix create mode 100644 nixos/modules/services/desktops/pantheon/files.nix create mode 100644 nixos/modules/services/desktops/tumbler.nix create mode 100644 nixos/modules/services/x11/desktop-managers/pantheon.nix create mode 100644 nixos/modules/services/x11/display-managers/lightdm-greeters/pantheon.nix create mode 100644 nixos/tests/pantheon.nix create mode 100644 pkgs/desktops/pantheon/apps/elementary-calculator/default.nix create mode 100644 pkgs/desktops/pantheon/apps/elementary-calendar/default.nix create mode 100644 pkgs/desktops/pantheon/apps/elementary-camera/default.nix create mode 100644 pkgs/desktops/pantheon/apps/elementary-code/default.nix create mode 100644 pkgs/desktops/pantheon/apps/elementary-files/default.nix create mode 100644 pkgs/desktops/pantheon/apps/elementary-files/hardcode-gsettings.patch create mode 100644 pkgs/desktops/pantheon/apps/elementary-music/default.nix create mode 100644 pkgs/desktops/pantheon/apps/elementary-photos/default.nix create mode 100644 pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix create mode 100644 pkgs/desktops/pantheon/apps/elementary-screenshot-tool/redacted-script.nix create mode 100644 pkgs/desktops/pantheon/apps/elementary-terminal/default.nix create mode 100644 pkgs/desktops/pantheon/apps/elementary-videos/default.nix create mode 100644 pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix create mode 100644 pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix create mode 100644 pkgs/desktops/pantheon/apps/switchboard-plugs/about/lspci-path.patch create mode 100644 pkgs/desktops/pantheon/apps/switchboard-plugs/about/remove-update-button.patch create mode 100644 pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix create mode 100644 pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix create mode 100644 pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/clock-format.patch create mode 100644 pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix create mode 100644 pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/timezone.patch create mode 100644 pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix create mode 100644 pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix create mode 100644 pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/xkb.patch create mode 100644 pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix create mode 100644 pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix create mode 100644 pkgs/desktops/pantheon/apps/switchboard-plugs/network/nma.patch create mode 100644 pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix create mode 100644 pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix create mode 100644 pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/backgrounds.patch create mode 100644 pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix create mode 100644 pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/hardcode-gsettings.patch create mode 100644 pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix create mode 100644 pkgs/desktops/pantheon/apps/switchboard-plugs/power/dpms-helper-exec.patch create mode 100644 pkgs/desktops/pantheon/apps/switchboard-plugs/power/hardcode-gsettings.patch create mode 100644 pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix create mode 100644 pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix create mode 100644 pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/hardcode-gsettings.patch create mode 100644 pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix create mode 100644 pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix create mode 100644 pkgs/desktops/pantheon/apps/switchboard/default.nix create mode 100644 pkgs/desktops/pantheon/apps/switchboard/plugs-path-env.patch create mode 100644 pkgs/desktops/pantheon/apps/switchboard/wrapper.nix create mode 100644 pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix create mode 100644 pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix create mode 100644 pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix create mode 100644 pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix create mode 100644 pkgs/desktops/pantheon/default.nix create mode 100644 pkgs/desktops/pantheon/desktop/elementary-default-settings/correct-override.patch create mode 100644 pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix create mode 100644 pkgs/desktops/pantheon/desktop/elementary-default-settings/io.elementary.greeter.whitelist create mode 100644 pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/gala-multitaskingview.dockitem create mode 100644 pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.calendar.dockitem create mode 100644 pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.music.dockitem create mode 100644 pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.photos.dockitem create mode 100644 pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.switchboard.dockitem create mode 100644 pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.videos.dockitem create mode 100644 pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/org.gnome.Epiphany.dockitem create mode 100644 pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/org.gnome.Geary.dockitem create mode 100644 pkgs/desktops/pantheon/desktop/elementary-greeter/01-sysconfdir-install.patch create mode 100644 pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix create mode 100644 pkgs/desktops/pantheon/desktop/elementary-greeter/gsd.patch create mode 100644 pkgs/desktops/pantheon/desktop/elementary-greeter/numlockx.patch create mode 100644 pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix create mode 100644 pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix create mode 100644 pkgs/desktops/pantheon/desktop/elementary-session-settings/default-elementary-dockitems.desktop create mode 100644 pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix create mode 100644 pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix create mode 100644 pkgs/desktops/pantheon/desktop/extra-elementary-contracts/default.nix create mode 100644 pkgs/desktops/pantheon/desktop/extra-elementary-contracts/exec-path.patch create mode 100644 pkgs/desktops/pantheon/desktop/gala/default.nix create mode 100644 pkgs/desktops/pantheon/desktop/gala/plugins-dir.patch create mode 100644 pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/bc.patch create mode 100644 pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix create mode 100644 pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/xdg.patch create mode 100644 pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix create mode 100644 pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/calendar-exec.patch create mode 100644 pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix create mode 100644 pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix create mode 100644 pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/fix-paths.patch create mode 100644 pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix create mode 100644 pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix create mode 100644 pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix create mode 100644 pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix create mode 100644 pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix create mode 100644 pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix create mode 100644 pkgs/desktops/pantheon/desktop/wingpanel/default.nix create mode 100644 pkgs/desktops/pantheon/desktop/wingpanel/indicators.patch create mode 100644 pkgs/desktops/pantheon/desktop/wingpanel/wrapper.nix create mode 100644 pkgs/desktops/pantheon/granite/02-datetime-clock-format-gsettings.patch create mode 100644 pkgs/desktops/pantheon/granite/default.nix create mode 100644 pkgs/desktops/pantheon/services/cerbere/default.nix create mode 100644 pkgs/desktops/pantheon/services/contractor/default.nix create mode 100644 pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix create mode 100644 pkgs/desktops/pantheon/services/elementary-capnet-assist/remove-capnet-test.patch create mode 100644 pkgs/desktops/pantheon/services/elementary-dpms-helper/default.nix create mode 100644 pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix create mode 100644 pkgs/desktops/pantheon/services/elementary-settings-daemon/fix-paths.patch create mode 100644 pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix create mode 100644 pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix create mode 100644 pkgs/desktops/pantheon/update.nix create mode 100755 pkgs/desktops/pantheon/update.sh delete mode 100644 pkgs/development/libraries/granite/02-datetime-clock-format-gsettings.patch delete mode 100644 pkgs/development/libraries/granite/default.nix (limited to 'pkgs/desktops/pantheon') diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 1a8bd9cccb18..544b16bdf74d 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -241,6 +241,8 @@ ./services/desktops/bamf.nix ./services/desktops/dleyna-renderer.nix ./services/desktops/dleyna-server.nix + ./services/desktops/pantheon/contractor.nix + ./services/desktops/pantheon/files.nix ./services/desktops/flatpak.nix ./services/desktops/geoclue2.nix ./services/desktops/gsignond.nix @@ -266,6 +268,7 @@ ./services/desktops/gnome3/tracker-miners.nix ./services/desktops/profile-sync-daemon.nix ./services/desktops/telepathy.nix + ./services/desktops/tumbler.nix ./services/desktops/zeitgeist.nix ./services/development/bloop.nix ./services/development/hoogle.nix diff --git a/nixos/modules/services/desktops/pantheon/contractor.nix b/nixos/modules/services/desktops/pantheon/contractor.nix new file mode 100644 index 000000000000..bd538db72413 --- /dev/null +++ b/nixos/modules/services/desktops/pantheon/contractor.nix @@ -0,0 +1,39 @@ +# Contractor + +{ config, pkgs, lib, ... }: + +with lib; + +{ + + ###### interface + + options = { + + services.pantheon.contractor = { + + enable = mkEnableOption "contractor, a desktop-wide extension service used by pantheon"; + + }; + + }; + + + ###### implementation + + config = mkIf config.services.pantheon.contractor.enable { + + environment.systemPackages = with pkgs.pantheon; [ + contractor + extra-elementary-contracts + ]; + + services.dbus.packages = [ pkgs.pantheon.contractor ]; + + environment.pathsToLink = [ + "/share/contractor" + ]; + + }; + +} diff --git a/nixos/modules/services/desktops/pantheon/files.nix b/nixos/modules/services/desktops/pantheon/files.nix new file mode 100644 index 000000000000..2edbe5b3a6db --- /dev/null +++ b/nixos/modules/services/desktops/pantheon/files.nix @@ -0,0 +1,36 @@ +# pantheon files daemon. + +{ config, pkgs, lib, ... }: + +with lib; + +{ + + ###### interface + + options = { + + services.pantheon.files = { + + enable = mkEnableOption "pantheon files daemon"; + + }; + + }; + + + ###### implementation + + config = mkIf config.services.pantheon.files.enable { + + environment.systemPackages = [ + pkgs.pantheon.elementary-files + ]; + + services.dbus.packages = [ + pkgs.pantheon.elementary-files + ]; + + }; + +} diff --git a/nixos/modules/services/desktops/tumbler.nix b/nixos/modules/services/desktops/tumbler.nix new file mode 100644 index 000000000000..ccbb6d1434d9 --- /dev/null +++ b/nixos/modules/services/desktops/tumbler.nix @@ -0,0 +1,50 @@ +# Tumbler + +{ config, pkgs, lib, ... }: + +with lib; + +let + + cfg = config.services.tumbler; + tumbler = cfg.package; + +in + +{ + + ###### interface + + options = { + + services.tumbler = { + + enable = mkEnableOption "Tumbler, A D-Bus thumbnailer service"; + + package = mkOption { + type = types.package; + default = pkgs.xfce4-13.tumbler; + description = "Which tumbler package to use"; + example = pkgs.xfce4-12.tumbler; + }; + + }; + + }; + + + ###### implementation + + config = mkIf cfg.enable { + + environment.systemPackages = [ + tumbler + ]; + + services.dbus.packages = [ + tumbler + ]; + + }; + +} diff --git a/nixos/modules/services/x11/desktop-managers/default.nix b/nixos/modules/services/x11/desktop-managers/default.nix index cce35aa28ba8..2b1e9169e5f6 100644 --- a/nixos/modules/services/x11/desktop-managers/default.nix +++ b/nixos/modules/services/x11/desktop-managers/default.nix @@ -20,7 +20,7 @@ in imports = [ ./none.nix ./xterm.nix ./xfce.nix ./plasma5.nix ./lumina.nix ./lxqt.nix ./enlightenment.nix ./gnome3.nix ./kodi.nix ./maxx.nix - ./mate.nix + ./mate.nix ./pantheon.nix ]; options = { diff --git a/nixos/modules/services/x11/desktop-managers/pantheon.nix b/nixos/modules/services/x11/desktop-managers/pantheon.nix new file mode 100644 index 000000000000..7e23dd9cde63 --- /dev/null +++ b/nixos/modules/services/x11/desktop-managers/pantheon.nix @@ -0,0 +1,195 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + + cfg = config.services.xserver.desktopManager.pantheon; + + nixos-gsettings-desktop-schemas = pkgs.pantheon.elementary-gsettings-schemas.override { + extraGSettingsOverridePackages = cfg.extraGSettingsOverridePackages; + extraGSettingsOverrides = cfg.extraGSettingsOverrides; + }; + +in + +{ + options = { + + services.xserver.desktopManager.pantheon = { + enable = mkOption { + type = types.bool; + default = false; + description = "Enable the pantheon 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). + ''; + apply = list: list ++ + [ + pkgs.pantheon.pantheon-agent-geoclue2 + ]; + }; + + 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."; + }; + + debug = mkEnableOption "gnome-session debug messages"; + + }; + + environment.pantheon.excludePackages = mkOption { + default = []; + example = literalExample "[ pkgs.pantheon.elementary-camera ]"; + type = types.listOf types.package; + description = "Which packages pantheon should exclude from the default environment"; + }; + + }; + + + config = mkIf cfg.enable { + + services.xserver.displayManager.extraSessionFilePackages = [ pkgs.pantheon.elementary-session-settings ]; + + # Ensure lightdm is used when Pantheon is enabled + # Without it screen locking will be nonfunctional because of the use of lightlocker + services.xserver.displayManager.lightdm.enable = mkDefault true; + services.xserver.displayManager.lightdm.greeters.pantheon.enable = mkDefault true; + + # If not set manually Pantheon session cannot be started + # Known issue of https://github.com/NixOS/nixpkgs/pull/43992 + services.xserver.desktopManager.default = mkForce "pantheon"; + + services.xserver.displayManager.sessionCommands = '' + if test "$XDG_CURRENT_DESKTOP" = "Pantheon"; then + ${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} + + # Makes qt applications look less alien + export QT_QPA_PLATFORMTHEME=gtk3 + export QT_STYLE_OVERRIDE=adwaita + fi + ''; + + hardware.bluetooth.enable = mkDefault true; + hardware.pulseaudio.enable = mkDefault true; + security.polkit.enable = true; + services.accounts-daemon.enable = true; + services.bamf.enable = true; + services.colord.enable = mkDefault true; + services.pantheon.files.enable = mkDefault true; + services.tumbler.enable = mkDefault true; + services.dbus.packages = mkMerge [ + ([ pkgs.pantheon.switchboard-plug-power ]) + (mkIf config.services.printing.enable ([pkgs.system-config-printer]) ) + ]; + services.pantheon.contractor.enable = true; + services.geoclue2.enable = mkDefault true; + # pantheon has pantheon-agent-geoclue2 + services.geoclue2.enableDemoAgent = false; + services.gnome3.at-spi2-core.enable = true; + services.gnome3.evolution-data-server.enable = true; + # TODO: gnome-keyring's xdg autostarts will still be in the environment (from elementary-session-settings) if disabled forcefully + services.gnome3.gnome-keyring.enable = true; + services.gnome3.gvfs.enable = true; + services.gnome3.rygel.enable = true; + services.gsignond.enable = true; + services.gsignond.plugins = with pkgs.gsignondPlugins; [ lastfm mail oauth ]; + services.udev.packages = [ pkgs.pantheon.elementary-settings-daemon ]; + services.udisks2.enable = true; + services.upower.enable = config.powerManagement.enable; + services.xserver.libinput.enable = mkDefault true; + services.xserver.updateDbusEnvironment = true; + services.zeitgeist.enable = true; + + networking.networkmanager.enable = mkDefault true; + networking.networkmanager.basePackages = + { inherit (pkgs) networkmanager modemmanager wpa_supplicant; + inherit (pkgs.gnome3) networkmanager-openvpn networkmanager-vpnc + networkmanager-openconnect networkmanager-fortisslvpn + networkmanager-iodine networkmanager-l2tp; }; + + # Override GSettings schemas + environment.variables.NIX_GSETTINGS_OVERRIDES_DIR = "${nixos-gsettings-desktop-schemas}/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas"; + + environment.variables.GNOME_SESSION_DEBUG = optionalString cfg.debug "1"; + + environment.variables.GIO_EXTRA_MODULES = [ + "${lib.getLib pkgs.gnome3.dconf}/lib/gio/modules" + "${pkgs.gnome3.glib-networking.out}/lib/gio/modules" + "${pkgs.gnome3.gvfs}/lib/gio/modules" + ]; + + environment.pathsToLink = [ + # FIXME: modules should link subdirs of `/share` rather than relying on this + "/share" + ]; + + environment.systemPackages = pkgs.pantheon.artwork ++ pkgs.pantheon.desktop ++ pkgs.pantheon.services ++ cfg.sessionPath + ++ (pkgs.gnome3.removePackagesByName pkgs.pantheon.apps config.environment.pantheon.excludePackages) + ++ (with pkgs.gnome3; + [ + adwaita-icon-theme + dconf + epiphany + evince + file-roller + geary + gnome-bluetooth + gnome-font-viewer + gnome-power-manager + ]) + ++ (with pkgs; + [ + adwaita-qt + desktop-file-utils + glib + glib-networking + gnome-menus + gtk3.out + hicolor-icon-theme + lightlocker + plank + qgnomeplatform + shared-mime-info + sound-theme-freedesktop + xdg-user-dirs + ]); + + fonts.fonts = with pkgs; [ + opensans-ttf + roboto-mono + ]; + fonts.fontconfig.defaultFonts = { + monospace = [ "Roboto Mono" ]; + sansSerif = [ "Open Sans" ]; + }; + + }; + +} diff --git a/nixos/modules/services/x11/display-managers/lightdm-greeters/pantheon.nix b/nixos/modules/services/x11/display-managers/lightdm-greeters/pantheon.nix new file mode 100644 index 000000000000..05011b999f2b --- /dev/null +++ b/nixos/modules/services/x11/display-managers/lightdm-greeters/pantheon.nix @@ -0,0 +1,47 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + + dmcfg = config.services.xserver.displayManager; + ldmcfg = dmcfg.lightdm; + cfg = ldmcfg.greeters.pantheon; + + xgreeters = pkgs.linkFarm "pantheon-greeter-xgreeters" [{ + path = "${pkgs.pantheon.elementary-greeter}/share/xgreeters/io.elementary.greeter.desktop"; + name = "io.elementary.greeter.desktop"; + }]; + +in +{ + options = { + + services.xserver.displayManager.lightdm.greeters.pantheon = { + + enable = mkOption { + type = types.bool; + default = false; + description = '' + Whether to enable elementary-greeter as the lightdm greeter. + ''; + }; + + }; + + }; + + config = mkIf (ldmcfg.enable && cfg.enable) { + + services.xserver.displayManager.lightdm.greeters.gtk.enable = false; + + services.xserver.displayManager.lightdm.greeter = mkDefault { + package = xgreeters; + name = "io.elementary.greeter"; + }; + + environment.etc."lightdm/io.elementary.greeter.conf".source = "${pkgs.pantheon.elementary-greeter}/etc/lightdm/io.elementary.greeter.conf"; + environment.etc."wingpanel.d/io.elementary.greeter.whitelist".source = "${pkgs.pantheon.elementary-default-settings}/etc/wingpanel.d/io.elementary.greeter.whitelist"; + + }; +} diff --git a/nixos/modules/services/x11/display-managers/lightdm.nix b/nixos/modules/services/x11/display-managers/lightdm.nix index 567c3ac34549..3ab4f26399f3 100644 --- a/nixos/modules/services/x11/display-managers/lightdm.nix +++ b/nixos/modules/services/x11/display-managers/lightdm.nix @@ -81,6 +81,7 @@ in ./lightdm-greeters/gtk.nix ./lightdm-greeters/mini.nix ./lightdm-greeters/enso-os.nix + ./lightdm-greeters/pantheon.nix ]; options = { diff --git a/nixos/release-combined.nix b/nixos/release-combined.nix index ea8b92e94f01..6c313f8dd3e4 100644 --- a/nixos/release-combined.nix +++ b/nixos/release-combined.nix @@ -68,6 +68,7 @@ in rec { (all nixos.tests.firefox) (all nixos.tests.firewall) (except ["aarch64-linux"] nixos.tests.gnome3) + (except ["aarch64-linux"] nixos.tests.pantheon) nixos.tests.installer.zfsroot.x86_64-linux or [] # ZFS is 64bit only (except ["aarch64-linux"] nixos.tests.installer.lvm) (except ["aarch64-linux"] nixos.tests.installer.luksroot) diff --git a/nixos/tests/pantheon.nix b/nixos/tests/pantheon.nix new file mode 100644 index 000000000000..c50f77f86173 --- /dev/null +++ b/nixos/tests/pantheon.nix @@ -0,0 +1,55 @@ +import ./make-test.nix ({ pkgs, ...} : + +{ + name = "pantheon"; + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ worldofpeace ]; + }; + + machine = { ... }: + + { + imports = [ ./common/user-account.nix ]; + + services.xserver.enable = true; + services.xserver.desktopManager.pantheon.enable = true; + + virtualisation.memorySize = 1024; + }; + + enableOCR = true; + + testScript = { nodes, ... }: let + user = nodes.machine.config.users.users.alice; + in '' + startAll; + + # Wait for display manager to start + $machine->waitForText(qr/${user.description}/); + $machine->screenshot("lightdm"); + + # Log in + $machine->sendChars("${user.password}\n"); + $machine->waitForFile("/home/alice/.Xauthority"); + $machine->succeed("xauth merge ~alice/.Xauthority"); + + # Check if "pantheon-shell" components actually start + $machine->waitUntilSucceeds("pgrep gala"); + $machine->waitForWindow(qr/gala/); + $machine->waitUntilSucceeds("pgrep wingpanel"); + $machine->waitForWindow("wingpanel"); + $machine->waitUntilSucceeds("pgrep plank"); + $machine->waitForWindow(qr/plank/); + + # Check that logging in has given the user ownership of devices. + $machine->succeed("getfacl /dev/snd/timer | grep -q alice"); + + # Open elementary terminal + $machine->execute("su - alice -c 'DISPLAY=:0.0 io.elementary.terminal &'"); + $machine->waitForWindow(qr/io.elementary.terminal/); + + # Take a screenshot of the desktop + $machine->sleep(20); + $machine->screenshot("screen"); + ''; +}) diff --git a/pkgs/applications/audio/vocal/default.nix b/pkgs/applications/audio/vocal/default.nix index 75f67adf4645..49e11aee0a12 100644 --- a/pkgs/applications/audio/vocal/default.nix +++ b/pkgs/applications/audio/vocal/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, cmake, ninja, pkgconfig, vala_0_40, gtk3, libxml2, granite, webkitgtk, clutter-gtk +{ stdenv, fetchFromGitHub, cmake, ninja, pkgconfig, pantheon, gtk3, libxml2, webkitgtk, clutter-gtk , clutter-gst, libunity, libnotify, sqlite, gst_all_1, libsoup, json-glib, gnome3, gobject-introspection, wrapGAppsHook }: stdenv.mkDerivation rec { @@ -20,16 +20,16 @@ stdenv.mkDerivation rec { libxml2 ninja pkgconfig - vala_0_40 # should be `elementary.vala` when elementary attribute set is merged + pantheon.vala wrapGAppsHook ]; buildInputs = with gst_all_1; [ clutter-gst clutter-gtk - gnome3.defaultIconTheme # should be `elementary.defaultIconTheme`when elementary attribute set is merged + pantheon.elementary-icon-theme gnome3.libgee - granite + pantheon.granite gst-plugins-base gst-plugins-good gstreamer diff --git a/pkgs/applications/editors/quilter/default.nix b/pkgs/applications/editors/quilter/default.nix index b9fe90be9fb2..9edac16507c4 100644 --- a/pkgs/applications/editors/quilter/default.nix +++ b/pkgs/applications/editors/quilter/default.nix @@ -1,6 +1,6 @@ -{ stdenv, fetchFromGitHub, fetchpatch, vala_0_40, pkgconfig, meson, ninja, python3 -, granite, gtk3, desktop-file-utils, gnome3, gtksourceview, webkitgtk, gtkspell3 -, discount, gobject-introspection, wrapGAppsHook }: +{ stdenv, fetchFromGitHub, fetchpatch, pkgconfig, meson, ninja, python3 +, gtk3, desktop-file-utils, gtksourceview, webkitgtk, gtkspell3, pantheon +, gnome3, discount, gobject-introspection, wrapGAppsHook }: stdenv.mkDerivation rec { pname = "quilter"; @@ -22,15 +22,15 @@ stdenv.mkDerivation rec { ninja pkgconfig python3 - vala_0_40 # should be `elementary.vala` when elementary attribute set is merged + pantheon.vala wrapGAppsHook ]; buildInputs = [ discount - gnome3.defaultIconTheme # should be `elementary.defaultIconTheme`when elementary attribute set is merged + pantheon.elementary-icon-theme + pantheon.granite gnome3.libgee - granite gtk3 gtksourceview gtkspell3 diff --git a/pkgs/applications/misc/notejot/default.nix b/pkgs/applications/misc/notejot/default.nix index 9e2f4bf7f2e4..74e1c679ec37 100644 --- a/pkgs/applications/misc/notejot/default.nix +++ b/pkgs/applications/misc/notejot/default.nix @@ -1,5 +1,5 @@ -{ stdenv, fetchFromGitHub, vala_0_40, pkgconfig, meson, ninja, python3, granite -, gtk3, gnome3, gtksourceview, json-glib, gobject-introspection, wrapGAppsHook }: +{ stdenv, fetchFromGitHub, pkgconfig, meson, ninja, python3, pantheon +, gtk3, gtksourceview, json-glib, gnome3, gobject-introspection, wrapGAppsHook }: stdenv.mkDerivation rec { pname = "notejot"; @@ -20,14 +20,14 @@ stdenv.mkDerivation rec { ninja pkgconfig python3 - vala_0_40 # should be `elementary.vala` when elementary attribute set is merged + pantheon.vala wrapGAppsHook ]; buildInputs = [ - gnome3.defaultIconTheme # should be `elementary.defaultIconTheme`when elementary attribute set is merged + pantheon.elementary-icon-theme + pantheon.granite gnome3.libgee - granite gtk3 gtksourceview json-glib diff --git a/pkgs/applications/misc/regextester/default.nix b/pkgs/applications/misc/regextester/default.nix index 2b902d27a353..703d78621249 100644 --- a/pkgs/applications/misc/regextester/default.nix +++ b/pkgs/applications/misc/regextester/default.nix @@ -4,14 +4,13 @@ , libxml2 , pkgconfig , glib -, granite , gtk3 , gnome3 , meson , ninja , gobject-introspection , gsettings-desktop-schemas -, vala_0_40 +, pantheon , wrapGAppsHook }: stdenv.mkDerivation rec { @@ -26,22 +25,23 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ - pkgconfig - meson - ninja + pantheon.vala gettext gobject-introspection libxml2 - vala_0_40 # should be `elementary.vala` when elementary attribute set is merged + meson + ninja + pkgconfig wrapGAppsHook ]; + buildInputs = [ + pantheon.elementary-icon-theme + pantheon.granite glib - granite - gtk3 - gnome3.defaultIconTheme gnome3.libgee gsettings-desktop-schemas + gtk3 ]; postInstall = '' diff --git a/pkgs/applications/misc/sequeler/default.nix b/pkgs/applications/misc/sequeler/default.nix index 72a1465a2c83..96049b395ea5 100644 --- a/pkgs/applications/misc/sequeler/default.nix +++ b/pkgs/applications/misc/sequeler/default.nix @@ -1,6 +1,6 @@ { stdenv, fetchFromGitHub -, meson, ninja, pkgconfig, vala, gobject-introspection, gettext, wrapGAppsHook, python3, desktop-file-utils -, gtk3, glib, granite, libgee, libgda, gtksourceview, libxml2, libsecret, libfixposix, libssh2 }: +, meson, ninja, pkgconfig, pantheon, gobject-introspection, gettext, wrapGAppsHook, python3, desktop-file-utils +, gtk3, glib, libgee, libgda, gtksourceview, libxml2, libsecret, libfixposix, libssh2 }: let @@ -20,9 +20,9 @@ in stdenv.mkDerivation rec { sha256 = "0sxmky27pl0aqnh857xb54rnfg1kbr2smdzyrzw67cbv00f6d30p"; }; - nativeBuildInputs = [ meson ninja pkgconfig vala gobject-introspection gettext wrapGAppsHook python3 desktop-file-utils ]; + nativeBuildInputs = [ meson ninja pkgconfig pantheon.vala gobject-introspection gettext wrapGAppsHook python3 desktop-file-utils ]; - buildInputs = [ gtk3 glib granite libgee sqlGda gtksourceview libxml2 libsecret libfixposix libssh2 ]; + buildInputs = [ gtk3 glib pantheon.granite libgee sqlGda gtksourceview libxml2 libsecret libfixposix libssh2 ]; postPatch = '' chmod +x build-aux/meson_post_install.py diff --git a/pkgs/applications/misc/tootle/default.nix b/pkgs/applications/misc/tootle/default.nix index c295a8fdb688..5a856a5f2b28 100644 --- a/pkgs/applications/misc/tootle/default.nix +++ b/pkgs/applications/misc/tootle/default.nix @@ -1,8 +1,7 @@ { stdenv, fetchFromGitHub , meson, ninja, pkgconfig, python3 -, gnome3, vala_0_40, gobject-introspection, wrapGAppsHook -, gtk3, granite -, json-glib, glib, glib-networking, hicolor-icon-theme +, gnome3, pantheon, gobject-introspection, wrapGAppsHook +, gtk3, json-glib, glib, glib-networking, hicolor-icon-theme }: let @@ -24,11 +23,11 @@ in stdenv.mkDerivation rec { ninja pkgconfig python3 - vala_0_40 # should be `elementary.vala` when elementary attribute set is merged + pantheon.vala wrapGAppsHook ]; buildInputs = [ - gtk3 granite json-glib glib glib-networking hicolor-icon-theme + gtk3 pantheon.granite json-glib glib glib-networking hicolor-icon-theme gnome3.libgee gnome3.libsoup gnome3.gsettings-desktop-schemas ]; diff --git a/pkgs/applications/networking/ftp/taxi/default.nix b/pkgs/applications/networking/ftp/taxi/default.nix index bd17e86d8980..9252b95a00c7 100644 --- a/pkgs/applications/networking/ftp/taxi/default.nix +++ b/pkgs/applications/networking/ftp/taxi/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, vala, pkgconfig, meson, ninja, python3, granite +{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, python3 , gtk3, gnome3, libsoup, libsecret, gobject-introspection, wrapGAppsHook }: stdenv.mkDerivation rec { @@ -15,18 +15,18 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ + pantheon.vala gobject-introspection meson ninja pkgconfig python3 - vala wrapGAppsHook ]; buildInputs = [ + pantheon.granite gnome3.libgee - granite gtk3 libsecret libsoup diff --git a/pkgs/applications/networking/transporter/default.nix b/pkgs/applications/networking/transporter/default.nix index c5b329b5f0a0..46649c069111 100644 --- a/pkgs/applications/networking/transporter/default.nix +++ b/pkgs/applications/networking/transporter/default.nix @@ -3,9 +3,9 @@ , meson , ninja , pkgconfig -, granite -, vala_0_40 +, gtk3 , python3 +, pantheon , gnome3 , libxml2 , gettext @@ -31,24 +31,22 @@ in stdenv.mkDerivation rec { nativeBuildInputs = [ appstream-glib desktop-file-utils + pantheon.vala gettext gobject-introspection # For setup hook libxml2 meson ninja pkgconfig - vala_0_40 python3 wrapGAppsHook ]; - buildInputs = with gnome3; [ - defaultIconTheme # If I omit this there's no icons in KDE - glib - granite - gsettings-desktop-schemas + buildInputs = [ + pantheon.elementary-icon-theme + gnome3.libgee + pantheon.granite gtk3 - libgee magic-wormhole ]; @@ -59,8 +57,8 @@ in stdenv.mkDerivation rec { ''; postPatch = '' - chmod +x ./meson/post_install.py - patchShebangs ./meson/post_install.py + chmod +x meson/post_install.py + patchShebangs meson/post_install.py ''; meta = with stdenv.lib; { diff --git a/pkgs/applications/networking/weather/meteo/default.nix b/pkgs/applications/networking/weather/meteo/default.nix index 3dba90f964f5..149e126d6e87 100644 --- a/pkgs/applications/networking/weather/meteo/default.nix +++ b/pkgs/applications/networking/weather/meteo/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitLab, vala, python3, pkgconfig, meson, ninja, granite, gtk3 +{ stdenv, fetchFromGitLab, vala, python3, pkgconfig, meson, ninja, gtk3 , gnome3, json-glib, libsoup, clutter, clutter-gtk, libchamplain, webkitgtk , libappindicator, desktop-file-utils, appstream, gobject-introspection, wrapGAppsHook }: diff --git a/pkgs/applications/office/aesop/default.nix b/pkgs/applications/office/aesop/default.nix index 74a56b1f6caf..51e2c55ea7d0 100644 --- a/pkgs/applications/office/aesop/default.nix +++ b/pkgs/applications/office/aesop/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, fetchpatch, vala_0_40, pkgconfig, meson, ninja, python3, granite, gtk3 +{ stdenv, fetchFromGitHub, fetchpatch, pantheon, pkgconfig, meson, ninja, python3, gtk3 , gnome3, desktop-file-utils, json-glib, libsoup, poppler, gobject-introspection, wrapGAppsHook }: stdenv.mkDerivation rec { @@ -21,14 +21,14 @@ stdenv.mkDerivation rec { ninja pkgconfig python3 - vala_0_40 # should be `elementary.vala` when elementary attribute set is merged + pantheon.vala wrapGAppsHook ]; buildInputs = [ - gnome3.defaultIconTheme # should be `elementary.defaultIconTheme`when elementary attribute set is merged + pantheon.elementary-icon-theme gnome3.libgee - granite + pantheon.granite gtk3 json-glib libsoup diff --git a/pkgs/applications/office/bookworm/default.nix b/pkgs/applications/office/bookworm/default.nix index 04b2072967ab..63199945f2b1 100644 --- a/pkgs/applications/office/bookworm/default.nix +++ b/pkgs/applications/office/bookworm/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, fetchpatch, vala_0_40, python3, python2, pkgconfig, libxml2, meson, ninja, gtk3, granite, gnome3 +{ stdenv, fetchFromGitHub, fetchpatch, pantheon, python3, python2, pkgconfig, libxml2, meson, ninja, gtk3, gnome3, glib, webkitgtk , gobject-introspection, sqlite, poppler, poppler_utils, html2text, curl, gnugrep, coreutils, bash, unzip, unar, wrapGAppsHook }: stdenv.mkDerivation rec { @@ -20,17 +20,17 @@ stdenv.mkDerivation rec { ninja pkgconfig python3 - vala_0_40 # should be `elementary.vala` when elementary attribute set is merged + pantheon.vala wrapGAppsHook ]; - buildInputs = with gnome3; [ + buildInputs = [ + pantheon.elementary-icon-theme + pantheon.granite glib - gnome3.defaultIconTheme # should be `elementary.defaultIconTheme`when elementary attribute set is merged - granite + gnome3.libgee gtk3 html2text - libgee poppler python2 sqlite diff --git a/pkgs/applications/office/spice-up/default.nix b/pkgs/applications/office/spice-up/default.nix index a32ad677c257..c7e39180ae28 100644 --- a/pkgs/applications/office/spice-up/default.nix +++ b/pkgs/applications/office/spice-up/default.nix @@ -4,7 +4,6 @@ , libxml2 , pkgconfig , gtk3 -, granite , gnome3 , gobject-introspection , json-glib @@ -13,7 +12,7 @@ , libgudev , libevdev , libsoup -, vala_0_40 +, pantheon , wrapGAppsHook }: stdenv.mkDerivation rec { @@ -30,19 +29,19 @@ stdenv.mkDerivation rec { USER = "nix-build-user"; nativeBuildInputs = [ - pkgconfig - wrapGAppsHook - vala_0_40 # should be `elementary.vala` when elementary attribute set is merged cmake - ninja gettext - libxml2 gobject-introspection # For setup hook + libxml2 + ninja + pkgconfig + pantheon.vala + wrapGAppsHook ]; buildInputs = [ - gnome3.defaultIconTheme # should be `elementary.defaultIconTheme`when elementary attribute set is merged + pantheon.elementary-icon-theme + pantheon.granite gnome3.libgee - granite gtk3 json-glib libevdev diff --git a/pkgs/applications/science/math/nasc/default.nix b/pkgs/applications/science/math/nasc/default.nix index 4afaa5194db8..fb0ea2067355 100644 --- a/pkgs/applications/science/math/nasc/default.nix +++ b/pkgs/applications/science/math/nasc/default.nix @@ -1,12 +1,10 @@ { stdenv , fetchFromGitHub -, fetchpatch , pkgconfig , gtk3 -, granite +, pantheon , gnome3 , cmake -, vala_0_40 , libqalculate , gobject-introspection , wrapGAppsHook }: @@ -28,19 +26,19 @@ stdenv.mkDerivation rec { ''; nativeBuildInputs = [ - pkgconfig - wrapGAppsHook - vala_0_40 # should be `elementary.vala` when elementary attribute set is merged cmake + pantheon.vala gobject-introspection # for setup-hook + pkgconfig + wrapGAppsHook ]; buildInputs = [ - gnome3.defaultIconTheme # should be `elementary.defaultIconTheme`when elementary attribute set is merged + pantheon.elementary-icon-theme gnome3.gtksourceview gnome3.libgee gnome3.libsoup - granite + pantheon.granite gtk3 libqalculate ]; diff --git a/pkgs/data/icons/faba-icon-theme/default.nix b/pkgs/data/icons/faba-icon-theme/default.nix index 07d2b5ecf02c..c15e0f4e5510 100644 --- a/pkgs/data/icons/faba-icon-theme/default.nix +++ b/pkgs/data/icons/faba-icon-theme/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, meson, ninja, python3, gtk3, elementary-icon-theme }: +{ stdenv, fetchFromGitHub, meson, ninja, python3, gtk3, pantheon }: stdenv.mkDerivation rec { name = "${package-name}-${version}"; @@ -12,7 +12,7 @@ stdenv.mkDerivation rec { sha256 = "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"; }; - nativeBuildInputs = [ meson ninja python3 gtk3 elementary-icon-theme ]; + nativeBuildInputs = [ meson ninja python3 gtk3 pantheon.elementary-icon-theme ]; postPatch = '' patchShebangs meson/post_install.py diff --git a/pkgs/desktops/deepin/deepin-wm/default.nix b/pkgs/desktops/deepin/deepin-wm/default.nix index 4eac01b666ae..ea2f06aae607 100644 --- a/pkgs/desktops/deepin/deepin-wm/default.nix +++ b/pkgs/desktops/deepin/deepin-wm/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchFromGitHub, pkgconfig, intltool, libtool, vala, gnome3, - bamf, clutter-gtk, granite, libcanberra-gtk3, libwnck3, + bamf, clutter-gtk, pantheon, libcanberra-gtk3, libwnck3, deepin-mutter, deepin-wallpapers, deepin-desktop-schemas, hicolor-icon-theme, deepin }: @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { gnome3.libgee bamf clutter-gtk - granite + pantheon.granite libcanberra-gtk3 libwnck3 deepin-mutter diff --git a/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix b/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix new file mode 100644 index 000000000000..c8ade1c9c35e --- /dev/null +++ b/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix @@ -0,0 +1,58 @@ +{ stdenv, fetchFromGitHub, pantheon, pkgconfig +, meson, ninja, vala, desktop-file-utils, libxml2 +, gtk3, python3, granite, libgee, gobject-introspection +, elementary-icon-theme, appstream, wrapGAppsHook }: + +stdenv.mkDerivation rec { + pname = "calculator"; + version = "1.5.1"; + + name = "elementary-${pname}-${version}"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "0vc27kjmfkly2jkqjiyzlybxyjqhwal3xrxca5b4abfgb379yswa"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + attrPath = "elementary-${pname}"; + }; + }; + + nativeBuildInputs = [ + appstream + desktop-file-utils + gobject-introspection + libxml2 + meson + ninja + pkgconfig + python3 + vala + wrapGAppsHook + ]; + + buildInputs = [ + elementary-icon-theme + granite + gtk3 + libgee + ]; + + postPatch = '' + chmod +x meson/post_install.py + patchShebangs meson/post_install.py + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/elementary/calculator; + description = "Calculator app designed for elementary OS"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix b/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix new file mode 100644 index 000000000000..28983db7f916 --- /dev/null +++ b/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix @@ -0,0 +1,66 @@ +{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson +, ninja, vala, desktop-file-utils, gtk3, granite, libgee +, geoclue2, libchamplain, clutter, folks, geocode-glib, python3 +, libnotify, libical, evolution-data-server, appstream-glib +, elementary-icon-theme, gobject-introspection, wrapGAppsHook }: + +stdenv.mkDerivation rec { + pname = "calendar"; + version = "4.2.3"; + + name = "elementary-${pname}-${version}"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "100wy8lkp4nrxj57ywyx44ckm3k7n8h5l6av92hr5pyx8fxn9m48"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + attrPath = "elementary-${pname}"; + }; + }; + + nativeBuildInputs = [ + appstream-glib + desktop-file-utils + gobject-introspection + meson + ninja + pkgconfig + python3 + vala + wrapGAppsHook + ]; + + buildInputs = [ + clutter + elementary-icon-theme + evolution-data-server + folks + geoclue2 + geocode-glib + granite + gtk3 + libchamplain + libgee + libical + libnotify + ]; + + postPatch = '' + chmod +x meson/post_install.py + patchShebangs meson/post_install.py + ''; + + meta = with stdenv.lib; { + description = "Desktop calendar app designed for elementary OS"; + homepage = https://github.com/elementary/calendar; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/apps/elementary-camera/default.nix b/pkgs/desktops/pantheon/apps/elementary-camera/default.nix new file mode 100644 index 000000000000..2e90a96411a3 --- /dev/null +++ b/pkgs/desktops/pantheon/apps/elementary-camera/default.nix @@ -0,0 +1,64 @@ +{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, vala +, desktop-file-utils, python3, gettext, libxml2, gtk3, granite, libgee, gst_all_1 +, libcanberra, clutter-gtk, clutter-gst, elementary-icon-theme, appstream, wrapGAppsHook }: + +stdenv.mkDerivation rec { + pname = "camera"; + version = "1.0.3"; + + name = "elementary-${pname}-${version}"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "05rjymflhwbkw8yc57rgi9n7lrhf4dpvfvlifdnazyqn9iiaxc46"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + attrPath = "elementary-${pname}"; + }; + }; + + nativeBuildInputs = [ + appstream + desktop-file-utils + gettext + libxml2 + meson + ninja + pkgconfig + python3 + vala + wrapGAppsHook + ]; + + buildInputs = [ + clutter-gst + clutter-gtk + elementary-icon-theme + granite + gst_all_1.gst-plugins-bad + gst_all_1.gst-plugins-base + gst_all_1.gst-plugins-good + gst_all_1.gstreamer + gtk3 + libcanberra + libgee + ]; + + postPatch = '' + chmod +x meson/post_install.py + patchShebangs meson/post_install.py + ''; + + meta = with stdenv.lib; { + description = "Camera app designed for elementary OS"; + homepage = https://github.com/elementary/camera; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/apps/elementary-code/default.nix b/pkgs/desktops/pantheon/apps/elementary-code/default.nix new file mode 100644 index 000000000000..0b16c56be3de --- /dev/null +++ b/pkgs/desktops/pantheon/apps/elementary-code/default.nix @@ -0,0 +1,80 @@ +{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, vala, substituteAll +, python3, glibcLocales, desktop-file-utils, gtk3, granite, libgee, elementary-icon-theme +, appstream, libpeas, editorconfig-core-c, gtksourceview3, gtkspell3, libsoup +, vte, webkitgtk, zeitgeist, ctags, libgit2-glib, wrapGAppsHook }: + +stdenv.mkDerivation rec { + pname = "code"; + version = "3.0.2"; + + name = "elementary-${pname}-${version}"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "0zmm4a7galrs9phiplf6cygwq3rplghv7r8g47mi4nlndgxqyssg"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + attrPath = "elementary-${pname}"; + }; + }; + + nativeBuildInputs = [ + appstream + desktop-file-utils + glibcLocales + meson + ninja + pkgconfig + python3 + vala + wrapGAppsHook + ]; + + buildInputs = [ + ctags + elementary-icon-theme + editorconfig-core-c + granite + gtk3 + gtksourceview3 + gtkspell3 + libgee + libgit2-glib + libpeas + libsoup + vte + webkitgtk + zeitgeist + ]; + + # See: https://github.com/elementary/code/pull/626 + LIBRARY_PATH = stdenv.lib.makeLibraryPath [ editorconfig-core-c ]; + + # install script fails with UnicodeDecodeError because of printing a fancy elipsis character + LC_ALL = "en_US.UTF-8"; + + # ctags needed in path by outline plugin + preFixup = '' + gappsWrapperArgs+=( + --prefix PATH : "${stdenv.lib.makeBinPath [ ctags ]}" + ) + ''; + + postPatch = '' + chmod +x meson/post_install.py + patchShebangs meson/post_install.py + ''; + + meta = with stdenv.lib; { + description = "Code editor designed for elementary OS"; + homepage = https://github.com/elementary/code; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/apps/elementary-files/default.nix b/pkgs/desktops/pantheon/apps/elementary-files/default.nix new file mode 100644 index 000000000000..947ba6c32f6a --- /dev/null +++ b/pkgs/desktops/pantheon/apps/elementary-files/default.nix @@ -0,0 +1,77 @@ +{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, gettext, vala +, python3, desktop-file-utils, intltool, libcanberra, gtk3, libgee, granite +, libnotify, libunity, pango, plank, bamf, sqlite, libdbusmenu-gtk3, zeitgeist +, glib-networking, elementary-icon-theme, gobject-introspection, wrapGAppsHook }: + +stdenv.mkDerivation rec { + pname = "files"; + version = "4.1.3"; + + name = "elementary-${pname}-${version}"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "0vz6m6kqm9r1scj1jdljbzh019skj8fhf916011wkdfzdpc1zlac"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + attrPath = "elementary-${pname}"; + }; + }; + + nativeBuildInputs = [ + desktop-file-utils + gettext + glib-networking + gobject-introspection + intltool + meson + ninja + pkgconfig + python3 + vala + wrapGAppsHook + ]; + + buildInputs = [ + bamf + elementary-icon-theme + granite + gtk3 + libcanberra + libdbusmenu-gtk3 + libgee + libnotify + libunity + pango + plank + sqlite + zeitgeist + ]; + + patches = [ ./hardcode-gsettings.patch ]; + + postPatch = '' + chmod +x meson/post_install.py + patchShebangs meson/post_install.py + + substituteInPlace filechooser-module/FileChooserDialog.vala --subst-var-by ELEMENTARY_FILES_GSETTINGS_PATH $out/share/gsettings-schemas/${name}/glib-2.0/schemas + ''; + + # xdg.mime will create this + postInstall = '' + rm $out/share/applications/mimeinfo.cache + ''; + + meta = with stdenv.lib; { + description = "File browser designed for elementary OS"; + homepage = https://github.com/elementary/files; + license = licenses.lgpl3; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/apps/elementary-files/hardcode-gsettings.patch b/pkgs/desktops/pantheon/apps/elementary-files/hardcode-gsettings.patch new file mode 100644 index 000000000000..3191f4e3cb2b --- /dev/null +++ b/pkgs/desktops/pantheon/apps/elementary-files/hardcode-gsettings.patch @@ -0,0 +1,22 @@ +diff --git a/filechooser-module/FileChooserDialog.vala b/filechooser-module/FileChooserDialog.vala +index cb7c3c49..8b1899d1 100644 +--- a/filechooser-module/FileChooserDialog.vala ++++ b/filechooser-module/FileChooserDialog.vala +@@ -57,10 +57,15 @@ public class CustomFileChooserDialog : Object { + chooser_dialog.deletable = false; + chooser_dialog.local_only = false; + +- var settings = new Settings ("io.elementary.files.preferences"); ++ SettingsSchemaSource sss = new SettingsSchemaSource.from_directory ("@ELEMENTARY_FILES_GSETTINGS_PATH@", SettingsSchemaSource.get_default (), true); ++ SettingsSchema preferences_schema = sss.lookup ("io.elementary.files.preferences", false); ++ SettingsSchema chooser_schema = sss.lookup ("io.elementary.files.file-chooser", false); ++ ++ var settings = new Settings.full (preferences_schema, null, null); ++ + is_single_click = settings.get_boolean ("single-click"); + +- var chooser_settings = new Settings ("io.elementary.files.file-chooser"); ++ var chooser_settings = new Settings.full (chooser_schema, null, null); + + assign_container_box (); + remove_gtk_widgets (); diff --git a/pkgs/desktops/pantheon/apps/elementary-music/default.nix b/pkgs/desktops/pantheon/apps/elementary-music/default.nix new file mode 100644 index 000000000000..8bca7b3b6b50 --- /dev/null +++ b/pkgs/desktops/pantheon/apps/elementary-music/default.nix @@ -0,0 +1,78 @@ +{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson +, ninja, vala, desktop-file-utils, libxml2, gtk3, granite +, python3, libgee, clutter-gtk, json-glib, libgda, libgpod +, libnotify, libpeas, libsoup, zeitgeist, gst_all_1, taglib +, libdbusmenu, libsignon-glib, libaccounts-glib +, elementary-icon-theme, wrapGAppsHook }: + +stdenv.mkDerivation rec { + pname = "music"; + version = "5.0.2"; + + name = "elementary-${pname}-${version}"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "06mpikzdm01r9j7g15b7fgi4lcnp8cc0wmj17dfli5nmncxghx89"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + attrPath = "elementary-${pname}"; + }; + }; + + nativeBuildInputs = [ + desktop-file-utils + meson + ninja + pkgconfig + python3 + vala + wrapGAppsHook + ]; + + buildInputs = with gst_all_1; [ + clutter-gtk + elementary-icon-theme + granite + gst-plugins-bad + gst-plugins-base + gst-plugins-good + gst-plugins-ugly + gstreamer + gtk3 + json-glib + libaccounts-glib + libdbusmenu + libgda + libgee + libgpod + libsignon-glib + libnotify + libpeas + libsoup + taglib + zeitgeist + ]; + + mesonFlags = [ + "-Dplugins=lastfm,audioplayer,cdrom,ipod" + ]; + + postPatch = '' + chmod +x meson/post_install.py + patchShebangs meson/post_install.py + ''; + + meta = with stdenv.lib; { + description = "Music player and library designed for elementary OS"; + homepage = https://github.com/elementary/music; + license = licenses.lgpl2Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/apps/elementary-photos/default.nix b/pkgs/desktops/pantheon/apps/elementary-photos/default.nix new file mode 100644 index 000000000000..055889fd6d1b --- /dev/null +++ b/pkgs/desktops/pantheon/apps/elementary-photos/default.nix @@ -0,0 +1,80 @@ +{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig, vala, desktop-file-utils +, gtk3, glib, libaccounts-glib, libexif, libgee, geocode-glib, gexiv2,libgphoto2 +, granite, gst_all_1, libgudev, json-glib, libraw, librest, libsoup, sqlite +, scour, webkitgtk, libwebp, appstream, libunity, wrapGAppsHook, gobject-introspection, elementary-icon-theme }: + +stdenv.mkDerivation rec { + pname = "photos"; + version = "2.6.1"; + + name = "elementary-${pname}-${version}"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "063h6jr0p8v46w8bppsss1zlphx21xqwylh57qbyd5xi71z4gl1v"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + attrPath = "elementary-${pname}"; + }; + }; + + nativeBuildInputs = [ + appstream + desktop-file-utils + gobject-introspection + meson + ninja + pkgconfig + vala + wrapGAppsHook + ]; + + buildInputs = with gst_all_1; [ + elementary-icon-theme + geocode-glib + gexiv2 + granite + gst-plugins-bad + gst-plugins-base + gst-plugins-good + gst-plugins-ugly + gstreamer + gtk3 + json-glib + libaccounts-glib + libexif + libgee + libgphoto2 + libgudev + libraw + libsoup + libunity + libwebp + librest + scour + sqlite + webkitgtk + ]; + + mesonFlags = [ + "-Dplugins=false" + ]; + + # This should be provided by a post_install.py script - See -> https://github.com/elementary/photos/pull/433 + postInstall = '' + ${glib.dev}/bin/glib-compile-schemas $out/share/glib-2.0/schemas + ''; + + meta = with stdenv.lib; { + description = "Photo viewer and organizer designed for elementary OS"; + homepage = https://github.com/elementary/photos; + license = licenses.lgpl21Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix b/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix new file mode 100644 index 000000000000..b00d0e3997ab --- /dev/null +++ b/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix @@ -0,0 +1,67 @@ +{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, callPackage +, ninja, vala, python3, desktop-file-utils, gtk3, granite, libgee +, libcanberra, gobject-introspection, elementary-icon-theme, wrapGAppsHook }: + +let + + redacted-script = callPackage ./redacted-script.nix {}; + +in + +stdenv.mkDerivation rec { + pname = "screenshot-tool"; # This will be renamed to "screenshot" soon. See -> https://github.com/elementary/screenshot/pull/93 + version = "1.6.0"; + + name = "elementary-${pname}-${version}"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = "screenshot"; + rev = version; + sha256 = "0hxgh7br12kw8bs2cdm2q9ivhnj2zb0i7fs43pkgf3z0fidjf1yv"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = "screenshot"; + attrPath = "elementary-${pname}"; + }; + }; + + nativeBuildInputs = [ + desktop-file-utils + gobject-introspection + meson + ninja + pkgconfig + python3 + vala + wrapGAppsHook + ]; + + buildInputs = [ + elementary-icon-theme + granite + gtk3 + libcanberra + libgee + ]; + + postPatch = '' + chmod +x meson/post_install.py + patchShebangs meson/post_install.py + ''; + + postInstall = '' + mkdir -p $out/share/fonts/truetype + cp -rva ${redacted-script}/share/fonts/truetype/redacted-elementary $out/share/fonts/truetype + ''; + + meta = with stdenv.lib; { + description = "Screenshot tool designed for elementary OS"; + homepage = https://github.com/elementary/screenshot; + license = licenses.lgpl3; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/redacted-script.nix b/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/redacted-script.nix new file mode 100644 index 000000000000..db1d9d240c40 --- /dev/null +++ b/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/redacted-script.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchFromGitHub, pantheon }: + +stdenv.mkDerivation rec { + name = "elementary-redacted-script-${version}"; + version = "5.1.0"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = "fonts"; + rev = version; + sha256 = "16x2w7w29k4jx2nwc5932h9rqvb216vxsziazisv2rpll74kn8b2"; + }; + + dontConfigure = true; + + installPhase = '' + mkdir -p $out/share/fonts/truetype/redacted-elementary + cp -a redacted/*.ttf $out/share/fonts/truetype/redacted-elementary + ''; + + meta = with stdenv.lib; { + description = "Redacted Script Font for elementary"; + homepage = https://github.com/elementary/fonts; + license = licenses.ofl; + maintainers = pantheon.maintainers; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix b/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix new file mode 100644 index 000000000000..01fe35e4a8ee --- /dev/null +++ b/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix @@ -0,0 +1,66 @@ +{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, python3 +, vala, desktop-file-utils, gtk3, libxml2, granite, libnotify, vte, libgee +, elementary-icon-theme, appstream, gobject-introspection, wrapGAppsHook }: + +stdenv.mkDerivation rec { + pname = "terminal"; + version = "5.3.3"; + + name = "elementary-${pname}-${version}"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "1rhqfq5dn913g551ribycid4k8add2lanxkkqpv6zzdgvah26ni8"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + attrPath = "elementary-${pname}"; + }; + }; + + nativeBuildInputs = [ + appstream + desktop-file-utils + gobject-introspection + libxml2 + meson + ninja + pkgconfig + python3 + vala + wrapGAppsHook + ]; + + buildInputs = [ + elementary-icon-theme + granite + gtk3 + libgee + libnotify + vte + ]; + + # See https://github.com/elementary/terminal/commit/914d4b0e2d0a137f12276d748ae07072b95eff80 + mesonFlags = [ "-Dubuntu-bionic-patched-vte=false" ]; + + postPatch = '' + chmod +x meson/post_install.py + patchShebangs meson/post_install.py + ''; + + meta = with stdenv.lib; { + description = "Terminal emulator designed for elementary OS"; + longDescription = '' + A super lightweight, beautiful, and simple terminal. Comes with sane defaults, browser-class tabs, sudo paste protection, + smart copy/paste, and little to no configuration. + ''; + homepage = https://github.com/elementary/terminal; + license = licenses.lgpl3; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/apps/elementary-videos/default.nix b/pkgs/desktops/pantheon/apps/elementary-videos/default.nix new file mode 100644 index 000000000000..a07667cd6257 --- /dev/null +++ b/pkgs/desktops/pantheon/apps/elementary-videos/default.nix @@ -0,0 +1,64 @@ +{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, vala, python3 +, desktop-file-utils, gtk3, granite, libgee, clutter-gst, clutter-gtk, gst_all_1 +, gobject-introspection, elementary-icon-theme, wrapGAppsHook, gst-ffmpeg }: + +stdenv.mkDerivation rec { + pname = "videos"; + version = "2.6.3"; + + name = "elementary-${pname}-${version}"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "1ncm8kh6dcy83p8pmpilnk03b4dx3b1jm8w13izq2dkglfgdwvqx"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + attrPath = "elementary-${pname}"; + }; + }; + + nativeBuildInputs = [ + desktop-file-utils + gobject-introspection + meson + ninja + pkgconfig + python3 + vala + wrapGAppsHook + ]; + + buildInputs = with gst_all_1; [ + clutter-gst + clutter-gtk + elementary-icon-theme + granite + gst-ffmpeg + gst-libav + gst-plugins-bad + gst-plugins-base + gst-plugins-good + gst-plugins-ugly + gstreamer + gtk3 + libgee + ]; + + postPatch = '' + chmod +x meson/post_install.py + patchShebangs meson/post_install.py + ''; + + meta = with stdenv.lib; { + description = "Video player and library app designed for elementary OS"; + homepage = https://github.com/elementary/videos; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix new file mode 100644 index 000000000000..2ee925209838 --- /dev/null +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix @@ -0,0 +1,45 @@ +{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig +, vala, libgee, granite, gtk3, switchboard, gobject-introspection }: + +stdenv.mkDerivation rec { + pname = "switchboard-plug-a11y"; + version = "2.1.3"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "1wh46lrsliii5bbvfc4xnzgnii2v7sqxnbn43ylmyqppfv9mk1wd"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + }; + }; + + nativeBuildInputs = [ + gobject-introspection + meson + ninja + pkgconfig + vala + ]; + + buildInputs = [ + granite + gtk3 + libgee + switchboard + ]; + + PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard"; + + meta = with stdenv.lib; { + description = "Switchboard Universal Access Plug"; + homepage = https://github.com/elementary/switchboard-plug-a11y; + license = licenses.lgpl3Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix new file mode 100644 index 000000000000..bdba8328fe93 --- /dev/null +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix @@ -0,0 +1,54 @@ +{ stdenv, fetchFromGitHub, pantheon, substituteAll, meson, ninja, pkgconfig +, vala, libgee, granite, gtk3, switchboard, pciutils, gobject-introspection }: + +stdenv.mkDerivation rec { + pname = "switchboard-plug-about"; + version = "2.5.2"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "11diwz2aj45yqkxdija8ny0sgm0wl2905gl3799cdl12ss9ffndp"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + }; + }; + + nativeBuildInputs = [ + gobject-introspection + meson + ninja + pkgconfig + vala + ]; + + buildInputs = [ + granite + gtk3 + libgee + switchboard + ]; + + patches = [ + (substituteAll { + src = ./lspci-path.patch; + inherit pciutils; + }) + ./remove-update-button.patch + ]; + + PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard"; + + meta = with stdenv.lib; { + description = "Switchboard About Plug"; + homepage = https://github.com/elementary/witchboard-plug-about; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; + +} diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/about/lspci-path.patch b/pkgs/desktops/pantheon/apps/switchboard-plugs/about/lspci-path.patch new file mode 100644 index 000000000000..352d84c42624 --- /dev/null +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/about/lspci-path.patch @@ -0,0 +1,13 @@ +diff --git a/src/Views/HardwareView.vala b/src/Views/HardwareView.vala +index a3e449c..a95fe93 100644 +--- a/src/Views/HardwareView.vala ++++ b/src/Views/HardwareView.vala +@@ -179,7 +179,7 @@ public class About.HardwareView : Gtk.Grid { + + // Graphics + try { +- Process.spawn_command_line_sync ("lspci", out graphics); ++ Process.spawn_command_line_sync ("@pciutils@/bin/lspci", out graphics); + + if ("VGA" in graphics) { //VGA-keyword indicates graphics-line + string[] lines = graphics.split("\n"); diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/about/remove-update-button.patch b/pkgs/desktops/pantheon/apps/switchboard-plugs/about/remove-update-button.patch new file mode 100644 index 000000000000..41433f9a76b0 --- /dev/null +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/about/remove-update-button.patch @@ -0,0 +1,55 @@ +diff --git a/src/Plug.vala b/src/Plug.vala +index 76fca34..3e79c1f 100644 +--- a/src/Plug.vala ++++ b/src/Plug.vala +@@ -65,7 +65,6 @@ public class About.Plug : Switchboard.Plug { + search_results.set ("%s → %s".printf (display_name, _("Restore Default Settings")), ""); + search_results.set ("%s → %s".printf (display_name, _("Suggest Translation")), ""); + search_results.set ("%s → %s".printf (display_name, _("Report Problems")), ""); +- search_results.set ("%s → %s".printf (display_name, _("Updates")), ""); + return search_results; + } + +@@ -161,7 +160,7 @@ public class About.Plug : Switchboard.Plug { + var kernel_version_label = new Gtk.Label (kernel_version); + kernel_version_label.set_selectable (true); + +- var gtk_version_label = new Gtk.Label (_("GTK+ %s").printf (gtk_version)); ++ var gtk_version_label = new Gtk.Label (_("GTK+ %s").printf (gtk_version)); + gtk_version_label.set_selectable (true); + + var website_label = new Gtk.LinkButton.with_label (website_url, _("Website")); +@@ -202,16 +201,6 @@ public class About.Plug : Switchboard.Plug { + issue_dialog.run (); + }); + +- // Update button +- var update_button = new Gtk.Button.with_label (_("Check for Updates")); +- update_button.clicked.connect (() => { +- try { +- Process.spawn_command_line_async ("io.elementary.appcenter --show-updates"); +- } catch (Error e) { +- warning (e.message); +- } +- }); +- + // Restore settings button + var settings_restore_button = new Gtk.Button.with_label (_("Restore Default Settings")); + settings_restore_button.clicked.connect (settings_restore_clicked); +@@ -224,7 +213,6 @@ public class About.Plug : Switchboard.Plug { + button_grid.add (settings_restore_button); + button_grid.add (translate_button); + button_grid.add (bug_button); +- button_grid.add (update_button); + button_grid.set_child_non_homogeneous (help_button, true); + + var software_grid = new Gtk.Grid (); +@@ -238,7 +226,7 @@ public class About.Plug : Switchboard.Plug { + software_grid.attach (based_off, 0, 2, 2, 1); + } + +- software_grid.attach (kernel_version_label, 0, 3, 2, 1); ++ software_grid.attach (kernel_version_label, 0, 3, 2, 1); + software_grid.attach (gtk_version_label, 0, 4, 2, 1); + software_grid.attach (website_label, 0, 5, 2, 1); + diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix new file mode 100644 index 000000000000..382700cc583b --- /dev/null +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix @@ -0,0 +1,45 @@ +{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig +, vala, libgee, granite, gtk3, switchboard, gobject-introspection }: + +stdenv.mkDerivation rec { + pname = "switchboard-plug-applications"; + version = "2.1.4"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "1gi8jwjh9ga7h92ffl43r0rnlnl5649pqzpk7q1ffhhyqzwh8l63"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + }; + }; + + nativeBuildInputs = [ + gobject-introspection + meson + ninja + pkgconfig + vala + ]; + + buildInputs = [ + granite + gtk3 + libgee + switchboard + ]; + + PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard"; + + meta = with stdenv.lib; { + description = "Switchboard Applications Plug"; + homepage = https://github.com/elementary/switchboard-plug-applications; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix new file mode 100644 index 000000000000..fc6f566b353c --- /dev/null +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix @@ -0,0 +1,47 @@ +{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig, vala, libgee +, granite, gtk3, bluez, switchboard, gobject-introspection }: + +stdenv.mkDerivation rec { + pname = "switchboard-plug-bluetooth"; + version = "2.2.0"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "1aynzns0xw629drv9qvci37ba0fzyd5x9y8kwjqr527rnk0qiyca"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + }; + }; + + nativeBuildInputs = [ + gobject-introspection + meson + ninja + pkgconfig + vala + ]; + + buildInputs = [ + bluez + granite + gtk3 + libgee + switchboard + ]; + + PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard"; + + meta = with stdenv.lib; { + description = "Switchboard Bluetooth Plug"; + homepage = https://github.com/elementary/switchboard-plug-bluetooth; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; + +} diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/clock-format.patch b/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/clock-format.patch new file mode 100644 index 000000000000..0fe0ac8b10c8 --- /dev/null +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/clock-format.patch @@ -0,0 +1,12 @@ +diff --git a/src/DateTime1.vala b/src/DateTime1.vala +index 5a80fbd..2e1f948 100644 +--- a/src/DateTime1.vala ++++ b/src/DateTime1.vala +@@ -38,6 +38,6 @@ public class DateTime.Settings : Granite.Services.Settings { + public string clock_format { get; set; } + + public Settings () { +- base ("io.elementary.desktop.wingpanel.datetime"); ++ base ("io.elementary.granite"); + } + } diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix new file mode 100644 index 000000000000..95a350372b95 --- /dev/null +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix @@ -0,0 +1,55 @@ +{ stdenv, fetchFromGitHub, pantheon, meson, ninja, substituteAll, pkgconfig +, vala, libgee, granite, gtk3, libxml2, switchboard, tzdata, gobject-introspection }: + +stdenv.mkDerivation rec { + pname = "switchboard-plug-datetime"; + version = "2.1.5"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "1iz8skf5dw76a07ljc8v8lw2x2nrmq8j6sggm227cmxy60gadsdv"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + }; + }; + + nativeBuildInputs = [ + gobject-introspection + libxml2 + meson + ninja + pkgconfig + vala + ]; + + buildInputs = [ + granite + gtk3 + libgee + switchboard + ]; + + patches = [ + (substituteAll { + src = ./timezone.patch; + tzdata = "${tzdata}/share/zoneinfo/zone.tab"; + }) + # Use "clock-format" GSettings key that's been moved to granite + ./clock-format.patch + ]; + + PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard"; + + meta = with stdenv.lib; { + description = "Switchboard Date & Time Plug"; + homepage = https://github.com/elementary/switchboard-plug-datetime; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/timezone.patch b/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/timezone.patch new file mode 100644 index 000000000000..35f73d365990 --- /dev/null +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/timezone.patch @@ -0,0 +1,13 @@ +diff --git a/src/Parser.vala b/src/Parser.vala +index faccb64..432a362 100644 +--- a/src/Parser.vala ++++ b/src/Parser.vala +@@ -28,7 +28,7 @@ public class DateTime.Parser : GLib.Object { + return parser; + } + private Parser () { +- var file = File.new_for_path ("/usr/share/zoneinfo/zone.tab"); ++ var file = File.new_for_path ("@tzdata@"); + if (!file.query_exists ()) { + critical ("/usr/share/zoneinfo/zone.tab doesn't exist !"); + return; diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix new file mode 100644 index 000000000000..192f8a69ae97 --- /dev/null +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix @@ -0,0 +1,45 @@ +{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig +, vala, libgee, granite, gtk3, switchboard, gobject-introspection }: + +stdenv.mkDerivation rec { + pname = "switchboard-plug-display"; + version = "2.1.6"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "0pw21bnc79shiynmg7h9bs1x1v011lh07ypn22j73yhmxp6wiypd"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + }; + }; + + nativeBuildInputs = [ + gobject-introspection + meson + ninja + pkgconfig + vala + ]; + + buildInputs = [ + granite + gtk3 + libgee + switchboard + ]; + + PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard"; + + meta = with stdenv.lib; { + description = "Switchboard Displays Plug"; + homepage = https://github.com/elementary/switchboard-plug-display; + license = licenses.lgpl2Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix new file mode 100644 index 000000000000..f38f15e3c6d2 --- /dev/null +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix @@ -0,0 +1,57 @@ +{ stdenv, fetchFromGitHub, pantheon, substituteAll, meson, ninja, pkgconfig, vala, libgee +, granite, gtk3, libxml2, libgnomekbd, libxklavier, xorg, switchboard, gobject-introspection }: + +stdenv.mkDerivation rec { + pname = "switchboard-plug-keyboard"; + version = "2.3.4"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "1997hnhlcp2jmf3z70na42vl1b7i5vxhp7k5ga5sl68dv0g4126y"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + }; + }; + + nativeBuildInputs = [ + gobject-introspection + libxml2 + meson + ninja + pkgconfig + vala + ]; + + buildInputs = [ + granite + gtk3 + libgee + libgnomekbd + libxklavier + switchboard + ]; + + patches = [ + (substituteAll { + src = ./xkb.patch; + config = "${xorg.xkeyboardconfig}/share/X11/xkb/rules/evdev.xml"; + }) + ]; + + LIBRARY_PATH = stdenv.lib.makeLibraryPath [ libgnomekbd ]; + + PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard"; + + meta = with stdenv.lib; { + description = "Switchboard Keyboard Plug"; + homepage = https://github.com/elementary/switchboard-plug-keyboard; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/xkb.patch b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/xkb.patch new file mode 100644 index 000000000000..33237d9c9392 --- /dev/null +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/xkb.patch @@ -0,0 +1,22 @@ +diff --git a/src/Layout/Handler.vala b/src/Layout/Handler.vala +index 297314b..b36509a 100644 +--- a/src/Layout/Handler.vala ++++ b/src/Layout/Handler.vala +@@ -29,7 +29,7 @@ public class Pantheon.Keyboard.LayoutPage.LayoutHandler : GLib.Object { + } + + private void parse_layouts () { +- Xml.Doc* doc = Xml.Parser.parse_file ("/usr/share/X11/xkb/rules/evdev.xml"); ++ Xml.Doc* doc = Xml.Parser.parse_file ("@config@"); + if (doc == null) { + critical ("'evdev.xml' not found or permissions missing\n"); + return; +@@ -76,7 +76,7 @@ public class Pantheon.Keyboard.LayoutPage.LayoutHandler : GLib.Object { + public HashTable get_variants_for_language (string language) { + var returned_table = new HashTable (str_hash, str_equal); + returned_table.set ("", _("Default")); +- Xml.Doc* doc = Xml.Parser.parse_file ("/usr/share/X11/xkb/rules/evdev.xml"); ++ Xml.Doc* doc = Xml.Parser.parse_file ("@config@"); + if (doc == null) { + critical ("'evdev.xml' not found or permissions incorrect\n"); + return returned_table; diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix new file mode 100644 index 000000000000..6c4bdeb7fb71 --- /dev/null +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix @@ -0,0 +1,45 @@ +{ stdenv, fetchFromGitHub, pantheon, fetchpatch, meson, ninja +, pkgconfig, vala, libgee, granite, gtk3, switchboard, gobject-introspection }: + +stdenv.mkDerivation rec { + pname = "switchboard-plug-mouse-touchpad"; + version = "2.1.4"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "1zh5472ab01bckrc1py5bqqsal9i9pbgx6i8ap2d4yzhc8sirjrf"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + }; + }; + + nativeBuildInputs = [ + gobject-introspection + meson + ninja + pkgconfig + vala + ]; + + buildInputs = [ + granite + gtk3 + libgee + switchboard + ]; + + PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard"; + + meta = with stdenv.lib; { + description = "Switchboard Mouse & Touchpad Plug"; + homepage = https://github.com/elementary/switchboard-plug-mouse-touchpad; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix new file mode 100644 index 000000000000..3943cad48fd3 --- /dev/null +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix @@ -0,0 +1,55 @@ +{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig, substituteAll, vala +, libgee, granite, gtk3, networkmanager, networkmanagerapplet, switchboard, gobject-introspection }: + +stdenv.mkDerivation rec { + pname = "switchboard-plug-network"; + version = "2.1.4"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "12lvcc15jngzsa40fjhxa6kccs58h5qq4lqrc7lcx5przmfaik8k"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + }; + }; + + nativeBuildInputs = [ + gobject-introspection + meson + ninja + pkgconfig + vala + ]; + + buildInputs = [ + granite + gtk3 + libgee + networkmanager + networkmanagerapplet + switchboard + ]; + + patches = [ + (substituteAll { + src = ./nma.patch; + networkmanagerapplet = "${networkmanagerapplet}"; + }) + ]; + + + PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard"; + + meta = with stdenv.lib; { + description = "Switchboard Networking Plug"; + homepage = https://github.com/elementary/switchboard-plug-network; + license = licenses.lgpl21Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/network/nma.patch b/pkgs/desktops/pantheon/apps/switchboard-plugs/network/nma.patch new file mode 100644 index 000000000000..a5fff9d6a32b --- /dev/null +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/network/nma.patch @@ -0,0 +1,43 @@ +diff --git a/src/Widgets/SettingsButton.vala b/src/Widgets/SettingsButton.vala +index 19fd514..bc800d9 100644 +--- a/src/Widgets/SettingsButton.vala ++++ b/src/Widgets/SettingsButton.vala +@@ -23,7 +23,7 @@ + label = _("Edit Connections…"); + clicked.connect (() => { + try { +- var appinfo = AppInfo.create_from_commandline ("nm-connection-editor", null, AppInfoCreateFlags.NONE); ++ var appinfo = AppInfo.create_from_commandline ("@networkmanagerapplet@/bin/nm-connection-editor", null, AppInfoCreateFlags.NONE); + appinfo.launch (null, null); + } catch (Error e) { + warning ("%s", e.message); +@@ -61,13 +61,13 @@ + label = title; + clicked.connect (() => { + edit_connection_uuid (connection.get_uuid ()); +- }); ++ }); + } + + private void edit_connection_uuid (string uuid) { + try { + var appinfo = AppInfo.create_from_commandline ( +- "nm-connection-editor --edit=%s".printf (uuid), null, AppInfoCreateFlags.NONE ++ "@networkmanagerapplet@/bin/nm-connection-editor --edit=%s".printf (uuid), null, AppInfoCreateFlags.NONE + ); + + appinfo.launch (null, null); +diff --git a/src/Widgets/VPN/VPNPage.vala b/src/Widgets/VPN/VPNPage.vala +index 23c3ae9..c71984c 100644 +--- a/src/Widgets/VPN/VPNPage.vala ++++ b/src/Widgets/VPN/VPNPage.vala +@@ -86,8 +86,7 @@ namespace Network { + add_button.tooltip_text = _("Add VPN Connection…"); + add_button.clicked.connect (() => { + add_button.sensitive = false; +- var command = new Granite.Services.SimpleCommand ("/usr/bin", +- "nm-connection-editor --create --type=vpn"); ++ var command = new Granite.Services.SimpleCommand ("@networkmanagerapplet@", "bin/nm-connection-editor --create --type=vpn"); + command.done.connect ((exit) => { + if (exit != 0) { + var dialog = new Gtk.MessageDialog (null, Gtk.DialogFlags.MODAL, Gtk.MessageType.ERROR, Gtk.ButtonsType.CLOSE, "%s", _("Failed to run Connection Editor.")); diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix new file mode 100644 index 000000000000..6bb5d285a34f --- /dev/null +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix @@ -0,0 +1,45 @@ +{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig +, vala, libgee, granite, gtk3, switchboard, gobject-introspection }: + +stdenv.mkDerivation rec { + pname = "switchboard-plug-notifications"; + version = "2.1.5"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "0p0aj3bbjrh6x8wajqqb5yqm2iqfnj7kp16zf4hdr4siw0sx5p8n"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + }; + }; + + nativeBuildInputs = [ + gobject-introspection + meson + ninja + pkgconfig + vala + ]; + + buildInputs = [ + granite + gtk3 + libgee + switchboard + ]; + + PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard"; + + meta = with stdenv.lib; { + description = "Switchboard Notifications Plug"; + homepage = https://github.com/elementary/switchboard-plug-notifications; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix new file mode 100644 index 000000000000..0417d33df7d7 --- /dev/null +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix @@ -0,0 +1,56 @@ +{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig, vala +, libgee, granite, gtk3, libaccounts-glib, libsignon-glib, json-glib +, librest, webkitgtk, libsoup, switchboard, gobject-introspection }: + +stdenv.mkDerivation rec { + pname = "switchboard-plug-onlineaccounts"; + version = "2.0.1"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "03h8ii8zz59fpp4fwlvyx3m3550096fn7a6w612b1rbj3dqhlmh9"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + }; + }; + + nativeBuildInputs = [ + gobject-introspection + meson + ninja + pkgconfig + vala + ]; + + buildInputs = [ + granite + gtk3 + json-glib + libaccounts-glib + libgee + libsignon-glib + libsoup + librest + switchboard + webkitgtk + ]; + + PKG_CONFIG_LIBACCOUNTS_GLIB_PROVIDERFILESDIR = "${placeholder "out"}/share/accounts/providers"; + PKG_CONFIG_LIBACCOUNTS_GLIB_SERVICEFILESDIR = "${placeholder "out"}/share/accounts/services"; + PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder "out"}/lib/switchboard"; + + + meta = with stdenv.lib; { + description = "Switchboard Online Accounts Plug"; + homepage = https://github.com/elementary/switchboard-plug-onlineaccounts; + license = licenses.lgpl2Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; + +} diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/backgrounds.patch b/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/backgrounds.patch new file mode 100644 index 000000000000..a1b019179d1b --- /dev/null +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/backgrounds.patch @@ -0,0 +1,26 @@ +diff --git a/set-wallpaper-contract/set-wallpaper.vala b/set-wallpaper-contract/set-wallpaper.vala +index 3e02089..7ce7041 100644 +--- a/set-wallpaper-contract/set-wallpaper.vala ++++ b/set-wallpaper-contract/set-wallpaper.vala +@@ -38,7 +38,7 @@ namespace SetWallpaperContractor { + + """; + +- const string SYSTEM_BACKGROUNDS_PATH = "/usr/share/backgrounds"; ++ const string SYSTEM_BACKGROUNDS_PATH = "/run/current-system/sw/share/backgrounds"; + + private int delay_value = 60; + +diff --git a/src/Views/Wallpaper.vala b/src/Views/Wallpaper.vala +index 4be14fa..aa8832f 100644 +--- a/src/Views/Wallpaper.vala ++++ b/src/Views/Wallpaper.vala +@@ -38,7 +38,7 @@ public class Wallpaper : Gtk.Grid { + FileAttribute.THUMBNAIL_IS_VALID + }; + +- const string SYSTEM_BACKGROUNDS_PATH = "/usr/share/backgrounds"; ++ const string SYSTEM_BACKGROUNDS_PATH = "/run/current-system/sw/share/backgrounds"; + + public Switchboard.Plug plug { get; construct set; } + private GLib.Settings settings; diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix new file mode 100644 index 000000000000..e47dc4c4060c --- /dev/null +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix @@ -0,0 +1,63 @@ +{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig, vala +, libgee, granite, gexiv2, elementary-settings-daemon, gtk3, gnome-desktop +, gala, wingpanel, plank, switchboard, gettext, gobject-introspection, bamf }: + +stdenv.mkDerivation rec { + pname = "switchboard-plug-pantheon-shell"; + version = "2.8.0"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "0yy821hl26jfd9hyigqi7nmaf30iww0lhg9qzcwlfzsvvfwnxagi"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + }; + }; + + nativeBuildInputs = [ + gettext + gobject-introspection + meson + ninja + pkgconfig + vala + ]; + + buildInputs = [ + bamf + gexiv2 + gnome-desktop + elementary-settings-daemon + granite + gtk3 + libgee + plank + switchboard + ]; + + patches = [ + ./backgrounds.patch # Having https://github.com/elementary/switchboard-plug-pantheon-shell/issues/166 would make this patch uneeded + ./hardcode-gsettings.patch + ]; + + postPatch = '' + substituteInPlace src/Views/Appearance.vala --subst-var-by GALA_GSETTINGS_PATH ${gala}/share/gsettings-schemas/${gala.name}/glib-2.0/schemas + substituteInPlace src/Views/Appearance.vala --subst-var-by WINGPANEL_GSETTINGS_PATH ${wingpanel}/share/gsettings-schemas/${wingpanel.name}/glib-2.0/schemas + ''; + + + PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard"; + + meta = with stdenv.lib; { + description = "Switchboard Desktop Plug"; + homepage = https://github.com/elementary/switchboard-plug-pantheon-shell; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/hardcode-gsettings.patch b/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/hardcode-gsettings.patch new file mode 100644 index 000000000000..d023e1b55ce6 --- /dev/null +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/hardcode-gsettings.patch @@ -0,0 +1,23 @@ +diff --git a/src/Views/Appearance.vala b/src/Views/Appearance.vala +index 721d458..17e1c58 100644 +--- a/src/Views/Appearance.vala ++++ b/src/Views/Appearance.vala +@@ -66,10 +66,16 @@ public class Appearance : Gtk.Grid { + attach (text_size_label, 0, 2); + attach (text_size_modebutton, 1, 2); + +- var animations_settings = new Settings (ANIMATIONS_SCHEMA); ++ SettingsSchemaSource gala_schema_source = new SettingsSchemaSource.from_directory ("@GALA_GSETTINGS_PATH@", SettingsSchemaSource.get_default (), true); ++ SettingsSchema animations_schema = gala_schema_source.lookup (ANIMATIONS_SCHEMA, false); ++ ++ var animations_settings = new Settings.full (animations_schema, null, null); + animations_settings.bind (ANIMATIONS_KEY, animations_switch, "active", SettingsBindFlags.DEFAULT); + +- var panel_settings = new Settings (PANEL_SCHEMA); ++ SettingsSchemaSource panel_schema_source = new SettingsSchemaSource.from_directory ("@WINGPANEL_GSETTINGS_PATH@", SettingsSchemaSource.get_default (), true); ++ SettingsSchema panel_schema = panel_schema_source.lookup (PANEL_SCHEMA, false); ++ ++ var panel_settings = new Settings.full (panel_schema, null, null); + panel_settings.bind (TRANSLUCENCY_KEY, translucency_switch, "active", SettingsBindFlags.DEFAULT); + + var interface_settings = new Settings (INTERFACE_SCHEMA); diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix new file mode 100644 index 000000000000..dd8e2974a495 --- /dev/null +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix @@ -0,0 +1,64 @@ +{ stdenv, fetchFromGitHub, pantheon, substituteAll, meson, ninja +, pkgconfig, vala, libgee, elementary-dpms-helper, elementary-settings-daemon +, makeWrapper, granite, gtk3, dbus, polkit, switchboard, gobject-introspection }: + +stdenv.mkDerivation rec { + pname = "switchboard-plug-power"; + version = "2.3.4"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "0kfnnghyzvy368sh39j4jdl7cnz2yc239hp00054lc4rjs8m61nv"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + }; + }; + + nativeBuildInputs = [ + gobject-introspection + meson + ninja + pkgconfig + vala + ]; + + buildInputs = [ + dbus + granite + gtk3 + libgee + polkit + switchboard + ]; + + patches = [ + (substituteAll { + src = ./dpms-helper-exec.patch; + elementary_dpms_helper = "${elementary-dpms-helper}"; + }) + ./hardcode-gsettings.patch + ]; + + postPatch = '' + substituteInPlace src/MainView.vala --subst-var-by DPMS_HELPER_GSETTINGS_PATH ${elementary-dpms-helper}/share/gsettings-schemas/${elementary-dpms-helper.name}/glib-2.0/schemas + substituteInPlace src/MainView.vala --subst-var-by GSD_GSETTINGS_PATH ${elementary-settings-daemon}/share/gsettings-schemas/${elementary-settings-daemon.name}/glib-2.0/schemas + ''; + + PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard"; + PKG_CONFIG_DBUS_1_SYSTEM_BUS_SERVICES_DIR = "share/dbus-1/system-services"; + PKG_CONFIG_DBUS_1_SYSCONFDIR = "etc"; + PKG_CONFIG_POLKIT_GOBJECT_1_POLICYDIR = "share/polkit-1/actions"; + + meta = with stdenv.lib; { + description = "Switchboard Power Plug"; + homepage = https://github.com/elementary/switchboard-plug-power; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/power/dpms-helper-exec.patch b/pkgs/desktops/pantheon/apps/switchboard-plugs/power/dpms-helper-exec.patch new file mode 100644 index 000000000000..335d3f296262 --- /dev/null +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/power/dpms-helper-exec.patch @@ -0,0 +1,13 @@ +diff --git a/src/MainView.vala b/src/MainView.vala +index 1654e68..175f220 100644 +--- a/src/MainView.vala ++++ b/src/MainView.vala +@@ -317,7 +317,7 @@ public class Power.MainView : Gtk.Grid { + + private static void run_dpms_helper () { + try { +- string[] argv = { "io.elementary.dpms-helper" }; ++ string[] argv = { "@elementary_dpms_helper@/bin/io.elementary.dpms-helper" }; + Process.spawn_async (null, argv, Environ.get (), + SpawnFlags.SEARCH_PATH | SpawnFlags.STDERR_TO_DEV_NULL | SpawnFlags.STDOUT_TO_DEV_NULL, + null, null); diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/power/hardcode-gsettings.patch b/pkgs/desktops/pantheon/apps/switchboard-plugs/power/hardcode-gsettings.patch new file mode 100644 index 000000000000..caacdad6eda9 --- /dev/null +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/power/hardcode-gsettings.patch @@ -0,0 +1,20 @@ +diff --git a/src/MainView.vala b/src/MainView.vala +index 1654e68..ad8fed9 100644 +--- a/src/MainView.vala ++++ b/src/MainView.vala +@@ -46,8 +46,13 @@ public class Power.MainView : Gtk.Grid { + + var label_size = new Gtk.SizeGroup (Gtk.SizeGroupMode.HORIZONTAL); + +- settings = new GLib.Settings ("org.gnome.settings-daemon.plugins.power"); +- elementary_dpms_settings = new GLib.Settings ("io.elementary.dpms"); ++ SettingsSchemaSource gsd_sss = new SettingsSchemaSource.from_directory ("@GSD_GSETTINGS_PATH@", null, true); ++ SettingsSchema gsd_schema = gsd_sss.lookup ("org.gnome.settings-daemon.plugins.power", false); ++ settings = new GLib.Settings.full (gsd_schema, null, null); ++ ++ SettingsSchemaSource dpms_sss = new SettingsSchemaSource.from_directory ("@DPMS_HELPER_GSETTINGS_PATH@", null, true); ++ SettingsSchema elementary_dpms_schema = dpms_sss.lookup ("io.elementary.dpms", false); ++ elementary_dpms_settings = new GLib.Settings.full (elementary_dpms_schema, null, null); + + battery = new Battery (); + power_supply = new PowerSupply (); diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix new file mode 100644 index 000000000000..bb9e576a4c49 --- /dev/null +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix @@ -0,0 +1,47 @@ +{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig +, vala, libgee, granite, gtk3, cups, switchboard, gobject-introspection }: + +stdenv.mkDerivation rec { + pname = "switchboard-plug-printers"; + version = "2.1.6"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "05pkf3whh51gd9d0h2h4clgf7r3mvzl4ybas7834vhy19dzcbzmc"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + }; + }; + + nativeBuildInputs = [ + gobject-introspection + meson + ninja + pkgconfig + vala + ]; + + buildInputs = [ + cups + granite + gtk3 + libgee + switchboard + ]; + + PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard"; + + meta = with stdenv.lib; { + description = "Switchboard Printers Plug"; + homepage = https://github.com/elementary/switchboard-plug-printers; + license = licenses.lgpl3Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; + +} diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix new file mode 100644 index 000000000000..4060e0717891 --- /dev/null +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix @@ -0,0 +1,62 @@ +{ stdenv, fetchFromGitHub, pantheon, meson, python3, ninja +, pkgconfig, vala, libgee, granite, gtk3, polkit, zeitgeist +, switchboard, lightlocker, pantheon-agent-geoclue2, gobject-introspection }: + +stdenv.mkDerivation rec { + pname = "switchboard-plug-security-privacy"; + version = "2.2.0"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "0f1idh36hlgmdva5jn0xnj2b6gbic0asnj3b7j283gyziibm3pxa"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + }; + }; + + nativeBuildInputs = [ + gobject-introspection + meson + ninja + pkgconfig + python3 + vala + ]; + + buildInputs = [ + granite + gtk3 + libgee + polkit + switchboard + zeitgeist + ]; + + PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard"; + + patches = [ + ./hardcode-gsettings.patch + ]; + + postPatch = '' + chmod +x meson/post_install.py + patchShebangs meson/post_install.py + + substituteInPlace src/Views/LockPanel.vala --subst-var-by LIGHTLOCKER_GSETTINGS_PATH ${lightlocker}/share/gsettings-schemas/${lightlocker.name}/glib-2.0/schemas + substituteInPlace src/Views/FirewallPanel.vala --subst-var-by SWITCHBOARD_SEC_PRIV_GSETTINGS_PATH $out/share/gsettings-schemas/${pname}-${version}/glib-2.0/schemas + ''; + + meta = with stdenv.lib; { + description = "Switchboard Security & Privacy Plug"; + homepage = https://github.com/elementary/switchboard-plug-security-privacy; + license = licenses.lgpl3Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; + +} diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/hardcode-gsettings.patch b/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/hardcode-gsettings.patch new file mode 100644 index 000000000000..ffaf1ecf5db1 --- /dev/null +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/hardcode-gsettings.patch @@ -0,0 +1,36 @@ +diff --git a/src/Views/FirewallPanel.vala b/src/Views/FirewallPanel.vala +index 994c4d1..5702de2 100644 +--- a/src/Views/FirewallPanel.vala ++++ b/src/Views/FirewallPanel.vala +@@ -49,10 +49,13 @@ public class SecurityPrivacy.FirewallPanel : Granite.SimpleSettingsPage { + } + + construct { +- settings = new Settings ("io.elementary.switchboard.security-privacy"); ++ SettingsSchemaSource sss = new SettingsSchemaSource.from_directory ("@SWITCHBOARD_SEC_PRIV_GSETTINGS_PATH@", SettingsSchemaSource.get_default (), true); ++ SettingsSchema security_privacy_schema = sss.lookup ("io.elementary.switchboard.security-privacy", false); ++ settings = new Settings.full (security_privacy_schema, null, null); ++ + disabled_rules = new Gee.HashMap (); + load_disabled_rules (); +- ++ + status_switch.notify["active"].connect (() => { + if (loading == false) { + view.sensitive = status_switch.active; +diff --git a/src/Views/LockPanel.vala b/src/Views/LockPanel.vala +index 081cf10..42f6118 100644 +--- a/src/Views/LockPanel.vala ++++ b/src/Views/LockPanel.vala +@@ -30,7 +30,10 @@ public class SecurityPrivacy.LockPanel : Granite.SimpleSettingsPage { + } + + construct { +- locker = new Settings ("apps.light-locker"); ++ SettingsSchemaSource sss = new SettingsSchemaSource.from_directory ("@LIGHTLOCKER_GSETTINGS_PATH@", SettingsSchemaSource.get_default (), true); ++ SettingsSchema locker_schema = sss.lookup ("apps.light-locker", false); ++ ++ locker = new Settings.full (locker_schema, null, null); + + var lock_suspend_label = new Gtk.Label (_("Lock on sleep:")); + var lock_suspend_switch = new Gtk.Switch (); diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix new file mode 100644 index 000000000000..a2c047ffcb41 --- /dev/null +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix @@ -0,0 +1,45 @@ +{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig +, vala, libgee, granite, gtk3, switchboard, gobject-introspection }: + +stdenv.mkDerivation rec { + pname = "switchboard-plug-sharing"; + version = "2.1.3"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "1yi6aga9i18wwn22zwmfbhsk16f92fka837is5r8xghqb7a50hyh"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + }; + }; + + nativeBuildInputs = [ + gobject-introspection + meson + ninja + pkgconfig + vala + ]; + + buildInputs = [ + granite + gtk3 + libgee + switchboard + ]; + + PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard"; + + meta = with stdenv.lib; { + description = "Switchboard Sharing Plug"; + homepage = https://github.com/elementary/switchboard-plug-sharing; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix new file mode 100644 index 000000000000..e4d0db46923b --- /dev/null +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix @@ -0,0 +1,49 @@ +{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig +, vala, libgee, granite, gtk3, pulseaudio, libcanberra, libcanberra-gtk3 +, switchboard, gobject-introspection }: + +stdenv.mkDerivation rec { + pname = "switchboard-plug-sound"; + version = "2.1.3"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "0dvxmjziifffa2rm7h43ca5grhlcpih3rgik50mz808mqfxr4l1q"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + }; + }; + + nativeBuildInputs = [ + gobject-introspection + meson + ninja + pkgconfig + vala + ]; + + buildInputs = [ + granite + gtk3 + libcanberra + libcanberra-gtk3 + libgee + pulseaudio + switchboard + ]; + + PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard"; + + meta = with stdenv.lib; { + description = "Switchboard Sound Plug"; + homepage = https://github.com/elementary/switchboard-plug-sound; + license = licenses.lgpl2Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/apps/switchboard/default.nix b/pkgs/desktops/pantheon/apps/switchboard/default.nix new file mode 100644 index 000000000000..310230c7aacc --- /dev/null +++ b/pkgs/desktops/pantheon/apps/switchboard/default.nix @@ -0,0 +1,56 @@ +{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, python3, ninja +, vala, gtk3, libgee, granite, gettext, clutter-gtk, libunity +, elementary-icon-theme, wrapGAppsHook, gobject-introspection }: + +stdenv.mkDerivation rec { + pname = "switchboard"; + version = "2.3.6"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "0lsrn636b0f9a58jbid6mlhgrf8ajnh7phwmhgxz55sz7k7qa58g"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + }; + }; + + nativeBuildInputs = [ + gettext + gobject-introspection + meson + ninja + pkgconfig + python3 + vala + wrapGAppsHook + ]; + + buildInputs = [ + clutter-gtk + elementary-icon-theme + granite + gtk3 + libgee + libunity + ]; + + patches = [ ./plugs-path-env.patch ]; + + postPatch = '' + chmod +x meson/post_install.py + patchShebangs meson/post_install.py + ''; + + meta = with stdenv.lib; { + description = "Extensible System Settings app for Pantheon"; + homepage = https://github.com/elementary/switchboard; + license = licenses.lgpl21Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/apps/switchboard/plugs-path-env.patch b/pkgs/desktops/pantheon/apps/switchboard/plugs-path-env.patch new file mode 100644 index 000000000000..f5d8567bffed --- /dev/null +++ b/pkgs/desktops/pantheon/apps/switchboard/plugs-path-env.patch @@ -0,0 +1,25 @@ +diff --git a/lib/PlugsManager.vala b/lib/PlugsManager.vala +index 75d0eaf..c227908 100644 +--- a/lib/PlugsManager.vala ++++ b/lib/PlugsManager.vala +@@ -34,10 +34,18 @@ public class Switchboard.PlugsManager : GLib.Object { + private Gee.LinkedList plugs; + + public signal void plug_added (Switchboard.Plug plug); +- ++ + private PlugsManager () { + plugs = new Gee.LinkedList (); +- var base_folder = File.new_for_path (Build.PLUGS_DIR); ++ ++ var plugs_path = Environment.get_variable("SWITCHBOARD_PLUGS_PATH"); ++ if (plugs_path != null) { ++ debug ("SWITCHBOARD_PLUGS_PATH set to %s", plugs_path); ++ } else { ++ critical ("SWITCHBOARD_PLUGS_PATH not set"); ++ } ++ ++ var base_folder = File.new_for_path (plugs_path); + find_plugins (base_folder); + } + diff --git a/pkgs/desktops/pantheon/apps/switchboard/wrapper.nix b/pkgs/desktops/pantheon/apps/switchboard/wrapper.nix new file mode 100644 index 000000000000..cae8e74f4ba7 --- /dev/null +++ b/pkgs/desktops/pantheon/apps/switchboard/wrapper.nix @@ -0,0 +1,19 @@ +{ stdenv, makeWrapper, symlinkJoin, switchboard, switchboardPlugs, plugs }: + +let + selectedPlugs = if plugs == null then switchboardPlugs else plugs; +in +symlinkJoin { + name = "${switchboard.name}-with-plugs"; + + paths = [ switchboard ] ++ selectedPlugs; + + buildInputs = [ makeWrapper ]; + + postBuild = '' + wrapProgram $out/bin/io.elementary.switchboard \ + --set SWITCHBOARD_PLUGS_PATH "$out/lib/switchboard" + ''; + + inherit (switchboard) meta; +} diff --git a/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix b/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix new file mode 100644 index 000000000000..2f7e79f9f9b3 --- /dev/null +++ b/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix @@ -0,0 +1,35 @@ +{ stdenv, fetchFromGitHub, pantheon, meson, ninja }: + +stdenv.mkDerivation rec { + pname = "stylesheet"; + version = "5.2.1"; + + name = "elementary-gtk-theme-${version}"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "03l8m87f7z25svxk0hhcqnn4qnnqvasr5qwzq3s87lx25gwjml29"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + attrPath = "elementary-gtk-theme"; + }; + }; + + nativeBuildInputs = [ + meson + ninja + ]; + + meta = with stdenv.lib; { + description = "GTK theme designed to be smooth, attractive, fast, and usable"; + homepage = https://github.com/elementary/stylesheet; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix b/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix new file mode 100644 index 000000000000..f70186585ece --- /dev/null +++ b/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix @@ -0,0 +1,55 @@ +{ stdenv, fetchFromGitHub, pantheon, meson, python3,ninja, hicolor-icon-theme, gtk3 }: + +stdenv.mkDerivation rec { + pname = "icons"; + version = "5.0.2"; + + name = "elementary-icon-theme-${version}"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "12j582f0kggv2lp935r75xg7q26zpl0f05s11xcs4qxazhj1ly2r"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + attrPath = "elementary-icon-theme"; + }; + }; + + nativeBuildInputs = [ + meson + ninja + python3 + ]; + + buildInputs = [ gtk3 ]; + + propagatedBuildInputs = [ hicolor-icon-theme ]; + + mesonFlags = [ + "-Dvolume_icons=false" # Tries to install some icons to / + "-Dpalettes=false" # Don't install gimp and inkscape palette files + ]; + + postPatch = '' + chmod +x meson/symlink.py + patchShebangs meson/symlink.py + ''; + + postFixup = "gtk-update-icon-cache $out/share/icons/elementary"; + + meta = with stdenv.lib; { + description = "Named, vector icons for elementary OS"; + longDescription = '' + An original set of vector icons designed specifically for elementary OS and its desktop environment: Pantheon. + ''; + homepage = https://github.com/elementary/icons; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix b/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix new file mode 100644 index 000000000000..430acfd9ac1a --- /dev/null +++ b/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix @@ -0,0 +1,36 @@ +{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig }: + +stdenv.mkDerivation rec { + pname = "sound-theme"; + version = "1.0"; + + name = "elementary-${pname}-${version}"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "1dc583lq61c361arjl3s44d2k72c46bqvcqv1c3s69f2ndsnxjdz"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + attrPath = "elementary-${pname}"; + }; + }; + + nativeBuildInputs = [ + meson + ninja + pkgconfig + ]; + + meta = with stdenv.lib; { + description = "A set of system sounds for elementary"; + homepage = https://github.com/elementary/sound-theme; + license = licenses.unlicense; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix b/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix new file mode 100644 index 000000000000..898d5f7b454f --- /dev/null +++ b/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix @@ -0,0 +1,38 @@ +{ stdenv, fetchFromGitHub, pantheon }: + +stdenv.mkDerivation rec { + pname = "wallpapers"; + version = "5.3"; + + name = "elementary-${pname}-${version}"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "1i0zf9gzhwm8hgq5cp1xnxipqjvgzd9wfiicz612hgp6ivc0z0ag"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + attrPath = "elementary-${pname}"; + }; + }; + + dontBuild = true; + + installPhase = '' + mkdir -p $out/share/backgrounds/elementary + cp -av *.jpg $out/share/backgrounds/elementary + ''; + + meta = with stdenv.lib; { + description = "Collection of wallpapers for elementary"; + homepage = https://github.com/elementary/wallpapers; + license = licenses.publicDomain; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} + diff --git a/pkgs/desktops/pantheon/default.nix b/pkgs/desktops/pantheon/default.nix new file mode 100644 index 000000000000..a7b8a01eeb0b --- /dev/null +++ b/pkgs/desktops/pantheon/default.nix @@ -0,0 +1,222 @@ +{ pkgs, lib, gnome3 }: + + +lib.makeScope pkgs.newScope (self: with self; { + + apps = [ + elementary-calculator elementary-calendar + elementary-camera elementary-code elementary-files + elementary-music elementary-photos elementary-screenshot-tool + elementary-terminal elementary-videos switchboard-with-plugs + ]; + + artwork = [ + elementary-gtk-theme + elementary-icon-theme + elementary-sound-theme + elementary-wallpapers + ]; + + desktop = [ + elementary-session-settings + elementary-shortcut-overlay + gala + wingpanel-with-indicators + ]; + + services = [ + cerbere + elementary-capnet-assist + elementary-settings-daemon + elementary-dpms-helper + pantheon-agent-geoclue2 + pantheon-agent-polkit + ]; + + switchboardPlugs = [ + switchboard-plug-a11y switchboard-plug-about + switchboard-plug-applications switchboard-plug-bluetooth + switchboard-plug-datetime switchboard-plug-display + switchboard-plug-keyboard switchboard-plug-mouse-touchpad + switchboard-plug-network switchboard-plug-notifications + switchboard-plug-onlineaccounts switchboard-plug-pantheon-shell + switchboard-plug-power switchboard-plug-printers + switchboard-plug-security-privacy switchboard-plug-sharing + switchboard-plug-sound + ]; + + wingpanelIndicators = [ + wingpanel-applications-menu wingpanel-indicator-bluetooth + wingpanel-indicator-datetime wingpanel-indicator-keyboard + wingpanel-indicator-network wingpanel-indicator-nightlight + wingpanel-indicator-notifications wingpanel-indicator-power + wingpanel-indicator-session wingpanel-indicator-sound + ]; + + updateScript = callPackage ./update.nix { }; + + maintainers = with pkgs.stdenv.lib.maintainers; [ worldofpeace ]; + + mutter = pkgs.gnome3.mutter328; + vala = pkgs.vala_0_40; + + elementary-gsettings-schemas = callPackage ./desktop/elementary-gsettings-schemas { }; + + #### APPS + + elementary-calculator = callPackage ./apps/elementary-calculator { }; + + elementary-calendar = callPackage ./apps/elementary-calendar { }; + + elementary-camera = callPackage ./apps/elementary-camera { }; + + elementary-code = callPackage ./apps/elementary-code { }; + + elementary-files = callPackage ./apps/elementary-files { }; + + elementary-music = callPackage ./apps/elementary-music { }; + + elementary-photos = callPackage ./apps/elementary-photos { }; + + elementary-screenshot-tool = callPackage ./apps/elementary-screenshot-tool { }; + + elementary-terminal = callPackage ./apps/elementary-terminal { }; + + elementary-videos = callPackage ./apps/elementary-videos { }; + + #### DESKTOP + + elementary-default-settings = callPackage ./desktop/elementary-default-settings { }; + + elementary-greeter = callPackage ./desktop/elementary-greeter { + inherit (gnome3) gnome-desktop; + }; + + elementary-print-shim = callPackage ./desktop/elementary-print-shim { }; + + elementary-session-settings = callPackage ./desktop/elementary-session-settings { + inherit (gnome3) gnome-session gnome-keyring; + }; + + elementary-shortcut-overlay = callPackage ./desktop/elementary-shortcut-overlay { }; + + extra-elementary-contracts = callPackage ./desktop/extra-elementary-contracts { + inherit (gnome3) file-roller gnome-bluetooth; + }; + + gala = callPackage ./desktop/gala { + inherit (gnome3) gnome-desktop; + }; + + wingpanel = callPackage ./desktop/wingpanel { }; + + wingpanel-with-indicators = callPackage ./desktop/wingpanel/wrapper.nix { + indicators = null; + }; + + #### LIBRARIES + + granite = callPackage ./granite { }; + + #### SERVICES + + cerbere = callPackage ./services/cerbere { }; + + contractor = callPackage ./services/contractor { }; + + elementary-capnet-assist = callPackage ./services/elementary-capnet-assist { }; + + elementary-dpms-helper = callPackage ./services/elementary-dpms-helper { }; + + # We're using ubuntu and elementary's patchset due to reasons + # explained here -> https://github.com/elementary/greeter/issues/92#issuecomment-376215614 + # Take note of "I am holding off on "fixing" this bug for as long as possible." + elementary-settings-daemon = callPackage ./services/elementary-settings-daemon { + inherit (gnome3) libgweather; + }; + + pantheon-agent-geoclue2 = callPackage ./services/pantheon-agent-geoclue2 { }; + + pantheon-agent-polkit = callPackage ./services/pantheon-agent-polkit { }; + + #### WINGPANEL INDICATORS + + wingpanel-applications-menu = callPackage ./desktop/wingpanel-indicators/applications-menu { }; + + wingpanel-indicator-bluetooth = callPackage ./desktop/wingpanel-indicators/bluetooth { }; + + wingpanel-indicator-datetime = callPackage ./desktop/wingpanel-indicators/datetime { }; + + wingpanel-indicator-keyboard = callPackage ./desktop/wingpanel-indicators/keyboard { }; + + wingpanel-indicator-network = callPackage ./desktop/wingpanel-indicators/network { + inherit (gnome3) networkmanagerapplet; + }; + + wingpanel-indicator-nightlight = callPackage ./desktop/wingpanel-indicators/nightlight { }; + + wingpanel-indicator-notifications = callPackage ./desktop/wingpanel-indicators/notifications { }; + + wingpanel-indicator-power = callPackage ./desktop/wingpanel-indicators/power { }; + + wingpanel-indicator-session = callPackage ./desktop/wingpanel-indicators/session { }; + + wingpanel-indicator-sound = callPackage ./desktop/wingpanel-indicators/sound { }; + + #### SWITCHBOARD + + switchboard = callPackage ./apps/switchboard { }; + + switchboard-with-plugs = callPackage ./apps/switchboard/wrapper.nix { + plugs = null; + }; + + switchboard-plug-a11y = callPackage ./apps/switchboard-plugs/a11y { }; + + switchboard-plug-about = callPackage ./apps/switchboard-plugs/about { }; + + switchboard-plug-applications = callPackage ./apps/switchboard-plugs/applications { }; + + switchboard-plug-bluetooth = callPackage ./apps/switchboard-plugs/bluetooth { }; + + switchboard-plug-datetime = callPackage ./apps/switchboard-plugs/datetime { }; + + switchboard-plug-display = callPackage ./apps/switchboard-plugs/display { }; + + switchboard-plug-keyboard = callPackage ./apps/switchboard-plugs/keyboard { }; + + switchboard-plug-mouse-touchpad = callPackage ./apps/switchboard-plugs/mouse-touchpad { }; + + switchboard-plug-network = callPackage ./apps/switchboard-plugs/network { + inherit (gnome3) networkmanagerapplet; + }; + + switchboard-plug-notifications = callPackage ./apps/switchboard-plugs/notifications { }; + + switchboard-plug-onlineaccounts = callPackage ./apps/switchboard-plugs/onlineaccounts { }; + + switchboard-plug-pantheon-shell = callPackage ./apps/switchboard-plugs/pantheon-shell { + inherit (gnome3) gnome-desktop; + }; + + switchboard-plug-power = callPackage ./apps/switchboard-plugs/power { }; + + switchboard-plug-printers = callPackage ./apps/switchboard-plugs/printers { }; + + switchboard-plug-security-privacy = callPackage ./apps/switchboard-plugs/security-privacy { }; + + switchboard-plug-sharing = callPackage ./apps/switchboard-plugs/sharing { }; + + switchboard-plug-sound = callPackage ./apps/switchboard-plugs/sound { }; + + ### ARTWORK + + elementary-gtk-theme = callPackage ./artwork/elementary-gtk-theme { }; + + elementary-icon-theme = callPackage ./artwork/elementary-icon-theme { }; + + elementary-sound-theme = callPackage ./artwork/elementary-sound-theme { }; + + elementary-wallpapers = callPackage ./artwork/elementary-wallpapers { }; + +}) diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/correct-override.patch b/pkgs/desktops/pantheon/desktop/elementary-default-settings/correct-override.patch new file mode 100644 index 000000000000..438ed79d1bb0 --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/elementary-default-settings/correct-override.patch @@ -0,0 +1,25 @@ +diff --git a/debian/elementary-default-settings.gsettings-override b/debian/elementary-default-settings.gsettings-override +index 6452c30..899972d 100644 +--- a/debian/elementary-default-settings.gsettings-override ++++ b/debian/elementary-default-settings.gsettings-override +@@ -1,5 +1,5 @@ + [net.launchpad.plank.dock.settings] +-dock-items=['gala-multitaskingview.dockitem','org.gnome.Epiphany.dockitem','org.pantheon.mail.dockitem','io.elementary.calendar.dockitem','io.elementary.music.dockitem','io.elementary.videos.dockitem','io.elementary.photos.dockitem','io.elementary.switchboard.dockitem','io.elementary.appcenter.dockitem'] ++dock-items=['gala-multitaskingview.dockitem','org.gnome.Epiphany.dockitem','org.gnome.Geary.dockitem','io.elementary.calendar.dockitem','io.elementary.music.dockitem','io.elementary.videos.dockitem','io.elementary.photos.dockitem','io.elementary.switchboard.dockitem'] + hide-delay=250 + hide-mode='window-dodge' + show-dock-item=false +@@ -8,13 +8,6 @@ theme='Gtk+' + [org.freedesktop.ibus.general.hotkey] + triggers=['space'] + +-[org.gnome.desktop.background] +-draw-background=true +-picture-options='zoom' +-picture-uri='file:///usr/share/backgrounds/elementaryos-default' +-primary-color='#000000' +-show-desktop-icons=false +- + [org.gnome.desktop.datetime] + automatic-timezone=true + diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix b/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix new file mode 100644 index 000000000000..f133324a81ec --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix @@ -0,0 +1,60 @@ +{ stdenv, fetchFromGitHub, fetchpatch, pantheon }: + +stdenv.mkDerivation rec { + pname = "default-settings"; + version = "5.0"; + + name = "elementary-${pname}-${version}"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "0gyv835qbr90001gda2pzngzzbbk5jf9grgfl25pqkm29s45rqq0"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + attrPath = "elementary-${pname}"; + }; + }; + + patches = [ + # See: https://github.com/elementary/default-settings/pull/86 (didn't make 5.0 release) + (fetchpatch { + url = "https://github.com/elementary/default-settings/commit/05d0b2a4e98c28203521d599b40745b46be549fa.patch"; + sha256 = "1wk1qva3yzc28gljnkx9hb3pwhqnfrsb08wd76lsl3xnylg0wn2l"; + }) + # See: https://github.com/elementary/default-settings/pull/94 (didn't make 5.0 release) + (fetchpatch { + url = "https://github.com/elementary/default-settings/commit/a2ca00130c16e805179fb5abd7b624a873dff2da.patch"; + sha256 = "1jp1c5d8jfm0404zsylfk7h9vj81s409wgbzbsd2kxmz65icq16x"; + }) + ./correct-override.patch + ]; + + dontBuild = true; + + installPhase = '' + mkdir -p $out/etc/gtk-3.0 + cp -av settings.ini $out/etc/gtk-3.0 + + mkdir -p $out/share/glib-2.0/schemas + cp -av debian/elementary-default-settings.gsettings-override $out/share/glib-2.0/schemas/20-io.elementary.desktop.gschema.override + + mkdir $out/etc/wingpanel.d + cp -avr ${./io.elementary.greeter.whitelist} $out/etc/wingpanel.d/io.elementary.greeter.whitelist + + mkdir -p $out/share/elementary/config/plank/dock1 + cp -avr ${./launchers} $out/share/elementary/config/plank/dock1/launchers + ''; + + meta = with stdenv.lib; { + description = "Default settings and configuration files for elementary"; + homepage = https://github.com/elementary/default-settings; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/io.elementary.greeter.whitelist b/pkgs/desktops/pantheon/desktop/elementary-default-settings/io.elementary.greeter.whitelist new file mode 100644 index 000000000000..0cff31f4f777 --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/elementary-default-settings/io.elementary.greeter.whitelist @@ -0,0 +1,6 @@ +liba11y.so +libbluetooth.so +libkeyboard.so +libnetwork.so +libpower.so +libsession.so diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/gala-multitaskingview.dockitem b/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/gala-multitaskingview.dockitem new file mode 100644 index 000000000000..b25bb8c85904 --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/gala-multitaskingview.dockitem @@ -0,0 +1,2 @@ +[PlankDockItemPreferences] +Launcher=file:///run/current-system/sw/share/applications/gala-multitaskingview.desktop diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.calendar.dockitem b/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.calendar.dockitem new file mode 100644 index 000000000000..3bd7d531840d --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.calendar.dockitem @@ -0,0 +1,2 @@ +[PlankDockItemPreferences] +Launcher=file:///run/current-system/sw/share/applications/io.elementary.calendar.desktop diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.music.dockitem b/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.music.dockitem new file mode 100644 index 000000000000..494edde183ca --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.music.dockitem @@ -0,0 +1,2 @@ +[PlankDockItemPreferences] +Launcher=file:///run/current-system/sw/share/applications/io.elementary.music.desktop diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.photos.dockitem b/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.photos.dockitem new file mode 100644 index 000000000000..89536754964d --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.photos.dockitem @@ -0,0 +1,2 @@ +[PlankDockItemPreferences] +Launcher=file:///run/current-system/sw/share/applications/io.elementary.photos.desktop diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.switchboard.dockitem b/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.switchboard.dockitem new file mode 100644 index 000000000000..312c35d9bf00 --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.switchboard.dockitem @@ -0,0 +1,2 @@ +[PlankDockItemPreferences] +Launcher=file:///run/current-system/sw/share/applications/io.elementary.switchboard.desktop diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.videos.dockitem b/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.videos.dockitem new file mode 100644 index 000000000000..3b0f721a5644 --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.videos.dockitem @@ -0,0 +1,2 @@ +[PlankDockItemPreferences] +Launcher=file:///run/current-system/sw/share/applications/io.elementary.videos.desktop diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/org.gnome.Epiphany.dockitem b/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/org.gnome.Epiphany.dockitem new file mode 100644 index 000000000000..b0218bac52d7 --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/org.gnome.Epiphany.dockitem @@ -0,0 +1,2 @@ +[PlankDockItemPreferences] +Launcher=file:///run/current-system/sw/share/applications/org.gnome.Epiphany.desktop diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/org.gnome.Geary.dockitem b/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/org.gnome.Geary.dockitem new file mode 100644 index 000000000000..8b04efe417ea --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/org.gnome.Geary.dockitem @@ -0,0 +1,2 @@ +[PlankDockItemPreferences] +Launcher=file:///run/current-system/sw/share/applications/org.gnome.Geary.desktop diff --git a/pkgs/desktops/pantheon/desktop/elementary-greeter/01-sysconfdir-install.patch b/pkgs/desktops/pantheon/desktop/elementary-greeter/01-sysconfdir-install.patch new file mode 100644 index 000000000000..626e56ce5960 --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/elementary-greeter/01-sysconfdir-install.patch @@ -0,0 +1,25 @@ +From 2384bee55a46eac44eb9d329be4c2a097e053ae1 Mon Sep 17 00:00:00 2001 +From: worldofpeace +Date: Tue, 17 Jul 2018 07:04:18 -0400 +Subject: [PATCH 1/1] 'sysconfdir' will be etc not /etc for install + +--- + data/meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/data/meson.build b/data/meson.build +index 7621b03..7c08eaf 100644 +--- a/data/meson.build ++++ b/data/meson.build +@@ -20,7 +20,7 @@ i18n.merge_file ( + + install_data( + meson.project_name() + '.conf', +- install_dir: join_paths(get_option('sysconfdir'), 'lightdm') ++ install_dir: join_paths(get_option('prefix'), 'etc', 'lightdm') + ) + + install_data( +-- +2.17.1 + diff --git a/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix b/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix new file mode 100644 index 000000000000..303aae6882b8 --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix @@ -0,0 +1,103 @@ +{ stdenv, fetchFromGitHub, pantheon, pkgconfig, substituteAll, makeWrapper, meson +, ninja, vala, desktop-file-utils, gtk3, granite, libgee, elementary-settings-daemon +, gnome-desktop, mutter, gobject-introspection, elementary-icon-theme, wingpanel-with-indicators +, elementary-gtk-theme, nixos-artwork, elementary-default-settings, lightdm, numlockx +, clutter-gtk, libGL, dbus, wrapGAppsHook }: + +stdenv.mkDerivation rec { + pname = "greeter"; + version = "3.3.1"; + + name = "elementary-${pname}-${version}"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "1vkq4z0hrmvzv4sh2qkxjajdxcycd1zj97a3pc8n4yb858pqfyzc"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + attrPath = "elementary-${pname}"; + }; + }; + + nativeBuildInputs = [ + desktop-file-utils + gobject-introspection + meson + ninja + pkgconfig + vala + wrapGAppsHook + ]; + + buildInputs = [ + clutter-gtk + elementary-icon-theme + elementary-gtk-theme + elementary-settings-daemon + gnome-desktop + granite + gtk3 + libgee + libGL + lightdm + mutter + wingpanel-with-indicators + ]; + + patches = [ + (substituteAll { + src = ./gsd.patch; + elementary-settings-daemon = "${elementary-settings-daemon}/libexec"; + }) + (substituteAll { + src = ./numlockx.patch; + inherit numlockx; + }) + ./01-sysconfdir-install.patch + ]; + + mesonFlags = [ + # A hook does this but after wrapGAppsHook so the files never get wrapped. + "--sbindir=${placeholder "out"}/bin" + # baked into the program for discovery of the greeter configuration + "--sysconfdir=/etc" + ]; + + preFixup = '' + gappsWrapperArgs+=( + # GTK+ reads default settings (such as icons and themes) from elementary's settings.ini here + --prefix XDG_CONFIG_DIRS : "${elementary-default-settings}/etc" + + # dbus-launch needed in path + --prefix PATH : "${dbus}/bin" + + # for `wingpanel -g` + --prefix PATH : "${wingpanel-with-indicators}/bin" + + # TODO: they should be using meson for this + # See: https://github.com/elementary/greeter/blob/19c0730fded4e9ddec5a491f0e78f83c7c04eb59/src/PantheonGreeter.vala#L451 + --prefix PATH : "$out/bin" + ) + ''; + + postFixup = '' + substituteInPlace $out/share/xgreeters/io.elementary.greeter.desktop \ + --replace "Exec=io.elementary.greeter" "Exec=$out/bin/io.elementary.greeter" + + substituteInPlace $out/etc/lightdm/io.elementary.greeter.conf \ + --replace "#default-wallpaper=/usr/share/backgrounds/elementaryos-default" "default-wallpaper=${nixos-artwork.wallpapers.simple-dark-gray}/share/artwork/gnome/nix-wallpaper-simple-dark-gray.png" + ''; + + meta = with stdenv.lib; { + description = "LightDM Greeter for Pantheon"; + homepage = https://github.com/elementary/greeter; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/desktop/elementary-greeter/gsd.patch b/pkgs/desktops/pantheon/desktop/elementary-greeter/gsd.patch new file mode 100644 index 000000000000..1770d54aee0d --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/elementary-greeter/gsd.patch @@ -0,0 +1,13 @@ +diff --git a/src/meson.build b/src/meson.build +index 2450c1a..a908d11 100644 +--- a/src/meson.build ++++ b/src/meson.build +@@ -1,7 +1,7 @@ + conf_data = configuration_data() + conf_data.set('CONF_DIR', join_paths(get_option('sysconfdir'), 'lightdm')) + conf_data.set('GETTEXT_PACKAGE', meson.project_name()) +-conf_data.set('GSD_DIR', '/usr/lib/gnome-settings-daemon/') ++conf_data.set('GSD_DIR', '@elementary-settings-daemon@') + conf_data.set('VERSION', meson.project_version()) + config_header = configure_file ( + input: 'config.vala.in', diff --git a/pkgs/desktops/pantheon/desktop/elementary-greeter/numlockx.patch b/pkgs/desktops/pantheon/desktop/elementary-greeter/numlockx.patch new file mode 100644 index 000000000000..2c7766b4284c --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/elementary-greeter/numlockx.patch @@ -0,0 +1,13 @@ +diff --git a/src/PantheonGreeter.vala b/src/PantheonGreeter.vala +index 11aa4c0..ae7bf7e 100644 +--- a/src/PantheonGreeter.vala ++++ b/src/PantheonGreeter.vala +@@ -163,7 +163,7 @@ public class PantheonGreeter : Gtk.Window { + warning (e.message); + } + if (activate_numlock) { +- Granite.Services.System.execute_command ("/usr/bin/numlockx on"); ++ Granite.Services.System.execute_command ("@numlockx@/bin/numlockx on"); + } + + var screensaver_timeout = 60; diff --git a/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix b/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix new file mode 100644 index 000000000000..bd5688f941b2 --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix @@ -0,0 +1,44 @@ +{ stdenv, runCommand, gnome3, elementary-default-settings, nixos-artwork, glib, gala, epiphany, elementary-settings-daemon, gtk3, plank +, extraGSettingsOverrides ? "" +, extraGSettingsOverridePackages ? [] +}: + +let + + gsettingsOverridePackages = [ + gala + epiphany + elementary-settings-daemon + gnome3.mutter + gtk3 + plank + ] ++ extraGSettingsOverridePackages; + +in + +with stdenv.lib; + +# TODO: Having https://github.com/NixOS/nixpkgs/issues/54150 would supersede this +runCommand "elementary-gsettings-desktop-schemas" {} + '' + mkdir -p $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas + cp -rf ${gnome3.gsettings-desktop-schemas}/share/gsettings-schemas/gsettings-desktop-schemas*/glib-2.0/schemas/*.xml $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas + + ${concatMapStrings (pkg: "cp -rf ${pkg}/share/gsettings-schemas/*/glib-2.0/schemas/*.xml $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas\n") gsettingsOverridePackages} + + chmod -R a+w $out/share/gsettings-schemas/nixos-gsettings-overrides + cp ${elementary-default-settings}/share/glib-2.0/schemas/20-io.elementary.desktop.gschema.override \ + $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas + + cat - > $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas/nixos-defaults.gschema.override <<- EOF + [org.gnome.desktop.background] + draw-background=true + picture-options='zoom' + picture-uri='${nixos-artwork.wallpapers.simple-dark-gray}/share/artwork/gnome/nix-wallpaper-simple-dark-gray.png' + primary-color='#000000' + + ${extraGSettingsOverrides} + EOF + + ${glib.dev}/bin/glib-compile-schemas $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas/ + '' diff --git a/pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix b/pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix new file mode 100644 index 000000000000..d8634b48570d --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix @@ -0,0 +1,39 @@ +{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig, vala, gtk3 }: + +stdenv.mkDerivation rec { + pname = "print"; + version = "0.1.3"; + + name = "elementary-print-shim-${version}"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "1w3cfap7j42x14mqpfqdm46hk5xc0v5kv8r6wxcnknr3sfxi8qlp"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + attrPath = "elementary-${pname}-shim"; + }; + }; + + nativeBuildInputs = [ + meson + ninja + pkgconfig + vala + ]; + + buildInputs = [ gtk3 ]; + + meta = with stdenv.lib; { + description = "Simple shim for printing support via Contractor"; + homepage = https://github.com/elementary/print; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/desktop/elementary-session-settings/default-elementary-dockitems.desktop b/pkgs/desktops/pantheon/desktop/elementary-session-settings/default-elementary-dockitems.desktop new file mode 100644 index 000000000000..517a9457ae10 --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/elementary-session-settings/default-elementary-dockitems.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Type=Application +Name=Instantiate Default elementary dockitems +Exec=@script@ +StartupNotify=false +NoDisplay=true +OnlyShowIn=Pantheon; +X-GNOME-Autostart-Phase=EarlyInitialization diff --git a/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix b/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix new file mode 100644 index 000000000000..fddd4143616e --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix @@ -0,0 +1,107 @@ +{ stdenv, fetchFromGitHub, substituteAll, writeScript, pantheon, gnome-keyring, gnome-session, wingpanel, orca, at-spi2-core, elementary-default-settings, writeTextFile, writeShellScriptBin, elementary-settings-daemon }: + +let + + # + # ─── ENSURES PLANK GETS ELEMENTARY'S DEFAULT DOCKITEMS ──────────────────────────── + # + + # + # Upstream relies on /etc/skel to initiate a new users home directory with planks dockitems. + # + # That is not possible within nixos, but we can achieve this easily with a simple script that copies + # them. We then use a xdg autostart and initalize it during the "EarlyInitialization" phase of a gnome session + # which is most appropriate for installing files into $HOME. + # + + dockitems-script = writeScript "dockitems-script" '' + #!${stdenv.shell} + + elementary_default_settings="${elementary-default-settings}" + dock_items="$elementary_default_settings/share/elementary/config/plank/dock1/launchers"/* + + if [ ! -d "$HOME/.config/plank/dock1" ]; then + echo "Instantiating default Plank Dockitems..." + + mkdir -p $HOME/.config/plank/dock1/launchers + cp -r --no-preserve=mode,ownership $dock_items $HOME/.config/plank/dock1/launchers/ + else + echo "Plank Dockitems already instantiated" + fi + ''; + + dockitemAutostart = substituteAll { + src = ./default-elementary-dockitems.desktop; + script = "${dockitems-script}"; + }; + + executable = writeShellScriptBin "pantheon" '' + export XDG_CONFIG_DIRS=${elementary-settings-daemon}/etc/xdg:$XDG_CONFIG_DIRS + export XDG_DATA_DIRS=${placeholder "out"}/share:$XDG_DATA_DIRS + exec ${gnome-session}/bin/gnome-session --session=pantheon "$@" + ''; + +in + +stdenv.mkDerivation rec { + pname = "session-settings"; + version = "5.0.3"; + + name = "elementary-${pname}-${version}"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "1vrjm7bklkfv0dyafm312v4hxzy6lb7p1ny4ijkn48kr719gc71k"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + attrPath = "elementary-${pname}"; + }; + }; + + dontBuild = true; + + installPhase = '' + mkdir -p $out/share + cp -avr applications $out/share/ + + mkdir -p $out/etc/xdg/autostart + cp -av ${gnome-keyring}/etc/xdg/autostart/* $out/etc/xdg/autostart + cp -av ${orca}/etc/xdg/autostart/* $out/etc/xdg/autostart + cp -av ${at-spi2-core}/etc/xdg/autostart/* $out/etc/xdg/autostart + + cp "${dockitemAutostart}" $out/etc/xdg/autostart/default-elementary-dockitems.desktop + + mkdir -p $out/share/gnome-session/sessions + cp -av gnome-session/pantheon.session $out/share/gnome-session/sessions + + mkdir -p $out/share/xsessions + cp -av xsessions/pantheon.desktop $out/share/xsessions + ''; + + postFixup = '' + substituteInPlace $out/share/xsessions/pantheon.desktop \ + --replace "gnome-session --session=pantheon" "${executable}/bin/pantheon" \ + --replace "wingpanel" "${wingpanel}/bin/wingpanel" + + for f in $out/etc/xdg/autostart/*; do mv "$f" "''${f%.desktop}-pantheon.desktop"; done + + for autostart in $(grep -rl "OnlyShowIn=GNOME;" $out/etc/xdg/autostart) + do + echo "Patching OnlyShowIn to Pantheon in: $autostart" + sed -i "s,OnlyShowIn=GNOME;,OnlyShowIn=Pantheon;," $autostart + done + ''; + + meta = with stdenv.lib; { + description = "Session settings for elementary"; + homepage = https://github.com/elementary/session-settings; + license = licenses.lgpl3; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix b/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix new file mode 100644 index 000000000000..6ceebf1980c6 --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix @@ -0,0 +1,50 @@ +{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, vala, libxml2, desktop-file-utils +, gtk3, glib, granite, libgee, elementary-icon-theme, gobject-introspection, wrapGAppsHook }: + +stdenv.mkDerivation rec { + pname = "shortcut-overlay"; + version = "1.0.1"; + + name = "elementary-${pname}-${version}"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "1ph4rx2l5fn0zh4fjfjlgbgskmzc0lvzqgcv7v4kr5m4rij1p4y4"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + attrPath = "elementary-${pname}"; + }; + }; + + nativeBuildInputs = [ + desktop-file-utils + gobject-introspection + libxml2 + meson + ninja + pkgconfig + vala + wrapGAppsHook + ]; + + buildInputs = [ + elementary-icon-theme + glib + granite + gtk3 + libgee + ]; + + meta = with stdenv.lib; { + description = "A native OS-wide shortcut overlay to be launched by Gala"; + homepage = https://github.com/elementary/shortcut-overlay; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/desktop/extra-elementary-contracts/default.nix b/pkgs/desktops/pantheon/desktop/extra-elementary-contracts/default.nix new file mode 100644 index 000000000000..4e19a65b58d4 --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/extra-elementary-contracts/default.nix @@ -0,0 +1,39 @@ +{ stdenv, substituteAll, fetchFromGitHub, file-roller, gnome-bluetooth }: + +stdenv.mkDerivation rec { + pname = "extra-elementary-contracts"; + version = "2018-08-21"; + + name = "${pname}-${version}"; + + src = fetchFromGitHub { + owner = "worldofpeace"; + repo = pname; + rev = "a05dfb00695854163805b666185e3e9f31b6eb83"; + sha256 = "0fkaf2w4xg0n9faj74rgzy7gvd3yz112l058b157a3pr39vpci7g"; + }; + + patches = [ + (substituteAll { + src = ./exec-path.patch; + file_roller = "${file-roller}"; + gnome_bluetooth = "${gnome-bluetooth}"; + }) + ]; + + dontBuild = true; + + installPhase = '' + mkdir -p $out/share/contractor + + cp *.contract $out/share/contractor/ + ''; + + meta = with stdenv.lib; { + description = "Extra contractor files for elementary"; + homepage = https://github.com/worldofpeace/extra-elementary-contracts; + license = licenses.gpl2; + maintainers = with maintainers; [ worldofpeace ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/pantheon/desktop/extra-elementary-contracts/exec-path.patch b/pkgs/desktops/pantheon/desktop/extra-elementary-contracts/exec-path.patch new file mode 100644 index 000000000000..3b97e306119d --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/extra-elementary-contracts/exec-path.patch @@ -0,0 +1,34 @@ +diff --git a/file-roller-compress.contract b/file-roller-compress.contract +index 8de5396..de7e939 100644 +--- a/file-roller-compress.contract ++++ b/file-roller-compress.contract +@@ -3,6 +3,6 @@ Name=Compress + Icon=add-files-to-archive + Description=Create a compressed archive with the selected objects + MimeType=!archive;inode/blockdevice;inode/chardevice;inode/fifo;inode/socket; +-Exec=file-roller --add %U ++Exec=@file_roller@/bin/file-roller --add %U + Gettext-Domain=file-roller + +diff --git a/file-roller-extract-here.contract b/file-roller-extract-here.contract +index 184a6f2..345f4e7 100644 +--- a/file-roller-extract-here.contract ++++ b/file-roller-extract-here.contract +@@ -3,5 +3,5 @@ Name=Extract Here + Icon=extract-archive + Description=Extract the contents of the archives in the archive folder and quit the program + MimeType=application/x-7z-compressed;application/x-7z-compressed-tar;application/x-ace;application/x-alz;application/x-ar;application/x-arj;application/x-bzip;application/x-bzip-compressed-tar;application/x-bzip1;application/x-bzip1-compressed-tar;application/x-cabinet;application/x-cbr;application/x-cbz;application/x-cd-image;application/x-compress;application/x-compressed-tar;application/x-cpio;application/x-deb;application/x-ear;application/x-ms-dos-executable;application/x-gtar;application/x-gzip;application/x-gzpostscript;application/x-java-archive;application/x-lha;application/x-lhz;application/x-lrzip;application/x-lrzip-compressed-tar;application/x-lzip;application/x-lzip-compressed-tar;application/x-lzma;application/x-lzma-compressed-tar;application/x-lzop;application/x-lzop-compressed-tar;application/x-ms-wim;application/x-rar;application/x-rar-compressed;application/x-rpm;application/x-rzip;application/x-tar;application/x-tarz;application/x-stuffit;application/x-war;application/x-xz;application/x-xz-compressed-tar;application/x-zip;application/x-zip-compressed;application/x-zoo;application/zip; +-Exec=file-roller --extract-here %U ++Exec=@file_roller@/bin/file-roller --extract-here %U + Gettext-Domain=file-roller +diff --git a/gnome-bluetooth.contract b/gnome-bluetooth.contract +index 745dbbe..8cc0102 100644 +--- a/gnome-bluetooth.contract ++++ b/gnome-bluetooth.contract +@@ -3,5 +3,5 @@ Name=Send files via Bluetooth + Icon=bluetooth + Description=Send files to device... + MimeType=!inode; +-Exec=bluetooth-sendto %F ++Exec=@gnome_bluetooth@/bin/bluetooth-sendto %F + Gettext-Domain=gnome-bluetooth2 diff --git a/pkgs/desktops/pantheon/desktop/gala/default.nix b/pkgs/desktops/pantheon/desktop/gala/default.nix new file mode 100644 index 000000000000..97acc2c791bf --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/gala/default.nix @@ -0,0 +1,66 @@ +{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, python3, ninja, vala +, desktop-file-utils, gettext, libxml2, gtk3, granite, libgee, bamf, libcanberra +, libcanberra-gtk3, gnome-desktop, mutter, clutter, plank, gobject-introspection +, elementary-icon-theme, elementary-settings-daemon, wrapGAppsHook }: + +stdenv.mkDerivation rec { + pname = "gala"; + version = "unstable-2018-12-16"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = "7f1e392e03000df0bd47e7832bb3adab81f39ae5"; + sha256 = "1syqq0xfyg5nbnnmy0wp5d66k1bvq9qn27lvr37abxxqig9acpc8"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + versionPolicy = "master"; + }; + }; + + nativeBuildInputs = [ + desktop-file-utils + gettext + gobject-introspection + libxml2 + meson + ninja + pkgconfig + python3 + vala + wrapGAppsHook + ]; + + buildInputs = [ + bamf + clutter + elementary-icon-theme + gnome-desktop + elementary-settings-daemon + granite + gtk3 + libcanberra + libcanberra-gtk3 + libgee + mutter + plank + ]; + + patches = [ ./plugins-dir.patch ]; + + postPatch = '' + chmod +x build-aux/meson/post_install.py + patchShebangs build-aux/meson/post_install.py + ''; + + meta = with stdenv.lib; { + description = "A window & compositing manager based on mutter and designed by elementary for use with Pantheon"; + homepage = https://github.com/elementary/gala; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/desktop/gala/plugins-dir.patch b/pkgs/desktops/pantheon/desktop/gala/plugins-dir.patch new file mode 100644 index 000000000000..e83308ea5526 --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/gala/plugins-dir.patch @@ -0,0 +1,22 @@ +diff --git a/meson.build b/meson.build +index 6b20a60..205699b 100644 +--- a/meson.build ++++ b/meson.build +@@ -38,7 +38,7 @@ conf.set_quoted('PACKAGE_VERSION', gala_version) + conf.set_quoted('DATADIR', data_dir) + conf.set_quoted('PKGDATADIR', pkgdata_dir) + conf.set_quoted('PKGLIBDIR', pkglib_dir) +-conf.set_quoted('PLUGINSDIR', plugins_dir) ++conf.set_quoted('PLUGINSDIR', '/run/current-system/sw/lib/gala/plugins') + conf.set_quoted('RELEASE_NAME', 'Window Manager.') + conf.set_quoted('VERSION', gala_version) + conf.set_quoted('VERSION_INFO', (is_release ? 'Release' : 'Development')) +@@ -83,7 +83,7 @@ add_project_arguments([ + '-DDATADIR="@0@"'.format(data_dir), + '-DPKGDATADIR="@0@"'.format(pkgdata_dir), + '-DPKGLIBDIR="@0@"'.format(pkglib_dir), +- '-DPLUGINDIR="@0@"'.format(plugins_dir), ++ '-DPLUGINDIR="@0@"'.format('/run/current-system/sw/lib/gala/plugins'), + '-DSCHEMA="org.pantheon.desktop.gala"', + '-DRESOURCEPATH="/org/pantheon/desktop/gala"', + diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/bc.patch b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/bc.patch new file mode 100644 index 000000000000..264a4a5b26da --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/bc.patch @@ -0,0 +1,24 @@ +diff --git a/lib/synapse-plugins/calculator-plugin.vala b/lib/synapse-plugins/calculator-plugin.vala +index 1b5fa06..076c0c7 100644 +--- a/lib/synapse-plugins/calculator-plugin.vala ++++ b/lib/synapse-plugins/calculator-plugin.vala +@@ -51,9 +51,7 @@ namespace Synapse { + _("Calculator"), + _("Calculate basic expressions."), + "accessories-calculator", +- register_plugin, +- Environment.find_program_in_path ("bc") != null, +- _("bc is not installed")); ++ register_plugin); + } + + static construct { +@@ -90,7 +88,7 @@ namespace Synapse { + if (matched) { + Pid pid; + int read_fd, write_fd; +- string[] argv = {"bc", "-l"}; ++ string[] argv = {"@exec@", "-l"}; + string? solution = null; + + try { diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix new file mode 100644 index 000000000000..e4f7df107ba8 --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix @@ -0,0 +1,72 @@ +{ stdenv, fetchFromGitHub, pantheon, substituteAll, cmake, ninja +, pkgconfig, vala, granite, libgee, gettext, gtk3, appstream, gnome-menus +, json-glib, plank, bamf, switchboard, libunity, libsoup, wingpanel, libwnck3 +, zeitgeist, gobject-introspection, elementary-icon-theme, bc, wrapGAppsHook }: + +stdenv.mkDerivation rec { + pname = "applications-menu"; + version = "2.4.2"; + + name = "wingpanel-${pname}-${version}"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "0y7kh50ixvm4m56v18c70s05hhpfp683c4qi3sxy50p2368d772x"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + attrPath = "wingpanel-${pname}"; + }; + }; + + nativeBuildInputs = [ + appstream + cmake + ninja + gettext + gobject-introspection + pkgconfig + vala + wrapGAppsHook + ]; + + buildInputs = [ + bamf + elementary-icon-theme + gnome-menus + granite + gtk3 + json-glib + libgee + libsoup + libunity + libwnck3 + plank + switchboard + wingpanel + zeitgeist + ]; + + PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "lib/wingpanel"; + PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard"; + + patches = [ + (substituteAll { + src = ./bc.patch; + exec = "${bc}/bin/bc"; + }) + ./xdg.patch + ]; + + meta = with stdenv.lib; { + description = "Lightweight and stylish app launcher for Pantheon"; + homepage = https://github.com/elementary/applications-menu; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/xdg.patch b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/xdg.patch new file mode 100644 index 000000000000..f17e2581e07e --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/xdg.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 928976a..7f0ea58 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -90,7 +90,7 @@ link_directories (${DEPS_LIBRARY_DIRS}) + + # Installation + install (TARGETS ${APPNAME} RUNTIME DESTINATION bin) +-install (FILES ${applications_menu} DESTINATION /etc/xdg/menus) ++install (FILES ${applications_menu} DESTINATION etc/xdg/menus) + file (GLOB resources "${CMAKE_CURRENT_SOURCE_DIR}/data/*") + + # Settings schema diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix new file mode 100644 index 000000000000..16f3ae2e28e0 --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix @@ -0,0 +1,56 @@ +{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, python3 +, ninja, vala, gtk3, granite, libnotify, wingpanel, libgee, libxml2 +, gobject-introspection, elementary-icon-theme, wrapGAppsHook }: + +stdenv.mkDerivation rec { + pname = "wingpanel-indicator-bluetooth"; + version = "2.1.2"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "1gx0xglp6b3znxl4d2vpzhfkxz5z8q04hh7z2mrihj1in155bn44"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + }; + }; + + nativeBuildInputs = [ + gobject-introspection + libxml2 + meson + ninja + pkgconfig + python3 + vala + wrapGAppsHook + ]; + + buildInputs = [ + elementary-icon-theme + granite + gtk3 + libgee + libnotify + wingpanel + ]; + + PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "lib/wingpanel"; + + postPatch = '' + chmod +x meson/post_install.py + patchShebangs meson/post_install.py + ''; + + meta = with stdenv.lib; { + description = "Bluetooth Indicator for Wingpanel"; + homepage = https://github.com/elementary/wingpanel-indicator-bluetooth; + license = licenses.lgpl21Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/calendar-exec.patch b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/calendar-exec.patch new file mode 100644 index 000000000000..2370fbcd3cb2 --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/calendar-exec.patch @@ -0,0 +1,13 @@ +diff --git a/src/Widgets/calendar/Calendar.vala b/src/Widgets/calendar/Calendar.vala +index 76443ca..d86bd44 100644 +--- a/src/Widgets/calendar/Calendar.vala ++++ b/src/Widgets/calendar/Calendar.vala +@@ -19,7 +19,7 @@ + + namespace DateTime.Widgets { + public class Calendar : Gtk.Box { +- private const string CALENDAR_EXEC = "/usr/bin/io.elementary.calendar"; ++ private const string CALENDAR_EXEC = "@elementary-calendar@"; + + ControlHeader heading; + CalendarView cal; diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix new file mode 100644 index 000000000000..ee5cd5118186 --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix @@ -0,0 +1,71 @@ +{ stdenv, fetchFromGitHub, fetchpatch, pantheon, pkgconfig, meson, python3 +, ninja, substituteAll, vala, gtk3, granite, wingpanel, evolution-data-server +, libical, libgee, libxml2, libsoup, gobject-introspection +, elementary-calendar, elementary-icon-theme, wrapGAppsHook }: + +stdenv.mkDerivation rec { + pname = "wingpanel-indicator-datetime"; + version = "2.1.3"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "1y7a4xjwl3bpls56ys6g3s6mh5b3qbjm2vw7b6n2i4x7a63c4cbh"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + }; + }; + + nativeBuildInputs = [ + gobject-introspection + libxml2 + meson + ninja + pkgconfig + python3 + vala + wrapGAppsHook + ]; + + buildInputs = [ + elementary-icon-theme + evolution-data-server + granite + gtk3 + libgee + libical + libsoup + wingpanel + ]; + + patches = [ + (substituteAll { + src = ./calendar-exec.patch; + elementary-calendar = "${elementary-calendar}/bin/io.elementary.calendar"; + }) + # Use "clock-format" GSettings key that's been moved to granite + (fetchpatch { + url = "https://src.fedoraproject.org/rpms/wingpanel-indicator-datetime/raw/c8d515b76aa812c141212d5515621a6febd781a3/f/00-move-clock-format-settings-to-granite.patch"; + sha256 = "1sq3aw9ckkm057rnrclnw9lyrxbpl37fyzfnbixi2q3ypr70n880"; + }) + ]; + + PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "lib/wingpanel"; + + postPatch = '' + chmod +x meson/post_install.py + patchShebangs meson/post_install.py + ''; + + meta = with stdenv.lib; { + description = "Date & Time Indicator for Wingpanel"; + homepage = https://github.com/elementary/wingpanel-indicator-datetime; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix new file mode 100644 index 000000000000..e2faccedbb70 --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix @@ -0,0 +1,57 @@ +{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja +, substituteAll, vala, gtk3, granite, libxml2, wingpanel, libgee +, xorg, libgnomekbd, gobject-introspection, elementary-icon-theme, wrapGAppsHook }: + +stdenv.mkDerivation rec { + pname = "wingpanel-indicator-keyboard"; + version = "2.1.1"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "0x0bdd9svw4sffx8pa0pqlh6mrj3fqp4mgrb4n7ys26k2w20ngnb"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + }; + }; + + nativeBuildInputs = [ + gobject-introspection + meson + ninja + libxml2 + pkgconfig + vala + wrapGAppsHook + ]; + + buildInputs = [ + elementary-icon-theme + granite + gtk3 + libgee + wingpanel + ]; + + patches = [ + (substituteAll { + src = ./fix-paths.patch; + libgnomekbd_path = "${libgnomekbd}/bin/"; + config = "${xorg.xkeyboardconfig}/share/X11/xkb/rules/evdev.xml"; + }) + ]; + + PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "lib/wingpanel"; + + meta = with stdenv.lib; { + description = "Keyboard Indicator for Wingpanel"; + homepage = https://github.com/elementary/wingpanel-indicator-keyboard; + license = licenses.lgpl21Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/fix-paths.patch b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/fix-paths.patch new file mode 100644 index 000000000000..58e6853e606e --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/fix-paths.patch @@ -0,0 +1,26 @@ +diff --git a/src/Indicator.vala b/src/Indicator.vala +index cd7ca49..0bef9c7 100644 +--- a/src/Indicator.vala ++++ b/src/Indicator.vala +@@ -94,7 +94,7 @@ public class Keyboard.Indicator : Wingpanel.Indicator { + private void show_keyboard_map () { + close (); + +- string command = "gkbd-keyboard-display \"--layout=" + layouts.get_current_with_variant () + "\""; ++ string command = "@libgnomekbd_path@gkbd-keyboard-display \"--layout=" + layouts.get_current_with_variant () + "\""; + + try { + AppInfo.create_from_commandline (command, null, AppInfoCreateFlags.NONE).launch (null, null); +diff --git a/src/LayoutsManager.vala b/src/LayoutsManager.vala +index 1bac80e..67df847 100644 +--- a/src/LayoutsManager.vala ++++ b/src/LayoutsManager.vala +@@ -97,7 +97,7 @@ public class Keyboard.Widgets.LayoutManager : Gtk.ScrolledWindow { + + public string? get_name_for_xkb_layout (string language, string? variant) { + debug ("get_name_for_xkb_layout (%s, %s)", language, variant); +- Xml.Doc* doc = Xml.Parser.parse_file ("/usr/share/X11/xkb/rules/evdev.xml"); ++ Xml.Doc* doc = Xml.Parser.parse_file ("@config@"); + if (doc == null) { + critical ("'evdev.xml' not found or permissions incorrect\n"); + return null; diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix new file mode 100644 index 000000000000..8cb71dd43d6d --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix @@ -0,0 +1,50 @@ +{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, vala +, gtk3, granite, networkmanager, networkmanagerapplet, wingpanel +, libgee, gobject-introspection, elementary-icon-theme, wrapGAppsHook }: + +stdenv.mkDerivation rec { + pname = "wingpanel-indicator-network"; + version = "2.2.1"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "0k039qqlpwhl34mdhwjqhp7bz8vi432p0zfxzcdhsjhglpk8srlw"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + }; + }; + + nativeBuildInputs = [ + gobject-introspection + meson + ninja + pkgconfig + vala + wrapGAppsHook + ]; + + buildInputs = [ + elementary-icon-theme + granite + gtk3 + libgee + networkmanager + networkmanagerapplet + wingpanel + ]; + + PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "lib/wingpanel"; + + meta = with stdenv.lib; { + description = "Network Indicator for Wingpanel"; + homepage = https://github.com/elementary/wingpanel-indicator-network; + license = licenses.lgpl21Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix new file mode 100644 index 000000000000..53754c31d874 --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix @@ -0,0 +1,49 @@ +{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, vala +, gtk3, granite, wingpanel, libgee, libxml2, gobject-introspection +, elementary-icon-theme, wrapGAppsHook }: + +stdenv.mkDerivation rec { + pname = "wingpanel-indicator-nightlight"; + version = "2.0.1"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "17pa048asbkhzz5945hjp96dnghdl72nqp1zq0b999nawnfrb339"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + }; + }; + + nativeBuildInputs = [ + gobject-introspection + libxml2 + meson + ninja + pkgconfig + vala + wrapGAppsHook + ]; + + buildInputs = [ + elementary-icon-theme + granite + gtk3 + libgee + wingpanel + ]; + + PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "lib/wingpanel"; + + meta = with stdenv.lib; { + description = "Night Light Indicator for Wingpanel"; + homepage = https://github.com/elementary/wingpanel-indicator-nightlight; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix new file mode 100644 index 000000000000..aff7d9891adf --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix @@ -0,0 +1,48 @@ +{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, vala, gtk3, granite +, wingpanel, libgee, libwnck3, gobject-introspection, elementary-icon-theme, wrapGAppsHook }: + +stdenv.mkDerivation rec { + pname = "wingpanel-indicator-notifications"; + version = "2.1.2"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "1960s3xcsx6yjlnk0csf1m66s1z1sj5rym9b2fy7pm2nan47z3ld"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + }; + }; + + nativeBuildInputs = [ + gobject-introspection + meson + ninja + pkgconfig + vala + wrapGAppsHook + ]; + + buildInputs = [ + elementary-icon-theme + granite + gtk3 + libgee + libwnck3 + wingpanel + ]; + + PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "lib/wingpanel"; + + meta = with stdenv.lib; { + description = "Notifications Indicator for Wingpanel"; + homepage = https://github.com/elementary/wingpanel-indicator-notifications; + license = licenses.lgpl21Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix new file mode 100644 index 000000000000..e6c5edd7ca68 --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix @@ -0,0 +1,57 @@ +{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, python3 +, ninja, vala, gtk3, granite, bamf, libgtop, udev, wingpanel +, libgee, gobject-introspection, elementary-icon-theme, wrapGAppsHook }: + +stdenv.mkDerivation rec { + pname = "wingpanel-indicator-power"; + version = "2.1.3"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "1rkqa27bsfai4psp19sy61in6730da0s7nds7dkcf06a0hvjvjc2"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + }; + }; + + nativeBuildInputs = [ + gobject-introspection + meson + ninja + pkgconfig + python3 + vala + wrapGAppsHook + ]; + + buildInputs = [ + bamf + elementary-icon-theme + granite + gtk3 + libgee + libgtop + udev + wingpanel + ]; + + PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "lib/wingpanel"; + + postPatch = '' + chmod +x meson/post_install.py + patchShebangs meson/post_install.py + ''; + + meta = with stdenv.lib; { + description = "Power Indicator for Wingpanel"; + homepage = https://github.com/elementary/wingpanel-indicator-power; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix new file mode 100644 index 000000000000..b910f6a71809 --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix @@ -0,0 +1,49 @@ +{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson +, ninja, vala, gtk3, granite, wingpanel, accountsservice +, libgee, gobject-introspection, elementary-icon-theme, wrapGAppsHook }: + +stdenv.mkDerivation rec { + pname = "wingpanel-indicator-session"; + version = "2.2.2"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "15ghhiabk74m7fm5pzr2qmdwpc330jczvvkwbf5pf7qczfyipjln"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + }; + }; + + nativeBuildInputs = [ + gobject-introspection + meson + ninja + pkgconfig + vala + wrapGAppsHook + ]; + + buildInputs = [ + accountsservice + elementary-icon-theme + granite + gtk3 + libgee + wingpanel + ]; + + PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "lib/wingpanel"; + + meta = with stdenv.lib; { + description = "Session Indicator for Wingpanel"; + homepage = https://github.com/elementary/wingpanel-indicator-session; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix new file mode 100644 index 000000000000..003e431bcf7e --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix @@ -0,0 +1,59 @@ +{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson +, python3, ninja, vala, gtk3, granite, wingpanel, libnotify +, pulseaudio, libcanberra-gtk3, libgee, libxml2, wrapGAppsHook +, gobject-introspection, elementary-icon-theme }: + +stdenv.mkDerivation rec { + pname = "wingpanel-indicator-sound"; + version = "2.1.2"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "0hxbr5dp8d1czq8ffw339r41c7srqb72vr48hxph8g091d3mcgcl"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + }; + }; + + nativeBuildInputs = [ + gobject-introspection + libxml2 + meson + ninja + pkgconfig + python3 + vala + wrapGAppsHook + ]; + + buildInputs = [ + elementary-icon-theme + granite + gtk3 + libcanberra-gtk3 + libgee + libnotify + pulseaudio + wingpanel + ]; + + PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "lib/wingpanel"; + + postPatch = '' + chmod +x meson/post_install.py + patchShebangs meson/post_install.py + ''; + + meta = with stdenv.lib; { + description = "Sound Indicator for Wingpanel"; + homepage = https://github.com/elementary/wingpanel-indicator-sound; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/desktop/wingpanel/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel/default.nix new file mode 100644 index 000000000000..a5ca227bbc20 --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/wingpanel/default.nix @@ -0,0 +1,61 @@ +{ stdenv, fetchFromGitHub, pantheon, wrapGAppsHook, pkgconfig, meson, ninja +, vala, gala, gtk3, libgee, granite, gettext, glib-networking, mutter, json-glib +, python3, gobject-introspection }: + +stdenv.mkDerivation rec { + pname = "wingpanel"; + version = "2.2.2"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "1knkqh9q6yp7qf27zi6ki20fq4w0ia2hklvv84ivfmfa0irz0j6r"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + }; + }; + + nativeBuildInputs = [ + gettext + glib-networking + gobject-introspection + meson + ninja + pkgconfig + python3 + vala + wrapGAppsHook + ]; + + buildInputs = [ + gala + granite + gtk3 + json-glib + libgee + mutter + ]; + + patches = [ ./indicators.patch ]; + + postPatch = '' + chmod +x meson/post_install.py + patchShebangs meson/post_install.py + ''; + + meta = with stdenv.lib; { + description = "The extensible top panel for Pantheon"; + longDescription = '' + Wingpanel is an empty container that accepts indicators as extensions, + including the applications menu. + ''; + homepage = https://github.com/elementary/wingpanel; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/desktop/wingpanel/indicators.patch b/pkgs/desktops/pantheon/desktop/wingpanel/indicators.patch new file mode 100644 index 000000000000..68a5fd532a8d --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/wingpanel/indicators.patch @@ -0,0 +1,21 @@ +diff --git a/lib/IndicatorManager.vala b/lib/IndicatorManager.vala +index a99a1ec..0ae7799 100644 +--- a/lib/IndicatorManager.vala ++++ b/lib/IndicatorManager.vala +@@ -115,7 +115,15 @@ public class Wingpanel.IndicatorManager : GLib.Object { + } + + /* load indicators */ +- var base_folder = File.new_for_path (Build.INDICATORS_DIR); ++ ++ var indicators_path = Environment.get_variable("WINGPANEL_INDICATORS_PATH"); ++ if (indicators_path != null) { ++ debug ("WINGPANEL_INDICATORS_PATH set to %s", indicators_path); ++ } else { ++ critical ("WINGPANEL_INDICATORS_PATH not set"); ++ } ++ ++ var base_folder = File.new_for_path (indicators_path); + + try { + monitor = base_folder.monitor_directory (FileMonitorFlags.NONE, null); diff --git a/pkgs/desktops/pantheon/desktop/wingpanel/wrapper.nix b/pkgs/desktops/pantheon/desktop/wingpanel/wrapper.nix new file mode 100644 index 000000000000..cfae604d3a53 --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/wingpanel/wrapper.nix @@ -0,0 +1,23 @@ +{ lib, makeWrapper, symlinkJoin, wingpanel, wingpanelIndicators, switchboard-with-plugs, indicators ? null }: + +let + selectedIndicators = if indicators == null then wingpanelIndicators else indicators; +in +symlinkJoin { + name = "${wingpanel.name}-with-indicators"; + + paths = [ wingpanel ] ++ selectedIndicators; + + buildInputs = [ makeWrapper ]; + + # We have to set SWITCHBOARD_PLUGS_PATH because wingpanel-applications-menu + # has a plugin to search switchboard settings + postBuild = '' + wrapProgram $out/bin/wingpanel \ + --set WINGPANEL_INDICATORS_PATH "$out/lib/wingpanel" \ + --set SWITCHBOARD_PLUGS_PATH "${switchboard-with-plugs}/lib/switchboard" \ + --suffix XDG_DATA_DIRS : ${lib.concatMapStringsSep ":" (indicator: ''${indicator}/share/gsettings-schemas/${indicator.name}'') selectedIndicators} + ''; + + inherit (wingpanel) meta; +} diff --git a/pkgs/desktops/pantheon/granite/02-datetime-clock-format-gsettings.patch b/pkgs/desktops/pantheon/granite/02-datetime-clock-format-gsettings.patch new file mode 100644 index 000000000000..7b7c9871133a --- /dev/null +++ b/pkgs/desktops/pantheon/granite/02-datetime-clock-format-gsettings.patch @@ -0,0 +1,129 @@ +From 698e34dd6e8d98a1818ae00d3313b69a86340771 Mon Sep 17 00:00:00 2001 +From: Fabio Valentini +Date: Mon, 17 Dec 2018 14:58:14 +0100 +Subject: DateTime: include "clock-format" gsettings key here + +--- + data/io.elementary.granite.gschema.xml | 15 +++++++++++++++ + data/meson.build | 4 ++++ + lib/DateTime.vala | 4 ++-- + meson.build | 11 +++++++++++ + meson/post_install.py | 5 +++++ + 5 files changed, 37 insertions(+), 2 deletions(-) + create mode 100644 data/io.elementary.granite.gschema.xml + create mode 100644 data/meson.build + +diff --git a/data/io.elementary.granite.gschema.xml b/data/io.elementary.granite.gschema.xml +new file mode 100644 +index 0000000..1540fb0 +--- /dev/null ++++ b/data/io.elementary.granite.gschema.xml +@@ -0,0 +1,15 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ "12h" ++ Whether the clock displays in 12h or 24h format ++ Whether the clock displays in 12h or 24h format ++ ++ ++ +diff --git a/data/meson.build b/data/meson.build +new file mode 100644 +index 0000000..96cc3b1 +--- /dev/null ++++ b/data/meson.build +@@ -0,0 +1,4 @@ ++install_data( ++ rdnn + '.gschema.xml', ++ install_dir: schema_dir ++) +diff --git a/lib/DateTime.vala b/lib/DateTime.vala +index aea2ec6..3d81191 100644 +--- a/lib/DateTime.vala ++++ b/lib/DateTime.vala +@@ -104,13 +104,13 @@ namespace Granite.DateTime { + } + + /** +- * Gets the //clock-format// key from //org.gnome.desktop.interface// schema ++ * Gets the //clock-format// key from //io.elementary.granite// schema + * and determines if the clock format is 12h based + * + * @return true if the clock format is 12h based, false otherwise. + */ + private static bool is_clock_format_12h () { +- var h24_settings = new Settings ("io.elementary.desktop.wingpanel.datetime"); ++ var h24_settings = new Settings ("io.elementary.granite"); + var format = h24_settings.get_string ("clock-format"); + return (format.contains ("12h")); + } +diff --git a/meson.build b/meson.build +index 8b98eeb..f0abcdf 100644 +--- a/meson.build ++++ b/meson.build +@@ -4,6 +4,8 @@ project( + version: '5.2.2' + ) + ++rdnn = 'io.elementary.' + meson.project_name() ++ + if meson.get_compiler('vala').version().version_compare('<0.40.0') + error('vala compiler version 0.40.0 or newer is required.') + endif +@@ -52,10 +54,18 @@ icons_dir = join_paths( + 'hicolor' + ) + ++schema_dir = join_paths( ++ get_option('prefix'), ++ get_option('datadir'), ++ 'glib-2.0', ++ 'schemas' ++) ++ + pkgconfig = import('pkgconfig') + i18n = import('i18n') + + subdir('lib') ++subdir('data') + subdir('demo') + subdir('icons') + subdir('po') +@@ -68,5 +78,6 @@ endif + meson.add_install_script( + join_paths(meson.current_source_dir(), 'meson', 'post_install.py'), + '--iconsdir', icons_dir, ++ '--schemadir', schema_dir, + ) + +diff --git a/meson/post_install.py b/meson/post_install.py +index 1864515..5313f96 100755 +--- a/meson/post_install.py ++++ b/meson/post_install.py +@@ -6,11 +6,16 @@ import subprocess + + parser = argparse.ArgumentParser() + parser.add_argument("--iconsdir", action="store", required=True) ++parser.add_argument("--schemadir", action="store", required=True) + args = vars(parser.parse_args()) + + icons_dir = args["iconsdir"] ++schema_dir = args["schemadir"] + + if not os.environ.get('DESTDIR'): + print('Compiling icon cache ...') + subprocess.run(['gtk-update-icon-cache', icons_dir]) + ++ print('Compiling GSettings schemas ...') ++ subprocess.run(['glib-compile-schemas', schema_dir]) ++ +-- +2.20.1 + diff --git a/pkgs/desktops/pantheon/granite/default.nix b/pkgs/desktops/pantheon/granite/default.nix new file mode 100644 index 000000000000..fe0e880ccb2c --- /dev/null +++ b/pkgs/desktops/pantheon/granite/default.nix @@ -0,0 +1,69 @@ +{ stdenv, fetchFromGitHub, fetchpatch, python3, meson, ninja, vala, pkgconfig, gobject-introspection, libgee, pantheon, gtk3, glib, gettext, hicolor-icon-theme, wrapGAppsHook }: + +stdenv.mkDerivation rec { + pname = "granite"; + version = "5.2.2"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "1zp0pp5v3j8k6ail724p7h5jj2zmznj0a2ybwfw5sspfdw5bfydh"; + }; + + patches = [ + # Add Meson support that hit after 5.2.2 + (fetchpatch { + url = "https://github.com/elementary/granite/commit/2066b377226cf327cb2d5399b6b40a2d36d47b11.patch"; + sha256 = "1bxjgq8wvl1sb79cwhmh9kwawnkkfn7c5q67cyz1fjxmamwyyi85"; + }) + (fetchpatch { + url = "https://github.com/elementary/granite/commit/f1b29f52e3aaf0f5d6bba44c42617da265f679c8.patch"; + sha256 = "0cdp9ny6fj1lpcirab641p1qn1rbsvnsaa03hnr6zsdpim96jlvs"; + }) + # Resolve the circular dependency between granite and the datetime wingpanel indicator + # See: https://github.com/elementary/granite/pull/242 + ./02-datetime-clock-format-gsettings.patch + ]; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + }; + }; + + nativeBuildInputs = [ + gettext + gobject-introspection + meson + ninja + pkgconfig + python3 + vala + wrapGAppsHook + ]; + + buildInputs = [ + glib + gtk3 + hicolor-icon-theme + libgee + ]; + + postPatch = '' + chmod +x meson/post_install.py + patchShebangs meson/post_install.py + ''; + + meta = with stdenv.lib; { + description = "An extension to GTK+ used by elementary OS"; + longDescription = '' + Granite is a companion library for GTK+ and GLib. Among other things, it provides complex widgets and convenience functions + designed for use in apps built for elementary OS. + ''; + homepage = https://github.com/elementary/granite; + license = licenses.lgpl3Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/services/cerbere/default.nix b/pkgs/desktops/pantheon/services/cerbere/default.nix new file mode 100644 index 000000000000..59983469c114 --- /dev/null +++ b/pkgs/desktops/pantheon/services/cerbere/default.nix @@ -0,0 +1,48 @@ +{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, python3, ninja, glib, libgee, vala, gobject-introspection, wrapGAppsHook }: + +stdenv.mkDerivation rec { + pname = "cerbere"; + version = "0.2.4"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "0f9jr6q5z6nir5b77f96wm9rx6r6s9i0sr1yrymg3n7jyjgrvdwp"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + }; + }; + + nativeBuildInputs = [ + gobject-introspection + meson + ninja + pkgconfig + python3 + vala + wrapGAppsHook + ]; + + buildInputs = [ + glib + libgee + ]; + + postPatch = '' + chmod +x meson/post_install.py + patchShebangs meson/post_install.py + ''; + + meta = with stdenv.lib; { + description = "A simple service to ensure uptime of essential processes"; + homepage = https://github.com/elementary/cerbere; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; + +} diff --git a/pkgs/desktops/pantheon/services/contractor/default.nix b/pkgs/desktops/pantheon/services/contractor/default.nix new file mode 100644 index 000000000000..a979b1341954 --- /dev/null +++ b/pkgs/desktops/pantheon/services/contractor/default.nix @@ -0,0 +1,45 @@ +{ stdenv, fetchFromGitHub, pantheon, meson, python3, ninja, pkgconfig, vala, glib, libgee, dbus, glib-networking, gobject-introspection }: + +stdenv.mkDerivation rec { + pname = "contractor"; + version = "0.3.4"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "1jzqv7pglhhyrkj1pfk1l624zn1822wyl5dp6gvwn4sk3iqxwwhl"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + }; + }; + + nativeBuildInputs = [ + dbus + gobject-introspection + meson + ninja + pkgconfig + python3 + vala + ]; + + buildInputs = [ + glib + glib-networking + libgee + ]; + + PKG_CONFIG_DBUS_1_SESSION_BUS_SERVICES_DIR = "share/dbus-1/services"; + + meta = with stdenv.lib; { + description = "A desktop-wide extension service used by elementary OS"; + homepage = https://github.com/elementarycontractor; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix b/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix new file mode 100644 index 000000000000..85476b04805f --- /dev/null +++ b/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix @@ -0,0 +1,58 @@ +{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, python3, ninja, vala +, desktop-file-utils, gtk3, granite, libgee, gcr, webkitgtk, gobject-introspection, wrapGAppsHook }: + +stdenv.mkDerivation rec { + pname = "capnet-assist"; + version = "2.2.2"; + + name = "elementary-${pname}-${version}"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "138fxijnnp0gqzj7h0p9r4crpafas1kmvb3r9bb76mmygbdixkgh"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + attrPath = "elementary-${pname}"; + }; + }; + + nativeBuildInputs = [ + desktop-file-utils + gobject-introspection + meson + ninja + pkgconfig + python3 + vala + wrapGAppsHook + ]; + + buildInputs = [ + gcr + granite + gtk3 + libgee + webkitgtk + ]; + + # Not useful here or in elementary - See: https://github.com/elementary/capnet-assist/issues/3 + patches = [ ./remove-capnet-test.patch ]; + + postPatch = '' + chmod +x meson/post_install.py + patchShebangs meson/post_install.py + ''; + + meta = with stdenv.lib; { + description = "A small WebKit app that assists a user with login when a captive portal is detected"; + homepage = https://github.com/elementary/capnet-assist; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/services/elementary-capnet-assist/remove-capnet-test.patch b/pkgs/desktops/pantheon/services/elementary-capnet-assist/remove-capnet-test.patch new file mode 100644 index 000000000000..a59c74f22b3b --- /dev/null +++ b/pkgs/desktops/pantheon/services/elementary-capnet-assist/remove-capnet-test.patch @@ -0,0 +1,13 @@ +diff --git a/meson.build b/meson.build +index 46c594b..ba0ea10 100644 +--- a/meson.build ++++ b/meson.build +@@ -33,8 +33,3 @@ meson.add_install_script('meson/post_install.py') + + subdir('data') + subdir('po') +- +-install_data( +- '90captive_portal_test', +- install_dir: join_paths(get_option('sysconfdir'), 'NetworkManager', 'dispatcher.d') +-) diff --git a/pkgs/desktops/pantheon/services/elementary-dpms-helper/default.nix b/pkgs/desktops/pantheon/services/elementary-dpms-helper/default.nix new file mode 100644 index 000000000000..4dab02d50834 --- /dev/null +++ b/pkgs/desktops/pantheon/services/elementary-dpms-helper/default.nix @@ -0,0 +1,57 @@ +{ stdenv, fetchFromGitHub, pantheon, makeWrapper, lib, meson, ninja, desktop-file-utils, glib, coreutils, elementary-settings-daemon, wrapGAppsHook }: + +stdenv.mkDerivation rec { + pname = "dpms-helper"; + version = "1.0"; + + name = "elementary-${pname}-${version}"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "0svfp0qyb6nx4mjl3jx4aqmb4x24m25jpi75mdis3yfr3c1xz9nh"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + attrPath = "elementary-${pname}"; + }; + }; + + nativeBuildInputs = [ + desktop-file-utils + makeWrapper + meson + ninja + wrapGAppsHook + ]; + + buildInputs = [ + elementary-settings-daemon + glib + ]; + + preFixup = '' + gappsWrapperArgs+=(--prefix PATH : "${stdenv.lib.makeBinPath [ glib.dev coreutils ]}") + ''; + + postFixup = '' + substituteInPlace $out/etc/xdg/autostart/io.elementary.dpms-helper.desktop \ + --replace "Exec=io.elementary.dpms-helper" "Exec=$out/bin/io.elementary.dpms-helper" + ''; + + # See: https://github.com/elementary/dpms-helper/pull/10 + postInstall = '' + ${glib.dev}/bin/glib-compile-schemas $out/share/glib-2.0/schemas + ''; + + meta = with stdenv.lib; { + description = "Sets DPMS settings found in org.pantheon.dpms"; + homepage = https://github.com/elementary/dpms-helper; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix b/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix new file mode 100644 index 000000000000..99ca20afe988 --- /dev/null +++ b/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix @@ -0,0 +1,117 @@ +{ fetchurl, fetchgit, substituteAll, stdenv, meson, ninja, pkgconfig, gnome3, perl, gettext, glib, libnotify, lcms2, libXtst +, libxkbfile, libpulseaudio, alsaLib, libcanberra-gtk3, upower, colord, libgweather, polkit +, geoclue2, librsvg, xf86_input_wacom, udev, libgudev, libwacom, libxslt, libxml2, networkmanager +, docbook_xsl, wrapGAppsHook, python3, ibus, xkeyboard_config, tzdata, nss, pantheon, accountsservice }: + +stdenv.mkDerivation rec { + pname = "elementary-settings-daemon"; + version = "3.30.2"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-settings-daemon/${stdenv.lib.versions.majorMinor version}/gnome-settings-daemon-${version}.tar.xz"; + sha256 = "0c663csa3gnsr6wm0xfll6aani45snkdj7zjwjfzcwfh8w4a3z12"; + }; + + # Source for ubuntu's patchset + src2 = fetchgit { + url = "https://git.launchpad.net/~ubuntu-desktop/ubuntu/+source/gnome-settings-daemon"; + rev = "refs/tags/ubuntu/${version}-1ubuntu1"; + sha256 = "02awkhw6jqm7yh812mw0nsdmsljfi8ksz8mvd2qpns5pcv002g2c"; + }; + + # We've omitted the 53_sync_input_sources_to_accountsservice patch because it breaks the build. + # See: https://gist.github.com/worldofpeace/2f152a20b7c47895bb93239fce1c9f52 + # + # Also omit ubuntu_calculator_snap.patch as that's obviously not useful here. + patches = let patchPath = "${src2}/debian/patches"; in [ + (substituteAll { + src = ./fix-paths.patch; + inherit tzdata; + }) + "${patchPath}/45_suppress-printer-may-not-be-connected-notification.patch" + "${patchPath}/64_restore_terminal_keyboard_shortcut_schema.patch" + "${patchPath}/correct_logout_action.patch" + "${patchPath}/ubuntu-lid-close-suspend.patch" + "${patchPath}/revert-wacom-migration.patch" + "${patchPath}/revert-gsettings-removals.patch" + "${patchPath}/revert-mediakeys-dbus-interface-drop.patch" + "${patchPath}/ubuntu_ibus_configs.patch" + (fetchurl { + url = "https://github.com/elementary/os-patches/raw/6975d1c254cb6ab913b8e2396877203aea8eaa65/debian/patches/elementary-dpms.patch"; + sha256 = "0kh508ppiv4nvkg30gmw85cljlfq1bvkzhvf1iaxw0snb0mwgsxi"; + }) + ]; + + postPatch = '' + for f in gnome-settings-daemon/codegen.py plugins/power/gsd-power-constants-update.pl meson_post_install.py; do + chmod +x $f + patchShebangs $f + done + ''; + + postFixup = '' + for f in $out/etc/xdg/autostart/*; do mv "$f" "''${f%.desktop}-pantheon.desktop"; done + + for autostart in $(grep -rl "OnlyShowIn=GNOME;" $out/etc/xdg/autostart) + do + echo "Patching OnlyShowIn to Pantheon in: $autostart" + sed -i "s,OnlyShowIn=GNOME;,OnlyShowIn=Pantheon;," $autostart + done + + # This breaks lightlocker https://github.com/elementary/session-settings/commit/b0e7a2867608c3a3916f9e4e21a68264a20e44f8 + rm $out/etc/xdg/autostart/org.gnome.SettingsDaemon.ScreensaverProxy-pantheon.desktop + ''; + + nativeBuildInputs = [ + docbook_xsl + gettext + libxml2 + libxslt + meson + ninja + perl + pkgconfig + python3 + wrapGAppsHook + ]; + + buildInputs = with gnome3; [ + accountsservice + alsaLib + colord + geoclue2 + geocode-glib + glib + gnome-desktop + gsettings-desktop-schemas + gtk + ibus + lcms2 + libXtst + libcanberra-gtk3 + libgudev + libgweather + libnotify + libpulseaudio + librsvg + libwacom + libxkbfile + networkmanager + nss + polkit + udev + upower + xf86_input_wacom + xkeyboard_config + ]; + + mesonFlags = [ + "-Dudev_dir=${placeholder "out"}/lib/udev" + ]; + + meta = with stdenv.lib; { + license = licenses.gpl2Plus; + maintainers = pantheon.maintainers; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/pantheon/services/elementary-settings-daemon/fix-paths.patch b/pkgs/desktops/pantheon/services/elementary-settings-daemon/fix-paths.patch new file mode 100644 index 000000000000..2229302cab7c --- /dev/null +++ b/pkgs/desktops/pantheon/services/elementary-settings-daemon/fix-paths.patch @@ -0,0 +1,15 @@ +--- a/plugins/datetime/tz.h ++++ b/plugins/datetime/tz.h +@@ -27,11 +27,7 @@ + + #include + +-#ifndef __sun +-# define TZ_DATA_FILE "/usr/share/zoneinfo/zone.tab" +-#else +-# define TZ_DATA_FILE "/usr/share/lib/zoneinfo/tab/zone_sun.tab" +-#endif ++#define TZ_DATA_FILE "@tzdata@/share/zoneinfo/zone.tab" + + typedef struct _TzDB TzDB; + typedef struct _TzLocation TzLocation; diff --git a/pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix b/pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix new file mode 100644 index 000000000000..2487c4ba3af4 --- /dev/null +++ b/pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix @@ -0,0 +1,49 @@ +{ stdenv, fetchFromGitHub, fetchpatch, pantheon, pkgconfig, meson, ninja, vala, glib +, gtk3, libgee, desktop-file-utils, geoclue2, gobject-introspection, wrapGAppsHook }: + +stdenv.mkDerivation rec { + pname = "pantheon-agent-geoclue2"; + version = "1.0.1"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "0fww65dnbg9zn0gy1q2db39kjra50ykzw05pmn9iwxkijyxi8hm5"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + }; + }; + + nativeBuildInputs = [ + desktop-file-utils + gobject-introspection + meson + ninja + pkgconfig + vala + wrapGAppsHook + ]; + + buildInputs = [ + geoclue2 + gtk3 + libgee + ]; + + # This should be provided by a post_install.py script - See -> https://github.com/elementary/pantheon-agent-geoclue2/pull/21 + postInstall = '' + ${glib.dev}/bin/glib-compile-schemas $out/share/glib-2.0/schemas + ''; + + meta = with stdenv.lib; { + description = "Pantheon Geoclue2 Agent"; + homepage = https://github.com/elementary/pantheon-agent-geoclue2; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix b/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix new file mode 100644 index 000000000000..4fdaa4a8bf9f --- /dev/null +++ b/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix @@ -0,0 +1,43 @@ +{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja +, vala, gtk3, libgee, polkit, gobject-introspection, wrapGAppsHook }: + +stdenv.mkDerivation rec { + pname = "pantheon-agent-polkit"; + version = "0.1.6"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "1g9l2jzpvv0dbvxh93w98a7ijsfqv3s3382li4s256179gihhd67"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + }; + }; + + nativeBuildInputs = [ + gobject-introspection + meson + ninja + pkgconfig + vala + wrapGAppsHook + ]; + + buildInputs = [ + gtk3 + libgee + polkit + ]; + + meta = with stdenv.lib; { + description = "Polkit Agent for the Pantheon Desktop"; + homepage = https://github.com/elementary/pantheon-agent-polkit; + license = licenses.lgpl21Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/update.nix b/pkgs/desktops/pantheon/update.nix new file mode 100644 index 000000000000..48fd2f2bf858 --- /dev/null +++ b/pkgs/desktops/pantheon/update.nix @@ -0,0 +1,18 @@ +{ stdenv, writeScript, runCommand, nix, bash, git, jq, nix-prefetch-scripts, coreutils, common-updater-scripts, gnugrep, gnused, curl }: +{ repoName, attrPath ? repoName, versionPolicy ? "release" }: +let + script = ./update.sh; + + updateScript = runCommand "update.sh" { + inherit bash git jq nix coreutils gnugrep gnused curl; + # These weren't being substituted + nix_prefetch_scripts = nix-prefetch-scripts; + common_updater_scripts = common-updater-scripts; + } '' + substituteAll ${script} $out + chmod +x $out + ''; + + versionFlag = { "release" = "-r"; "master" = "-m"; }.${versionPolicy}; + +in [ updateScript versionFlag repoName attrPath ] diff --git a/pkgs/desktops/pantheon/update.sh b/pkgs/desktops/pantheon/update.sh new file mode 100755 index 000000000000..9bbbe2600344 --- /dev/null +++ b/pkgs/desktops/pantheon/update.sh @@ -0,0 +1,223 @@ +#!@bash@/bin/bash +PATH=@bash@/bin:@nix_prefetch_scripts@/bin:@common_updater_scripts@/bin:@git@/bin:@jq@/bin:@nix@/bin:@gnugrep@/bin:@gnused@/bin:@curl@/bin:$PATH +#!/usr/bin/env bash + +set -eu -o pipefail + +# +# ─── HOW TO USE ───────────────────────────────────────────────────────────────── +# + +function usage ( ) { + cat < +EOF +} + +# +# ─── POINTS YOU IN THE RIGHT DIRECTION ────────────────────────────────────────── +# + + function usage_tip ( ) { + echo 'run `update.sh -h` for usage instructions' >&2 + exit 1 + } + +# +# ─── OPTIONS: RELEASE | MASTER ──────────────────────────────────────────────────── +# + + while getopts ":hrm" opt; do + case $opt in + r) + release=1 + master=0 + ;; + m) + master=1 + release=0 + ;; + h) + usage + exit + ;; + ?) + echo "Invalid option: -$OPTARG" >&2 + usage_tip + ;; + esac + done + + shift $((OPTIND-1)) + +# +# ─── FAIL WITH MESSAGE AND NON-ZERO EXIT STATUS ───────────────────────────────── +# + + function fail ( ) { + echo "$1" >&2 + exit 1 + } + +# +# ─── UPDATES PACKAGE TO LATEST TAGGED RELEASE ─────────────────────────────── +# + + function update_to_latest_release ( ) { + repo_name="$1" + attr="$2" + + version=$(get_latest_tag "$repo_name") + fetch=$(fetch "$repo_name" "refs/tags/${version}") + sha256=$(get_hash "${fetch}") + + update-source-version "pantheon.$attr" "$version" "$sha256" + + nix_file=$(get_file_path $attr) + + if [ ! -f "$nix_file" ]; then + fail "Couldn't evaluate 'pantheon.$attr.meta.position' to locate the .nix file!" + fi + + correct_rev "$attr" "$nix_file" "version" + } + +# +# ─── UPDATES PACKAGE TO MASTER ────────────────────────────────────────────────── +# + + function update_to_master ( ) { + repo_name="$1" + attr="$2" + + fetch=$(fetch "$repo_name" "refs/heads/master") + + version=$(get_version "$fetch") + sha256=$(get_hash "$fetch") + proper_version=$(get_master_date "$fetch") + + update-source-version "pantheon.$attr" "$proper_version" "$sha256" + + nix_file=$(get_file_path $attr) + + if [ ! -f "$nix_file" ]; then + fail "Couldn't evaluate 'pantheon.$attr.meta.position' to locate the .nix file!" + fi + + correct_rev "$attr" "$nix_file" '"'$version'"' + } + +# +# ─── GETS THE LATEST TAGGED RELEASE NAME FROM GITHUB ───────────────────── +# + + function get_latest_tag ( ) { + repo_name="$1" + + # Using github release api because sorting this repo just doesn't work because of old git sillyness + # Also too lazy to care to adapt `git ls-remote` command to work with it + if [ $repo_name == "switchboard-plug-pantheon-shell" ]; then + curl --silent --show-error --fail -X GET "https://api.github.com/repos/elementary/$repo_name/releases/latest" | jq -r '.tag_name' + else + git ls-remote --tags --sort="v:refname" "https://github.com/elementary/$repo_name" | tail -n1 | sed 's/.*\///; s/\^{}//' + fi + } + +# +# ─── FETCHES REPO AND RETURNS RELEVANT INFORMATION ────────────────── +# + + function fetch ( ) { + repo_name="$1" + version="$2" + + base_url="https://github.com/elementary" + full_url="$base_url/$repo_name" + + nix-prefetch-git --quiet --no-deepClone --url "$full_url" --rev "$version" + } + +# +# ─── PARSES GIT REVISION FROM FETCH ───────────────────────────────────────────── +# + + function get_version ( ) { + fetch_info="$1" + + echo "$fetch_info" | jq -r '.rev' + } + +# +# ─── PARSES HASH FROM FETCH ───────────────────────────────────────────────────── +# + + function get_hash ( ) { + fetch_info="$1" + + echo "$fetch_info" | jq -r '.sha256' + } + +# +# ─── PARSES DATE FROM FETCH AND NORMALIZES IT TO NIXPKGS STANDARD ─────────────── +# + + function get_master_date ( ) { + fetch_info="$1" + + full_date=$(echo "$fetch_info" | jq -r '.date') + short_date=$(date -d "$full_date" +"%Y-%m-%d") + + echo "unstable-$short_date" + } + +# +# ─── RETURN NIX EXPRESSION PATH ───────────────────────────────────────────────── +# + + function get_file_path () { + attr="$1" + + nix-instantiate --eval --strict -A "pantheon.$attr.meta.position" | sed -re 's/^"(.*):[0-9]+"$/\1/' + } + +# +# ─── CORRECTS REV VERSION ─────────────────────────────────────────────────────────── +# + + function correct_rev ( ) { + attr="$1" + nix_file="$2" + rev="$3" + + check_pattern1='^\s*rev\s*=\s*"[0-9a-f]{5,40}"' + check_pattern2='^\s*rev\s*=\s*version' + + replace_pattern1='/\brev\b\s*=/ s|\"[0-9a-f]{5,40}\"|'$rev'|' + replace_pattern2='/\brev\b\s*=/ s|version|'$rev'|' + + if [ $(grep -c -P "$check_pattern1" "$nix_file") = 1 ]; then + pattern="$replace_pattern1" + elif [ $(grep -c -P "$check_pattern2" "$nix_file") = 1 ]; then + pattern="$replace_pattern2" + else + fail "Couldn't figure out where out where to patch in the correct version in pantheon.$attr!" + fi + + sed -i.bak "$nix_file" -re "$pattern" + rm -f "$nix_file.bak" + } + + +# +# ─── WHETHER TO UPDATE TO RELEASE OR MASTER ────────────────────────────────── +# + + if [ $release = 1 ]; then + update_to_latest_release $1 $2 + elif [ $master = 1 ]; then + update_to_master $1 $2 + else + exit 1 + fi + +# ──────────────────────────────────────────────────────────────────────────────── diff --git a/pkgs/development/libraries/granite/02-datetime-clock-format-gsettings.patch b/pkgs/development/libraries/granite/02-datetime-clock-format-gsettings.patch deleted file mode 100644 index 7b7c9871133a..000000000000 --- a/pkgs/development/libraries/granite/02-datetime-clock-format-gsettings.patch +++ /dev/null @@ -1,129 +0,0 @@ -From 698e34dd6e8d98a1818ae00d3313b69a86340771 Mon Sep 17 00:00:00 2001 -From: Fabio Valentini -Date: Mon, 17 Dec 2018 14:58:14 +0100 -Subject: DateTime: include "clock-format" gsettings key here - ---- - data/io.elementary.granite.gschema.xml | 15 +++++++++++++++ - data/meson.build | 4 ++++ - lib/DateTime.vala | 4 ++-- - meson.build | 11 +++++++++++ - meson/post_install.py | 5 +++++ - 5 files changed, 37 insertions(+), 2 deletions(-) - create mode 100644 data/io.elementary.granite.gschema.xml - create mode 100644 data/meson.build - -diff --git a/data/io.elementary.granite.gschema.xml b/data/io.elementary.granite.gschema.xml -new file mode 100644 -index 0000000..1540fb0 ---- /dev/null -+++ b/data/io.elementary.granite.gschema.xml -@@ -0,0 +1,15 @@ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ "12h" -+ Whether the clock displays in 12h or 24h format -+ Whether the clock displays in 12h or 24h format -+ -+ -+ -diff --git a/data/meson.build b/data/meson.build -new file mode 100644 -index 0000000..96cc3b1 ---- /dev/null -+++ b/data/meson.build -@@ -0,0 +1,4 @@ -+install_data( -+ rdnn + '.gschema.xml', -+ install_dir: schema_dir -+) -diff --git a/lib/DateTime.vala b/lib/DateTime.vala -index aea2ec6..3d81191 100644 ---- a/lib/DateTime.vala -+++ b/lib/DateTime.vala -@@ -104,13 +104,13 @@ namespace Granite.DateTime { - } - - /** -- * Gets the //clock-format// key from //org.gnome.desktop.interface// schema -+ * Gets the //clock-format// key from //io.elementary.granite// schema - * and determines if the clock format is 12h based - * - * @return true if the clock format is 12h based, false otherwise. - */ - private static bool is_clock_format_12h () { -- var h24_settings = new Settings ("io.elementary.desktop.wingpanel.datetime"); -+ var h24_settings = new Settings ("io.elementary.granite"); - var format = h24_settings.get_string ("clock-format"); - return (format.contains ("12h")); - } -diff --git a/meson.build b/meson.build -index 8b98eeb..f0abcdf 100644 ---- a/meson.build -+++ b/meson.build -@@ -4,6 +4,8 @@ project( - version: '5.2.2' - ) - -+rdnn = 'io.elementary.' + meson.project_name() -+ - if meson.get_compiler('vala').version().version_compare('<0.40.0') - error('vala compiler version 0.40.0 or newer is required.') - endif -@@ -52,10 +54,18 @@ icons_dir = join_paths( - 'hicolor' - ) - -+schema_dir = join_paths( -+ get_option('prefix'), -+ get_option('datadir'), -+ 'glib-2.0', -+ 'schemas' -+) -+ - pkgconfig = import('pkgconfig') - i18n = import('i18n') - - subdir('lib') -+subdir('data') - subdir('demo') - subdir('icons') - subdir('po') -@@ -68,5 +78,6 @@ endif - meson.add_install_script( - join_paths(meson.current_source_dir(), 'meson', 'post_install.py'), - '--iconsdir', icons_dir, -+ '--schemadir', schema_dir, - ) - -diff --git a/meson/post_install.py b/meson/post_install.py -index 1864515..5313f96 100755 ---- a/meson/post_install.py -+++ b/meson/post_install.py -@@ -6,11 +6,16 @@ import subprocess - - parser = argparse.ArgumentParser() - parser.add_argument("--iconsdir", action="store", required=True) -+parser.add_argument("--schemadir", action="store", required=True) - args = vars(parser.parse_args()) - - icons_dir = args["iconsdir"] -+schema_dir = args["schemadir"] - - if not os.environ.get('DESTDIR'): - print('Compiling icon cache ...') - subprocess.run(['gtk-update-icon-cache', icons_dir]) - -+ print('Compiling GSettings schemas ...') -+ subprocess.run(['glib-compile-schemas', schema_dir]) -+ --- -2.20.1 - diff --git a/pkgs/development/libraries/granite/default.nix b/pkgs/development/libraries/granite/default.nix deleted file mode 100644 index eacb84e33616..000000000000 --- a/pkgs/development/libraries/granite/default.nix +++ /dev/null @@ -1,63 +0,0 @@ -{ stdenv, fetchFromGitHub, fetchpatch, python3, meson, ninja, vala_0_40, pkgconfig, gobject-introspection, gnome3, gtk3, glib, gettext, hicolor-icon-theme, wrapGAppsHook }: - -stdenv.mkDerivation rec { - pname = "granite"; - version = "5.2.2"; - - src = fetchFromGitHub { - owner = "elementary"; - repo = pname; - rev = version; - sha256 = "1zp0pp5v3j8k6ail724p7h5jj2zmznj0a2ybwfw5sspfdw5bfydh"; - }; - - patches = [ - # Add Meson support that hit after 5.2.2 - (fetchpatch { - url = "https://github.com/elementary/granite/commit/2066b377226cf327cb2d5399b6b40a2d36d47b11.patch"; - sha256 = "1bxjgq8wvl1sb79cwhmh9kwawnkkfn7c5q67cyz1fjxmamwyyi85"; - }) - (fetchpatch { - url = "https://github.com/elementary/granite/commit/f1b29f52e3aaf0f5d6bba44c42617da265f679c8.patch"; - sha256 = "0cdp9ny6fj1lpcirab641p1qn1rbsvnsaa03hnr6zsdpim96jlvs"; - }) - # Resolve the circular dependency between granite and the datetime wingpanel indicator - # See: https://github.com/elementary/granite/pull/242 - ./02-datetime-clock-format-gsettings.patch - ]; - - nativeBuildInputs = [ - gettext - gobject-introspection - meson - ninja - pkgconfig - python3 - vala_0_40 # should be `elementary.vala` when elementary attribute set is merged - wrapGAppsHook - ]; - - buildInputs = [ - glib - gtk3 - hicolor-icon-theme - gnome3.libgee - ]; - - postPatch = '' - chmod +x meson/post_install.py - patchShebangs meson/post_install.py - ''; - - meta = with stdenv.lib; { - description = "An extension to GTK+ used by elementary OS"; - longDescription = '' - Granite is a companion library for GTK+ and GLib. Among other things, it provides complex widgets and convenience functions - designed for use in apps built for elementary OS. - ''; - homepage = https://github.com/elementary/granite; - license = licenses.lgpl3Plus; - platforms = platforms.linux; - maintainers = with maintainers; [ vozz worldofpeace ]; - }; -} diff --git a/pkgs/tools/misc/hashit/default.nix b/pkgs/tools/misc/hashit/default.nix index 0cb839c26ffc..f1f2fd9aa44d 100644 --- a/pkgs/tools/misc/hashit/default.nix +++ b/pkgs/tools/misc/hashit/default.nix @@ -1,11 +1,9 @@ -{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, cmake, vala_0_40, python3, gnome3, gtk3, granite, gobject-introspection, desktop-file-utils, wrapGAppsHook }: +{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, cmake, pantheon, python3, gnome3, gtk3, gobject-introspection, desktop-file-utils, wrapGAppsHook }: stdenv.mkDerivation rec { pname = "hashit"; version = "1.0.0"; - name = "${pname}-${version}"; - src = fetchFromGitHub { owner = "artemanufrij"; repo = pname; @@ -20,14 +18,14 @@ stdenv.mkDerivation rec { ninja pkgconfig python3 - vala_0_40 # should be `elementary.vala` when elementary attribute set is merged + pantheon.vala wrapGAppsHook ]; buildInputs = [ - gnome3.defaultIconTheme # should be `elementary.defaultIconTheme`when elementary attribute set is merged + pantheon.elementary-icon-theme gnome3.libgee - granite + pantheon.granite gtk3 ]; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 817974d9a251..860db43fce6c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -10224,7 +10224,6 @@ in gnome-menus = callPackage ../development/libraries/gnome-menus { }; - granite = callPackage ../development/libraries/granite { }; elementary-cmake-modules = callPackage ../development/libraries/elementary-cmake-modules { }; gtk2 = callPackage ../development/libraries/gtk+/2.x.nix { @@ -21318,6 +21317,8 @@ in mate = recurseIntoAttrs (callPackage ../desktops/mate { }); + pantheon = recurseIntoAttrs (callPackage ../desktops/pantheon { }); + maxx = callPackage ../desktops/maxx { }; plasma-applet-volumewin7mixer = libsForQt5.callPackage ../applications/misc/plasma-applet-volumewin7mixer { }; -- cgit 1.4.1 From 29ae094829fda5c329686e07bf29f377fefd32b0 Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Tue, 29 Jan 2019 19:01:43 -0500 Subject: pantheon.elementary-photos: 2.6.1 -> 2.6.2 --- pkgs/desktops/pantheon/apps/elementary-photos/default.nix | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'pkgs/desktops/pantheon') diff --git a/pkgs/desktops/pantheon/apps/elementary-photos/default.nix b/pkgs/desktops/pantheon/apps/elementary-photos/default.nix index 055889fd6d1b..21d5b9f1db4c 100644 --- a/pkgs/desktops/pantheon/apps/elementary-photos/default.nix +++ b/pkgs/desktops/pantheon/apps/elementary-photos/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig, vala, desktop-file-utils , gtk3, glib, libaccounts-glib, libexif, libgee, geocode-glib, gexiv2,libgphoto2 -, granite, gst_all_1, libgudev, json-glib, libraw, librest, libsoup, sqlite +, granite, gst_all_1, libgudev, json-glib, libraw, librest, libsoup, sqlite, python3 , scour, webkitgtk, libwebp, appstream, libunity, wrapGAppsHook, gobject-introspection, elementary-icon-theme }: stdenv.mkDerivation rec { pname = "photos"; - version = "2.6.1"; + version = "2.6.2"; name = "elementary-${pname}-${version}"; @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { owner = "elementary"; repo = pname; rev = version; - sha256 = "063h6jr0p8v46w8bppsss1zlphx21xqwylh57qbyd5xi71z4gl1v"; + sha256 = "166a1jb85n67z6ffm5i0xzap407rv0r511lzh0gidkap1qy6pnmi"; }; passthru = { @@ -30,6 +30,7 @@ stdenv.mkDerivation rec { meson ninja pkgconfig + python3 vala wrapGAppsHook ]; @@ -65,9 +66,9 @@ stdenv.mkDerivation rec { "-Dplugins=false" ]; - # This should be provided by a post_install.py script - See -> https://github.com/elementary/photos/pull/433 - postInstall = '' - ${glib.dev}/bin/glib-compile-schemas $out/share/glib-2.0/schemas + postPatch = '' + chmod +x meson/post_install.py + patchShebangs meson/post_install.py ''; meta = with stdenv.lib; { -- cgit 1.4.1 From a249e75f7498eea282b805ad1fd322d70c3ad74b Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Tue, 29 Jan 2019 19:02:55 -0500 Subject: pantheon.switchboard-plug-applications: 2.1.4 -> 2.1.5 --- .../desktops/pantheon/apps/switchboard-plugs/applications/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'pkgs/desktops/pantheon') diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix index 382700cc583b..0cdb732ca731 100644 --- a/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix @@ -3,13 +3,13 @@ stdenv.mkDerivation rec { pname = "switchboard-plug-applications"; - version = "2.1.4"; + version = "2.1.5"; src = fetchFromGitHub { owner = "elementary"; repo = pname; rev = version; - sha256 = "1gi8jwjh9ga7h92ffl43r0rnlnl5649pqzpk7q1ffhhyqzwh8l63"; + sha256 = "1c4agff456625kycacpsww7c9jsnsg1rqps96r7cvn9zq371b5ir"; }; passthru = { -- cgit 1.4.1 From ae2813bde8c822e398b2f25526d31a90734f8b3a Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Tue, 29 Jan 2019 19:03:39 -0500 Subject: pantheon.switchboard-plug-bluetooth: 2.2.0 -> 2.2.1 --- pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'pkgs/desktops/pantheon') diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix index fc6f566b353c..697c3ac592bb 100644 --- a/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix @@ -3,13 +3,13 @@ stdenv.mkDerivation rec { pname = "switchboard-plug-bluetooth"; - version = "2.2.0"; + version = "2.2.1"; src = fetchFromGitHub { owner = "elementary"; repo = pname; rev = version; - sha256 = "1aynzns0xw629drv9qvci37ba0fzyd5x9y8kwjqr527rnk0qiyca"; + sha256 = "13jm2idjsgqkvdz1dxgl2wwx7bsqahppf6cnpl0pmz167wahg5zp"; }; passthru = { -- cgit 1.4.1 From 744de1c8b9ee5c66ce7bd2830ce6b1fcf7d7708e Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Tue, 29 Jan 2019 19:04:05 -0500 Subject: pantheon.switchboard-plug-power: 2.3.4 -> 2.3.5 --- pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'pkgs/desktops/pantheon') diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix index dd8e2974a495..ab1fd98795a1 100644 --- a/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix @@ -4,13 +4,13 @@ stdenv.mkDerivation rec { pname = "switchboard-plug-power"; - version = "2.3.4"; + version = "2.3.5"; src = fetchFromGitHub { owner = "elementary"; repo = pname; rev = version; - sha256 = "0kfnnghyzvy368sh39j4jdl7cnz2yc239hp00054lc4rjs8m61nv"; + sha256 = "1wcxz4jxyv8kms9gxpwvrb356h10qvcwmdjzjzl2bvj5yl1rfcs9"; }; passthru = { -- cgit 1.4.1 From 1e8a8f1050a83390fe534aceafda6aa02b0ccdda Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Tue, 29 Jan 2019 19:05:46 -0500 Subject: pantheon.wingpanel-indicator-network: 2.2.1 -> 2.2.2 --- .../pantheon/desktop/wingpanel-indicators/network/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'pkgs/desktops/pantheon') diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix index 8cb71dd43d6d..245e12d45919 100644 --- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix @@ -4,13 +4,13 @@ stdenv.mkDerivation rec { pname = "wingpanel-indicator-network"; - version = "2.2.1"; + version = "2.2.2"; src = fetchFromGitHub { owner = "elementary"; repo = pname; rev = version; - sha256 = "0k039qqlpwhl34mdhwjqhp7bz8vi432p0zfxzcdhsjhglpk8srlw"; + sha256 = "0fch27imk5x4nfx49cwcylkxd7m289rl9niy1vx5kjplhbhyhdq2"; }; passthru = { -- cgit 1.4.1 From 77a716fcd9c1887a5c6e29e539b92fe161e5f1c9 Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Tue, 29 Jan 2019 19:06:22 -0500 Subject: pantheon.wingpanel-indicator-power: 2.1.3 -> 2.1.4 --- pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'pkgs/desktops/pantheon') diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix index e6c5edd7ca68..d7627c511001 100644 --- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix @@ -4,13 +4,13 @@ stdenv.mkDerivation rec { pname = "wingpanel-indicator-power"; - version = "2.1.3"; + version = "2.1.4"; src = fetchFromGitHub { owner = "elementary"; repo = pname; rev = version; - sha256 = "1rkqa27bsfai4psp19sy61in6730da0s7nds7dkcf06a0hvjvjc2"; + sha256 = "02gp9m9zkmhcl43nz02kjkcim4zm25zab3il8dhwkihh731g1c6j"; }; passthru = { -- cgit 1.4.1 From f55f45f273ead5866d32846539546cba8d2d68bc Mon Sep 17 00:00:00 2001 From: Vladimír Čunát Date: Fri, 1 Feb 2019 09:43:57 +0100 Subject: pantheon, aliases: remove remaining gst-ffmpeg This fixes evaluation. I'm not sure why pantheon.elementary-videos was mixing gst 1 with old gst-ffmpeg. /cc #48637, #50220. --- pkgs/desktops/pantheon/apps/elementary-videos/default.nix | 4 ++-- pkgs/top-level/aliases.nix | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) (limited to 'pkgs/desktops/pantheon') diff --git a/pkgs/desktops/pantheon/apps/elementary-videos/default.nix b/pkgs/desktops/pantheon/apps/elementary-videos/default.nix index a07667cd6257..dc25c6b377d6 100644 --- a/pkgs/desktops/pantheon/apps/elementary-videos/default.nix +++ b/pkgs/desktops/pantheon/apps/elementary-videos/default.nix @@ -1,6 +1,6 @@ { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, vala, python3 , desktop-file-utils, gtk3, granite, libgee, clutter-gst, clutter-gtk, gst_all_1 -, gobject-introspection, elementary-icon-theme, wrapGAppsHook, gst-ffmpeg }: +, gobject-introspection, elementary-icon-theme, wrapGAppsHook }: stdenv.mkDerivation rec { pname = "videos"; @@ -38,7 +38,7 @@ stdenv.mkDerivation rec { clutter-gtk elementary-icon-theme granite - gst-ffmpeg + #gst-ffmpeg #FIXME? gst-libav gst-plugins-bad gst-plugins-base diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 4442453644c7..43103586b1c3 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -388,12 +388,10 @@ mapAliases ({ gstPluginsBad = pkgs.gst-plugins-bad; gstPluginsGood = pkgs.gst-plugins-good; gstPluginsUgly = pkgs.gst-plugins-ugly; - gstFfmpeg = pkgs.gst-ffmpeg; gst-plugins-base = pkgs.gst-plugins-base; gst-plugins-bad = pkgs.gst-plugins-bad; gst-plugins-good = pkgs.gst-plugins-good; gst-plugins-ugly = pkgs.gst-plugins-ugly; - gst-ffmpeg = pkgs.gst-ffmpeg; }; } // (with ocaml-ng; { # added 2016-09-14 ocaml_4_00_1 = ocamlPackages_4_00_1.ocaml; -- cgit 1.4.1 From 14a5549e70f87363a8555a3385fea92ed2c756ee Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Fri, 1 Feb 2019 19:40:13 -0500 Subject: pantheon.elementary-files: 4.1.3 -> 4.1.4 --- pkgs/desktops/pantheon/apps/elementary-files/default.nix | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'pkgs/desktops/pantheon') diff --git a/pkgs/desktops/pantheon/apps/elementary-files/default.nix b/pkgs/desktops/pantheon/apps/elementary-files/default.nix index 947ba6c32f6a..7c736df2c538 100644 --- a/pkgs/desktops/pantheon/apps/elementary-files/default.nix +++ b/pkgs/desktops/pantheon/apps/elementary-files/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, gettext, vala -, python3, desktop-file-utils, intltool, libcanberra, gtk3, libgee, granite -, libnotify, libunity, pango, plank, bamf, sqlite, libdbusmenu-gtk3, zeitgeist -, glib-networking, elementary-icon-theme, gobject-introspection, wrapGAppsHook }: +, python3, desktop-file-utils, libcanberra, gtk3, libgee, granite, libnotify +, libunity, pango, plank, bamf, sqlite, libdbusmenu-gtk3, zeitgeist, glib-networking +, elementary-icon-theme, gobject-introspection, wrapGAppsHook }: stdenv.mkDerivation rec { pname = "files"; - version = "4.1.3"; + version = "4.1.4"; name = "elementary-${pname}-${version}"; @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { owner = "elementary"; repo = pname; rev = version; - sha256 = "0vz6m6kqm9r1scj1jdljbzh019skj8fhf916011wkdfzdpc1zlac"; + sha256 = "0nlmg3izbi4yh2sd69hh8avg76pipxn11l9a39xgqm55lvidlqmn"; }; passthru = { @@ -28,7 +28,6 @@ stdenv.mkDerivation rec { gettext glib-networking gobject-introspection - intltool meson ninja pkgconfig -- cgit 1.4.1 From 97af256e5e355953944a83852ee56024c35e9a9c Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Fri, 1 Feb 2019 19:41:21 -0500 Subject: pantheon.elementary-screenshot-tool: 1.6.0 -> 1.6.1 --- pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'pkgs/desktops/pantheon') diff --git a/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix b/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix index b00d0e3997ab..192b6ff358ff 100644 --- a/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix +++ b/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix @@ -10,7 +10,7 @@ in stdenv.mkDerivation rec { pname = "screenshot-tool"; # This will be renamed to "screenshot" soon. See -> https://github.com/elementary/screenshot/pull/93 - version = "1.6.0"; + version = "1.6.1"; name = "elementary-${pname}-${version}"; @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { owner = "elementary"; repo = "screenshot"; rev = version; - sha256 = "0hxgh7br12kw8bs2cdm2q9ivhnj2zb0i7fs43pkgf3z0fidjf1yv"; + sha256 = "1vvj550md7vw7n057h8cy887a0nmsbwry67dxrxyz6bsvpk8sb6g"; }; passthru = { -- cgit 1.4.1 From a45eb677118fab78ca98c59457e3ff6053b911fb Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Fri, 1 Feb 2019 19:42:25 -0500 Subject: pantheon.elementary-capnet-assist: 2.2.2 -> 2.2.3 --- pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'pkgs/desktops/pantheon') diff --git a/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix b/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix index 85476b04805f..e77948ccf295 100644 --- a/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix +++ b/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix @@ -3,7 +3,7 @@ stdenv.mkDerivation rec { pname = "capnet-assist"; - version = "2.2.2"; + version = "2.2.3"; name = "elementary-${pname}-${version}"; @@ -11,7 +11,7 @@ stdenv.mkDerivation rec { owner = "elementary"; repo = pname; rev = version; - sha256 = "138fxijnnp0gqzj7h0p9r4crpafas1kmvb3r9bb76mmygbdixkgh"; + sha256 = "15cnwimkmmsb4rwvgm8bizcsn1krsj6k3qc88izn79is75y6wwji"; }; passthru = { -- cgit 1.4.1 From 2b344e6a74c0825c0a4ce98f42d34039406ca502 Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Sun, 3 Feb 2019 16:08:37 -0500 Subject: pantheon.elementary-videos: remove comment --- pkgs/desktops/pantheon/apps/elementary-videos/default.nix | 1 - 1 file changed, 1 deletion(-) (limited to 'pkgs/desktops/pantheon') diff --git a/pkgs/desktops/pantheon/apps/elementary-videos/default.nix b/pkgs/desktops/pantheon/apps/elementary-videos/default.nix index dc25c6b377d6..b123d4cbf5bc 100644 --- a/pkgs/desktops/pantheon/apps/elementary-videos/default.nix +++ b/pkgs/desktops/pantheon/apps/elementary-videos/default.nix @@ -38,7 +38,6 @@ stdenv.mkDerivation rec { clutter-gtk elementary-icon-theme granite - #gst-ffmpeg #FIXME? gst-libav gst-plugins-bad gst-plugins-base -- cgit 1.4.1 From 5aea8bb6d9d251991ef781313d35e191e7e5faee Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Mon, 11 Feb 2019 20:19:19 -0600 Subject: pantheon.elementary-icon-theme: 5.0.2 -> 5.0.3 --- pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'pkgs/desktops/pantheon') diff --git a/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix b/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix index f70186585ece..23fb8445838a 100644 --- a/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix +++ b/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix @@ -2,7 +2,7 @@ stdenv.mkDerivation rec { pname = "icons"; - version = "5.0.2"; + version = "5.0.3"; name = "elementary-icon-theme-${version}"; @@ -10,7 +10,7 @@ stdenv.mkDerivation rec { owner = "elementary"; repo = pname; rev = version; - sha256 = "12j582f0kggv2lp935r75xg7q26zpl0f05s11xcs4qxazhj1ly2r"; + sha256 = "0wpv7yirf44bfqfmyshzfw9605j1idm7c9jqg68k3nmymmd6iqzf"; }; passthru = { -- cgit 1.4.1 From 19fcdfa35633567a683f8ffbe25d817a259d387a Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Sat, 16 Feb 2019 02:57:21 -0500 Subject: pantheon.granite: 5.2.2 -> 5.2.3 --- .../02-datetime-clock-format-gsettings.patch | 38 +++++++++++----------- pkgs/desktops/pantheon/granite/default.nix | 13 ++------ 2 files changed, 21 insertions(+), 30 deletions(-) (limited to 'pkgs/desktops/pantheon') diff --git a/pkgs/desktops/pantheon/granite/02-datetime-clock-format-gsettings.patch b/pkgs/desktops/pantheon/granite/02-datetime-clock-format-gsettings.patch index 7b7c9871133a..7960e45582ca 100644 --- a/pkgs/desktops/pantheon/granite/02-datetime-clock-format-gsettings.patch +++ b/pkgs/desktops/pantheon/granite/02-datetime-clock-format-gsettings.patch @@ -1,7 +1,7 @@ -From 698e34dd6e8d98a1818ae00d3313b69a86340771 Mon Sep 17 00:00:00 2001 +From 61e0d02c054367007e156c9ac3a084dbd6de8278 Mon Sep 17 00:00:00 2001 From: Fabio Valentini -Date: Mon, 17 Dec 2018 14:58:14 +0100 -Subject: DateTime: include "clock-format" gsettings key here +Date: Fri, 15 Feb 2019 13:53:11 +0100 +Subject: [PATCH] DateTime: include "clock-format" gsettings key here --- data/io.elementary.granite.gschema.xml | 15 +++++++++++++++ @@ -45,12 +45,12 @@ index 0000000..96cc3b1 + install_dir: schema_dir +) diff --git a/lib/DateTime.vala b/lib/DateTime.vala -index aea2ec6..3d81191 100644 +index 2069e1f..5e9075d 100644 --- a/lib/DateTime.vala +++ b/lib/DateTime.vala @@ -104,13 +104,13 @@ namespace Granite.DateTime { } - + /** - * Gets the //clock-format// key from //org.gnome.desktop.interface// schema + * Gets the //clock-format// key from //io.elementary.granite// schema @@ -65,22 +65,22 @@ index aea2ec6..3d81191 100644 return (format.contains ("12h")); } diff --git a/meson.build b/meson.build -index 8b98eeb..f0abcdf 100644 +index 8c886be..5f95055 100644 --- a/meson.build +++ b/meson.build -@@ -4,6 +4,8 @@ project( - version: '5.2.2' +@@ -5,6 +5,8 @@ project( + version: '5.2.3' ) - + +rdnn = 'io.elementary.' + meson.project_name() + if meson.get_compiler('vala').version().version_compare('<0.40.0') error('vala compiler version 0.40.0 or newer is required.') endif -@@ -52,10 +54,18 @@ icons_dir = join_paths( +@@ -53,10 +55,18 @@ icons_dir = join_paths( 'hicolor' ) - + +schema_dir = join_paths( + get_option('prefix'), + get_option('datadir'), @@ -90,40 +90,40 @@ index 8b98eeb..f0abcdf 100644 + pkgconfig = import('pkgconfig') i18n = import('i18n') - + subdir('lib') +subdir('data') subdir('demo') subdir('icons') subdir('po') -@@ -68,5 +78,6 @@ endif +@@ -69,5 +79,6 @@ endif meson.add_install_script( join_paths(meson.current_source_dir(), 'meson', 'post_install.py'), '--iconsdir', icons_dir, + '--schemadir', schema_dir, ) - + diff --git a/meson/post_install.py b/meson/post_install.py index 1864515..5313f96 100755 --- a/meson/post_install.py +++ b/meson/post_install.py @@ -6,11 +6,16 @@ import subprocess - + parser = argparse.ArgumentParser() parser.add_argument("--iconsdir", action="store", required=True) +parser.add_argument("--schemadir", action="store", required=True) args = vars(parser.parse_args()) - + icons_dir = args["iconsdir"] +schema_dir = args["schemadir"] - + if not os.environ.get('DESTDIR'): print('Compiling icon cache ...') subprocess.run(['gtk-update-icon-cache', icons_dir]) - + + print('Compiling GSettings schemas ...') + subprocess.run(['glib-compile-schemas', schema_dir]) + --- +-- 2.20.1 diff --git a/pkgs/desktops/pantheon/granite/default.nix b/pkgs/desktops/pantheon/granite/default.nix index fe0e880ccb2c..eae9aa4afcaf 100644 --- a/pkgs/desktops/pantheon/granite/default.nix +++ b/pkgs/desktops/pantheon/granite/default.nix @@ -2,25 +2,16 @@ stdenv.mkDerivation rec { pname = "granite"; - version = "5.2.2"; + version = "5.2.3"; src = fetchFromGitHub { owner = "elementary"; repo = pname; rev = version; - sha256 = "1zp0pp5v3j8k6ail724p7h5jj2zmznj0a2ybwfw5sspfdw5bfydh"; + sha256 = "10ddq1s2w4jvpzq813cylmqhh8pggzaz890fy3kzg07275i98gah"; }; patches = [ - # Add Meson support that hit after 5.2.2 - (fetchpatch { - url = "https://github.com/elementary/granite/commit/2066b377226cf327cb2d5399b6b40a2d36d47b11.patch"; - sha256 = "1bxjgq8wvl1sb79cwhmh9kwawnkkfn7c5q67cyz1fjxmamwyyi85"; - }) - (fetchpatch { - url = "https://github.com/elementary/granite/commit/f1b29f52e3aaf0f5d6bba44c42617da265f679c8.patch"; - sha256 = "0cdp9ny6fj1lpcirab641p1qn1rbsvnsaa03hnr6zsdpim96jlvs"; - }) # Resolve the circular dependency between granite and the datetime wingpanel indicator # See: https://github.com/elementary/granite/pull/242 ./02-datetime-clock-format-gsettings.patch -- cgit 1.4.1 From 27ed56ce1d3108f49fc02590d6d819b9f3eef5cc Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Sat, 16 Feb 2019 02:59:12 -0500 Subject: pantheon.elementary-files: 4.1.4 -> 4.1.5 --- pkgs/desktops/pantheon/apps/elementary-files/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'pkgs/desktops/pantheon') diff --git a/pkgs/desktops/pantheon/apps/elementary-files/default.nix b/pkgs/desktops/pantheon/apps/elementary-files/default.nix index 7c736df2c538..3494474c49c5 100644 --- a/pkgs/desktops/pantheon/apps/elementary-files/default.nix +++ b/pkgs/desktops/pantheon/apps/elementary-files/default.nix @@ -5,7 +5,7 @@ stdenv.mkDerivation rec { pname = "files"; - version = "4.1.4"; + version = "4.1.5"; name = "elementary-${pname}-${version}"; @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { owner = "elementary"; repo = pname; rev = version; - sha256 = "0nlmg3izbi4yh2sd69hh8avg76pipxn11l9a39xgqm55lvidlqmn"; + sha256 = "0z0pisg7py2k6i31v18z5fgpj8x64m1s5clfq4vbbjrcjwx6dcx5"; }; passthru = { -- cgit 1.4.1 From 23191f045ddb7224fb2acd6f6d835a1c4d367980 Mon Sep 17 00:00:00 2001 From: worldofpeace Date: Mon, 18 Feb 2019 18:52:42 -0500 Subject: pantheon.granite: fetch for DateTime GSettings patch Typo in the patch was fixed. [0] [0]: https://src.fedoraproject.org/rpms/granite/c/0550b44ed6400c9b1ff7e70871913747df2ff323?branch=master --- .../02-datetime-clock-format-gsettings.patch | 129 --------------------- pkgs/desktops/pantheon/granite/default.nix | 5 +- 2 files changed, 4 insertions(+), 130 deletions(-) delete mode 100644 pkgs/desktops/pantheon/granite/02-datetime-clock-format-gsettings.patch (limited to 'pkgs/desktops/pantheon') diff --git a/pkgs/desktops/pantheon/granite/02-datetime-clock-format-gsettings.patch b/pkgs/desktops/pantheon/granite/02-datetime-clock-format-gsettings.patch deleted file mode 100644 index 7960e45582ca..000000000000 --- a/pkgs/desktops/pantheon/granite/02-datetime-clock-format-gsettings.patch +++ /dev/null @@ -1,129 +0,0 @@ -From 61e0d02c054367007e156c9ac3a084dbd6de8278 Mon Sep 17 00:00:00 2001 -From: Fabio Valentini -Date: Fri, 15 Feb 2019 13:53:11 +0100 -Subject: [PATCH] DateTime: include "clock-format" gsettings key here - ---- - data/io.elementary.granite.gschema.xml | 15 +++++++++++++++ - data/meson.build | 4 ++++ - lib/DateTime.vala | 4 ++-- - meson.build | 11 +++++++++++ - meson/post_install.py | 5 +++++ - 5 files changed, 37 insertions(+), 2 deletions(-) - create mode 100644 data/io.elementary.granite.gschema.xml - create mode 100644 data/meson.build - -diff --git a/data/io.elementary.granite.gschema.xml b/data/io.elementary.granite.gschema.xml -new file mode 100644 -index 0000000..1540fb0 ---- /dev/null -+++ b/data/io.elementary.granite.gschema.xml -@@ -0,0 +1,15 @@ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ "12h" -+ Whether the clock displays in 12h or 24h format -+ Whether the clock displays in 12h or 24h format -+ -+ -+ -diff --git a/data/meson.build b/data/meson.build -new file mode 100644 -index 0000000..96cc3b1 ---- /dev/null -+++ b/data/meson.build -@@ -0,0 +1,4 @@ -+install_data( -+ rdnn + '.gschema.xml', -+ install_dir: schema_dir -+) -diff --git a/lib/DateTime.vala b/lib/DateTime.vala -index 2069e1f..5e9075d 100644 ---- a/lib/DateTime.vala -+++ b/lib/DateTime.vala -@@ -104,13 +104,13 @@ namespace Granite.DateTime { - } - - /** -- * Gets the //clock-format// key from //org.gnome.desktop.interface// schema -+ * Gets the //clock-format// key from //io.elementary.granite// schema - * and determines if the clock format is 12h based - * - * @return true if the clock format is 12h based, false otherwise. - */ - private static bool is_clock_format_12h () { -- var h24_settings = new Settings ("io.elementary.desktop.wingpanel.datetime"); -+ var h24_settings = new Settings ("io.elementary.granite"); - var format = h24_settings.get_string ("clock-format"); - return (format.contains ("12h")); - } -diff --git a/meson.build b/meson.build -index 8c886be..5f95055 100644 ---- a/meson.build -+++ b/meson.build -@@ -5,6 +5,8 @@ project( - version: '5.2.3' - ) - -+rdnn = 'io.elementary.' + meson.project_name() -+ - if meson.get_compiler('vala').version().version_compare('<0.40.0') - error('vala compiler version 0.40.0 or newer is required.') - endif -@@ -53,10 +55,18 @@ icons_dir = join_paths( - 'hicolor' - ) - -+schema_dir = join_paths( -+ get_option('prefix'), -+ get_option('datadir'), -+ 'glib-2.0', -+ 'schemas' -+) -+ - pkgconfig = import('pkgconfig') - i18n = import('i18n') - - subdir('lib') -+subdir('data') - subdir('demo') - subdir('icons') - subdir('po') -@@ -69,5 +79,6 @@ endif - meson.add_install_script( - join_paths(meson.current_source_dir(), 'meson', 'post_install.py'), - '--iconsdir', icons_dir, -+ '--schemadir', schema_dir, - ) - -diff --git a/meson/post_install.py b/meson/post_install.py -index 1864515..5313f96 100755 ---- a/meson/post_install.py -+++ b/meson/post_install.py -@@ -6,11 +6,16 @@ import subprocess - - parser = argparse.ArgumentParser() - parser.add_argument("--iconsdir", action="store", required=True) -+parser.add_argument("--schemadir", action="store", required=True) - args = vars(parser.parse_args()) - - icons_dir = args["iconsdir"] -+schema_dir = args["schemadir"] - - if not os.environ.get('DESTDIR'): - print('Compiling icon cache ...') - subprocess.run(['gtk-update-icon-cache', icons_dir]) - -+ print('Compiling GSettings schemas ...') -+ subprocess.run(['glib-compile-schemas', schema_dir]) -+ --- -2.20.1 - diff --git a/pkgs/desktops/pantheon/granite/default.nix b/pkgs/desktops/pantheon/granite/default.nix index eae9aa4afcaf..66ba331ddcdc 100644 --- a/pkgs/desktops/pantheon/granite/default.nix +++ b/pkgs/desktops/pantheon/granite/default.nix @@ -14,7 +14,10 @@ stdenv.mkDerivation rec { patches = [ # Resolve the circular dependency between granite and the datetime wingpanel indicator # See: https://github.com/elementary/granite/pull/242 - ./02-datetime-clock-format-gsettings.patch + (fetchpatch { + url = "https://src.fedoraproject.org/rpms/granite/raw/0550b44ed6400c9b1ff7e70871913747df2ff323/f/00-datetime-clock-format-gsettings.patch"; + sha256 = "0i9yvdmn77x5fjdwd1raw6ym8js8yxa7w6ydc7syx7hcyls00dmq"; + }) ]; passthru = { -- cgit 1.4.1