diff options
author | Bobby Rong <rjl931189261@126.com> | 2021-12-18 14:01:54 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-18 14:01:54 +0800 |
commit | c9ec5a228d638bdfe65c0c951feb6db6ab697d24 (patch) | |
tree | 4494170b888b161292dfd152f893bdc43a04763b /pkgs/desktops | |
parent | e0d6a5cce14b3f971ff42f039c7c604cd510af9b (diff) | |
parent | 7cc11f76aff82d8ecfa300353e3d16711ded2843 (diff) | |
download | nixpkgs-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')
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; |