1{
2 config,
3 pkgs,
4 lib,
5 gnome,
6}:
7
8lib.makeScope pkgs.newScope (
9 self: with self; {
10
11 switchboardPlugs = [
12 switchboard-plug-about
13 switchboard-plug-applications
14 switchboard-plug-bluetooth
15 switchboard-plug-datetime
16 switchboard-plug-display
17 switchboard-plug-keyboard
18 switchboard-plug-mouse-touchpad
19 switchboard-plug-network
20 switchboard-plug-notifications
21 switchboard-plug-onlineaccounts
22 switchboard-plug-pantheon-shell
23 switchboard-plug-power
24 switchboard-plug-printers
25 switchboard-plug-security-privacy
26 switchboard-plug-sharing
27 switchboard-plug-sound
28 switchboard-plug-wacom
29 ];
30
31 wingpanelIndicators = [
32 wingpanel-applications-menu
33 wingpanel-indicator-bluetooth
34 wingpanel-indicator-datetime
35 wingpanel-indicator-keyboard
36 wingpanel-indicator-network
37 wingpanel-indicator-nightlight
38 wingpanel-indicator-notifications
39 wingpanel-indicator-power
40 wingpanel-indicator-sound
41 wingpanel-quick-settings
42 ];
43
44 teams = [ lib.teams.pantheon ];
45
46 mutter = pkgs.mutter46;
47
48 # Using 43 to match Mutter used in Pantheon
49 gnome-settings-daemon = pkgs.gnome-settings-daemon46;
50
51 elementary-gsettings-schemas = callPackage ./desktop/elementary-gsettings-schemas { };
52
53 touchegg = pkgs.touchegg.override { withPantheon = true; };
54
55 #### APPS
56
57 appcenter = callPackage ./apps/appcenter { };
58
59 elementary-calculator = callPackage ./apps/elementary-calculator { };
60
61 elementary-calendar = callPackage ./apps/elementary-calendar { };
62
63 elementary-camera = callPackage ./apps/elementary-camera { };
64
65 elementary-code = callPackage ./apps/elementary-code { };
66
67 elementary-dock = callPackage ./apps/elementary-dock { };
68
69 elementary-files = callPackage ./apps/elementary-files { };
70
71 elementary-feedback = callPackage ./apps/elementary-feedback { };
72
73 elementary-iconbrowser = callPackage ./apps/elementary-iconbrowser { };
74
75 elementary-mail = callPackage ./apps/elementary-mail { };
76
77 elementary-music = callPackage ./apps/elementary-music { };
78
79 elementary-photos = callPackage ./apps/elementary-photos { };
80
81 elementary-screenshot = callPackage ./apps/elementary-screenshot { };
82
83 elementary-tasks = callPackage ./apps/elementary-tasks { };
84
85 elementary-terminal = callPackage ./apps/elementary-terminal { };
86
87 elementary-videos = callPackage ./apps/elementary-videos { };
88
89 epiphany = pkgs.epiphany.override { withPantheon = true; };
90
91 sideload = callPackage ./apps/sideload { };
92
93 #### DESKTOP
94
95 elementary-default-settings = callPackage ./desktop/elementary-default-settings { };
96
97 elementary-greeter = callPackage ./desktop/elementary-greeter { };
98
99 elementary-onboarding = callPackage ./desktop/elementary-onboarding { };
100
101 elementary-print-shim = callPackage ./desktop/elementary-print-shim { };
102
103 elementary-session-settings = callPackage ./desktop/elementary-session-settings { };
104
105 elementary-shortcut-overlay = callPackage ./desktop/elementary-shortcut-overlay { };
106
107 file-roller-contract = callPackage ./desktop/file-roller-contract { };
108
109 gala = callPackage ./desktop/gala { };
110
111 wingpanel = callPackage ./desktop/wingpanel { };
112
113 wingpanel-with-indicators = callPackage ./desktop/wingpanel/wrapper.nix {
114 indicators = null;
115 };
116
117 #### LIBRARIES
118
119 granite = callPackage ./libraries/granite { };
120
121 granite7 = callPackage ./libraries/granite/7 { };
122
123 pantheon-wayland = callPackage ./libraries/pantheon-wayland { };
124
125 #### SERVICES
126
127 contractor = callPackage ./services/contractor { };
128
129 elementary-bluetooth-daemon = callPackage ./services/elementary-bluetooth-daemon { };
130
131 elementary-capnet-assist = callPackage ./services/elementary-capnet-assist { };
132
133 elementary-notifications = callPackage ./services/elementary-notifications { };
134
135 elementary-settings-daemon = callPackage ./services/elementary-settings-daemon { };
136
137 pantheon-agent-geoclue2 = callPackage ./services/pantheon-agent-geoclue2 { };
138
139 pantheon-agent-polkit = callPackage ./services/pantheon-agent-polkit { };
140
141 xdg-desktop-portal-pantheon = callPackage ./services/xdg-desktop-portal-pantheon { };
142
143 #### WINGPANEL INDICATORS
144
145 wingpanel-applications-menu = callPackage ./desktop/wingpanel-indicators/applications-menu { };
146
147 wingpanel-indicator-a11y = callPackage ./desktop/wingpanel-indicators/a11y { };
148
149 wingpanel-indicator-bluetooth = callPackage ./desktop/wingpanel-indicators/bluetooth { };
150
151 wingpanel-indicator-datetime = callPackage ./desktop/wingpanel-indicators/datetime { };
152
153 wingpanel-indicator-keyboard = callPackage ./desktop/wingpanel-indicators/keyboard { };
154
155 wingpanel-indicator-network = callPackage ./desktop/wingpanel-indicators/network { };
156
157 wingpanel-indicator-nightlight = callPackage ./desktop/wingpanel-indicators/nightlight { };
158
159 wingpanel-indicator-notifications = callPackage ./desktop/wingpanel-indicators/notifications { };
160
161 wingpanel-indicator-power = callPackage ./desktop/wingpanel-indicators/power { };
162
163 wingpanel-indicator-sound = callPackage ./desktop/wingpanel-indicators/sound { };
164
165 wingpanel-quick-settings = callPackage ./desktop/wingpanel-indicators/quick-settings { };
166
167 #### SWITCHBOARD
168
169 switchboard = callPackage ./apps/switchboard { };
170
171 switchboard-with-plugs = callPackage ./apps/switchboard/wrapper.nix {
172 plugs = null;
173 };
174
175 switchboard-plug-about = callPackage ./apps/switchboard-plugs/about { };
176
177 switchboard-plug-applications = callPackage ./apps/switchboard-plugs/applications { };
178
179 switchboard-plug-bluetooth = callPackage ./apps/switchboard-plugs/bluetooth { };
180
181 switchboard-plug-datetime = callPackage ./apps/switchboard-plugs/datetime { };
182
183 switchboard-plug-display = callPackage ./apps/switchboard-plugs/display { };
184
185 switchboard-plug-keyboard = callPackage ./apps/switchboard-plugs/keyboard { };
186
187 switchboard-plug-mouse-touchpad = callPackage ./apps/switchboard-plugs/mouse-touchpad { };
188
189 switchboard-plug-network = callPackage ./apps/switchboard-plugs/network { };
190
191 switchboard-plug-notifications = callPackage ./apps/switchboard-plugs/notifications { };
192
193 switchboard-plug-onlineaccounts = callPackage ./apps/switchboard-plugs/onlineaccounts { };
194
195 switchboard-plug-pantheon-shell = callPackage ./apps/switchboard-plugs/pantheon-shell { };
196
197 switchboard-plug-power = callPackage ./apps/switchboard-plugs/power { };
198
199 switchboard-plug-printers = callPackage ./apps/switchboard-plugs/printers { };
200
201 switchboard-plug-security-privacy = callPackage ./apps/switchboard-plugs/security-privacy { };
202
203 switchboard-plug-sharing = callPackage ./apps/switchboard-plugs/sharing { };
204
205 switchboard-plug-sound = callPackage ./apps/switchboard-plugs/sound { };
206
207 switchboard-plug-wacom = callPackage ./apps/switchboard-plugs/wacom { };
208
209 ### ARTWORK
210
211 elementary-gtk-theme = callPackage ./artwork/elementary-gtk-theme { };
212
213 elementary-icon-theme = callPackage ./artwork/elementary-icon-theme { };
214
215 elementary-redacted-script = callPackage ./artwork/elementary-redacted-script { };
216
217 elementary-sound-theme = callPackage ./artwork/elementary-sound-theme { };
218
219 elementary-wallpapers = callPackage ./artwork/elementary-wallpapers { };
220
221 ### THIRD-PARTY
222
223 # As suggested in https://github.com/NixOS/nixpkgs/issues/115222#issuecomment-906868654
224 # please avoid putting third-party packages in the `pantheon` scope.
225
226 }
227)
228// lib.optionalAttrs config.allowAliases {
229
230 ### ALIASES
231
232 # They need to be outside the scope or they will shadow the attributes from parent scope.
233
234 vala = throw "The ‘pantheon.vala’ alias was removed on 2022-02-02, please use ‘pkgs.vala’ directly."; # added 2019-10-10
235
236 cerbere = throw "Cerbere is now obsolete https://github.com/elementary/cerbere/releases/tag/2.5.1."; # added 2020-04-06
237
238 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
239
240 evince = pkgs.evince; # added 2022-03-18
241
242 extra-elementary-contracts = throw "extra-elementary-contracts has been removed as all contracts have been upstreamed."; # added 2021-12-01
243
244 file-roller = pkgs.file-roller; # added 2022-03-12
245
246 gnome-bluetooth-contract = throw "pantheon.gnome-bluetooth-contract has been removed, abandoned by upstream."; # added 2022-06-30
247
248 notes-up = throw "The ‘pantheon.notes-up’ alias was removed on 2022-02-02, please use ‘pkgs.notes-up’ directly."; # added 2021-12-18
249
250 switchboard-plug-a11y = throw "pantheon.switchboard-plug-a11y has been removed, abandoned by upstream."; # added 2024-08-23
251
252 wingpanel-indicator-session = throw "pantheon.wingpanel-indicator-session has been removed, abandoned by upstream."; # added 2024-08-23
253
254}