push sheeet
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s

This commit is contained in:
Dark Steveneq
2025-10-09 14:15:47 +02:00
commit 646b892680
49168 changed files with 5897842 additions and 0 deletions

View File

@@ -0,0 +1,88 @@
{
stdenv,
lib,
fetchFromGitHub,
meson,
ninja,
pkg-config,
sassc,
vala,
wrapGAppsHook4,
appstream,
dbus,
flatpak,
glib,
granite7,
gtk4,
json-glib,
libadwaita,
libgee,
libportal-gtk4,
libsoup_3,
libxml2,
polkit,
nix-update-script,
}:
stdenv.mkDerivation rec {
pname = "appcenter";
version = "8.3.1";
src = fetchFromGitHub {
owner = "elementary";
repo = "appcenter";
rev = version;
hash = "sha256-DFlPXsKLlBufOx/GgFAJovaRwCaFFHo2AlnvszdU7Go=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
sassc
vala
wrapGAppsHook4
];
buildInputs = [
appstream
dbus
flatpak
glib
granite7
gtk4
json-glib
libadwaita
libgee
libportal-gtk4
libsoup_3
libxml2
polkit
];
mesonFlags = [
"-Dpayments=false"
"-Dcurated=false"
];
postPatch = ''
# Since we do not build libxml2 with legacy support,
# we cannot use compressed appstream metadata.
# https://gitlab.gnome.org/GNOME/libxml2/-/commit/f7f14537727bf6845d0eea08cd1fdc30accc2a53
substituteInPlace src/Core/FlatpakBackend.vala \
--replace-fail ".xml.gz" ".xml"
'';
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
homepage = "https://github.com/elementary/appcenter";
description = "Open, pay-what-you-want app store for indie developers, designed for elementary OS";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
mainProgram = "io.elementary.appcenter";
};
}

View File

@@ -0,0 +1,65 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
meson,
ninja,
pkg-config,
vala,
wrapGAppsHook4,
elementary-gtk-theme,
elementary-icon-theme,
granite7,
gtk4,
libgee,
}:
stdenv.mkDerivation rec {
pname = "elementary-calculator";
version = "8.0.1";
src = fetchFromGitHub {
owner = "elementary";
repo = "calculator";
rev = version;
sha256 = "sha256-XBOe3v6lKoICgEh78JoVH0Ojs8tr5PxKHQGk63MX6pQ=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
vala
wrapGAppsHook4
];
buildInputs = [
elementary-icon-theme
granite7
gtk4
libgee
];
preFixup = ''
gappsWrapperArgs+=(
# The GTK theme is hardcoded.
--prefix XDG_DATA_DIRS : "${elementary-gtk-theme}/share"
# The icon theme is hardcoded.
--prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS"
)
'';
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
homepage = "https://github.com/elementary/calculator";
description = "Calculator app designed for elementary OS";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
mainProgram = "io.elementary.calculator";
};
}

View File

@@ -0,0 +1,71 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
meson,
ninja,
pkg-config,
vala,
wrapGAppsHook3,
clutter,
evolution-data-server,
folks,
geoclue2,
geocode-glib_2,
granite,
gtk3,
libchamplain_libsoup3,
libgee,
libhandy,
libical,
libportal-gtk3,
}:
stdenv.mkDerivation rec {
pname = "elementary-calendar";
version = "8.0.0";
src = fetchFromGitHub {
owner = "elementary";
repo = "calendar";
rev = version;
sha256 = "sha256-gBQfrRSaw3TKcsSAQh/hcTpBoEQstGdLbppoZ1/Z1q8=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
vala
wrapGAppsHook3
];
buildInputs = [
clutter
evolution-data-server
folks
geoclue2
geocode-glib_2
granite
gtk3
libchamplain_libsoup3
libgee
libhandy
libical
libportal-gtk3
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Desktop calendar app designed for elementary OS";
homepage = "https://github.com/elementary/calendar";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
mainProgram = "io.elementary.calendar";
};
}

View File

@@ -0,0 +1,66 @@
{
stdenv,
lib,
fetchFromGitHub,
meson,
ninja,
pkg-config,
vala,
wrapGAppsHook4,
glib,
granite7,
gst_all_1,
gtk4,
libadwaita,
libcanberra,
libgee,
nix-update-script,
}:
stdenv.mkDerivation rec {
pname = "elementary-camera";
version = "8.0.2";
src = fetchFromGitHub {
owner = "elementary";
repo = "camera";
rev = version;
sha256 = "sha256-jJJhCFDo5Iw6zV6aE8JgG/sMFpUfra2j2zQ8+GjyQrk=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
vala
wrapGAppsHook4
];
buildInputs = [
glib
granite7
gst_all_1.gst-plugins-bad
gst_all_1.gst-plugins-base
(gst_all_1.gst-plugins-good.override { gtkSupport = true; })
gst_all_1.gst-plugins-rs # GTK 4 sink
gst_all_1.gst-plugins-ugly
gst_all_1.gstreamer
gtk4
libadwaita
libcanberra
libgee
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Camera app designed for elementary OS";
homepage = "https://github.com/elementary/camera";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
mainProgram = "io.elementary.camera";
};
}

View File

@@ -0,0 +1,84 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
meson,
ninja,
pkg-config,
polkit,
vala,
wrapGAppsHook3,
editorconfig-core-c,
granite,
gsettings-desktop-schemas,
gtk3,
gtksourceview4,
gtkspell3,
libgee,
libgit2-glib,
libhandy,
libpeas2,
libsoup_3,
vte,
ctags,
}:
stdenv.mkDerivation rec {
pname = "elementary-code";
version = "8.1.1";
src = fetchFromGitHub {
owner = "elementary";
repo = "code";
rev = version;
hash = "sha256-4IGun7MnrMRmpXD0Kxm/ND4C3pFVhjHqDeP6jUmRg7k=";
};
strictDeps = true;
nativeBuildInputs = [
meson
ninja
pkg-config
polkit # needed for ITS rules
vala
wrapGAppsHook3
];
buildInputs = [
editorconfig-core-c
granite
gsettings-desktop-schemas
gtk3
gtksourceview4
gtkspell3
libgee
libgit2-glib
libhandy
libpeas2
libsoup_3
vala # for ValaSymbolResolver provided by libvala
vte
];
# ctags needed in path by outline plugin
preFixup = ''
gappsWrapperArgs+=(
--prefix PATH : "${lib.makeBinPath [ ctags ]}"
)
'';
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Code editor designed for elementary OS";
homepage = "https://github.com/elementary/code";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
mainProgram = "io.elementary.code";
};
}

View File

@@ -0,0 +1,70 @@
{
stdenv,
lib,
fetchFromGitHub,
meson,
ninja,
pkg-config,
vala,
wayland-scanner,
wrapGAppsHook4,
glib,
granite7,
gtk4,
libadwaita,
wayland,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "elementary-dock";
version = "8.2.0";
outputs = [
"out"
"dev"
];
src = fetchFromGitHub {
owner = "elementary";
repo = "dock";
rev = finalAttrs.version;
hash = "sha256-aKRWb/xtusb9Q2xq6GdM7WzNSweBqWbYUejQq4Or86s=";
};
depsBuildBuild = [ pkg-config ];
nativeBuildInputs = [
meson
ninja
pkg-config
vala
wayland-scanner
wrapGAppsHook4
];
buildInputs = [
glib
granite7
gtk4
libadwaita
wayland
];
# Fix building with GCC 14
# https://github.com/elementary/dock/issues/418
env.NIX_CFLAGS_COMPILE = "-Wno-error=int-conversion";
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "Elegant, simple, clean dock";
homepage = "https://github.com/elementary/dock";
license = lib.licenses.gpl3Plus;
platforms = lib.platforms.linux;
teams = [ lib.teams.pantheon ];
mainProgram = "io.elementary.dock";
};
})

View File

@@ -0,0 +1,67 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
pkg-config,
meson,
ninja,
vala,
gtk4,
glib,
granite7,
libadwaita,
libgee,
wrapGAppsHook4,
appstream,
}:
stdenv.mkDerivation rec {
pname = "elementary-feedback";
version = "8.0.1";
src = fetchFromGitHub {
owner = "elementary";
repo = "feedback";
rev = version;
sha256 = "sha256-D0x0jKYEB6Bo8ETgVCjgdOItc+VJYlrr8N9lI/Z3eXU=";
};
patches = [
# The standard location to the metadata pool where metadata
# will be read from is likely hardcoded as /usr/share/metainfo
# https://github.com/ximion/appstream/blob/v0.15.2/src/as-pool.c#L117
# https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#spec-component-location
./fix-metadata-path.patch
];
nativeBuildInputs = [
meson
ninja
pkg-config
vala
wrapGAppsHook4
];
buildInputs = [
appstream
granite7
gtk4
libadwaita
libgee
glib
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "GitHub Issue Reporter designed for elementary OS";
homepage = "https://github.com/elementary/feedback";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
mainProgram = "io.elementary.feedback";
};
}

View File

@@ -0,0 +1,20 @@
diff --git a/src/MainWindow.vala b/src/MainWindow.vala
index 14b0701..13638a5 100644
--- a/src/MainWindow.vala
+++ b/src/MainWindow.vala
@@ -82,6 +82,7 @@ public class Feedback.MainWindow : Gtk.ApplicationWindow {
AppStream.PoolFlags.LOAD_FLATPAK |
AppStream.PoolFlags.RESOLVE_ADDONS
);
+ appstream_pool.add_extra_data_location ("/run/current-system/sw/share/metainfo/", AppStream.FormatStyle.METAINFO);
#else
appstream_pool.clear_metadata_locations ();
// flatpak's appstream files exists only inside they sandbox
@@ -89,6 +90,7 @@ public class Feedback.MainWindow : Gtk.ApplicationWindow {
foreach (var app in app_entries) {
appstream_pool.add_metadata_location (appdata_dir.printf (app));
}
+ appstream_pool.add_metadata_location ("/run/current-system/sw/share/metainfo/");
#endif
try {

View File

@@ -0,0 +1,80 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
pkg-config,
meson,
ninja,
vala,
desktop-file-utils,
libcanberra,
gtk3,
glib,
libgee,
libhandy,
libportal-gtk3,
granite,
pango,
sqlite,
zeitgeist,
libcloudproviders,
libgit2-glib,
wrapGAppsHook3,
systemd,
}:
stdenv.mkDerivation rec {
pname = "elementary-files";
version = "7.1.5";
outputs = [
"out"
"dev"
];
src = fetchFromGitHub {
owner = "elementary";
repo = "files";
rev = version;
hash = "sha256-fS285BRTP/i50WE4oM+xgoj6cBgas+dQ6WdK9WebURQ=";
};
nativeBuildInputs = [
desktop-file-utils
meson
ninja
pkg-config
vala
wrapGAppsHook3
];
buildInputs = [
glib
granite
gtk3
libcanberra
libcloudproviders
libgee
libgit2-glib
libhandy
libportal-gtk3
pango
sqlite
systemd
zeitgeist
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "File browser designed for elementary OS";
homepage = "https://github.com/elementary/files";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
mainProgram = "io.elementary.files";
};
}

View File

@@ -0,0 +1,67 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
meson,
ninja,
pkg-config,
vala,
wrapGAppsHook4,
elementary-gtk-theme,
elementary-icon-theme,
glib,
granite7,
gtk4,
gtksourceview5,
}:
stdenv.mkDerivation rec {
pname = "elementary-iconbrowser";
version = "8.0.0";
src = fetchFromGitHub {
owner = "elementary";
repo = "iconbrowser";
rev = version;
sha256 = "sha256-T0VCpk3pdq+2gr/UblLu8mRX7TKJrAtyyFk4i+tAVfI=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
vala
wrapGAppsHook4
];
buildInputs = [
elementary-icon-theme
glib
granite7
gtk4
gtksourceview5
];
preFixup = ''
gappsWrapperArgs+=(
# The GTK theme is hardcoded.
--prefix XDG_DATA_DIRS : "${elementary-gtk-theme}/share"
# The icon theme is hardcoded.
--prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS"
)
'';
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
homepage = "https://github.com/elementary/iconbrowser";
description = "Browse and find system icons";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
mainProgram = "io.elementary.iconbrowser";
};
}

View File

@@ -0,0 +1,79 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
pkg-config,
meson,
ninja,
vala,
gtk3,
libxml2,
libhandy,
libportal-gtk3,
webkitgtk_4_1,
elementary-gtk-theme,
elementary-icon-theme,
folks,
glib-networking,
granite,
evolution-data-server,
wrapGAppsHook3,
libgee,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "elementary-mail";
version = "8.0.0";
src = fetchFromGitHub {
owner = "elementary";
repo = "mail";
tag = finalAttrs.version;
hash = "sha256-6T/OTiuDVAPBqp8BPawf/MVEuWTPrLa3/N1Blvt/7Q8=";
};
nativeBuildInputs = [
libxml2
meson
ninja
pkg-config
vala
wrapGAppsHook3
];
buildInputs = [
elementary-icon-theme
evolution-data-server
folks
glib-networking
granite
gtk3
libgee
libhandy
libportal-gtk3
webkitgtk_4_1
];
preFixup = ''
gappsWrapperArgs+=(
# The GTK theme is hardcoded.
--prefix XDG_DATA_DIRS : "${elementary-gtk-theme}/share"
# The icon theme is hardcoded.
--prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS"
)
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Mail app designed for elementary OS";
homepage = "https://github.com/elementary/mail";
changelog = "https://github.com/elementary/mail/releases/tag/${finalAttrs.version}";
license = lib.licenses.gpl3Plus;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ ethancedwards8 ];
teams = [ lib.teams.pantheon ];
mainProgram = "io.elementary.mail";
};
})

View File

@@ -0,0 +1,64 @@
{
stdenv,
lib,
fetchFromGitHub,
glib,
meson,
ninja,
pkg-config,
vala,
wrapGAppsHook4,
geoclue2,
geocode-glib_2,
granite7,
gtk4,
libadwaita,
libshumate,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "elementary-maps";
version = "8.1.0";
src = fetchFromGitHub {
owner = "elementary";
repo = "maps";
tag = finalAttrs.version;
hash = "sha256-tS8UnW/oNjLaUZ1XgGuAmeMrHEa2jbtBc0xMcTKki1k=";
};
strictDeps = true;
nativeBuildInputs = [
glib
meson
ninja
pkg-config
vala
wrapGAppsHook4
];
buildInputs = [
geoclue2
geocode-glib_2
glib
granite7
gtk4
libadwaita
libshumate
];
passthru = {
updateScript = nix-update-script { };
};
meta = {
homepage = "https://github.com/elementary/maps";
description = "Map viewer designed for elementary OS";
license = lib.licenses.gpl3Plus;
platforms = lib.platforms.linux;
teams = [ lib.teams.pantheon ];
mainProgram = "io.elementary.maps";
};
})

View File

@@ -0,0 +1,75 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
meson,
ninja,
pkg-config,
vala,
wrapGAppsHook4,
elementary-gtk-theme,
elementary-icon-theme,
glib,
granite7,
gst_all_1,
gtk4,
libadwaita,
}:
stdenv.mkDerivation rec {
pname = "elementary-music";
version = "8.1.0";
src = fetchFromGitHub {
owner = "elementary";
repo = "music";
rev = version;
sha256 = "sha256-ALAQh+iFhRhAMCwYDM0Bcww1K/xJ/AajZu/52baI3gQ=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
vala
wrapGAppsHook4
];
buildInputs = [
elementary-icon-theme
glib
granite7
gtk4
libadwaita
]
++ (with gst_all_1; [
gst-plugins-bad
gst-plugins-base
gst-plugins-good
gst-plugins-ugly
gstreamer
]);
preFixup = ''
gappsWrapperArgs+=(
# The GTK theme is hardcoded.
--prefix XDG_DATA_DIRS : "${elementary-gtk-theme}/share"
# The icon theme is hardcoded.
--prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS"
)
'';
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Music player and library designed for elementary OS";
homepage = "https://github.com/elementary/music";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
mainProgram = "io.elementary.music";
};
}

View File

@@ -0,0 +1,81 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
meson,
ninja,
pkg-config,
vala,
gtk3,
libexif,
libgee,
libhandy,
libportal-gtk3,
geocode-glib_2,
gexiv2,
libgphoto2,
granite,
gst_all_1,
libgudev,
libraw,
sqlite,
libwebp,
wrapGAppsHook3,
}:
stdenv.mkDerivation rec {
pname = "elementary-photos";
version = "8.0.1";
src = fetchFromGitHub {
owner = "elementary";
repo = "photos";
rev = version;
sha256 = "sha256-+aqBeGRisngbH/EALROTr0IZvyrWIlQvFFEgJNfv95Y=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
vala
wrapGAppsHook3
];
buildInputs = [
geocode-glib_2
gexiv2
granite
gtk3
libexif
libgee
libgphoto2
libgudev
libhandy
libportal-gtk3
libraw
libwebp
sqlite
]
++ (with gst_all_1; [
gst-plugins-bad
gst-plugins-base
gst-plugins-good
gst-plugins-ugly
gstreamer
]);
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Photo viewer and organizer designed for elementary OS";
homepage = "https://github.com/elementary/photos";
license = licenses.lgpl21Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
mainProgram = "io.elementary.photos";
};
}

View File

@@ -0,0 +1,57 @@
{
stdenv,
lib,
fetchFromGitHub,
meson,
ninja,
pkg-config,
vala,
wrapGAppsHook4,
gdk-pixbuf,
glib,
granite7,
gtk4,
libportal,
nix-update-script,
}:
stdenv.mkDerivation rec {
pname = "elementary-screenshot";
version = "8.0.3";
src = fetchFromGitHub {
owner = "elementary";
repo = "screenshot";
rev = version;
hash = "sha256-nEJCyQs77zcUb9mc2dUBbZP3zWdPFHTOORROe3u6sSA=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
vala
wrapGAppsHook4
];
buildInputs = [
gdk-pixbuf
glib
granite7
gtk4
libportal
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Screenshot tool designed for elementary OS";
homepage = "https://github.com/elementary/screenshot";
license = licenses.lgpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
mainProgram = "io.elementary.screenshot";
};
}

View File

@@ -0,0 +1,69 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
meson,
ninja,
pkg-config,
vala,
wrapGAppsHook3,
clutter-gtk,
evolution-data-server,
granite,
geoclue2,
geocode-glib_2,
gtk3,
libchamplain_libsoup3,
libgee,
libhandy,
libical,
libportal-gtk3,
}:
stdenv.mkDerivation rec {
pname = "elementary-tasks";
version = "6.3.3";
src = fetchFromGitHub {
owner = "elementary";
repo = "tasks";
rev = version;
hash = "sha256-xOMS4Zwfl7TLHvm8Zn6wQ4ZoMg+Yuci+cTpUVG+liss=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
vala
wrapGAppsHook3
];
buildInputs = [
clutter-gtk
evolution-data-server
granite
geoclue2
geocode-glib_2
gtk3
libchamplain_libsoup3
libgee
libhandy
libical
libportal-gtk3
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
homepage = "https://github.com/elementary/tasks";
description = "Synced tasks and reminders on elementary OS";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
mainProgram = "io.elementary.tasks";
};
}

View File

@@ -0,0 +1,69 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
pkg-config,
meson,
ninja,
vala,
desktop-file-utils,
gtk3,
granite,
libhandy,
libnotify,
vte,
libgee,
pcre2,
wrapGAppsHook3,
xvfb-run,
}:
stdenv.mkDerivation rec {
pname = "elementary-terminal";
version = "7.1.2";
src = fetchFromGitHub {
owner = "elementary";
repo = "terminal";
rev = version;
sha256 = "sha256-aMVZSPCh3aQ9VvPyHGKX4p/XG3KhnJpdiFWD0dIjByw=";
};
nativeBuildInputs = [
desktop-file-utils
meson
ninja
pkg-config
vala
wrapGAppsHook3
xvfb-run
];
buildInputs = [
granite
gtk3
libgee
libhandy
libnotify
pcre2
vte
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Terminal emulator designed for elementary OS";
longDescription = ''
A super lightweight, beautiful, and simple terminal. Comes with sane defaults, browser-class tabs, sudo paste protection,
smart copy/paste, and little to no configuration.
'';
homepage = "https://github.com/elementary/terminal";
license = licenses.lgpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
mainProgram = "io.elementary.terminal";
};
}

View File

@@ -0,0 +1,66 @@
{
stdenv,
lib,
fetchFromGitHub,
nix-update-script,
meson,
ninja,
pkg-config,
vala,
wrapGAppsHook4,
gdk-pixbuf,
granite7,
gst_all_1,
gtk4,
libadwaita,
libgee,
}:
stdenv.mkDerivation rec {
pname = "elementary-videos";
version = "8.0.2";
src = fetchFromGitHub {
owner = "elementary";
repo = "videos";
rev = version;
hash = "sha256-lvIsLjsb4HqwXDsH2krBlxmy7kJdadpjDcw+svaWV+Q=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
vala
wrapGAppsHook4
];
buildInputs = [
gdk-pixbuf
granite7
gst_all_1.gst-libav
gst_all_1.gst-plugins-bad
gst_all_1.gst-plugins-base
# https://github.com/elementary/videos/issues/356
(gst_all_1.gst-plugins-good.override { gtkSupport = true; })
gst_all_1.gst-plugins-rs # GTK 4 Sink
gst_all_1.gst-plugins-ugly
gst_all_1.gstreamer
gtk4
libadwaita
libgee
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Video player and library app designed for elementary OS";
homepage = "https://github.com/elementary/videos";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
mainProgram = "io.elementary.videos";
};
}

View File

@@ -0,0 +1,61 @@
{
lib,
stdenv,
desktop-file-utils,
nix-update-script,
fetchFromGitHub,
flatpak,
gettext,
glib,
granite7,
gtk4,
meson,
ninja,
pkg-config,
vala,
libxml2,
wrapGAppsHook4,
}:
stdenv.mkDerivation rec {
pname = "sideload";
version = "6.3.0";
src = fetchFromGitHub {
owner = "elementary";
repo = "sideload";
rev = version;
sha256 = "sha256-2tYdcHx77XN2iu2PKXAKwOtb4TOFt3Igv17w2zIxqT4=";
};
nativeBuildInputs = [
desktop-file-utils
gettext
meson
ninja
pkg-config
vala
wrapGAppsHook4
];
buildInputs = [
flatpak
glib
granite7
gtk4
libxml2
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
homepage = "https://github.com/elementary/sideload";
description = "Flatpak installer, designed for elementary OS";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
mainProgram = "io.elementary.sideload";
};
}

View File

@@ -0,0 +1,77 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
meson,
ninja,
pkg-config,
vala,
libadwaita,
libgee,
libgtop,
libgudev,
libsoup_3,
gettext,
glib,
granite7,
gtk4,
packagekit,
polkit,
switchboard,
udisks2,
fwupd,
appstream,
elementary-settings-daemon,
}:
stdenv.mkDerivation rec {
pname = "switchboard-plug-about";
version = "8.2.1";
src = fetchFromGitHub {
owner = "elementary";
repo = "switchboard-plug-about";
rev = version;
sha256 = "sha256-H4BDLP3yzQi+ougpvBvnv1R1TImzUjSOVDGbOqw9hvg=";
};
nativeBuildInputs = [
gettext # msgfmt
glib # glib-compile-resources
meson
ninja
pkg-config
vala
];
buildInputs = [
appstream
elementary-settings-daemon # for gsettings schemas
fwupd
granite7
gtk4
libadwaita
libgee
libgtop
libgudev
libsoup_3
packagekit
polkit
switchboard
udisks2
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Switchboard About Plug";
homepage = "https://github.com/elementary/switchboard-plug-about";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
};
}

View File

@@ -0,0 +1,58 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
gettext,
meson,
ninja,
pkg-config,
vala,
libadwaita,
libgee,
granite7,
gtk4,
switchboard,
flatpak,
}:
stdenv.mkDerivation rec {
pname = "switchboard-plug-applications";
version = "8.2.0";
src = fetchFromGitHub {
owner = "elementary";
repo = "settings-applications";
tag = version;
hash = "sha256-kmyAEm4MlyHfm2xC55qsFSk+aLEJMMCy7/Vi0dndaNU=";
};
nativeBuildInputs = [
gettext # msgfmt
meson
ninja
pkg-config
vala
];
buildInputs = [
flatpak
granite7
gtk4
libadwaita
libgee
switchboard
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Switchboard Applications Plug";
homepage = "https://github.com/elementary/settings-applications";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
};
}

View File

@@ -0,0 +1,63 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
meson,
ninja,
pkg-config,
vala,
libadwaita,
libgee,
gettext,
granite7,
gtk4,
bluez,
elementary-bluetooth-daemon,
switchboard,
wingpanel-indicator-bluetooth,
}:
stdenv.mkDerivation rec {
pname = "switchboard-plug-bluetooth";
version = "8.0.2";
src = fetchFromGitHub {
owner = "elementary";
repo = "settings-bluetooth";
rev = version;
hash = "sha256-D2kigdGdmDtFWt/hldzHm+QqlGl6RBExhcdurLtCM1Q=";
};
nativeBuildInputs = [
gettext # msgfmt
meson
ninja
pkg-config
vala
];
buildInputs = [
bluez
elementary-bluetooth-daemon # settings schema
granite7
gtk4
libadwaita
libgee
switchboard
wingpanel-indicator-bluetooth # settings schema
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Switchboard Bluetooth Plug";
homepage = "https://github.com/elementary/settings-bluetooth";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
};
}

View File

@@ -0,0 +1,68 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
meson,
ninja,
replaceVars,
pkg-config,
vala,
libadwaita,
libgee,
libical,
granite7,
gettext,
gtk4,
libxml2,
switchboard,
tzdata,
}:
stdenv.mkDerivation rec {
pname = "switchboard-plug-datetime";
version = "8.1.0";
src = fetchFromGitHub {
owner = "elementary";
repo = "switchboard-plug-datetime";
rev = version;
sha256 = "sha256-VOL0F0obuXVz0G5hMI/hpUf2T3H8XUw64wu4MxRi57g=";
};
patches = [
(replaceVars ./fix-paths.patch {
tzdata = tzdata;
})
];
nativeBuildInputs = [
gettext # msgfmt
libxml2
meson
ninja
pkg-config
vala
];
buildInputs = [
granite7
gtk4
libadwaita
libgee
libical
switchboard
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Switchboard Date & Time Plug";
homepage = "https://github.com/elementary/switchboard-plug-datetime";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
};
}

View File

@@ -0,0 +1,15 @@
diff --git a/src/Parser.vala b/src/Parser.vala
index 7c7b82d..2c3a061 100644
--- a/src/Parser.vala
+++ b/src/Parser.vala
@@ -28,9 +28,9 @@ public class DateTime.Parser : GLib.Object {
return parser;
}
private Parser () {
- var file = File.new_for_path ("/usr/share/zoneinfo/zone.tab");
+ var file = File.new_for_path ("@tzdata@/share/zoneinfo/zone.tab");
if (!file.query_exists ()) {
- critical ("/usr/share/zoneinfo/zone.tab doesn't exist !");
+ critical ("@tzdata@/share/zoneinfo/zone.tab doesn't exist !");
return;
}

View File

@@ -0,0 +1,58 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
meson,
ninja,
pkg-config,
vala,
libadwaita,
libgee,
gettext,
glib,
granite7,
gtk4,
switchboard,
}:
stdenv.mkDerivation rec {
pname = "switchboard-plug-display";
version = "8.0.2";
src = fetchFromGitHub {
owner = "elementary";
repo = "settings-display";
rev = version;
sha256 = "sha256-/qWNs72x9Y2m+QOu5jLjtbIXjZhf6AGtLdpRpdED+AE=";
};
nativeBuildInputs = [
gettext # msgfmt
glib # glib-compile-resources
meson
ninja
pkg-config
vala
];
buildInputs = [
granite7
gtk4
libadwaita
libgee
switchboard
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Switchboard Displays Plug";
homepage = "https://github.com/elementary/settings-display";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
};
}

View File

@@ -0,0 +1,81 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
replaceVars,
meson,
ninja,
pkg-config,
vala,
elementary-settings-daemon,
libadwaita,
libgee,
gettext,
gnome-settings-daemon,
granite7,
gsettings-desktop-schemas,
gtk4,
libxml2,
libgnomekbd,
libxklavier,
ibus,
onboard,
switchboard,
}:
stdenv.mkDerivation rec {
pname = "switchboard-plug-keyboard";
version = "8.1.0";
src = fetchFromGitHub {
owner = "elementary";
repo = "settings-keyboard";
rev = version;
sha256 = "sha256-8lgoR7nYqUJfLr9UhqnFJWw9x9l97RxgIkAwodHgrzI=";
};
patches = [
# This will try to install packages with apt.
# https://github.com/elementary/settings-keyboard/issues/324
./hide-install-unlisted-engines-button.patch
(replaceVars ./fix-paths.patch {
inherit onboard libgnomekbd;
})
];
nativeBuildInputs = [
gettext # msgfmt
libxml2
meson
ninja
pkg-config
vala
];
buildInputs = [
elementary-settings-daemon # io.elementary.settings-daemon.applications
gnome-settings-daemon # media-keys
granite7
gsettings-desktop-schemas
gtk4
ibus
libadwaita
libgee
libxklavier
switchboard
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Switchboard Keyboard Plug";
homepage = "https://github.com/elementary/settings-keyboard";
license = licenses.gpl2Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
};
}

View File

@@ -0,0 +1,26 @@
diff --git a/src/Behavior/Behavior.vala b/src/Behavior/Behavior.vala
index bd461685..b6371096 100644
--- a/src/Behavior/Behavior.vala
+++ b/src/Behavior/Behavior.vala
@@ -252,7 +252,7 @@ public class Keyboard.Behaviour.Page : Gtk.Box {
onscreen_keyboard_settings.clicked.connect (() => {
try {
- var appinfo = GLib.AppInfo.create_from_commandline ("onboard-settings", null, NONE);
+ var appinfo = GLib.AppInfo.create_from_commandline ("@onboard@/bin/onboard-settings", null, NONE);
appinfo.launch (null, null);
} catch (Error e) {
critical ("Unable to launch onboard-settings: %s", e.message);
diff --git a/src/Layout/Widgets/AddLayoutDialog.vala b/src/Layout/Widgets/AddLayoutDialog.vala
index 25cc0fe9..b3e350bb 100644
--- a/src/Layout/Widgets/AddLayoutDialog.vala
+++ b/src/Layout/Widgets/AddLayoutDialog.vala
@@ -206,7 +206,7 @@ public class Keyboard.LayoutPage.AddLayoutDialog : Granite.Dialog {
});
keyboard_map_button.clicked.connect (() => {
- string command = "gkbd-keyboard-display \"--layout=" + layout_id + "\"";
+ string command = "@libgnomekbd@/bin/gkbd-keyboard-display \"--layout=" + layout_id + "\"";
try {
AppInfo.create_from_commandline (command, null, AppInfoCreateFlags.NONE).launch (null, null);
} catch (Error e) {

View File

@@ -0,0 +1,13 @@
diff --git a/src/InputMethod/Widgets/AddEngineDialog.vala b/src/InputMethod/Widgets/AddEngineDialog.vala
index 0a7f6013..a16904eb 100644
--- a/src/InputMethod/Widgets/AddEngineDialog.vala
+++ b/src/InputMethod/Widgets/AddEngineDialog.vala
@@ -70,8 +70,6 @@ public class Keyboard.InputMethodPage.AddEngineDialog : Granite.Dialog {
get_content_area ().append (frame);
- var install_button = add_button (_("Install Unlisted Engines…"), Gtk.ResponseType.OK);
-
var cancel_button = add_button (_("Cancel"), Gtk.ResponseType.CANCEL);
var add_button = add_button (_("Add Engine"), Gtk.ResponseType.ACCEPT);

View File

@@ -0,0 +1,71 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
replaceVars,
meson,
ninja,
pkg-config,
vala,
libgee,
libxml2,
granite7,
gtk4,
switchboard,
gettext,
gnome-settings-daemon,
glib,
gala, # needed for gestures support
touchegg,
}:
stdenv.mkDerivation rec {
pname = "switchboard-plug-mouse-touchpad";
version = "8.0.2";
src = fetchFromGitHub {
owner = "elementary";
repo = "switchboard-plug-mouse-touchpad";
rev = version;
sha256 = "sha256-332y3D3T90G6bDVacRm3a1p4mLK3vsW8sBvre5lW/mk=";
};
patches = [
(replaceVars ./fix-paths.patch {
touchegg = touchegg;
})
];
nativeBuildInputs = [
gettext # msgfmt
meson
ninja
pkg-config
vala
];
buildInputs = [
gala
glib
granite7
gtk4
libgee
libxml2
gnome-settings-daemon
switchboard
touchegg
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Switchboard Mouse & Touchpad Plug";
homepage = "https://github.com/elementary/switchboard-plug-mouse-touchpad";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
};
}

View File

@@ -0,0 +1,13 @@
diff --git a/src/Utils/ToucheggSettings.vala b/src/Utils/ToucheggSettings.vala
index 1d621b9c..73c89714 100644
--- a/src/Utils/ToucheggSettings.vala
+++ b/src/Utils/ToucheggSettings.vala
@@ -36,7 +36,7 @@ public class MouseTouchpad.ToucheggSettings : GLib.Object {
private const string MAXIMIZE_4_XPATH = "//application[@name=\"All\"]/gesture[@fingers=\"4\"]/action[@type=\"MAXIMIZE_RESTORE_WINDOW\"]/..";
public ToucheggSettings () {
- system_config_path = Path.build_filename (GLib.Path.DIR_SEPARATOR_S, "usr", "share", "touchegg", "touchegg.conf");
+ system_config_path = Path.build_filename ("@touchegg@", "share", "touchegg", "touchegg.conf");
user_config_dir_path = Path.build_filename (GLib.Environment.get_home_dir (), ".config", "touchegg");
user_config_path = Path.build_filename (GLib.Environment.get_home_dir (), ".config", "touchegg", "touchegg.conf");
}

View File

@@ -0,0 +1,70 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
meson,
ninja,
pkg-config,
replaceVars,
vala,
libadwaita,
libgee,
gettext,
granite7,
gtk4,
networkmanager,
networkmanagerapplet,
libnma-gtk4,
switchboard,
}:
stdenv.mkDerivation rec {
pname = "switchboard-plug-network";
version = "8.2.0";
src = fetchFromGitHub {
owner = "elementary";
repo = "switchboard-plug-network";
rev = version;
hash = "sha256-H43mRPEujs6A4Bk2uC3mP91Hp5I8gojaagoXUT/5eW8=";
};
patches = [
(replaceVars ./fix-paths.patch {
inherit networkmanagerapplet;
})
];
nativeBuildInputs = [
gettext
meson
ninja
pkg-config
vala
];
buildInputs = [
granite7
gtk4
libadwaita
libgee
networkmanager
libnma-gtk4
switchboard
];
strictDeps = true;
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Switchboard Networking Plug";
homepage = "https://github.com/elementary/switchboard-plug-network";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
};
}

View File

@@ -0,0 +1,48 @@
diff --git a/src/Views/VPNPage.vala b/src/Views/VPNPage.vala
index 21488d1e..f9915e5d 100644
--- a/src/Views/VPNPage.vala
+++ b/src/Views/VPNPage.vala
@@ -279,7 +279,7 @@ public class Network.VPNPage : Network.Widgets.Page {
private void try_connection_editor (string args) {
try {
var appinfo = AppInfo.create_from_commandline (
- "nm-connection-editor %s".printf (args),
+ "@networkmanagerapplet@/bin/nm-connection-editor %s".printf (args),
null,
GLib.AppInfoCreateFlags.NONE
);
diff --git a/src/Widgets/Page.vala b/src/Widgets/Page.vala
index cbcc8357..c6276d5a 100644
--- a/src/Widgets/Page.vala
+++ b/src/Widgets/Page.vala
@@ -189,7 +189,7 @@ namespace Network.Widgets {
protected void edit_connections () {
try {
var appinfo = AppInfo.create_from_commandline (
- "nm-connection-editor", null, AppInfoCreateFlags.NONE
+ "@networkmanagerapplet@/bin/nm-connection-editor", null, AppInfoCreateFlags.NONE
);
appinfo.launch (null, null);
} catch (Error e) {
@@ -200,7 +200,7 @@ namespace Network.Widgets {
protected void open_advanced_settings () {
try {
var appinfo = AppInfo.create_from_commandline (
- "nm-connection-editor --edit=%s".printf (uuid), null, AppInfoCreateFlags.NONE
+ "@networkmanagerapplet@/bin/nm-connection-editor --edit=%s".printf (uuid), null, AppInfoCreateFlags.NONE
);
appinfo.launch (null, null);
diff --git a/src/Widgets/VPN/VPNInfoDialog.vala b/src/Widgets/VPN/VPNInfoDialog.vala
index e647c43b..44ce61c6 100644
--- a/src/Widgets/VPN/VPNInfoDialog.vala
+++ b/src/Widgets/VPN/VPNInfoDialog.vala
@@ -70,7 +70,7 @@ public class Network.Widgets.VPNInfoDialog : Granite.MessageDialog {
if (response == 1) {
try {
var appinfo = AppInfo.create_from_commandline (
- "nm-connection-editor --edit=%s".printf (connection.get_uuid ()),
+ "@networkmanagerapplet@/bin/nm-connection-editor --edit=%s".printf (connection.get_uuid ()),
null,
GLib.AppInfoCreateFlags.NONE
);

View File

@@ -0,0 +1,60 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
meson,
ninja,
pkg-config,
vala,
libadwaita,
libgee,
gettext,
glib,
granite7,
gtk4,
switchboard,
elementary-notifications,
}:
stdenv.mkDerivation rec {
pname = "switchboard-plug-notifications";
version = "8.0.0";
src = fetchFromGitHub {
owner = "elementary";
repo = "switchboard-plug-notifications";
rev = version;
sha256 = "sha256-53rpnp1RWdPofY00XWKiz8WDPC7RNMaGQFHBDzjsIt4=";
};
nativeBuildInputs = [
gettext # msgfmt
glib # glib-compile-resources
meson
ninja
pkg-config
vala
];
buildInputs = [
elementary-notifications
granite7
gtk4
libadwaita
libgee
switchboard
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Switchboard Notifications Plug";
homepage = "https://github.com/elementary/switchboard-plug-notifications";
license = licenses.gpl2Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
};
}

View File

@@ -0,0 +1,58 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
meson,
ninja,
pkg-config,
vala,
evolution-data-server-gtk4,
glib,
granite7,
gtk4,
libadwaita,
switchboard,
}:
stdenv.mkDerivation rec {
pname = "switchboard-plug-onlineaccounts";
version = "8.0.2";
src = fetchFromGitHub {
owner = "elementary";
repo = "settings-onlineaccounts";
rev = version;
sha256 = "sha256-0dt4E2g1nX78s2WK2HO6P/fKjXcsR61KJSpulgsZHPI=";
};
nativeBuildInputs = [
glib # glib-compile-resources
gtk4 # gtk-update-icon-cache
meson
ninja
pkg-config
vala
];
buildInputs = [
evolution-data-server-gtk4
glib
granite7
gtk4
libadwaita
switchboard
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Switchboard Online Accounts Plug";
homepage = "https://github.com/elementary/settings-onlineaccounts";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
};
}

View File

@@ -0,0 +1,72 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
meson,
ninja,
pkg-config,
vala,
glib,
libadwaita,
libgee,
granite7,
gexiv2,
gnome-settings-daemon,
elementary-settings-daemon,
gtk4,
gala,
wingpanel,
wingpanel-indicator-keyboard,
wingpanel-quick-settings,
switchboard,
gettext,
}:
stdenv.mkDerivation rec {
pname = "switchboard-plug-pantheon-shell";
version = "8.2.0";
src = fetchFromGitHub {
owner = "elementary";
repo = "settings-desktop";
rev = version;
sha256 = "sha256-TYwiL6+VjfSDiFAlMe482gB8a/OtCYHl5r8gh9Hcvfg=";
};
nativeBuildInputs = [
gettext
meson
ninja
pkg-config
vala
];
buildInputs = [
elementary-settings-daemon
gnome-settings-daemon
gala
gexiv2
glib
granite7
gtk4
libadwaita
libgee
switchboard
wingpanel
wingpanel-indicator-keyboard # gsettings schemas
wingpanel-quick-settings # gsettings schemas
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Switchboard Desktop Plug";
homepage = "https://github.com/elementary/settings-desktop";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
};
}

View File

@@ -0,0 +1,66 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
meson,
ninja,
pkg-config,
vala,
libadwaita,
libgee,
gettext,
gnome-settings-daemon,
granite7,
gtk4,
glib,
dbus,
polkit,
switchboard,
wingpanel-indicator-power,
}:
stdenv.mkDerivation rec {
pname = "switchboard-plug-power";
version = "8.0.1";
src = fetchFromGitHub {
owner = "elementary";
repo = "switchboard-plug-power";
rev = version;
sha256 = "sha256-GKZouuWdWl1JDCmzPImeW/hStyFQA6NOAFFmAhiiFe8=";
};
nativeBuildInputs = [
gettext # msgfmt
meson
ninja
pkg-config
vala
];
buildInputs = [
dbus
gnome-settings-daemon
glib
granite7
gtk4
libadwaita
libgee
polkit
switchboard
wingpanel-indicator-power # settings schema
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Switchboard Power Plug";
homepage = "https://github.com/elementary/switchboard-plug-power";
license = licenses.gpl2Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
};
}

View File

@@ -0,0 +1,59 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
meson,
ninja,
pkg-config,
vala,
libadwaita,
libgee,
gettext,
granite7,
gtk4,
cups,
switchboard,
}:
stdenv.mkDerivation rec {
pname = "switchboard-plug-printers";
version = "8.0.1";
src = fetchFromGitHub {
owner = "elementary";
repo = "switchboard-plug-printers";
rev = version;
sha256 = "sha256-1znz8B4CGQGDiJC4Mt61XAh9wWAV8J0+K3AIpFcffXQ=";
};
nativeBuildInputs = [
gettext # msgfmt
meson
ninja
pkg-config
vala
];
buildInputs = [
cups
granite7
gtk4
libadwaita
libgee
switchboard
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Switchboard Printers Plug";
homepage = "https://github.com/elementary/switchboard-plug-printers";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
};
}

View File

@@ -0,0 +1,67 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
meson,
ninja,
pkg-config,
vala,
elementary-settings-daemon,
libgee,
gettext,
granite7,
gsettings-desktop-schemas,
gala,
gtk4,
glib,
polkit,
zeitgeist,
switchboard,
}:
stdenv.mkDerivation rec {
pname = "switchboard-plug-security-privacy";
version = "8.0.1";
src = fetchFromGitHub {
owner = "elementary";
repo = "switchboard-plug-security-privacy";
rev = version;
sha256 = "sha256-k6dSiiBqqbhH7rmhpBu83LX8at/qJ4gkrg4Xc+VbkIE=";
};
nativeBuildInputs = [
gettext # msgfmt
meson
ninja
pkg-config
vala
];
buildInputs = [
elementary-settings-daemon # settings schema
gala
glib
granite7
gsettings-desktop-schemas
gtk4
libgee
polkit
switchboard
zeitgeist
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Switchboard Security & Privacy Plug";
homepage = "https://github.com/elementary/switchboard-plug-security-privacy";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
};
}

View File

@@ -0,0 +1,56 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
meson,
ninja,
pkg-config,
vala,
elementary-bluetooth-daemon,
libgee,
gettext,
granite7,
gtk4,
switchboard,
}:
stdenv.mkDerivation rec {
pname = "switchboard-plug-sharing";
version = "8.0.2";
src = fetchFromGitHub {
owner = "elementary";
repo = "switchboard-plug-sharing";
rev = version;
hash = "sha256-XTgUHgvBSzZeuUup0gT6sbhyT4FGGG7o+qbPmfeRVQE=";
};
nativeBuildInputs = [
gettext # msgfmt
meson
ninja
pkg-config
vala
];
buildInputs = [
elementary-bluetooth-daemon
granite7
gtk4
libgee
switchboard
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Switchboard Sharing Plug";
homepage = "https://github.com/elementary/switchboard-plug-sharing";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
};
}

View File

@@ -0,0 +1,62 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
meson,
ninja,
pkg-config,
vala,
libadwaita,
libcanberra,
libgee,
glib,
granite7,
gtk4,
pulseaudio,
switchboard,
}:
stdenv.mkDerivation rec {
pname = "switchboard-plug-sound";
version = "8.0.1";
src = fetchFromGitHub {
owner = "elementary";
repo = "switchboard-plug-sound";
rev = version;
sha256 = "sha256-GLeQxdrrjz4MurN8Ia5Q68y6gHuyxiMVNneft1AXKvs=";
};
nativeBuildInputs = [
glib
meson
ninja
pkg-config
vala
];
buildInputs = [
granite7
gtk4
libadwaita
libcanberra
libgee
pulseaudio
switchboard
];
strictDeps = true;
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Switchboard Sound Plug";
homepage = "https://github.com/elementary/switchboard-plug-sound";
license = licenses.lgpl21Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
};
}

View File

@@ -0,0 +1,65 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
meson,
ninja,
pkg-config,
vala,
gettext,
glib,
granite7,
gtk4,
libadwaita,
libgee,
libgudev,
libwacom,
switchboard,
xorg,
}:
stdenv.mkDerivation rec {
pname = "switchboard-plug-wacom";
version = "8.0.1";
src = fetchFromGitHub {
owner = "elementary";
repo = "switchboard-plug-wacom";
rev = version;
sha256 = "sha256-xTv3QPlLPJQ6C5t4Udy1H9IrLQGuik8prvGlpfFm1DQ=";
};
nativeBuildInputs = [
gettext # msgfmt
meson
ninja
pkg-config
vala
];
buildInputs = [
glib
granite7
gtk4
libadwaita
libgee
libgudev
libwacom
switchboard
xorg.libX11
xorg.libXi
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Switchboard Wacom Plug";
homepage = "https://github.com/elementary/switchboard-plug-wacom";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
};
}

View File

@@ -0,0 +1,64 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
pkg-config,
meson,
ninja,
sassc,
vala,
glib,
gtk4,
libadwaita,
libgee,
granite7,
wrapGAppsHook4,
}:
stdenv.mkDerivation rec {
pname = "switchboard";
version = "8.0.3";
src = fetchFromGitHub {
owner = "elementary";
repo = "switchboard";
rev = version;
hash = "sha256-pVXcY/QSjgBcTr0sFQnPxICoQ0tpy2fEJ687zHEDXA0=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
sassc
vala
wrapGAppsHook4
];
propagatedBuildInputs = [
# Required by switchboard-3.pc.
glib
granite7
gtk4
libadwaita
libgee
];
patches = [
./plugs-path-env.patch
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Extensible System Settings app for Pantheon";
homepage = "https://github.com/elementary/switchboard";
license = licenses.lgpl21Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
mainProgram = "io.elementary.settings";
};
}

View File

@@ -0,0 +1,21 @@
diff --git a/lib/PlugsManager.vala b/lib/PlugsManager.vala
index 8b21e7b..bc36321 100644
--- a/lib/PlugsManager.vala
+++ b/lib/PlugsManager.vala
@@ -36,7 +36,15 @@ public class Switchboard.PlugsManager : GLib.Object {
private PlugsManager () {
plugs = new Gee.LinkedList<Switchboard.Plug> ();
- var base_folder = File.new_for_path (Build.PLUGS_DIR);
+
+ var plugs_path = Environment.get_variable("SWITCHBOARD_PLUGS_PATH");
+ if (plugs_path != null) {
+ debug ("SWITCHBOARD_PLUGS_PATH set to %s", plugs_path);
+ } else {
+ critical ("SWITCHBOARD_PLUGS_PATH not set");
+ }
+
+ var base_folder = File.new_for_path (plugs_path);
find_plugins (base_folder);
}

View File

@@ -0,0 +1,70 @@
{
wrapGAppsHook4,
glib,
lib,
stdenv,
xorg,
switchboard,
switchboardPlugs,
plugs,
# Only useful to disable for development testing.
useDefaultPlugs ? true,
testName ? null,
}:
let
selectedPlugs =
if plugs == null then
switchboardPlugs
else
plugs ++ (lib.optionals useDefaultPlugs switchboardPlugs);
testingName = lib.optionalString (testName != null) "${testName}-";
in
stdenv.mkDerivation {
pname = "${testingName}${switchboard.pname}-with-plugs";
inherit (switchboard) version;
src = null;
paths = [
switchboard
]
++ selectedPlugs;
passAsFile = [ "paths" ];
nativeBuildInputs = [
glib
wrapGAppsHook4
];
buildInputs = lib.forEach selectedPlugs (x: x.buildInputs) ++ selectedPlugs;
dontUnpack = true;
dontConfigure = true;
dontBuild = true;
preferLocalBuild = true;
allowSubstitutes = false;
installPhase = ''
mkdir -p $out
for i in $(cat $pathsPath); do
${xorg.lndir}/bin/lndir -silent $i $out
done
dbus_file="share/dbus-1/services/io.elementary.settings.service"
rm -f "$out/$dbus_file"
substitute "${switchboard}/$dbus_file" "$out/$dbus_file" \
--replace-fail "${switchboard}" "$out"
'';
preFixup = ''
gappsWrapperArgs+=(
--set SWITCHBOARD_PLUGS_PATH "$out/lib/switchboard-3"
)
'';
inherit (switchboard) meta;
}

View File

@@ -0,0 +1,48 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
nix-update-script,
gettext,
meson,
ninja,
python3,
sassc,
}:
stdenvNoCC.mkDerivation rec {
pname = "elementary-gtk-theme";
version = "8.2.1";
src = fetchFromGitHub {
owner = "elementary";
repo = "stylesheet";
rev = version;
sha256 = "sha256-ymgSe4LKtbJVwmZJOwer1Geb/VgYltp+tSNHkWtaMlg=";
};
nativeBuildInputs = [
gettext
meson
ninja
python3
sassc
];
postPatch = ''
chmod +x meson/install-to-dir.py
patchShebangs meson/install-to-dir.py
'';
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "GTK theme designed to be smooth, attractive, fast, and usable";
homepage = "https://github.com/elementary/stylesheet";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
};
}

View File

@@ -0,0 +1,60 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
nix-update-script,
meson,
ninja,
hicolor-icon-theme,
gtk3,
xcursorgen,
librsvg,
}:
stdenvNoCC.mkDerivation rec {
pname = "elementary-icon-theme";
version = "8.1.0";
src = fetchFromGitHub {
owner = "elementary";
repo = "icons";
rev = version;
sha256 = "sha256-WltMfWMcfUqpnfuGa6NzfxSeTais0MLsiu82ybaOcvs=";
};
nativeBuildInputs = [
gtk3
librsvg
meson
ninja
xcursorgen
];
propagatedBuildInputs = [
hicolor-icon-theme
];
dontDropIconThemeCache = true;
mesonFlags = [
"-Dvolume_icons=false" # Tries to install some icons to /
"-Dpalettes=false" # Don't install gimp and inkscape palette files
];
postFixup = "gtk-update-icon-cache $out/share/icons/elementary";
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Named, vector icons for elementary OS";
longDescription = ''
An original set of vector icons designed specifically for elementary OS and its desktop environment: Pantheon.
'';
homepage = "https://github.com/elementary/icons";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
};
}

View File

@@ -0,0 +1,37 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
}:
stdenv.mkDerivation rec {
pname = "elementary-redacted-script";
version = "5.1.0";
src = fetchFromGitHub {
owner = "elementary";
repo = "fonts";
rev = version;
sha256 = "sha256-YiE7yaH0ZrF1/Cp+3bcJYm2cExQjFcat6JLMJPjhops=";
};
dontBuild = true;
installPhase = ''
mkdir -p $out/share/fonts/truetype/redacted-elementary
cp -a redacted/*.ttf $out/share/fonts/truetype/redacted-elementary
'';
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Font for concealing text";
homepage = "https://github.com/elementary/fonts";
license = licenses.ofl;
teams = [ teams.pantheon ];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,39 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
meson,
ninja,
pkg-config,
}:
stdenv.mkDerivation rec {
pname = "elementary-sound-theme";
version = "1.1.0";
src = fetchFromGitHub {
owner = "elementary";
repo = "sound-theme";
rev = version;
sha256 = "sha256-fR6gtKx9J6o2R1vQZ5yx4kEX3Ak+q8I6hRVMZzyB2E8=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Set of system sounds for elementary";
homepage = "https://github.com/elementary/sound-theme";
license = licenses.unlicense;
platforms = platforms.linux;
teams = [ teams.pantheon ];
};
}

View File

@@ -0,0 +1,46 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
gettext,
meson,
ninja,
python3,
}:
stdenv.mkDerivation rec {
pname = "elementary-wallpapers";
version = "8.0.0";
src = fetchFromGitHub {
owner = "elementary";
repo = "wallpapers";
rev = version;
sha256 = "sha256-qbqYr+3Vqwi1UBD0fRW6lI2rj5Iy51taZRGxDTpKfpg=";
};
nativeBuildInputs = [
gettext
meson
ninja
python3
];
postPatch = ''
chmod +x meson/symlink.py
patchShebangs meson/symlink.py
'';
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Collection of wallpapers for elementary";
homepage = "https://github.com/elementary/wallpapers";
license = licenses.publicDomain;
platforms = platforms.linux;
teams = [ teams.pantheon ];
};
}

View File

@@ -0,0 +1,256 @@
{
config,
pkgs,
lib,
gnome,
}:
lib.makeScope pkgs.newScope (
self: with self; {
switchboardPlugs = [
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-bluetooth
wingpanel-indicator-datetime
wingpanel-indicator-keyboard
wingpanel-indicator-network
wingpanel-indicator-nightlight
wingpanel-indicator-notifications
wingpanel-indicator-power
wingpanel-indicator-sound
wingpanel-quick-settings
];
teams = [ lib.teams.pantheon ];
mutter = pkgs.mutter46;
# Using 43 to match Mutter used in Pantheon
gnome-settings-daemon = pkgs.gnome-settings-daemon46;
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-maps = callPackage ./apps/elementary-maps { };
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 { };
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 ./libraries/granite { };
granite7 = callPackage ./libraries/granite/7 { };
pantheon-wayland = callPackage ./libraries/pantheon-wayland { };
#### 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 { };
wingpanel-indicator-sound = callPackage ./desktop/wingpanel-indicators/sound { };
wingpanel-quick-settings = callPackage ./desktop/wingpanel-indicators/quick-settings { };
#### SWITCHBOARD
switchboard = callPackage ./apps/switchboard { };
switchboard-with-plugs = callPackage ./apps/switchboard/wrapper.nix {
plugs = null;
};
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
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
}

View File

@@ -0,0 +1,65 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
meson,
ninja,
nixos-artwork,
glib,
pkg-config,
dbus,
polkit,
accountsservice,
}:
stdenv.mkDerivation rec {
pname = "elementary-default-settings";
version = "8.1.0";
src = fetchFromGitHub {
owner = "elementary";
repo = "default-settings";
rev = version;
sha256 = "sha256-GUq7kXaidzvqbyeVh4ihcxRqZXOzZO3WMXEe8lf477I=";
};
nativeBuildInputs = [
glib # glib-compile-schemas
meson
ninja
pkg-config
];
buildInputs = [
accountsservice
dbus
polkit
];
mesonFlags = [
"--sysconfdir=${placeholder "out"}/etc"
"-Ddefault-wallpaper=${nixos-artwork.wallpapers.simple-dark-gray.gnomeFilePath}"
# Do not ship elementary OS specific config files.
"-Dapparmor-profiles=false"
"-Dgeoclue=false"
];
postFixup = ''
# https://github.com/elementary/default-settings/issues/55
rm -r $out/share/cups
rm -r $out/share/applications
'';
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Default settings and configuration files for elementary";
homepage = "https://github.com/elementary/default-settings";
license = licenses.gpl2Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
};
}

View File

@@ -0,0 +1,138 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
linkFarm,
replaceVars,
elementary-greeter,
pkg-config,
meson,
ninja,
vala,
desktop-file-utils,
gtk3,
granite,
libgee,
libhandy,
gala,
gnome-desktop,
gnome-settings-daemon,
mutter,
elementary-icon-theme,
elementary-settings-daemon,
wingpanel-with-indicators,
elementary-gtk-theme,
nixos-artwork,
lightdm,
gdk-pixbuf,
dbus,
accountsservice,
wayland-scanner,
wrapGAppsHook3,
}:
stdenv.mkDerivation rec {
pname = "elementary-greeter";
version = "8.1.0";
src = fetchFromGitHub {
owner = "elementary";
repo = "greeter";
tag = version;
hash = "sha256-lOk5H1uuaf2Q+z+hRLyhtKAHq+3ibtBzWI7r87KpKgQ=";
};
patches = [
./sysconfdir-install.patch
# Needed until https://github.com/elementary/greeter/issues/360 is fixed
(replaceVars ./hardcode-fallback-background.patch {
default_wallpaper = "${nixos-artwork.wallpapers.simple-dark-gray.gnomeFilePath}";
})
];
depsBuildBuild = [ pkg-config ];
nativeBuildInputs = [
desktop-file-utils
meson
ninja
pkg-config
vala
wayland-scanner
wrapGAppsHook3
];
buildInputs = [
accountsservice
elementary-icon-theme
elementary-settings-daemon
gala # for io.elementary.desktop.background
gnome-desktop
gnome-settings-daemon
gdk-pixbuf
granite
gtk3
libgee
libhandy
lightdm
mutter
];
mesonFlags = [
# A hook does this but after wrapGAppsHook3 so the files never get wrapped.
"--sbindir=${placeholder "out"}/bin"
# baked into the program for discovery of the greeter configuration
"--sysconfdir=/etc"
"-Dgsd-dir=${gnome-settings-daemon}/libexec/" # trailing slash is needed
];
preFixup = ''
gappsWrapperArgs+=(
# dbus-launch needed in path
--prefix PATH : "${dbus}/bin"
# for `io.elementary.wingpanel -g`
--prefix PATH : "${wingpanel-with-indicators}/bin"
# for the compositor
--prefix PATH : "$out/bin"
# the GTK theme is hardcoded
--prefix XDG_DATA_DIRS : "${elementary-gtk-theme}/share"
# the icon theme is hardcoded
--prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS"
)
'';
postFixup = ''
# Use NixOS default wallpaper
substituteInPlace $out/etc/lightdm/io.elementary.greeter.conf \
--replace "#default-wallpaper=/usr/share/backgrounds/elementaryos-default" \
"default-wallpaper=${nixos-artwork.wallpapers.simple-dark-gray.gnomeFilePath}"
substituteInPlace $out/share/xgreeters/io.elementary.greeter.desktop \
--replace "Exec=io.elementary.greeter" "Exec=$out/bin/io.elementary.greeter"
'';
passthru = {
updateScript = nix-update-script { };
xgreeters = linkFarm "pantheon-greeter-xgreeters" [
{
path = "${elementary-greeter}/share/xgreeters/io.elementary.greeter.desktop";
name = "io.elementary.greeter.desktop";
}
];
};
meta = with lib; {
description = "LightDM Greeter for Pantheon";
homepage = "https://github.com/elementary/greeter";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
mainProgram = "io.elementary.greeter";
};
}

View File

@@ -0,0 +1,22 @@
diff --git a/src/Widgets/BackgroundImage.vala b/src/Widgets/BackgroundImage.vala
index ae9431c..f0f2a49 100644
--- a/src/Widgets/BackgroundImage.vala
+++ b/src/Widgets/BackgroundImage.vala
@@ -9,7 +9,7 @@ public class Greeter.BackgroundImage : Gtk.EventBox {
public BackgroundImage (string? path) {
if (path == null) {
- path = "/usr/share/backgrounds/elementaryos-default";
+ path = "@default_wallpaper@";
}
try {
@@ -19,7 +19,7 @@ public class Greeter.BackgroundImage : Gtk.EventBox {
critical ("Fallback to default wallpaper");
try {
- full_pixbuf = new Gdk.Pixbuf.from_file ("/usr/share/backgrounds/elementaryos-default");
+ full_pixbuf = new Gdk.Pixbuf.from_file ("@default_wallpaper@");
} catch (GLib.Error e) {
critical (e.message);
}

View File

@@ -0,0 +1,25 @@
From 7bb0d507cbb0122f167127b9f6460bd53d8234de Mon Sep 17 00:00:00 2001
From: worldofpeace <worldofpeace@users.noreply.github.com>
Date: Sat, 16 Mar 2019 16:07:24 -0400
Subject: [PATCH] 'sysconfdir' will be etc not /etc for install
---
data/meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/data/meson.build b/data/meson.build
index fd54b75..b1120ae 100644
--- a/data/meson.build
+++ b/data/meson.build
@@ -20,7 +20,7 @@ i18n.merge_file (
install_data(
meson.project_name() + '.conf',
- install_dir: join_paths(get_option('sysconfdir'), 'lightdm')
+ install_dir: join_paths(get_option('prefix'), 'etc', 'lightdm')
)
test (
--
2.19.2

View File

@@ -0,0 +1,52 @@
{
lib,
runCommand,
mutter,
elementary-default-settings,
glib,
gala,
gnome-settings-daemon,
gtk3,
elementary-dock,
gsettings-desktop-schemas,
extraGSettingsOverrides ? "",
extraGSettingsOverridePackages ? [ ],
}:
let
inherit (lib) concatMapStringsSep;
gsettingsOverridePackages = [
elementary-dock
gnome-settings-daemon
gala
gsettings-desktop-schemas
gtk3
mutter
]
++ extraGSettingsOverridePackages;
in
# TODO: Having https://github.com/NixOS/nixpkgs/issues/54150 would supersede this
runCommand "elementary-gsettings-desktop-schemas" { preferLocalBuild = true; } ''
data_dir="$out/share/gsettings-schemas/nixos-gsettings-overrides"
schema_dir="$data_dir/glib-2.0/schemas"
mkdir -p "$schema_dir"
cp -rf "${glib.getSchemaPath gala}"/*.gschema.override "$schema_dir"
${concatMapStringsSep "\n" (
pkg: "cp -rf \"${glib.getSchemaPath pkg}\"/*.xml \"$schema_dir\""
) gsettingsOverridePackages}
chmod -R a+w "$data_dir"
cp "${glib.getSchemaPath elementary-default-settings}"/* "$schema_dir"
cat - > "$schema_dir/nixos-defaults.gschema.override" <<- EOF
${extraGSettingsOverrides}
EOF
${glib.dev}/bin/glib-compile-schemas $schema_dir
''

View File

@@ -0,0 +1,65 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
meson,
ninja,
pkg-config,
vala,
wrapGAppsHook4,
appcenter,
elementary-settings-daemon,
glib,
gnome-settings-daemon,
granite7,
gtk4,
libadwaita,
libgee,
pantheon-wayland,
}:
stdenv.mkDerivation rec {
pname = "elementary-onboarding";
version = "8.0.3";
src = fetchFromGitHub {
owner = "elementary";
repo = "onboarding";
rev = version;
sha256 = "sha256-e8eYBGQ+qTXsp+E3l0g5UI1nYD75z0ibTtzm0WbqlU4=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
vala
wrapGAppsHook4
];
buildInputs = [
appcenter # settings schema
elementary-settings-daemon # settings schema
glib
gnome-settings-daemon # org.gnome.settings-daemon.plugins.color
granite7
gtk4
libadwaita
libgee
pantheon-wayland
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Onboarding app for new users designed for elementary OS";
homepage = "https://github.com/elementary/onboarding";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
mainProgram = "io.elementary.onboarding";
};
}

View File

@@ -0,0 +1,45 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
meson,
ninja,
pkg-config,
vala,
gtk3,
}:
stdenv.mkDerivation rec {
pname = "elementary-print-shim";
version = "0.1.3";
src = fetchFromGitHub {
owner = "elementary";
repo = "print";
rev = version;
sha256 = "sha256-l2IUu9Mj22lZ5yajPcsGrJcJDakNu4srCV0Qea5ybPA=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
vala
];
buildInputs = [ gtk3 ];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Simple shim for printing support via Contractor";
homepage = "https://github.com/elementary/print";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
mainProgram = "io.elementary.print";
};
}

View File

@@ -0,0 +1,94 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
desktop-file-utils,
gettext,
pkg-config,
gnome-keyring,
gnome-session,
wingpanel,
orca,
onboard,
elementary-default-settings,
gnome-settings-daemon,
runtimeShell,
systemd,
writeText,
meson,
ninja,
}:
stdenv.mkDerivation {
pname = "elementary-session-settings";
# Allow disabling x11 session
# nixpkgs-update: no auto update
version = "8.0.1-unstable-2025-09-15";
src = fetchFromGitHub {
owner = "elementary";
repo = "session-settings";
rev = "e708fd49356f145acd926d30683012d9488f0f9d";
hash = "sha256-wb9UUrEtwtmqtfNS2YPli99ZeY17UdJFQijTKs8mHn4=";
};
/*
This allows `elementary-session-settings` to not use gnome-keyring's ssh capabilities anymore, as they have been
moved to gcr upstream, in an effort to modularize gnome-keyring.
More info can be found here: https://gitlab.gnome.org/GNOME/gnome-keyring/-/merge_requests/60
*/
patches = [ ./no-gnome-keyring-ssh-autostart.patch ];
nativeBuildInputs = [
desktop-file-utils
gettext
meson
ninja
pkg-config
];
buildInputs = [
gnome-keyring
gnome-settings-daemon
onboard
orca
systemd
];
mesonFlags = [
"-Dmimeapps-list=false"
"-Ddetect-program-prefixes=true"
# https://github.com/elementary/session-settings/issues/91
"-Dx11=false"
"--sysconfdir=${placeholder "out"}/etc"
];
postInstall = ''
# our mimeapps patched from upstream to exclude:
# * evince.desktop -> org.gnome.Evince.desktop
mkdir -p $out/share/applications
cp -av ${./pantheon-mimeapps.list} $out/share/applications/pantheon-mimeapps.list
# absolute path patched sessions
substituteInPlace $out/share/wayland-sessions/pantheon-wayland.desktop \
--replace-fail "Exec=gnome-session" "Exec=${gnome-session}/bin/gnome-session" \
--replace-fail "TryExec=io.elementary.wingpanel" "TryExec=${wingpanel}/bin/io.elementary.wingpanel"
'';
passthru = {
updateScript = nix-update-script { };
providedSessions = [
"pantheon-wayland"
];
};
meta = with lib; {
description = "Session settings for elementary";
homepage = "https://github.com/elementary/session-settings";
license = licenses.gpl2Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
};
}

View File

@@ -0,0 +1,12 @@
diff --git a/session/meson.build b/session/meson.build
index 501e836..3254658 100644
--- a/session/meson.build
+++ b/session/meson.build
@@ -79,7 +79,6 @@ if get_option('detect-program-prefixes') == true
autostarts = {
'gnome-keyring-pkcs11': join_paths(gnome_keyring_prefix, 'etc/xdg/autostart', 'gnome-keyring-pkcs11.desktop'),
'gnome-keyring-secrets': join_paths(gnome_keyring_prefix, 'etc/xdg/autostart', 'gnome-keyring-secrets.desktop'),
- 'gnome-keyring-ssh': join_paths(gnome_keyring_prefix, 'etc/xdg/autostart', 'gnome-keyring-ssh.desktop'),
'onboard-autostart': join_paths(onboard_prefix, 'etc/xdg/autostart', 'onboard-autostart.desktop'),
'orca-autostart': join_paths(orca_prefix, 'etc/xdg/autostart', 'orca-autostart.desktop'),
}

View File

@@ -0,0 +1,168 @@
[Default Applications]
application/ogg=io.elementary.music.desktop
application/oxps=org.gnome.Evince.desktop
application/pdf=org.gnome.Evince.desktop
application/postscript=org.gnome.Evince.desktop
application/vnd.ms-xpsdocument=org.gnome.Evince.desktop
application/vnd.rn-realmedia=io.elementary.videos.desktop
application/x-ar=org.gnome.FileRoller.desktop
application/x-arj=org.gnome.FileRoller.desktop
application/x-bzdvi=org.gnome.Evince.desktop
application/x-bzip-compressed-tar=org.gnome.FileRoller.desktop
application/x-bzip=org.gnome.FileRoller.desktop
application/x-bzpdf=org.gnome.Evince.desktop
application/x-bzpostscript=org.gnome.Evince.desktop
application/x-cbr=org.gnome.Evince.desktop
application/x-cbt=org.gnome.Evince.desktop
application/x-cbz=org.gnome.Evince.desktop
application/x-compress=org.gnome.FileRoller.desktop
application/x-compressed-tar=org.gnome.FileRoller.desktop
application/x-dvi=org.gnome.Evince.desktop
application/x-ear=org.gnome.FileRoller.desktop
application/x-extension-m4a=io.elementary.videos.desktop
application/x-extension-mp4=io.elementary.videos.desktop
application/x-flac=io.elementary.music.desktop
application/x-gtar=org.gnome.FileRoller.desktop
application/x-gzdvi=org.gnome.Evince.desktop
application/x-gzip=org.gnome.FileRoller.desktop
application/x-gzpdf=org.gnome.Evince.desktop
application/x-gzpostscript=org.gnome.Evince.desktop
application/x-lha=org.gnome.FileRoller.desktop
application/x-lhz=org.gnome.FileRoller.desktop
application/x-lzop=org.gnome.FileRoller.desktop
application/x-matroska=io.elementary.videos.desktop
application/x-ogg=io.elementary.music.desktop
application/x-perl=io.elementary.code.desktop
application/x-rar-compressed=org.gnome.FileRoller.desktop
application/x-rar=org.gnome.FileRoller.desktop
application/x-rpm=org.gnome.FileRoller.desktop
application/x-tar=org.gnome.FileRoller.desktop
application/x-war=org.gnome.FileRoller.desktop
application/x-xz-compressed-tar=org.gnome.FileRoller.desktop
application/x-xz=org.gnome.FileRoller.desktop
application/x-xzpdf=org.gnome.Evince.desktop
application/x-zip-compressed=org.gnome.FileRoller.desktop
application/x-zip=org.gnome.FileRoller.desktop
application/x-zoo=org.gnome.FileRoller.desktop
application/xhtml+xml=org.gnome.Epiphany.desktop
application/zip=org.gnome.FileRoller.desktop
audio/3gpp=io.elementary.music.desktop
audio/ac3=io.elementary.music.desktop
audio/AMR-WB=io.elementary.music.desktop
audio/AMR=io.elementary.music.desktop
audio/basic=io.elementary.music.desktop
audio/flac=io.elementary.music.desktop
audio/midi=io.elementary.music.desktop
audio/mp4=io.elementary.music.desktop
audio/mpeg=io.elementary.music.desktop
audio/mpegurl=io.elementary.music.desktop
audio/ogg=io.elementary.music.desktop
audio/prs.sid=io.elementary.music.desktop
audio/vnd.rn-realaudio=io.elementary.music.desktop
audio/x-ape=io.elementary.music.desktop
audio/x-flac=io.elementary.music.desktop
audio/x-gsm=io.elementary.music.desktop
audio/x-it=io.elementary.music.desktop
audio/x-m4a=io.elementary.music.desktop
audio/x-matroska=io.elementary.music.desktop
audio/x-mod=io.elementary.music.desktop
audio/x-mp3=io.elementary.music.desktop
audio/x-mpeg=io.elementary.music.desktop
audio/x-mpegurl=io.elementary.music.desktop
audio/x-ms-asf=io.elementary.music.desktop
audio/x-ms-asx=io.elementary.music.desktop
audio/x-ms-wax=io.elementary.music.desktop
audio/x-ms-wma=io.elementary.music.desktop
audio/x-musepack=io.elementary.music.desktop
audio/x-pn-aiff=io.elementary.music.desktop
audio/x-pn-au=io.elementary.music.desktop
audio/x-pn-realaudio-plugin=io.elementary.music.desktop
audio/x-pn-realaudio=io.elementary.music.desktop
audio/x-pn-wav=io.elementary.music.desktop
audio/x-pn-windows-acm=io.elementary.music.desktop
audio/x-real-audio=io.elementary.music.desktop
audio/x-realaudio=io.elementary.music.desktop
audio/x-sbc=io.elementary.music.desktop
audio/x-scpls=io.elementary.music.desktop
audio/x-speex=io.elementary.music.desktop
audio/x-tta=io.elementary.music.desktop
audio/x-vorbis+ogg=io.elementary.music.desktop
audio/x-vorbis=io.elementary.music.desktop
audio/x-wav=io.elementary.music.desktop
audio/x-wavpack=io.elementary.music.desktop
audio/x-xm=io.elementary.music.desktop
image/bmp=io.elementary.photos-viewer.desktop
image/gif=io.elementary.photos-viewer.desktop
image/jpeg=io.elementary.photos-viewer.desktop
image/jpg=io.elementary.photos-viewer.desktop
image/pjpeg=io.elementary.photos-viewer.desktop
image/png=io.elementary.photos-viewer.desktop
image/tiff=io.elementary.photos-viewer.desktop
image/vnd.djvu=org.gnome.Evince.desktop
image/vnd.rn-realpix=io.elementary.videos.desktop
image/webp=io.elementary.photos-viewer.desktop
image/x-bmp=io.elementary.photos-viewer.desktop
image/x-bzeps=org.gnome.Evince.desktop
image/x-eps=org.gnome.Evince.desktop
image/x-gzeps=org.gnome.Evince.desktop
image/x-png=io.elementary.photos-viewer.desktop
inode/directory=io.elementary.files.desktop
misc/ultravox=io.elementary.videos.desktop
multipart/x-zip=org.gnome.FileRoller.desktop
text/calendar=io.elementary.calendar.desktop
text/html=org.gnome.Epiphany.desktop
text/mathml=io.elementary.code.desktop
text/plain=io.elementary.code.desktop
text/x-chdr=io.elementary.code.desktop
text/x-csrc=io.elementary.code.desktop
text/x-dtd=io.elementary.code.desktop
text/x-java=io.elementary.code.desktop
text/x-python=io.elementary.code.desktop
text/x-sql=io.elementary.code.desktop
text/xml=io.elementary.code.desktop
video/3gpp=io.elementary.videos.desktop
video/dv=io.elementary.videos.desktop
video/fli=io.elementary.videos.desktop
video/flv=io.elementary.videos.desktop
video/mp2t=io.elementary.videos.desktop
video/mp4=io.elementary.videos.desktop
video/mp4v-es=io.elementary.videos.desktop
video/mpeg=io.elementary.videos.desktop
video/msvideo=io.elementary.videos.desktop
video/ogg=io.elementary.videos.desktop
video/quicktime=io.elementary.videos.desktop
video/vivo=io.elementary.videos.desktop
video/vnd.divx=io.elementary.videos.desktop
video/vnd.rn-realvideo=io.elementary.videos.desktop
video/vnd.vivo=io.elementary.videos.desktop
video/webm=io.elementary.videos.desktop
video/x-anim=io.elementary.videos.desktop
video/x-avi=io.elementary.videos.desktop
video/x-flc=io.elementary.videos.desktop
video/x-fli=io.elementary.videos.desktop
video/x-flic=io.elementary.videos.desktop
video/x-flv=io.elementary.videos.desktop
video/x-m4v=io.elementary.videos.desktop
video/x-matroska=io.elementary.videos.desktop
video/x-mpeg=io.elementary.videos.desktop
video/x-ms-asf=io.elementary.videos.desktop
video/x-ms-asx=io.elementary.videos.desktop
video/x-ms-wm=io.elementary.videos.desktop
video/x-ms-wmv=io.elementary.videos.desktop
video/x-ms-wmx=io.elementary.videos.desktop
video/x-ms-wvx=io.elementary.videos.desktop
video/x-msvideo=io.elementary.videos.desktop
video/x-nsv=io.elementary.videos.desktop
video/x-ogm+ogg=io.elementary.videos.desktop
video/x-theora+ogg=io.elementary.videos.desktop
video/x-totem-stream=io.elementary.videos.desktop
x-content/image-dcf=io.elementary.photos.desktop
x-content/image-picturecd=io.elementary.photos.desktop
x-content/video-dvd=io.elementary.videos.desktop
x-content/video-svcd=io.elementary.videos.desktop
x-content/video-vcd=io.elementary.videos.desktop
x-scheme-handler/http=org.gnome.Epiphany.desktop
x-scheme-handler/https=org.gnome.Epiphany.desktop
x-scheme-handler/mailto=io.elementary.mail.desktop
x-scheme-handler/trash=io.elementary.files.desktop

View File

@@ -0,0 +1,67 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
pkg-config,
meson,
ninja,
vala,
desktop-file-utils,
gala,
gsettings-desktop-schemas,
gtk4,
glib,
gnome-settings-daemon,
granite7,
libgee,
mutter,
pantheon-wayland,
wrapGAppsHook4,
}:
stdenv.mkDerivation rec {
pname = "elementary-shortcut-overlay";
version = "8.1.0";
src = fetchFromGitHub {
owner = "elementary";
repo = "shortcut-overlay";
rev = version;
sha256 = "sha256-oGExG7eWiZqXEPBRuLRTnbgo3hRVKo8vO51vMBPoQb0=";
};
nativeBuildInputs = [
desktop-file-utils
meson
ninja
pkg-config
vala
wrapGAppsHook4
];
buildInputs = [
gala # org.pantheon.desktop.gala.keybindings
gsettings-desktop-schemas # org.gnome.desktop.wm.keybindings
glib
gnome-settings-daemon # org.gnome.settings-daemon.plugins.media-keys
granite7
gtk4
libgee
mutter # org.gnome.mutter.keybindings
pantheon-wayland
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Native OS-wide shortcut overlay to be launched by Gala";
homepage = "https://github.com/elementary/shortcut-overlay";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
mainProgram = "io.elementary.shortcut-overlay";
};
}

View File

@@ -0,0 +1,53 @@
{
lib,
stdenv,
fetchFromGitHub,
unstableGitUpdater,
replaceVars,
file-roller,
}:
stdenv.mkDerivation {
pname = "file-roller-contract";
version = "0-unstable-2021-02-22";
src = fetchFromGitHub {
owner = "elementary";
repo = "file-roller-contract";
rev = "cf001d84a7e2ddcfbee2cfdb19885798a869833e";
sha256 = "sha256-jnXq44NiQiSYsvaBF828TklLg9d6z6n+gCZKgbFiERI=";
};
patches = [
(replaceVars ./exec-path.patch {
file_roller = file-roller;
})
];
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p $out/share/contractor
cp *.contract $out/share/contractor/
runHook postInstall
'';
passthru = {
updateScript = unstableGitUpdater {
url = "https://github.com/elementary/file-roller-contract.git";
};
};
meta = with lib; {
description = "Contractor extension for File Roller";
homepage = "https://github.com/elementary/file-roller-contract";
license = licenses.gpl3Plus;
teams = [ teams.pantheon ];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,22 @@
diff --git a/io.elementary.contractor.file-roller-compress.contract b/io.elementary.contractor.file-roller-compress.contract
index 11e4da3..d58549f 100644
--- a/io.elementary.contractor.file-roller-compress.contract
+++ b/io.elementary.contractor.file-roller-compress.contract
@@ -3,5 +3,5 @@ Name=Compress
Icon=add-files-to-archive
Description=Create a compressed archive with the selected objects
MimeType=!archive;inode/blockdevice;inode/chardevice;inode/fifo;inode/socket;
-Exec=file-roller --add %U
+Exec=@file_roller@/bin/file-roller --add %U
Gettext-Domain=file-roller
diff --git a/io.elementary.contractor.file-roller-extract-here.contract b/io.elementary.contractor.file-roller-extract-here.contract
index 184a6f2..345f4e7 100644
--- a/io.elementary.contractor.file-roller-extract-here.contract
+++ b/io.elementary.contractor.file-roller-extract-here.contract
@@ -3,5 +3,5 @@ Name=Extract Here
Icon=extract-archive
Description=Extract the contents of the archives in the archive folder and quit the program
MimeType=application/x-7z-compressed;application/x-7z-compressed-tar;application/x-ace;application/x-alz;application/x-ar;application/x-arj;application/x-bzip;application/x-bzip-compressed-tar;application/x-bzip1;application/x-bzip1-compressed-tar;application/x-cabinet;application/x-cbr;application/x-cbz;application/x-cd-image;application/x-compress;application/x-compressed-tar;application/x-cpio;application/x-deb;application/x-ear;application/x-ms-dos-executable;application/x-gtar;application/x-gzip;application/x-gzpostscript;application/x-java-archive;application/x-lha;application/x-lhz;application/x-lrzip;application/x-lrzip-compressed-tar;application/x-lzip;application/x-lzip-compressed-tar;application/x-lzma;application/x-lzma-compressed-tar;application/x-lzop;application/x-lzop-compressed-tar;application/x-ms-wim;application/x-rar;application/x-rar-compressed;application/x-rpm;application/x-rzip;application/x-tar;application/x-tarz;application/x-stuffit;application/x-war;application/x-xz;application/x-xz-compressed-tar;application/x-zip;application/x-zip-compressed;application/x-zoo;application/zip;
-Exec=file-roller --extract-here %U
+Exec=@file_roller@/bin/file-roller --extract-here %U
Gettext-Domain=file-roller

View File

@@ -0,0 +1,97 @@
{
stdenv,
lib,
fetchFromGitHub,
fetchpatch,
desktop-file-utils,
gettext,
libxml2,
meson,
ninja,
pkg-config,
vala,
wayland-scanner,
wrapGAppsHook3,
at-spi2-core,
gnome-settings-daemon,
gnome-desktop,
granite,
granite7,
gtk3,
gtk4,
libcanberra,
libgee,
libhandy,
mutter,
sqlite,
systemd,
nix-update-script,
}:
stdenv.mkDerivation rec {
pname = "gala";
version = "8.2.5";
src = fetchFromGitHub {
owner = "elementary";
repo = "gala";
rev = version;
hash = "sha256-uupFeQ73hr6ziLEtzgVJWASUxhspXJX54/U+3PLSCFY=";
};
patches = [
# We look for plugins in `/run/current-system/sw/lib/` because
# there are multiple plugin providers (e.g. gala and wingpanel).
./plugins-dir.patch
# Fix gtk3 daemon menu location with x2 scaling
# https://github.com/elementary/gala/pull/2493
(fetchpatch {
url = "https://github.com/elementary/gala/commit/33bc3ebe7f175c61845feaf2d06083f1e3b64ddc.patch";
hash = "sha256-hjjiKcO5o/OABKD8vUsVyqtNKN4ffEOGZntLceLr2+k=";
})
];
depsBuildBuild = [ pkg-config ];
nativeBuildInputs = [
desktop-file-utils
gettext
libxml2
meson
ninja
pkg-config
vala
wayland-scanner
wrapGAppsHook3
];
buildInputs = [
at-spi2-core
gnome-settings-daemon
gnome-desktop
granite
granite7
gtk3
gtk4 # gala-daemon
libcanberra
libgee
libhandy
mutter
sqlite
systemd
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Window & compositing manager based on mutter and designed by elementary for use with Pantheon";
homepage = "https://github.com/elementary/gala";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
mainProgram = "gala";
};
}

View File

@@ -0,0 +1,21 @@
diff --git a/meson.build b/meson.build
index d0f00e5..977d2e2 100644
--- a/meson.build
+++ b/meson.build
@@ -25,6 +25,7 @@ vapi_dir = meson.current_source_dir() / 'vapi'
locale_dir = join_paths(get_option('prefix'), get_option('localedir'))
data_dir = join_paths(get_option('prefix'), get_option('datadir'))
plugins_dir = join_paths(get_option('prefix'), get_option('libdir'), meson.project_name(), 'plugins')
+plugins_dir_for_build = join_paths('/run/current-system/sw/lib/', meson.project_name(), 'plugins')
pkgdata_dir = join_paths(get_option('prefix'), get_option('datadir'), meson.project_name())
pkglib_dir = join_paths(get_option('prefix'), get_option('libdir'), meson.project_name())
@@ -33,7 +34,7 @@ conf.set_quoted('GETTEXT_PACKAGE', meson.project_name())
conf.set_quoted('LOCALEDIR', locale_dir)
conf.set_quoted('DATADIR', data_dir)
conf.set_quoted('PKGDATADIR', pkgdata_dir)
-conf.set_quoted('PLUGINDIR', plugins_dir)
+conf.set_quoted('PLUGINDIR', plugins_dir_for_build)
conf.set_quoted('RESOURCEPATH', '/org/pantheon/desktop/gala')
conf.set_quoted('VERSION', gala_version)
conf.set_quoted('SCHEMA', 'org.pantheon.desktop.gala')

View File

@@ -0,0 +1,59 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
meson,
ninja,
pkg-config,
python3,
vala,
granite,
gtk3,
libgee,
wingpanel,
}:
stdenv.mkDerivation rec {
pname = "wingpanel-indicator-a11y";
version = "1.0.2";
src = fetchFromGitHub {
owner = "elementary";
repo = "wingpanel-indicator-a11y";
rev = version;
sha256 = "sha256-HECK+IEUAKJ4F1TotTHF84j4BYS6EZdAtLBoM401+mw=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
python3
vala
];
buildInputs = [
granite
gtk3
libgee
wingpanel
];
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Universal Access Indicator for Wingpanel";
homepage = "https://github.com/elementary/wingpanel-indicator-a11y";
license = licenses.gpl2Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
};
}

View File

@@ -0,0 +1,83 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
replaceVars,
meson,
ninja,
pkg-config,
vala,
granite,
libgee,
gettext,
gtk3,
json-glib,
switchboard-with-plugs,
wingpanel,
zeitgeist,
bc,
libhandy,
}:
stdenv.mkDerivation rec {
pname = "wingpanel-applications-menu";
version = "8.0.1";
src = fetchFromGitHub {
owner = "elementary";
repo = "applications-menu";
rev = version;
sha256 = "sha256-bwQI41Znm75GFoXxSbWkY9daAJTMvUo+UHyyPmvzOUA=";
};
patches = [
(replaceVars ./fix-paths.patch {
bc = "${bc}/bin/bc";
})
];
nativeBuildInputs = [
gettext
meson
ninja
pkg-config
vala
];
buildInputs = [
granite
gtk3
json-glib
libgee
libhandy
switchboard-with-plugs
wingpanel
zeitgeist
]
++
# applications-menu has a plugin to search switchboard plugins
# see https://github.com/NixOS/nixpkgs/issues/100209
# wingpanel's wrapper will need to pick up the fact that
# applications-menu needs a version of switchboard with all
# its plugins for search.
switchboard-with-plugs.buildInputs;
mesonFlags = [
"--sysconfdir=${placeholder "out"}/etc"
];
doCheck = true;
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Lightweight and stylish app launcher for Pantheon";
homepage = "https://github.com/elementary/applications-menu";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
};
}

View File

@@ -0,0 +1,40 @@
diff --git a/src/synapse-plugins/calculator-plugin/calculator-plugin-backend.vala b/src/synapse-plugins/calculator-plugin/calculator-plugin-backend.vala
index 84454146..fb082fe4 100644
--- a/src/synapse-plugins/calculator-plugin/calculator-plugin-backend.vala
+++ b/src/synapse-plugins/calculator-plugin/calculator-plugin-backend.vala
@@ -73,7 +73,7 @@ namespace Synapse {
Pid pid;
int read_fd, write_fd;
/* Must include math library to get non-integer results and to access standard math functions */
- string[] argv = {"bc", "-l"};
+ string[] argv = {"@bc@", "-l"};
Process.spawn_async_with_pipes (
null, argv, null,
diff --git a/src/synapse-plugins/calculator-plugin/calculator-plugin.vala b/src/synapse-plugins/calculator-plugin/calculator-plugin.vala
index 089b8278..0e532bfc 100644
--- a/src/synapse-plugins/calculator-plugin/calculator-plugin.vala
+++ b/src/synapse-plugins/calculator-plugin/calculator-plugin.vala
@@ -47,8 +47,7 @@ namespace Synapse {
DataSink.PluginRegistry.get_default ().register_plugin (
typeof (CalculatorPlugin),
"accessories-calculator",
- register_plugin,
- Environment.find_program_in_path ("bc") != null
+ register_plugin
);
}
diff --git a/src/synapse-plugins/converter-plugin/converter-plugin.vala b/src/synapse-plugins/converter-plugin/converter-plugin.vala
index 34391e6a..a5bfc71e 100644
--- a/src/synapse-plugins/converter-plugin/converter-plugin.vala
+++ b/src/synapse-plugins/converter-plugin/converter-plugin.vala
@@ -44,8 +44,7 @@ namespace Synapse {
DataSink.PluginRegistry.get_default ().register_plugin (
typeof (ConverterPlugin),
"accessories-converter",
- register_plugin,
- Environment.find_program_in_path ("bc") != null
+ register_plugin
);
}

View File

@@ -0,0 +1,60 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
pkg-config,
meson,
ninja,
vala,
gtk3,
glib,
granite,
libnotify,
wingpanel,
libgee,
libxml2,
}:
stdenv.mkDerivation rec {
pname = "wingpanel-indicator-bluetooth";
version = "8.0.0";
src = fetchFromGitHub {
owner = "elementary";
repo = "wingpanel-indicator-bluetooth";
rev = version;
sha256 = "sha256-N0ehiK8sYAZ/3Lu2u7dut7ZflroFptALFCxjbI0++BA=";
};
nativeBuildInputs = [
glib # for glib-compile-schemas
libxml2
meson
ninja
pkg-config
vala
];
buildInputs = [
glib
granite
gtk3
libgee
libnotify
wingpanel
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Bluetooth Indicator for Wingpanel";
mainProgram = "io.elementary.bluetooth";
homepage = "https://github.com/elementary/wingpanel-indicator-bluetooth";
license = licenses.lgpl21Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
};
}

View File

@@ -0,0 +1,68 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
replaceVars,
pkg-config,
meson,
ninja,
vala,
gtk3,
granite,
wingpanel,
evolution-data-server,
libical,
libgee,
libhandy,
libxml2,
elementary-calendar,
}:
stdenv.mkDerivation rec {
pname = "wingpanel-indicator-datetime";
version = "2.4.2";
src = fetchFromGitHub {
owner = "elementary";
repo = "wingpanel-indicator-datetime";
rev = version;
sha256 = "sha256-iR80pF3KUe0WboFm2/f1ZK9/wER2LfmRBd92e8jGTHs=";
};
patches = [
(replaceVars ./fix-paths.patch {
elementary_calendar = elementary-calendar;
})
];
nativeBuildInputs = [
libxml2
meson
ninja
pkg-config
vala
];
buildInputs = [
evolution-data-server
granite
gtk3
libgee
libhandy
libical
wingpanel
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Date & Time Indicator for Wingpanel";
homepage = "https://github.com/elementary/wingpanel-indicator-datetime";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
};
}

View File

@@ -0,0 +1,26 @@
diff --git a/src/Indicator.vala b/src/Indicator.vala
index 4aba03c..6385bc9 100644
--- a/src/Indicator.vala
+++ b/src/Indicator.vala
@@ -55,7 +55,7 @@ public class DateTime.Indicator : Wingpanel.Indicator {
panel_label.button_press_event.connect ((e) => {
if (e.button == Gdk.BUTTON_MIDDLE) {
- var command = "io.elementary.calendar --show-day %s".printf (new GLib.DateTime.now_local ().format ("%F"));
+ var command = "@elementary_calendar@/bin/io.elementary.calendar --show-day %s".printf (new GLib.DateTime.now_local ().format ("%F"));
try {
var appinfo = AppInfo.create_from_commandline (command, null, AppInfoCreateFlags.NONE);
appinfo.launch_uris (null, null);
diff --git a/src/Widgets/calendar/CalendarView.vala b/src/Widgets/calendar/CalendarView.vala
index cb54253..7477d1a 100644
--- a/src/Widgets/calendar/CalendarView.vala
+++ b/src/Widgets/calendar/CalendarView.vala
@@ -242,7 +242,7 @@ public class DateTime.Widgets.CalendarView : Gtk.Grid {
// TODO: As far as maya supports it use the Dbus Activation feature to run the calendar-app.
public void show_date_in_maya (GLib.DateTime date) {
- var command = "io.elementary.calendar --show-day %s".printf (date.format ("%F"));
+ var command = "@elementary_calendar@/bin/io.elementary.calendar --show-day %s".printf (date.format ("%F"));
try {
var appinfo = AppInfo.create_from_commandline (command, null, AppInfoCreateFlags.NONE);

View File

@@ -0,0 +1,66 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
pkg-config,
meson,
ninja,
replaceVars,
vala,
gtk3,
granite,
libxml2,
wingpanel,
libgee,
xorg,
libgnomekbd,
ibus,
}:
stdenv.mkDerivation rec {
pname = "wingpanel-indicator-keyboard";
version = "2.4.2";
src = fetchFromGitHub {
owner = "elementary";
repo = "wingpanel-indicator-keyboard";
rev = version;
sha256 = "sha256-vPQ+Bt7ggeT3Zzsvbie8Wpu3D2WMEIh8GDOI3frnedM=";
};
patches = [
(replaceVars ./fix-paths.patch {
gkbd_keyboard_display = "${libgnomekbd}/bin/gkbd-keyboard-display";
})
];
nativeBuildInputs = [
meson
ninja
libxml2
pkg-config
vala
];
buildInputs = [
granite
gtk3
ibus
libgee
wingpanel
xorg.xkeyboardconfig
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Keyboard Indicator for Wingpanel";
homepage = "https://github.com/elementary/wingpanel-indicator-keyboard";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
};
}

View File

@@ -0,0 +1,13 @@
diff --git a/src/Indicator.vala b/src/Indicator.vala
index cd7ca49..7813789 100644
--- a/src/Indicator.vala
+++ b/src/Indicator.vala
@@ -94,7 +94,7 @@ public class Keyboard.Indicator : Wingpanel.Indicator {
private void show_keyboard_map () {
close ();
- string command = "gkbd-keyboard-display \"--layout=" + layouts.get_current_with_variant () + "\"";
+ string command = "@gkbd_keyboard_display@ \"--layout=" + layouts.get_current_with_variant () + "\"";
try {
AppInfo.create_from_commandline (command, null, AppInfoCreateFlags.NONE).launch (null, null);

View File

@@ -0,0 +1,58 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
pkg-config,
meson,
ninja,
vala,
gtk3,
granite,
networkmanager,
polkit,
libnma,
wingpanel,
libgee,
}:
stdenv.mkDerivation rec {
pname = "wingpanel-indicator-network";
version = "8.0.0";
src = fetchFromGitHub {
owner = "elementary";
repo = "wingpanel-indicator-network";
rev = version;
sha256 = "sha256-7zp/GwM+aSQie82asX6yFPSPUxtzeyxCwdr8DWc0LQk=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
vala
];
buildInputs = [
granite
gtk3
libgee
networkmanager
polkit
libnma
wingpanel
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Network Indicator for Wingpanel";
homepage = "https://github.com/elementary/wingpanel-indicator-network";
license = licenses.lgpl21Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
};
}

View File

@@ -0,0 +1,54 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
pkg-config,
meson,
ninja,
vala,
gtk3,
granite,
wingpanel,
libgee,
libxml2,
}:
stdenv.mkDerivation rec {
pname = "wingpanel-indicator-nightlight";
version = "2.1.3";
src = fetchFromGitHub {
owner = "elementary";
repo = "wingpanel-indicator-nightlight";
rev = version;
sha256 = "sha256-77+JGJ0/Y9UJwOuKfJAqjNnmZfBy/YiEwCybx6yoVwM=";
};
nativeBuildInputs = [
libxml2
meson
ninja
pkg-config
vala
];
buildInputs = [
granite
gtk3
libgee
wingpanel
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Night Light Indicator for Wingpanel";
homepage = "https://github.com/elementary/wingpanel-indicator-nightlight";
license = licenses.gpl2Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
};
}

View File

@@ -0,0 +1,56 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
pkg-config,
meson,
ninja,
vala,
gtk3,
granite,
wingpanel,
libgee,
libhandy,
elementary-notifications,
}:
stdenv.mkDerivation rec {
pname = "wingpanel-indicator-notifications";
version = "7.1.1";
src = fetchFromGitHub {
owner = "elementary";
repo = "wingpanel-indicator-notifications";
rev = version;
sha256 = "sha256-fuC9ldDjKuy1kBeFOAIZ/Onhl2o45Xj+YjSrfYz1xvw=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
vala
];
buildInputs = [
elementary-notifications
granite
gtk3
libgee
libhandy
wingpanel
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Notifications Indicator for Wingpanel";
homepage = "https://github.com/elementary/wingpanel-indicator-notifications";
license = licenses.lgpl21Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
};
}

View File

@@ -0,0 +1,70 @@
{
lib,
stdenv,
fetchFromGitHub,
replaceVars,
nix-update-script,
gnome-power-manager,
pkg-config,
meson,
ninja,
vala,
elementary-settings-daemon,
gettext,
gtk3,
granite,
libgtop,
libnotify,
udev,
wingpanel,
libgee,
}:
stdenv.mkDerivation rec {
pname = "wingpanel-indicator-power";
version = "8.0.2";
src = fetchFromGitHub {
owner = "elementary";
repo = "wingpanel-indicator-power";
rev = version;
sha256 = "sha256-AeeL/OcQ7V3HT3IWhTQHx/dcCSqL/0s/fShPq96V3xE=";
};
patches = [
(replaceVars ./fix-paths.patch {
gnome_power_manager = gnome-power-manager;
})
];
nativeBuildInputs = [
gettext # msgfmt
meson
ninja
pkg-config
vala
];
buildInputs = [
elementary-settings-daemon
granite
gtk3
libgee
libgtop
libnotify
udev
wingpanel
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Power Indicator for Wingpanel";
homepage = "https://github.com/elementary/wingpanel-indicator-power";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
};
}

View File

@@ -0,0 +1,13 @@
diff --git a/src/Widgets/DeviceList.vala b/src/Widgets/DeviceList.vala
index 0c56f46..33d97b3 100644
--- a/src/Widgets/DeviceList.vala
+++ b/src/Widgets/DeviceList.vala
@@ -39,7 +39,7 @@ public class Power.Widgets.DeviceList : Gtk.ListBox {
string device_path = path_entries.@get (value);
try {
AppInfo statistics_app = AppInfo.create_from_commandline (
- "gnome-power-statistics --device " + device_path,
+ "@gnome_power_manager@/bin/gnome-power-statistics --device " + device_path,
"",
AppInfoCreateFlags.NONE
);

View File

@@ -0,0 +1,69 @@
{
stdenv,
lib,
fetchFromGitHub,
nix-update-script,
glib,
meson,
ninja,
pkg-config,
vala,
wayland-scanner,
accountsservice,
elementary-settings-daemon,
granite,
gtk3,
libgee,
libhandy,
libportal,
packagekit,
wayland,
wingpanel,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "wingpanel-quick-settings";
version = "1.3.0";
src = fetchFromGitHub {
owner = "elementary";
repo = "quick-settings";
rev = finalAttrs.version;
hash = "sha256-82XlZDnXuUB0PPmInrSQh1vrwnOYt9RplKWwYxIirVo=";
};
nativeBuildInputs = [
glib # glib-compile-resources
meson
ninja
pkg-config
vala
wayland-scanner
];
buildInputs = [
accountsservice
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;
teams = [ lib.teams.pantheon ];
};
})

View File

@@ -0,0 +1,62 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
pkg-config,
meson,
ninja,
vala,
gnome-settings-daemon,
gtk3,
granite,
wingpanel,
libnotify,
pulseaudio,
libcanberra-gtk3,
libgee,
libxml2,
}:
stdenv.mkDerivation rec {
pname = "wingpanel-indicator-sound";
version = "8.0.1";
src = fetchFromGitHub {
owner = "elementary";
repo = "wingpanel-indicator-sound";
rev = version;
sha256 = "sha256-oWgq8rgdK81QsN/LhVUk6YgKYG4pFjVfu00t974n+i8=";
};
nativeBuildInputs = [
libxml2
meson
ninja
pkg-config
vala
];
buildInputs = [
gnome-settings-daemon # media-keys
granite
gtk3
libcanberra-gtk3
libgee
libnotify
pulseaudio
wingpanel
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Sound Indicator for Wingpanel";
homepage = "https://github.com/elementary/wingpanel-indicator-sound";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
};
}

View File

@@ -0,0 +1,90 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
wayland-scanner,
wrapGAppsHook3,
pkg-config,
meson,
ninja,
vala,
gala,
gtk3,
libgee,
granite,
gettext,
mutter,
wayland,
json-glib,
elementary-gtk-theme,
elementary-icon-theme,
}:
stdenv.mkDerivation rec {
pname = "wingpanel";
version = "8.0.3";
src = fetchFromGitHub {
owner = "elementary";
repo = "wingpanel";
rev = version;
sha256 = "sha256-3UNtqfDqgclRE8Pe9N8rOt6i2FG6lKNfJAv5Q2OYXUU=";
};
patches = [
./indicators.patch
];
depsBuildBuild = [
pkg-config
];
nativeBuildInputs = [
gettext
meson
ninja
pkg-config
vala
wayland-scanner
wrapGAppsHook3
];
buildInputs = [
elementary-icon-theme
gala
granite
gtk3
json-glib
libgee
mutter
wayland
];
preFixup = ''
gappsWrapperArgs+=(
# this GTK theme is required
--prefix XDG_DATA_DIRS : "${elementary-gtk-theme}/share"
# the icon theme is required
--prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS"
)
'';
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Extensible top panel for Pantheon";
longDescription = ''
Wingpanel is an empty container that accepts indicators as extensions,
including the applications menu.
'';
homepage = "https://github.com/elementary/wingpanel";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
mainProgram = "io.elementary.wingpanel";
};
}

View File

@@ -0,0 +1,21 @@
diff --git a/lib/IndicatorManager.vala b/lib/IndicatorManager.vala
index a99a1ec..0ae7799 100644
--- a/lib/IndicatorManager.vala
+++ b/lib/IndicatorManager.vala
@@ -115,7 +115,15 @@ public class Wingpanel.IndicatorManager : GLib.Object {
}
/* load indicators */
- var base_folder = File.new_for_path (Build.INDICATORS_DIR);
+
+ var indicators_path = Environment.get_variable("WINGPANEL_INDICATORS_PATH");
+ if (indicators_path != null) {
+ debug ("WINGPANEL_INDICATORS_PATH set to %s", indicators_path);
+ } else {
+ critical ("WINGPANEL_INDICATORS_PATH not set");
+ }
+
+ var base_folder = File.new_for_path (indicators_path);
try {
monitor = base_folder.monitor_directory (FileMonitorFlags.NONE, null);

View File

@@ -0,0 +1,64 @@
{
lib,
wrapGAppsHook3,
glib,
stdenv,
xorg,
wingpanel,
wingpanelIndicators,
switchboard-with-plugs,
indicators ? null,
# Only useful to disable for development testing.
useDefaultIndicators ? true,
}:
let
selectedIndicators =
if indicators == null then
wingpanelIndicators
else
indicators ++ (lib.optionals useDefaultIndicators wingpanelIndicators);
in
stdenv.mkDerivation {
pname = "${wingpanel.pname}-with-indicators";
inherit (wingpanel) version;
src = null;
paths = [
wingpanel
]
++ selectedIndicators;
passAsFile = [ "paths" ];
nativeBuildInputs = [
glib
wrapGAppsHook3
];
buildInputs = lib.forEach selectedIndicators (x: x.buildInputs) ++ selectedIndicators;
dontUnpack = true;
dontConfigure = true;
dontBuild = true;
preferLocalBuild = true;
allowSubstitutes = false;
installPhase = ''
mkdir -p $out
for i in $(cat $pathsPath); do
${xorg.lndir}/bin/lndir -silent $i $out
done
'';
preFixup = ''
gappsWrapperArgs+=(
--set WINGPANEL_INDICATORS_PATH "$out/lib/wingpanel"
--set SWITCHBOARD_PLUGS_PATH "${switchboard-with-plugs}/lib/switchboard-3"
)
'';
inherit (wingpanel) meta;
}

View File

@@ -0,0 +1,75 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
meson,
ninja,
sassc,
vala,
pkg-config,
libgee,
libshumate,
gtk4,
glib,
gettext,
gsettings-desktop-schemas,
gobject-introspection,
wrapGAppsHook4,
}:
stdenv.mkDerivation rec {
pname = "granite";
version = "7.7.0";
outputs = [
"out"
"dev"
];
src = fetchFromGitHub {
owner = "elementary";
repo = "granite";
rev = version;
sha256 = "sha256-ypSkzz9BaVweR1C0OkkfwDl8tehMK1S5iExL14LuKmI=";
};
nativeBuildInputs = [
gettext
gobject-introspection
meson
ninja
pkg-config
sassc
vala
wrapGAppsHook4
];
buildInputs = [
libshumate # demo
];
propagatedBuildInputs = [
glib
gsettings-desktop-schemas # is_clock_format_12h uses "org.gnome.desktop.interface clock-format"
gtk4
libgee
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Extension to GTK used by elementary OS";
longDescription = ''
Granite is a companion library for GTK and GLib. Among other things, it provides complex widgets and convenience functions
designed for use in apps built for elementary OS.
'';
homepage = "https://github.com/elementary/granite";
license = licenses.lgpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
mainProgram = "granite-7-demo";
};
}

View File

@@ -0,0 +1,70 @@
{
lib,
stdenv,
fetchFromGitHub,
python3,
meson,
ninja,
vala,
pkg-config,
libgee,
gtk3,
glib,
gettext,
gsettings-desktop-schemas,
gobject-introspection,
wrapGAppsHook3,
}:
stdenv.mkDerivation rec {
pname = "granite";
version = "6.2.0"; # nixpkgs-update: no auto update
outputs = [
"out"
"dev"
];
src = fetchFromGitHub {
owner = "elementary";
repo = "granite";
rev = version;
sha256 = "sha256-WM0Wo9giVP5pkMFaPCHsMfnAP6xD71zg6QLCYV6lmkY=";
};
nativeBuildInputs = [
gettext
gobject-introspection
meson
ninja
pkg-config
python3
vala
wrapGAppsHook3
];
propagatedBuildInputs = [
glib
gsettings-desktop-schemas # is_clock_format_12h uses "org.gnome.desktop.interface clock-format"
gtk3
libgee
];
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
meta = with lib; {
description = "Extension to GTK used by elementary OS";
longDescription = ''
Granite is a companion library for GTK and GLib. Among other things, it provides complex widgets and convenience functions
designed for use in apps built for elementary OS.
'';
homepage = "https://github.com/elementary/granite";
license = licenses.lgpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
mainProgram = "granite-demo";
};
}

View File

@@ -0,0 +1,59 @@
{
stdenv,
lib,
fetchFromGitHub,
gobject-introspection,
meson,
ninja,
pkg-config,
vala,
wayland-scanner,
glib,
gtk4,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "pantheon-wayland";
version = "1.0.0";
src = fetchFromGitHub {
owner = "elementary";
repo = "pantheon-wayland";
rev = finalAttrs.version;
hash = "sha256-UKGgz3G960dPmcDaFwLjDy55x+mDPdQQv2Ejs7BujLg=";
};
outputs = [
"out"
"dev"
];
depsBuildBuild = [ pkg-config ];
nativeBuildInputs = [
gobject-introspection
meson
ninja
pkg-config
vala
wayland-scanner
];
propagatedBuildInputs = [
glib
gtk4
];
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "Wayland integration library to the Pantheon Desktop";
homepage = "https://github.com/elementary/pantheon-wayland";
license = lib.licenses.lgpl3Plus;
teams = [ lib.teams.pantheon ];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,59 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
meson,
python3,
ninja,
pkg-config,
vala,
glib,
libgee,
dbus,
glib-networking,
wrapGAppsHook3,
}:
stdenv.mkDerivation rec {
pname = "contractor";
version = "0.3.5";
src = fetchFromGitHub {
owner = "elementary";
repo = "contractor";
rev = version;
sha256 = "1sqww7zlzl086pjww3d21ah1g78lfrc9aagrqhmsnnbji9gwb8ab";
};
nativeBuildInputs = [
dbus
meson
ninja
pkg-config
python3
vala
wrapGAppsHook3
];
buildInputs = [
glib
glib-networking
libgee
];
PKG_CONFIG_DBUS_1_SESSION_BUS_SERVICES_DIR = "${placeholder "out"}/share/dbus-1/services";
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Desktop-wide extension service used by elementary OS";
homepage = "https://github.com/elementary/contractor";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
mainProgram = "contractor";
};
}

View File

@@ -0,0 +1,51 @@
{
stdenv,
lib,
fetchFromGitHub,
meson,
ninja,
pkg-config,
vala,
wrapGAppsHook3,
granite,
gtk3,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "elementary-bluetooth-daemon";
version = "1.1.0";
src = fetchFromGitHub {
owner = "elementary";
repo = "bluetooth-daemon";
rev = finalAttrs.version;
hash = "sha256-Qr4hg2OY7l/LpGB+/yfIXCnjCXsjQLFZX9f4CoYRtLo=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
vala
wrapGAppsHook3
];
buildInputs = [
granite
gtk3
];
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "Send and receive files via bluetooth";
homepage = "https://github.com/elementary/bluetooth-daemon";
license = lib.licenses.gpl3Plus;
teams = [ lib.teams.pantheon ];
platforms = lib.platforms.linux;
mainProgram = "io.elementary.bluetooth";
};
})

View File

@@ -0,0 +1,59 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
pkg-config,
meson,
ninja,
vala,
gtk4,
granite7,
libadwaita,
libgee,
gcr_4,
webkitgtk_6_0,
wrapGAppsHook4,
}:
stdenv.mkDerivation rec {
pname = "elementary-capnet-assist";
version = "8.0.2";
src = fetchFromGitHub {
owner = "elementary";
repo = "capnet-assist";
rev = version;
sha256 = "sha256-HowrCYOVSYSOCRpTIXFfw4lLUulXY6j5QcxJOBMo984=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
vala
wrapGAppsHook4
];
buildInputs = [
gcr_4
granite7
gtk4
libadwaita
libgee
webkitgtk_6_0
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Small WebKit app that assists a user with login when a captive portal is detected";
homepage = "https://github.com/elementary/capnet-assist";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
mainProgram = "io.elementary.capnet-assist";
};
}

View File

@@ -0,0 +1,60 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
meson,
ninja,
pkg-config,
vala,
gtk3,
glib,
granite,
libgee,
libhandy,
libcanberra-gtk3,
wrapGAppsHook3,
}:
stdenv.mkDerivation rec {
pname = "elementary-notifications";
version = "8.1.0";
src = fetchFromGitHub {
owner = "elementary";
repo = "notifications";
rev = version;
sha256 = "sha256-2+LV3O2V42gI+ysVoeO9KpLqmAj/Zk5F8LzO2RNZ1ZY=";
};
nativeBuildInputs = [
glib # for glib-compile-schemas
meson
ninja
pkg-config
vala
wrapGAppsHook3
];
buildInputs = [
glib
granite
gtk3
libcanberra-gtk3
libgee
libhandy
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "GTK notification server for Pantheon";
homepage = "https://github.com/elementary/notifications";
license = licenses.gpl3Plus;
teams = [ teams.pantheon ];
platforms = platforms.linux;
mainProgram = "io.elementary.notifications";
};
}

View File

@@ -0,0 +1,75 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
meson,
ninja,
pkg-config,
vala,
accountsservice,
dbus,
desktop-file-utils,
fwupd,
gdk-pixbuf,
geoclue2,
gexiv2,
glib,
gobject-introspection,
gtk3,
granite,
libgee,
packagekit,
systemd,
wrapGAppsHook3,
}:
stdenv.mkDerivation rec {
pname = "elementary-settings-daemon";
version = "8.3.1";
src = fetchFromGitHub {
owner = "elementary";
repo = "settings-daemon";
rev = version;
sha256 = "sha256-bYwgxUrPMDaxv/Vv+DuMUzOT1/GRcvNHZW+fjiN5Kdo=";
};
nativeBuildInputs = [
desktop-file-utils
gobject-introspection
meson
ninja
pkg-config
vala
wrapGAppsHook3
];
buildInputs = [
accountsservice
dbus
fwupd
gdk-pixbuf
geoclue2
gexiv2
glib
gtk3
granite
libgee
packagekit
systemd
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Settings daemon for Pantheon";
homepage = "https://github.com/elementary/settings-daemon";
license = licenses.gpl3Plus;
teams = [ teams.pantheon ];
platforms = platforms.linux;
mainProgram = "io.elementary.settings-daemon";
};
}

View File

@@ -0,0 +1,62 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
pkg-config,
meson,
ninja,
vala,
glib,
gtk3,
libgee,
desktop-file-utils,
geoclue2,
granite,
wrapGAppsHook3,
}:
stdenv.mkDerivation rec {
pname = "pantheon-agent-geoclue2";
version = "1.0.6";
src = fetchFromGitHub {
owner = "elementary";
repo = "pantheon-agent-geoclue2";
rev = version;
sha256 = "sha256-DvE0/bR4mVfqCw/c/1h75M8DfCiNPZ2h6Jl6ySk1qxs=";
};
nativeBuildInputs = [
desktop-file-utils
meson
ninja
pkg-config
vala
wrapGAppsHook3
];
buildInputs = [
geoclue2
granite
gtk3
libgee
];
# This should be provided by a post_install.py script - See -> https://github.com/elementary/pantheon-agent-geoclue2/pull/21
postInstall = ''
${glib.dev}/bin/glib-compile-schemas $out/share/glib-2.0/schemas
'';
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Pantheon Geoclue2 Agent";
homepage = "https://github.com/elementary/pantheon-agent-geoclue2";
license = licenses.gpl3Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
};
}

View File

@@ -0,0 +1,58 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
pkg-config,
meson,
ninja,
vala,
gtk4,
libadwaita,
libgee,
granite7,
pantheon-wayland,
polkit,
wrapGAppsHook4,
}:
stdenv.mkDerivation rec {
pname = "pantheon-agent-polkit";
version = "8.0.1";
src = fetchFromGitHub {
owner = "elementary";
repo = "pantheon-agent-polkit";
rev = version;
hash = "sha256-qqeB8SLuES/KoK7ycQ2J1YBA07HITovdnO8kSsrVcfs=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
vala
wrapGAppsHook4
];
buildInputs = [
granite7
gtk4
libadwaita
libgee
pantheon-wayland
polkit
];
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Polkit Agent for the Pantheon Desktop";
homepage = "https://github.com/elementary/pantheon-agent-polkit";
license = licenses.lgpl21Plus;
platforms = platforms.linux;
teams = [ teams.pantheon ];
};
}

View File

@@ -0,0 +1,64 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
meson,
ninja,
pkg-config,
vala,
wrapGAppsHook4,
glib,
granite7,
gsettings-desktop-schemas,
gtk4,
pantheon-wayland,
systemd,
xorg,
}:
stdenv.mkDerivation rec {
pname = "xdg-desktop-portal-pantheon";
version = "8.0.4";
src = fetchFromGitHub {
owner = "elementary";
repo = "portals";
rev = version;
sha256 = "sha256-I0GsdpaH4SoOVPLLZa0da8+rwmJs1HtLrhkglNmYtrQ=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
vala
wrapGAppsHook4
];
buildInputs = [
glib
granite7
gsettings-desktop-schemas
gtk4
pantheon-wayland
systemd
xorg.libX11
];
mesonFlags = [
"-Dsystemduserunitdir=${placeholder "out"}/lib/systemd/user"
];
passthru = {
updateScript = nix-update-script { };
};
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;
teams = [ teams.pantheon ];
};
}