summary refs log tree commit diff
path: root/pkgs/desktops
diff options
context:
space:
mode:
authorBobby Rong <rjl931189261@126.com>2021-12-18 14:01:54 +0800
committerGitHub <noreply@github.com>2021-12-18 14:01:54 +0800
commitc9ec5a228d638bdfe65c0c951feb6db6ab697d24 (patch)
tree4494170b888b161292dfd152f893bdc43a04763b /pkgs/desktops
parente0d6a5cce14b3f971ff42f039c7c604cd510af9b (diff)
parent7cc11f76aff82d8ecfa300353e3d16711ded2843 (diff)
downloadnixpkgs-c9ec5a228d638bdfe65c0c951feb6db6ab697d24.tar
nixpkgs-c9ec5a228d638bdfe65c0c951feb6db6ab697d24.tar.gz
nixpkgs-c9ec5a228d638bdfe65c0c951feb6db6ab697d24.tar.bz2
nixpkgs-c9ec5a228d638bdfe65c0c951feb6db6ab697d24.tar.lz
nixpkgs-c9ec5a228d638bdfe65c0c951feb6db6ab697d24.tar.xz
nixpkgs-c9ec5a228d638bdfe65c0c951feb6db6ab697d24.tar.zst
nixpkgs-c9ec5a228d638bdfe65c0c951feb6db6ab697d24.zip
Merge pull request #151153 from bobby285271/pantheon
Pantheon updates 2021-12-17
Diffstat (limited to 'pkgs/desktops')
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-videos/default.nix8
-rw-r--r--pkgs/desktops/pantheon/default.nix51
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix4
-rw-r--r--pkgs/desktops/pantheon/services/xdg-desktop-portal-pantheon/default.nix63
-rw-r--r--pkgs/desktops/pantheon/third-party/pantheon-tweaks/default.nix71
-rw-r--r--pkgs/desktops/pantheon/third-party/pantheon-tweaks/fix-paths.patch13
-rw-r--r--pkgs/desktops/pantheon/third-party/wingpanel-indicator-ayatana/default.nix58
-rw-r--r--pkgs/desktops/pantheon/third-party/wingpanel-indicator-ayatana/fix-indicator-dir.patch16
-rw-r--r--pkgs/desktops/pantheon/third-party/wingpanel-indicator-ayatana/fix-libapplication-dir.patch13
9 files changed, 276 insertions, 21 deletions
diff --git a/pkgs/desktops/pantheon/apps/elementary-videos/default.nix b/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
index faeaab7ece1..f7286c9108a 100644
--- a/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
@@ -21,15 +21,13 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-videos";
-  version = "2.8.0";
-
-  repoName = "videos";
+  version = "2.8.1";
 
   src = fetchFromGitHub {
     owner = "elementary";
-    repo = repoName;
+    repo = "videos";
     rev = version;
-    sha256 = "sha256-FFCtQ42LygfjowehwZcISWTfv8PBZTH0X8mPrpiG8Ug=";
+    sha256 = "sha256-Ki6i9u+oXOBTH+dVJ9RgBxszD7Wvdrfahd9abyjFYJY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/pantheon/default.nix b/pkgs/desktops/pantheon/default.nix
index 3300dd2ec8c..7569b2eb4f6 100644
--- a/pkgs/desktops/pantheon/default.nix
+++ b/pkgs/desktops/pantheon/default.nix
@@ -4,23 +4,37 @@
 lib.makeScope pkgs.newScope (self: with self; {
 
   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 switchboard-plug-wacom
+    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
+    switchboard-plug-wacom
   ];
 
   wingpanelIndicators = [
-    wingpanel-applications-menu wingpanel-indicator-a11y
-    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-applications-menu
+    wingpanel-indicator-a11y
+    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
   ];
 
@@ -129,6 +143,8 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   pantheon-agent-polkit = callPackage ./services/pantheon-agent-polkit { };
 
+  xdg-desktop-portal-pantheon = callPackage ./services/xdg-desktop-portal-pantheon { };
+
   #### WINGPANEL INDICATORS
 
   wingpanel-applications-menu = callPackage ./desktop/wingpanel-indicators/applications-menu { };
@@ -211,6 +227,13 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   elementary-wallpapers = callPackage ./artwork/elementary-wallpapers { };
 
+  ### THIRD-PARTY
+
+  # Put packages that ONLY works with Pantheon in pkgs/desktops/pantheon/third-party,
+  # specfically third party switchboard plugins and wingpanel indicators.
+  # Please call these packages in pkgs/top-level/all-packages.nix instead of this file.
+  # https://github.com/NixOS/nixpkgs/issues/115222#issuecomment-906868654
+
 } // lib.optionalAttrs (config.allowAliases or true) {
 
   ### ALIASES
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
index 3ebc3813879..ceabac94a23 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-notifications";
-  version = "6.0.3";
+  version = "6.0.4";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-iHhZJwaomQgH1Sal8uejl4QlavOQ75UKZ9xchTi1X3U=";
+    sha256 = "sha256-tIpR/WIhE0Mmt2EploNNDVlAX4OUNI3VnEflTLVkfSo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/pantheon/services/xdg-desktop-portal-pantheon/default.nix b/pkgs/desktops/pantheon/services/xdg-desktop-portal-pantheon/default.nix
new file mode 100644
index 00000000000..3ceff2095d2
--- /dev/null
+++ b/pkgs/desktops/pantheon/services/xdg-desktop-portal-pantheon/default.nix
@@ -0,0 +1,63 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, nix-update-script
+, meson
+, ninja
+, pkg-config
+, vala
+, wrapGAppsHook
+, glib
+, granite
+, gtk3
+, libhandy
+, systemd
+, vte
+}:
+
+stdenv.mkDerivation rec {
+  pname = "xdg-desktop-portal-pantheon";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    owner = "elementary";
+    repo = "portals";
+    rev = version;
+    sha256 = "sha256-8gBMjCMEzrFmKHhkXsgcIESC93EOT0ADkRUIJMmerjw=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    vala
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    glib
+    granite
+    gtk3
+    libhandy
+    systemd
+    vte
+  ];
+
+  mesonFlags = [
+    "-Dsystemduserunitdir=${placeholder "out"}/lib/systemd/user"
+  ];
+
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = "pantheon.${pname}";
+    };
+  };
+
+  meta = with lib; {
+    description = "Backend implementation for xdg-desktop-portal for the Pantheon desktop environment";
+    homepage = "https://github.com/elementary/portals";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = teams.pantheon.members;
+  };
+}
diff --git a/pkgs/desktops/pantheon/third-party/pantheon-tweaks/default.nix b/pkgs/desktops/pantheon/third-party/pantheon-tweaks/default.nix
new file mode 100644
index 00000000000..af6bf54fd71
--- /dev/null
+++ b/pkgs/desktops/pantheon/third-party/pantheon-tweaks/default.nix
@@ -0,0 +1,71 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, nix-update-script
+, meson
+, ninja
+, pkg-config
+, python3
+, vala
+, gtk3
+, libgee
+, pantheon
+}:
+
+stdenv.mkDerivation rec {
+  pname = "pantheon-tweaks";
+  version = "1.0.3";
+
+  src = fetchFromGitHub {
+    owner = "pantheon-tweaks";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-Pn/MIJ/WS/TY5bemM77B37E0KFRlDUfrOl1XS2yJlGk=";
+  };
+
+  patches = [
+    ./fix-paths.patch
+  ];
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    python3
+    vala
+  ];
+
+  buildInputs = [
+    gtk3
+    libgee
+  ] ++ (with pantheon; [
+    elementary-files # settings schemas
+    elementary-terminal # settings schemas
+    granite
+    switchboard
+  ]);
+
+  postPatch = ''
+    chmod +x meson/post_install.py
+    patchShebangs meson/post_install.py
+  '';
+
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
+
+  meta = with lib; {
+    description = "Unofficial system settings panel for Pantheon";
+    longDescription = ''
+      Unofficial system settings panel for Pantheon
+      that lets you easily and safely customise your desktop's appearance.
+      Use programs.pantheon-tweaks.enable to add this to your switchboard.
+    '';
+    homepage = "https://github.com/pantheon-tweaks/pantheon-tweaks";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = teams.pantheon.members;
+  };
+}
diff --git a/pkgs/desktops/pantheon/third-party/pantheon-tweaks/fix-paths.patch b/pkgs/desktops/pantheon/third-party/pantheon-tweaks/fix-paths.patch
new file mode 100644
index 00000000000..b2e0e0a7b4c
--- /dev/null
+++ b/pkgs/desktops/pantheon/third-party/pantheon-tweaks/fix-paths.patch
@@ -0,0 +1,13 @@
+diff --git a/src/Settings/ThemeSettings.vala b/src/Settings/ThemeSettings.vala
+index 589121b..8e9c81e 100644
+--- a/src/Settings/ThemeSettings.vala
++++ b/src/Settings/ThemeSettings.vala
+@@ -29,7 +29,7 @@ public class PantheonTweaks.ThemeSettings {
+         var themes = new Gee.ArrayList<string> ();
+ 
+         string[] dirs = {
+-            "/usr/share/" + path + "/",
++            "/run/current-system/sw/share/" + path + "/",
+             Environment.get_home_dir () + "/." + path + "/",
+             Environment.get_home_dir () + "/.local/share/" + path + "/"};
+ 
diff --git a/pkgs/desktops/pantheon/third-party/wingpanel-indicator-ayatana/default.nix b/pkgs/desktops/pantheon/third-party/wingpanel-indicator-ayatana/default.nix
new file mode 100644
index 00000000000..6acb1fe36f4
--- /dev/null
+++ b/pkgs/desktops/pantheon/third-party/wingpanel-indicator-ayatana/default.nix
@@ -0,0 +1,58 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, substituteAll
+, meson
+, ninja
+, pkg-config
+, vala
+, gtk3
+, libindicator-gtk3
+, pantheon
+, indicator-application-gtk3
+}:
+
+stdenv.mkDerivation rec {
+  pname = "wingpanel-indicator-ayatana";
+  version = "unstable-2021-12-01";
+
+  src = fetchFromGitHub {
+    owner = "Lafydev";
+    repo = pname;
+    rev = "53dc05919cdba772c787620a4bee5821e38c53cd";
+    sha256 = "sha256-T0OHzqENyeAr0pvXUaRMwF1RpwKVyDAF5P5G9S28COU=";
+  };
+
+  patches = [
+    # Fixes install path for wingpanel indicator
+    # https://github.com/Lafydev/wingpanel-indicator-ayatana/pull/30
+    ./fix-indicator-dir.patch
+    # Tells the indicator the path for libapplication.so
+    (substituteAll {
+      src = ./fix-libapplication-dir.patch;
+      indicator_application = indicator-application-gtk3;
+    })
+  ];
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    vala
+  ];
+
+  buildInputs = [
+    gtk3
+    libindicator-gtk3
+    pantheon.granite
+    pantheon.wingpanel
+  ];
+
+  meta = with lib; {
+    description = "Ayatana Compatibility Indicator for Wingpanel";
+    homepage = "https://github.com/Lafydev/wingpanel-indicator-ayatana";
+    license = licenses.lgpl21Plus;
+    platforms = platforms.linux;
+    maintainers = teams.pantheon.members;
+  };
+}
diff --git a/pkgs/desktops/pantheon/third-party/wingpanel-indicator-ayatana/fix-indicator-dir.patch b/pkgs/desktops/pantheon/third-party/wingpanel-indicator-ayatana/fix-indicator-dir.patch
new file mode 100644
index 00000000000..e6f71558e3e
--- /dev/null
+++ b/pkgs/desktops/pantheon/third-party/wingpanel-indicator-ayatana/fix-indicator-dir.patch
@@ -0,0 +1,16 @@
+diff --git a/meson.build b/meson.build
+index 4aeab2b..dc44e6c 100644
+--- a/meson.build
++++ b/meson.build
+@@ -25,8 +25,10 @@ dependencies = {
+     'wingpanel': wingpanel
+ }
+ 
++libdir = join_paths(get_option('prefix'), get_option('libdir'))
++
+ indicator_name = 'ayatana'
+-indicator_dir  = dependencies['wingpanel'].get_pkgconfig_variable('indicatorsdir')
++indicator_dir  = dependencies['wingpanel'].get_pkgconfig_variable('indicatorsdir', define_variable: ['libdir', libdir])
+ 
+ # ----------------------------------------------------------------------------------------------------------------------
+ # Bindings:
diff --git a/pkgs/desktops/pantheon/third-party/wingpanel-indicator-ayatana/fix-libapplication-dir.patch b/pkgs/desktops/pantheon/third-party/wingpanel-indicator-ayatana/fix-libapplication-dir.patch
new file mode 100644
index 00000000000..2d9a510b751
--- /dev/null
+++ b/pkgs/desktops/pantheon/third-party/wingpanel-indicator-ayatana/fix-libapplication-dir.patch
@@ -0,0 +1,13 @@
+diff --git a/src/IndicatorFactory.vala b/src/IndicatorFactory.vala
+index 9411de0..632d83b 100644
+--- a/src/IndicatorFactory.vala
++++ b/src/IndicatorFactory.vala
+@@ -24,7 +24,7 @@ public class AyatanaCompatibility.IndicatorFactory : Object, IndicatorLoader {
+     public Gee.Collection<IndicatorIface> get_indicators () {
+         if (indicators == null) {
+             indicators = new Gee.LinkedList<IndicatorIface> ();
+-            load_indicator (File.new_for_path (Constants.AYATANA_INDICATOR_DIR), "libapplication.so");
++            load_indicator (File.new_for_path ("@indicator_application@/lib/indicators3/7/"), "libapplication.so");
+         }
+ 
+         return indicators.read_only_view;