{ config, pkgs, lib, gnome }: 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 ]; 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-indicator-sound ]; maintainers = lib.teams.pantheon.members; mutter = pkgs.gnome.mutter43; # Using 43 to match Mutter used in Pantheon gnome-settings-daemon = pkgs.gnome.gnome-settings-daemon43; elementary-gsettings-schemas = callPackage ./desktop/elementary-gsettings-schemas { }; touchegg = pkgs.touchegg.override { withPantheon = true; }; #### APPS appcenter = callPackage ./apps/appcenter { }; 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-dock = callPackage ./apps/elementary-dock { }; elementary-files = callPackage ./apps/elementary-files { }; elementary-feedback = callPackage ./apps/elementary-feedback { }; elementary-iconbrowser = callPackage ./apps/elementary-iconbrowser { }; elementary-mail = callPackage ./apps/elementary-mail { }; elementary-music = callPackage ./apps/elementary-music { }; elementary-photos = callPackage ./apps/elementary-photos { }; elementary-screenshot = callPackage ./apps/elementary-screenshot { }; elementary-tasks = callPackage ./apps/elementary-tasks { }; elementary-terminal = callPackage ./apps/elementary-terminal { }; elementary-videos = callPackage ./apps/elementary-videos { }; epiphany = pkgs.epiphany.override { withPantheon = true; }; sideload = callPackage ./apps/sideload { }; #### DESKTOP elementary-default-settings = callPackage ./desktop/elementary-default-settings { }; elementary-greeter = callPackage ./desktop/elementary-greeter { }; elementary-onboarding = callPackage ./desktop/elementary-onboarding { }; elementary-print-shim = callPackage ./desktop/elementary-print-shim { }; elementary-session-settings = callPackage ./desktop/elementary-session-settings { inherit (gnome) gnome-session; }; elementary-shortcut-overlay = callPackage ./desktop/elementary-shortcut-overlay { }; file-roller-contract = callPackage ./desktop/file-roller-contract { }; gala = callPackage ./desktop/gala { }; wingpanel = callPackage ./desktop/wingpanel { }; wingpanel-with-indicators = callPackage ./desktop/wingpanel/wrapper.nix { indicators = null; }; #### LIBRARIES granite = callPackage ./granite { }; granite7 = callPackage ./granite/7 { }; #### SERVICES contractor = callPackage ./services/contractor { }; elementary-bluetooth-daemon = callPackage ./services/elementary-bluetooth-daemon { }; elementary-capnet-assist = callPackage ./services/elementary-capnet-assist { }; elementary-notifications = callPackage ./services/elementary-notifications { }; elementary-settings-daemon = callPackage ./services/elementary-settings-daemon { }; pantheon-agent-geoclue2 = callPackage ./services/pantheon-agent-geoclue2 { }; 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 { }; wingpanel-indicator-a11y = callPackage ./desktop/wingpanel-indicators/a11y { }; 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 { }; wingpanel-indicator-nightlight = callPackage ./desktop/wingpanel-indicators/nightlight { }; wingpanel-indicator-notifications = callPackage ./desktop/wingpanel-indicators/notifications { }; wingpanel-indicator-power = callPackage ./desktop/wingpanel-indicators/power { inherit (gnome) gnome-power-manager; }; 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 { }; 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 { }; 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 { }; switchboard-plug-wacom = callPackage ./apps/switchboard-plugs/wacom { }; ### ARTWORK elementary-gtk-theme = callPackage ./artwork/elementary-gtk-theme { }; elementary-icon-theme = callPackage ./artwork/elementary-icon-theme { }; elementary-redacted-script = callPackage ./artwork/elementary-redacted-script { }; elementary-sound-theme = callPackage ./artwork/elementary-sound-theme { }; elementary-wallpapers = callPackage ./artwork/elementary-wallpapers { }; ### THIRD-PARTY # As suggested in https://github.com/NixOS/nixpkgs/issues/115222#issuecomment-906868654 # please avoid putting third-party packages in the `pantheon` scope. }) // lib.optionalAttrs config.allowAliases { ### ALIASES # They need to be outside the scope or they will shadow the attributes from parent scope. vala = throw "The ‘pantheon.vala’ alias was removed on 2022-02-02, please use ‘pkgs.vala’ directly."; # added 2019-10-10 cerbere = throw "Cerbere is now obsolete https://github.com/elementary/cerbere/releases/tag/2.5.1."; # added 2020-04-06 elementary-screenshot-tool = throw "The ‘pantheon.elementary-screenshot-tool’ alias was removed on 2022-02-02, please use ‘pantheon.elementary-screenshot’ directly."; # added 2021-07-21 evince = pkgs.evince; # added 2022-03-18 extra-elementary-contracts = throw "extra-elementary-contracts has been removed as all contracts have been upstreamed."; # added 2021-12-01 file-roller = pkgs.file-roller; # added 2022-03-12 gnome-bluetooth-contract = throw "pantheon.gnome-bluetooth-contract has been removed, abandoned by upstream."; # added 2022-06-30 notes-up = throw "The ‘pantheon.notes-up’ alias was removed on 2022-02-02, please use ‘pkgs.notes-up’ directly."; # added 2021-12-18 }