diff --git a/nixos/modules/services/x11/desktop-managers/pantheon.nix b/nixos/modules/services/x11/desktop-managers/pantheon.nix index 01bf3aad202a..a401af9b7e18 100644 --- a/nixos/modules/services/x11/desktop-managers/pantheon.nix +++ b/nixos/modules/services/x11/desktop-managers/pantheon.nix @@ -160,6 +160,7 @@ in services.udisks2.enable = true; services.upower.enable = config.powerManagement.enable; services.libinput.enable = mkDefault true; + services.switcherooControl.enable = mkDefault true; services.xserver.updateDbusEnvironment = true; services.zeitgeist.enable = mkDefault true; services.geoclue2.enable = mkDefault true; @@ -193,6 +194,7 @@ in # Global environment environment.systemPackages = (with pkgs.pantheon; [ + elementary-bluetooth-daemon elementary-session-settings elementary-settings-daemon gala diff --git a/pkgs/applications/misc/onboard/default.nix b/pkgs/applications/misc/onboard/default.nix index d6c7da1ffefb..2fcaa7f4c48a 100644 --- a/pkgs/applications/misc/onboard/default.nix +++ b/pkgs/applications/misc/onboard/default.nix @@ -1,4 +1,5 @@ { fetchurl +, fetchpatch , lib , substituteAll , aspellWithDicts @@ -54,6 +55,22 @@ python3.pkgs.buildPythonApplication rec { }) # Allow loading hunspell dictionaries installed in NixOS system path ./hunspell-use-xdg-datadirs.patch + + # Python 3.12 fixes (otherwise crashes at startup) + (fetchpatch { + url = "https://github.com/void-linux/void-packages/raw/1be95325d320122efd5dedf7437839cfcca01f7a/srcpkgs/onboard/patches/python-3.12.patch"; + hash = "sha256-Lw5wlaWFlP5rFlEWmlPo5Ux8idrmhET/X9yiu+2Akkk="; + }) + (fetchpatch { + url = "https://github.com/void-linux/void-packages/raw/1be95325d320122efd5dedf7437839cfcca01f7a/srcpkgs/onboard/patches/thread-state.patch"; + hash = "sha256-fJfxD7HshroiEVkaKVBGV7py8tdOhbcprcmBQNuxR9U="; + }) + + # Fix for https://bugs.launchpad.net/onboard/+bug/1948723 + (fetchpatch { + url = "https://github.com/void-linux/void-packages/raw/9ef46bf26ac5acc1af5809f11c97b19c5e2233ed/srcpkgs/onboard/patches/fix-brokenformat.patch"; + hash = "sha256-r9mvJNWpPR1gsayuSSLpzIuafEKqtADYklre0Ju+KOM="; + }) ]; nativeBuildInputs = [ diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix deleted file mode 100644 index ae325e3bf8df..000000000000 --- a/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix +++ /dev/null @@ -1,69 +0,0 @@ -{ lib -, stdenv -, substituteAll -, fetchFromGitHub -, fetchpatch -, nix-update-script -, meson -, ninja -, pkg-config -, vala -, libgee -, granite -, gtk3 -, switchboard -, wingpanel-indicator-a11y -, onboard -}: - -stdenv.mkDerivation rec { - pname = "switchboard-plug-a11y"; - version = "2.3.0"; - - src = fetchFromGitHub { - owner = "elementary"; - repo = pname; - rev = version; - sha256 = "0dc5jv335j443rg08cb7p8wvmcg36wrf1vlcfg9r20cksdis9v4l"; - }; - - patches = [ - (substituteAll { - src = ./fix-paths.patch; - inherit onboard; - }) - # Upstream code not respecting our localedir - # https://github.com/elementary/switchboard-plug-a11y/pull/79 - (fetchpatch { - url = "https://github.com/elementary/switchboard-plug-a11y/commit/08db4b696128a6bf809da3403a818834fcd62b02.patch"; - sha256 = "1s13ak23bdxgcb74wdz3ql192bla5qhabdicqyjv1rp32plhkbg5"; - }) - ]; - - nativeBuildInputs = [ - meson - ninja - pkg-config - vala - ]; - - buildInputs = [ - granite - gtk3 - libgee - switchboard - wingpanel-indicator-a11y - ]; - - passthru = { - updateScript = nix-update-script { }; - }; - - meta = with lib; { - description = "Switchboard Universal Access Plug"; - homepage = "https://github.com/elementary/switchboard-plug-a11y"; - license = licenses.gpl3Plus; - platforms = platforms.linux; - maintainers = teams.pantheon.members; - }; -} diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/fix-paths.patch b/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/fix-paths.patch deleted file mode 100644 index 4d69390f39d9..000000000000 --- a/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/fix-paths.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/Panes/Typing.vala b/src/Panes/Typing.vala -index b4ae8b0..5b8fd7e 100644 ---- a/src/Panes/Typing.vala -+++ b/src/Panes/Typing.vala -@@ -83,7 +83,7 @@ public class Accessibility.Panes.Typing : Categories.Pane { - - onboard_settings_label.clicked.connect (() => { - try { -- var appinfo = AppInfo.create_from_commandline ("onboard-settings", null, AppInfoCreateFlags.NONE); -+ var appinfo = AppInfo.create_from_commandline ("@onboard@/bin/onboard-settings", null, AppInfoCreateFlags.NONE); - appinfo.launch (null, null); - } catch (Error e) { - warning ("%s\n", e.message); diff --git a/pkgs/desktops/pantheon/default.nix b/pkgs/desktops/pantheon/default.nix index ac952130f482..47f4d036fc5c 100644 --- a/pkgs/desktops/pantheon/default.nix +++ b/pkgs/desktops/pantheon/default.nix @@ -4,7 +4,6 @@ lib.makeScope pkgs.newScope (self: with self; { switchboardPlugs = [ - switchboard-plug-a11y switchboard-plug-about switchboard-plug-applications switchboard-plug-bluetooth @@ -26,7 +25,6 @@ lib.makeScope pkgs.newScope (self: with self; { wingpanelIndicators = [ wingpanel-applications-menu - wingpanel-indicator-a11y wingpanel-indicator-bluetooth wingpanel-indicator-datetime wingpanel-indicator-keyboard @@ -34,8 +32,8 @@ lib.makeScope pkgs.newScope (self: with self; { wingpanel-indicator-nightlight wingpanel-indicator-notifications wingpanel-indicator-power - wingpanel-indicator-session wingpanel-indicator-sound + wingpanel-quick-settings ]; maintainers = lib.teams.pantheon.members; @@ -157,10 +155,10 @@ lib.makeScope pkgs.newScope (self: with self; { wingpanel-indicator-power = callPackage ./desktop/wingpanel-indicators/power { }; - wingpanel-indicator-session = callPackage ./desktop/wingpanel-indicators/session { }; - wingpanel-indicator-sound = callPackage ./desktop/wingpanel-indicators/sound { }; + wingpanel-quick-settings = callPackage ./desktop/wingpanel-indicators/quick-settings { }; + #### SWITCHBOARD switchboard = callPackage ./apps/switchboard { }; @@ -169,8 +167,6 @@ lib.makeScope pkgs.newScope (self: with self; { 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 { }; @@ -244,4 +240,8 @@ lib.makeScope pkgs.newScope (self: with self; { notes-up = throw "The ‘pantheon.notes-up’ alias was removed on 2022-02-02, please use ‘pkgs.notes-up’ directly."; # added 2021-12-18 + switchboard-plug-a11y = throw "pantheon.switchboard-plug-a11y has been removed, abandoned by upstream."; # added 2024-08-23 + + wingpanel-indicator-session = throw "pantheon.wingpanel-indicator-session has been removed, abandoned by upstream."; # added 2024-08-23 + } diff --git a/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix b/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix index e85540b27ae5..9c67c245c8ae 100644 --- a/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix +++ b/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix @@ -3,6 +3,7 @@ , fetchFromGitHub , nix-update-script , desktop-file-utils +, gettext , pkg-config , writeScript , gnome-keyring @@ -91,20 +92,18 @@ in stdenv.mkDerivation rec { pname = "elementary-session-settings"; - version = "6.0.0-unstable-2024-03-29"; + version = "8.0.0"; src = fetchFromGitHub { owner = "elementary"; repo = "session-settings"; - # For systemd managed gnome-session support. - # https://github.com/NixOS/nixpkgs/issues/228946 - # nixpkgs-update: no auto update - rev = "53bf57e5b32936befc3003a0f99c5b3a69349c76"; - sha256 = "sha256-TX9V6gZiuPEKSHQoSD4+5QptuqEvuErCJ8OF2KFRf9k="; + rev = version; + sha256 = "sha256-CtArMzM6eukH/Ob0W/U4xh2vvqm17m3T0w7lhcRid74="; }; nativeBuildInputs = [ desktop-file-utils + gettext meson ninja pkg-config diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix index a1422ec18354..edc35f146908 100644 --- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix @@ -4,7 +4,6 @@ , nix-update-script , pkg-config , meson -, python3 , ninja , vala , gtk3 @@ -18,13 +17,13 @@ stdenv.mkDerivation rec { pname = "wingpanel-indicator-bluetooth"; - version = "7.0.1"; + version = "8.0.0"; src = fetchFromGitHub { owner = "elementary"; repo = pname; rev = version; - sha256 = "sha256-VLW3r5X0AWhNRQpajYmCNMIl/UvZCWz14gpxZLlLJdQ="; + sha256 = "sha256-N0ehiK8sYAZ/3Lu2u7dut7ZflroFptALFCxjbI0++BA="; }; nativeBuildInputs = [ @@ -33,7 +32,6 @@ stdenv.mkDerivation rec { meson ninja pkg-config - python3 vala ]; @@ -46,11 +44,6 @@ stdenv.mkDerivation rec { wingpanel ]; - postPatch = '' - chmod +x meson/post_install.py - patchShebangs meson/post_install.py - ''; - passthru = { updateScript = nix-update-script { }; }; diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix index 921fa48d81c5..37101f298453 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 = "7.1.0"; + version = "7.1.1"; src = fetchFromGitHub { owner = "elementary"; repo = pname; rev = version; - sha256 = "sha256-vm+wMHyWWtOWM0JyiesfpzC/EmkTNbprXaBgVUDQvDg="; + sha256 = "sha256-fuC9ldDjKuy1kBeFOAIZ/Onhl2o45Xj+YjSrfYz1xvw="; }; nativeBuildInputs = [ diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix index 42e983da68f9..74bd1be5f24e 100644 --- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix @@ -8,9 +8,9 @@ , meson , ninja , vala +, elementary-settings-daemon , gtk3 , granite -, bamf , libgtop , libnotify , udev @@ -20,13 +20,13 @@ stdenv.mkDerivation rec { pname = "wingpanel-indicator-power"; - version = "6.2.1"; + version = "8.0.0"; src = fetchFromGitHub { owner = "elementary"; repo = pname; rev = version; - sha256 = "sha256-EEY32O7GeXBHSjZQ3XGogT1sUzIKGX+CzcGx8buGLq4="; + sha256 = "sha256-RelK4HIyTQ6kXi7/K8U33sKIrDrhA3IFVnnvX4x88UQ="; }; patches = [ @@ -44,7 +44,7 @@ stdenv.mkDerivation rec { ]; buildInputs = [ - bamf + elementary-settings-daemon granite gtk3 libgee diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/quick-settings/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/quick-settings/default.nix new file mode 100644 index 000000000000..e51621e52958 --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/quick-settings/default.nix @@ -0,0 +1,65 @@ +{ + stdenv, + lib, + fetchFromGitHub, + nix-update-script, + glib, + meson, + ninja, + pkg-config, + vala, + elementary-settings-daemon, + granite, + gtk3, + libgee, + libhandy, + libportal, + packagekit, + wayland, + wingpanel, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "wingpanel-quick-settings"; + version = "1.0.0"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = "quick-settings"; + rev = finalAttrs.version; + hash = "sha256-k8K6zGTLYGSsi5NtohbaGg4oVVovktR7BInN8BUE5bQ="; + }; + + nativeBuildInputs = [ + glib # glib-compile-resources + meson + ninja + pkg-config + vala + ]; + + buildInputs = [ + elementary-settings-daemon # for prefers-color-scheme + glib + granite + gtk3 + libgee + libhandy + libportal + packagekit + wayland + wingpanel + ]; + + passthru = { + updateScript = nix-update-script { }; + }; + + meta = { + description = "Quick settings menu for Wingpanel"; + homepage = "https://github.com/elementary/quick-settings"; + license = lib.licenses.gpl3Plus; + platforms = lib.platforms.linux; + maintainers = lib.teams.pantheon.members; + }; +}) diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix deleted file mode 100644 index eae385178db4..000000000000 --- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix +++ /dev/null @@ -1,55 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, nix-update-script -, pkg-config -, meson -, ninja -, vala -, gtk3 -, granite -, wingpanel -, accountsservice -, libgee -, libhandy -}: - -stdenv.mkDerivation rec { - pname = "wingpanel-indicator-session"; - version = "2.3.1"; - - src = fetchFromGitHub { - owner = "elementary"; - repo = pname; - rev = version; - sha256 = "sha256-2AEMe5dctTicW1MiGRV1SMjN/uFxQGbOYzCNFS1/KNk="; - }; - - nativeBuildInputs = [ - meson - ninja - pkg-config - vala - ]; - - buildInputs = [ - accountsservice - granite - gtk3 - libgee - libhandy - wingpanel - ]; - - passthru = { - updateScript = nix-update-script { }; - }; - - meta = with lib; { - description = "Session Indicator for Wingpanel"; - homepage = "https://github.com/elementary/wingpanel-indicator-session"; - license = licenses.gpl2Plus; - platforms = platforms.linux; - maintainers = teams.pantheon.members; - }; -} diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix index 61d8ee449739..eb4133d70827 100644 --- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix @@ -4,7 +4,6 @@ , nix-update-script , pkg-config , meson -, python3 , ninja , vala , gnome-settings-daemon @@ -20,13 +19,13 @@ stdenv.mkDerivation rec { pname = "wingpanel-indicator-sound"; - version = "7.0.0"; + version = "8.0.0"; src = fetchFromGitHub { owner = "elementary"; repo = pname; rev = version; - sha256 = "sha256-gQyL8g4Y5kM9/1EDLAQYiTSZ6CxuvfQv7LBRZNcGPVk="; + sha256 = "sha256-5VJnRFjyiy+CIOrwabmgWjVF4Jh0lfkhPUoGXivnbtY="; }; nativeBuildInputs = [ @@ -34,7 +33,6 @@ stdenv.mkDerivation rec { meson ninja pkg-config - python3 vala ]; @@ -49,11 +47,6 @@ stdenv.mkDerivation rec { wingpanel ]; - postPatch = '' - chmod +x meson/post_install.py - patchShebangs meson/post_install.py - ''; - passthru = { updateScript = nix-update-script { }; }; diff --git a/pkgs/desktops/pantheon/desktop/wingpanel/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel/default.nix index 3734a0dcc07f..e6fb2a57e7d2 100644 --- a/pkgs/desktops/pantheon/desktop/wingpanel/default.nix +++ b/pkgs/desktops/pantheon/desktop/wingpanel/default.nix @@ -1,6 +1,7 @@ { lib , stdenv , fetchFromGitHub +, fetchpatch , nix-update-script , wrapGAppsHook3 , pkg-config @@ -32,6 +33,13 @@ stdenv.mkDerivation rec { patches = [ ./indicators.patch + + # Add sorting for QuickSettings + # https://github.com/elementary/wingpanel/pull/516 + (fetchpatch { + url = "https://github.com/elementary/wingpanel/commit/cae197c953f4332e67cf0a5457b4e54f8adc3424.patch"; + hash = "sha256-P7Cl6M3qvh9pa1qIwWQV4XG5NoCQId+buzEChcUOapk="; + }) ]; nativeBuildInputs = [