uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead

https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948
this can do it nicely.

Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
Anton Arapov 2021-04-03 12:58:10 +02:00 committed by Alan Daniels
commit 56de2bcd43
30691 changed files with 3076956 additions and 0 deletions

View file

@ -0,0 +1,86 @@
{ lib
, stdenv
, nix-update-script
, appstream
, dbus
, fetchFromGitHub
, flatpak
, glib
, granite
, gtk3
, json-glib
, libgee
, libhandy
, libsoup
, libxml2
, meson
, ninja
, packagekit
, pkg-config
, python3
, vala
, polkit
, wrapGAppsHook
}:
stdenv.mkDerivation rec {
pname = "appcenter";
version = "3.10.0";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "sha256-Y3ueicw6Hn6lw24hdPeJohGol6l7UlQFIefYsBVY6Hg=";
};
nativeBuildInputs = [
dbus # for pkg-config
meson
ninja
pkg-config
python3
vala
wrapGAppsHook
];
buildInputs = [
appstream
flatpak
glib
granite
gtk3
json-glib
libgee
libhandy
libsoup
libxml2
packagekit
polkit
];
mesonFlags = [
"-Dpayments=false"
"-Dcurated=false"
];
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
passthru = {
updateScript = nix-update-script {
attrPath = "pantheon.${pname}";
};
};
meta = with lib; {
homepage = "https://github.com/elementary/appcenter";
description = "An open, pay-what-you-want app store for indie developers, designed for elementary OS";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
mainProgram = "io.elementary.appcenter";
};
}

View file

@ -0,0 +1,61 @@
{ lib
, stdenv
, fetchFromGitHub
, nix-update-script
, meson
, ninja
, pkg-config
, python3
, vala
, wrapGAppsHook4
, granite7
, gtk4
, libgee
}:
stdenv.mkDerivation rec {
pname = "elementary-calculator";
version = "2.0.0";
src = fetchFromGitHub {
owner = "elementary";
repo = "calculator";
rev = version;
sha256 = "sha256-NE7x5vSfwakwJJe2VGRFiYc7GCB1M6xU5945EC6Em34=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
python3
vala
wrapGAppsHook4
];
buildInputs = [
granite7
gtk4
libgee
];
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
passthru = {
updateScript = nix-update-script {
attrPath = "pantheon.${pname}";
};
};
meta = with lib; {
homepage = "https://github.com/elementary/calculator";
description = "Calculator app designed for elementary OS";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
mainProgram = "io.elementary.calculator";
};
}

View file

@ -0,0 +1,77 @@
{ lib
, stdenv
, fetchFromGitHub
, nix-update-script
, meson
, ninja
, pkg-config
, python3
, vala
, wrapGAppsHook
, clutter
, evolution-data-server
, folks
, geoclue2
, geocode-glib
, granite
, gtk3
, libchamplain
, libgee
, libhandy
, libical
}:
stdenv.mkDerivation rec {
pname = "elementary-calendar";
version = "6.1.1";
src = fetchFromGitHub {
owner = "elementary";
repo = "calendar";
rev = version;
sha256 = "sha256-c2c8QNifBDzb0CelB72AIL4G694l6KCSXBjWIHrzZJo=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
python3
vala
wrapGAppsHook
];
buildInputs = [
clutter
evolution-data-server
folks
geoclue2
geocode-glib
granite
gtk3
libchamplain
libgee
libhandy
libical
];
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
passthru = {
updateScript = nix-update-script {
attrPath = "pantheon.${pname}";
};
};
meta = with lib; {
description = "Desktop calendar app designed for elementary OS";
homepage = "https://github.com/elementary/calendar";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
mainProgram = "io.elementary.calendar";
};
}

View file

@ -0,0 +1,76 @@
{ lib
, stdenv
, fetchFromGitHub
, nix-update-script
, meson
, ninja
, pkg-config
, python3
, vala
, wrapGAppsHook
, glib
, granite
, gst_all_1
, gtk3
, libcanberra
, libgee
, libhandy
}:
stdenv.mkDerivation rec {
pname = "elementary-camera";
version = "6.1.0";
src = fetchFromGitHub {
owner = "elementary";
repo = "camera";
rev = version;
sha256 = "sha256-uccH9rCZaifIlLDx+zat3Zx8ecgKo2M6x+mg7AnuFBs=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
python3
vala
wrapGAppsHook
];
buildInputs = [
glib
granite
gtk3
libcanberra
libgee
libhandy
] ++ (with gst_all_1; [
gst-plugins-bad
gst-plugins-base
# gtkSupport needed for gtksink
# https://github.com/elementary/camera/issues/181
(gst-plugins-good.override { gtkSupport = true; })
gst-plugins-ugly
gstreamer
]);
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
passthru = {
updateScript = nix-update-script {
attrPath = "pantheon.${pname}";
};
};
meta = with lib; {
description = "Camera app designed for elementary OS";
homepage = "https://github.com/elementary/camera";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
mainProgram = "io.elementary.camera";
};
}

View file

@ -0,0 +1,91 @@
{ lib
, stdenv
, fetchFromGitHub
, nix-update-script
, appstream
, desktop-file-utils
, meson
, ninja
, pkg-config
, polkit
, python3
, vala
, wrapGAppsHook
, editorconfig-core-c
, granite
, gtk3
, gtksourceview4
, gtkspell3
, libgee
, libgit2-glib
, libhandy
, libpeas
, libsoup
, vte
, ctags
}:
stdenv.mkDerivation rec {
pname = "elementary-code";
version = "6.2.0";
src = fetchFromGitHub {
owner = "elementary";
repo = "code";
rev = version;
sha256 = "sha256-QhJNRhYgGbPMd7B1X3kG+pnC/lGUoF7gc7O1PdG49LI=";
};
nativeBuildInputs = [
appstream
desktop-file-utils
meson
ninja
pkg-config
polkit # needed for ITS rules
python3
vala
wrapGAppsHook
];
buildInputs = [
editorconfig-core-c
granite
gtk3
gtksourceview4
gtkspell3
libgee
libgit2-glib
libhandy
libpeas
libsoup
vte
];
# ctags needed in path by outline plugin
preFixup = ''
gappsWrapperArgs+=(
--prefix PATH : "${lib.makeBinPath [ ctags ]}"
)
'';
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
passthru = {
updateScript = nix-update-script {
attrPath = "pantheon.${pname}";
};
};
meta = with lib; {
description = "Code editor designed for elementary OS";
homepage = "https://github.com/elementary/code";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
mainProgram = "io.elementary.code";
};
}

View file

@ -0,0 +1,85 @@
{ lib
, stdenv
, fetchFromGitHub
, vala
, atk
, cairo
, dconf
, glib
, gtk3
, libwnck
, libX11
, libXfixes
, libXi
, pango
, pkg-config
, libxml2
, bamf
, gdk-pixbuf
, libdbusmenu-gtk3
, gnome-menus
, libgee
, wrapGAppsHook
, meson
, ninja
, granite
}:
stdenv.mkDerivation rec {
pname = "elementary-dock";
version = "unstable-2021-05-07";
outputs = [ "out" "dev" ];
src = fetchFromGitHub {
owner = "elementary";
repo = "dock";
rev = "113c3b0bc7744501d2101dd7afc1ef21ba66b326";
sha256 = "sha256-YlvdB02/hUGaDyHIHy21bgloHyVy3vHcanyNKnp3YbM=";
};
nativeBuildInputs = [
meson
ninja
libxml2 # xmllint
pkg-config
vala
wrapGAppsHook
];
buildInputs = [
atk
bamf
cairo
gdk-pixbuf
glib
gnome-menus
dconf
granite
gtk3
libX11
libXfixes
libXi
libdbusmenu-gtk3
libgee
libwnck
pango
];
postInstall = ''
# elementary/dock/master is missing a Meson post
# install script that does this. This has been
# resolved after the dock rewrite (the `main` branch).
# https://github.com/elementary/default-settings/issues/267
glib-compile-schemas $out/share/glib-2.0/schemas
'';
meta = with lib; {
description = "Elegant, simple, clean dock";
homepage = "https://github.com/elementary/dock";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ davidak ] ++ teams.pantheon.members;
mainProgram = "plank";
};
}

View file

@ -0,0 +1,75 @@
{ lib
, stdenv
, fetchFromGitHub
, nix-update-script
, pkg-config
, meson
, ninja
, vala
, python3
, gtk3
, glib
, granite
, libgee
, libhandy
, wrapGAppsHook
, appstream
}:
stdenv.mkDerivation rec {
pname = "elementary-feedback";
version = "6.1.1";
src = fetchFromGitHub {
owner = "elementary";
repo = "feedback";
rev = version;
sha256 = "sha256-YLYHaFQAAeSt25xHF7xDJWhw+rbH9SpzoRoXaYP42jg=";
};
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
python3
vala
wrapGAppsHook
];
buildInputs = [
appstream
granite
gtk3
libgee
libhandy
glib
];
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
passthru = {
updateScript = nix-update-script {
attrPath = "pantheon.${pname}";
};
};
meta = with lib; {
description = "GitHub Issue Reporter designed for elementary OS";
homepage = "https://github.com/elementary/feedback";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
mainProgram = "io.elementary.feedback";
};
}

View file

@ -0,0 +1,17 @@
diff --git a/src/MainWindow.vala b/src/MainWindow.vala
index 6fee9d3..b0eb28c 100644
--- a/src/MainWindow.vala
+++ b/src/MainWindow.vala
@@ -89,6 +89,12 @@ public class Feedback.MainWindow : Gtk.ApplicationWindow {
#endif
}
+#if HAS_APPSTREAM_0_15
+ appstream_pool.add_extra_data_location ("/run/current-system/sw/share/metainfo/", AppStream.FormatStyle.METAINFO);
+#else
+ appstream_pool.add_metadata_location ("/run/current-system/sw/share/metainfo/");
+#endif
+
// flatpak's appstream files exists only inside they sandbox
unowned var appdata_dir = "/var/lib/flatpak/app/%s/current/active/files/share/appdata";
foreach (var app in app_entries) {

View file

@ -0,0 +1,93 @@
{ lib
, stdenv
, fetchFromGitHub
, nix-update-script
, pkg-config
, meson
, ninja
, gettext
, vala
, python3
, desktop-file-utils
, libcanberra
, gtk3
, glib
, libgee
, libhandy
, granite
, libnotify
, pango
, elementary-dock
, bamf
, sqlite
, zeitgeist
, glib-networking
, libcloudproviders
, libgit2-glib
, wrapGAppsHook
, systemd
}:
stdenv.mkDerivation rec {
pname = "elementary-files";
version = "6.1.2";
outputs = [ "out" "dev" ];
src = fetchFromGitHub {
owner = "elementary";
repo = "files";
rev = version;
sha256 = "sha256-g9g4wJXjjudk4Qt96XGUiV/X86Ae2lqhM+psh9h+XFE=";
};
nativeBuildInputs = [
desktop-file-utils
gettext
glib-networking
meson
ninja
pkg-config
python3
vala
wrapGAppsHook
];
buildInputs = [
bamf
elementary-dock
glib
granite
gtk3
libcanberra
libcloudproviders
libgee
libgit2-glib
libhandy
libnotify
pango
sqlite
systemd
zeitgeist
];
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
passthru = {
updateScript = nix-update-script {
attrPath = "pantheon.${pname}";
};
};
meta = with lib; {
description = "File browser designed for elementary OS";
homepage = "https://github.com/elementary/files";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
mainProgram = "io.elementary.files";
};
}

View file

@ -0,0 +1,77 @@
{ lib
, stdenv
, fetchFromGitHub
, nix-update-script
, pkg-config
, meson
, ninja
, python3
, vala
, gtk3
, libxml2
, libhandy
, webkitgtk
, folks
, libgdata
, sqlite
, glib-networking
, granite
, evolution-data-server
, wrapGAppsHook
, libgee
}:
stdenv.mkDerivation rec {
pname = "elementary-mail";
version = "7.0.0";
src = fetchFromGitHub {
owner = "elementary";
repo = "mail";
rev = version;
sha256 = "sha256-DO3nybH7tb/ISrSQ3+Oj612m64Ov6X0GAWePMbKjCc4=";
};
nativeBuildInputs = [
libxml2
meson
ninja
pkg-config
python3
vala
wrapGAppsHook
];
buildInputs = [
evolution-data-server
folks
glib-networking
granite
gtk3
libgdata
libgee
libhandy
sqlite
webkitgtk
];
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
passthru = {
updateScript = nix-update-script {
attrPath = "pantheon.${pname}";
};
};
meta = with lib; {
description = "Mail app designed for elementary OS";
homepage = "https://github.com/elementary/mail";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ ethancedwards8 ] ++ teams.pantheon.members;
mainProgram = "io.elementary.mail";
};
}

View file

@ -0,0 +1,78 @@
{ lib
, stdenv
, fetchFromGitHub
, fetchpatch
, nix-update-script
, meson
, ninja
, pkg-config
, python3
, vala
, wrapGAppsHook4
, glib
, granite7
, gst_all_1
, gtk4
}:
stdenv.mkDerivation rec {
pname = "elementary-music";
version = "7.0.0";
src = fetchFromGitHub {
owner = "elementary";
repo = "music";
rev = version;
sha256 = "sha256-fZbOjZd6udJWM+jWXCmGwt6cyl/lXPsgM9XeTScbqts=";
};
patches = [
# Use file basename for fallback audio object title
# https://github.com/elementary/music/pull/710
(fetchpatch {
url = "https://github.com/elementary/music/commit/97a437edc7652e0b85b7d3c6fd87089c14ec02e2.patch";
sha256 = "sha256-VmK5dKfSKWAIxfaKXsC8tjg6Pqq1XSGxJDQOZWJX92w=";
})
];
nativeBuildInputs = [
meson
ninja
pkg-config
python3
vala
wrapGAppsHook4
];
buildInputs = [
glib
granite7
gtk4
] ++ (with gst_all_1; [
gst-plugins-bad
gst-plugins-base
gst-plugins-good
gst-plugins-ugly
gstreamer
]);
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
passthru = {
updateScript = nix-update-script {
attrPath = "pantheon.${pname}";
};
};
meta = with lib; {
description = "Music player and library designed for elementary OS";
homepage = "https://github.com/elementary/music";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
mainProgram = "io.elementary.music";
};
}

View file

@ -0,0 +1,102 @@
{ lib
, stdenv
, fetchFromGitHub
, nix-update-script
, meson
, ninja
, pkg-config
, vala
, desktop-file-utils
, gtk3
, libexif
, libgee
, libhandy
, geocode-glib
, gexiv2
, libgphoto2
, granite
, gst_all_1
, libgudev
, json-glib
, libraw
, librest
, libsoup
, sqlite
, python3
, webkitgtk
, libwebp
, appstream
, wrapGAppsHook
}:
stdenv.mkDerivation rec {
pname = "elementary-photos";
version = "2.7.5";
src = fetchFromGitHub {
owner = "elementary";
repo = "photos";
rev = version;
sha256 = "sha256-zM32+bva+QD1Z/0vUD7K0/tnSzo+7GGLjJ1ytr64c0I=";
};
nativeBuildInputs = [
appstream
desktop-file-utils
meson
ninja
pkg-config
python3
vala
wrapGAppsHook
];
buildInputs = [
geocode-glib
gexiv2
granite
gtk3
json-glib
libexif
libgee
libgphoto2
libgudev
libhandy
libraw
librest
libsoup
libwebp
sqlite
webkitgtk
] ++ (with gst_all_1; [
gst-plugins-bad
gst-plugins-base
gst-plugins-good
gst-plugins-ugly
gstreamer
]);
mesonFlags = [
"-Dplugins=false"
];
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
passthru = {
updateScript = nix-update-script {
attrPath = "pantheon.${pname}";
};
};
meta = with lib; {
description = "Photo viewer and organizer designed for elementary OS";
homepage = "https://github.com/elementary/photos";
license = licenses.lgpl21Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
mainProgram = "io.elementary.photos";
};
}

View file

@ -0,0 +1,77 @@
{ lib
, stdenv
, fetchFromGitHub
, fetchpatch
, nix-update-script
, pkg-config
, meson
, ninja
, vala
, python3
, desktop-file-utils
, gtk3
, granite
, libgee
, libhandy
, libcanberra
, wrapGAppsHook
}:
stdenv.mkDerivation rec {
pname = "elementary-screenshot";
version = "6.0.2";
src = fetchFromGitHub {
owner = "elementary";
repo = "screenshot";
rev = version;
sha256 = "sha256-n+L08C/W5YnHZ5P3F1NGUYE2SH94sc4+kr1x+wXZ+cw=";
};
patches = [
# Fix build with meson 0.61
# https://github.com/elementary/screenshot/pull/241
(fetchpatch {
url = "https://github.com/elementary/screenshot/commit/80a5d942e813dd098e1ef0f6629b81d2ccef05ae.patch";
sha256 = "sha256-jOQuzUJvsjqytplLcW9BeIxzi9+/k2GFa4hHVZ3+wts=";
})
];
nativeBuildInputs = [
desktop-file-utils
meson
ninja
pkg-config
python3
vala
wrapGAppsHook
];
buildInputs = [
granite
gtk3
libcanberra
libgee
libhandy
];
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
passthru = {
updateScript = nix-update-script {
attrPath = "pantheon.${pname}";
};
};
meta = with lib; {
description = "Screenshot tool designed for elementary OS";
homepage = "https://github.com/elementary/screenshot";
license = licenses.lgpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
mainProgram = "io.elementary.screenshot";
};
}

View file

@ -0,0 +1,81 @@
{ lib
, stdenv
, fetchFromGitHub
, nix-update-script
, appstream
, desktop-file-utils
, meson
, ninja
, pkg-config
, python3
, vala
, wrapGAppsHook
, clutter-gtk
, evolution-data-server
, granite
, geoclue2
, geocode-glib
, gtk3
, libchamplain
, libgdata
, libgee
, libhandy
, libical
}:
stdenv.mkDerivation rec {
pname = "elementary-tasks";
version = "6.2.0";
src = fetchFromGitHub {
owner = "elementary";
repo = "tasks";
rev = version;
sha256 = "sha256-eHaWXntLkk5G+cR5uFwWsIvbSPsbrvpglYBh91ta/M0=";
};
nativeBuildInputs = [
appstream
desktop-file-utils
meson
ninja
pkg-config
python3
vala
wrapGAppsHook
];
buildInputs = [
clutter-gtk
evolution-data-server
granite
geoclue2
geocode-glib
gtk3
libchamplain
libgdata
libgee
libhandy
libical
];
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
passthru = {
updateScript = nix-update-script {
attrPath = "pantheon.${pname}";
};
};
meta = with lib; {
homepage = "https://github.com/elementary/tasks";
description = "Synced tasks and reminders on elementary OS";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
mainProgram = "io.elementary.tasks";
};
}

View file

@ -0,0 +1,78 @@
{ lib
, stdenv
, fetchFromGitHub
, nix-update-script
, pkg-config
, meson
, ninja
, python3
, vala
, desktop-file-utils
, gtk3
, granite
, libhandy
, libnotify
, vte
, libgee
, pcre2
, wrapGAppsHook
}:
stdenv.mkDerivation rec {
pname = "elementary-terminal";
version = "6.0.2";
src = fetchFromGitHub {
owner = "elementary";
repo = "terminal";
rev = version;
sha256 = "sha256-glcY47E9bGVI6k9gakItN6srzMtmA4hCEz/JVD5UUmI=";
};
nativeBuildInputs = [
desktop-file-utils
meson
ninja
pkg-config
python3
vala
wrapGAppsHook
];
buildInputs = [
granite
gtk3
libgee
libhandy
libnotify
pcre2
vte
];
# See https://github.com/elementary/terminal/commit/914d4b0e2d0a137f12276d748ae07072b95eff80
mesonFlags = [ "-Dubuntu-bionic-patched-vte=false" ];
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
passthru = {
updateScript = nix-update-script {
attrPath = "pantheon.${pname}";
};
};
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;
maintainers = teams.pantheon.members;
mainProgram = "io.elementary.terminal";
};
}

View file

@ -0,0 +1,77 @@
{ lib
, stdenv
, fetchFromGitHub
, nix-update-script
, pkg-config
, meson
, ninja
, vala
, python3
, desktop-file-utils
, gtk3
, granite
, libgee
, libhandy
, clutter-gst
, clutter-gtk
, gst_all_1
, wrapGAppsHook
}:
stdenv.mkDerivation rec {
pname = "elementary-videos";
version = "2.8.3";
src = fetchFromGitHub {
owner = "elementary";
repo = "videos";
rev = version;
sha256 = "sha256-3V8iDy68ngdFTJxAGimuGi4vPru32pHYevThA0RwNpE=";
};
nativeBuildInputs = [
desktop-file-utils
meson
ninja
pkg-config
python3
vala
wrapGAppsHook
];
buildInputs = [
clutter-gst
clutter-gtk
granite
gtk3
libgee
libhandy
] ++ (with gst_all_1; [
gst-libav
gst-plugins-bad
gst-plugins-base
gst-plugins-good
gst-plugins-ugly
gstreamer
]);
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
passthru = {
updateScript = nix-update-script {
attrPath = "pantheon.${pname}";
};
};
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;
maintainers = teams.pantheon.members;
mainProgram = "io.elementary.videos";
};
}

View file

@ -0,0 +1,73 @@
{ lib
, stdenv
, desktop-file-utils
, nix-update-script
, fetchFromGitHub
, flatpak
, gettext
, glib
, granite
, gtk3
, libgee
, libhandy
, meson
, ninja
, pkg-config
, python3
, vala
, libxml2
, wrapGAppsHook
}:
stdenv.mkDerivation rec {
pname = "sideload";
version = "6.0.2";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "0abpcawmmv5mgzk2i5n9rlairmjr2v9rg9b8c9g7xa085s496bi9";
};
nativeBuildInputs = [
desktop-file-utils
gettext
meson
ninja
pkg-config
python3
vala
wrapGAppsHook
];
buildInputs = [
flatpak
glib
granite
gtk3
libgee
libhandy
libxml2
];
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
passthru = {
updateScript = nix-update-script {
attrPath = "pantheon.${pname}";
};
};
meta = with lib; {
homepage = "https://github.com/elementary/sideload";
description = "Flatpak installer, designed for elementary OS";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
mainProgram = "io.elementary.sideload";
};
}

View file

@ -0,0 +1,71 @@
{ lib
, stdenv
, substituteAll
, fetchFromGitHub
, fetchpatch
, nix-update-script
, meson
, ninja
, pkg-config
, vala
, libgee
, granite
, gtk3
, switchboard
, wingpanel-indicator-a11y
, onboard
}:
stdenv.mkDerivation rec {
pname = "switchboard-plug-a11y";
version = "2.3.0";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "0dc5jv335j443rg08cb7p8wvmcg36wrf1vlcfg9r20cksdis9v4l";
};
patches = [
(substituteAll {
src = ./fix-paths.patch;
inherit onboard;
})
# Upstream code not respecting our localedir
# https://github.com/elementary/switchboard-plug-a11y/pull/79
(fetchpatch {
url = "https://github.com/elementary/switchboard-plug-a11y/commit/08db4b696128a6bf809da3403a818834fcd62b02.patch";
sha256 = "1s13ak23bdxgcb74wdz3ql192bla5qhabdicqyjv1rp32plhkbg5";
})
];
nativeBuildInputs = [
meson
ninja
pkg-config
vala
];
buildInputs = [
granite
gtk3
libgee
switchboard
wingpanel-indicator-a11y
];
passthru = {
updateScript = nix-update-script {
attrPath = "pantheon.${pname}";
};
};
meta = with lib; {
description = "Switchboard Universal Access Plug";
homepage = "https://github.com/elementary/switchboard-plug-a11y";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
};
}

View file

@ -0,0 +1,13 @@
diff --git a/src/Panes/Typing.vala b/src/Panes/Typing.vala
index b4ae8b0..5b8fd7e 100644
--- a/src/Panes/Typing.vala
+++ b/src/Panes/Typing.vala
@@ -83,7 +83,7 @@ public class Accessibility.Panes.Typing : Categories.Pane {
onboard_settings_label.clicked.connect (() => {
try {
- var appinfo = AppInfo.create_from_commandline ("onboard-settings", null, AppInfoCreateFlags.NONE);
+ var appinfo = AppInfo.create_from_commandline ("@onboard@/bin/onboard-settings", null, AppInfoCreateFlags.NONE);
appinfo.launch (null, null);
} catch (Error e) {
warning ("%s\n", e.message);

View file

@ -0,0 +1,82 @@
From cc47fa33893e6840463ef8d59f9f4de4b7563726 Mon Sep 17 00:00:00 2001
From: Bobby Rong <rjl931189261@126.com>
Date: Sat, 4 Dec 2021 22:00:38 +0800
Subject: [PATCH] Add meson option for overlaying logo on wallpaper
---
meson.build | 8 ++++++++
meson_options.txt | 1 +
src/Views/OperatingSystemView.vala | 8 ++++++++
3 files changed, 17 insertions(+)
create mode 100644 meson_options.txt
diff --git a/meson.build b/meson.build
index 2125de6e..cbe3cadd 100644
--- a/meson.build
+++ b/meson.build
@@ -20,6 +20,14 @@ add_project_arguments(
vapi_dir = join_paths(meson.current_source_dir(), 'vapi')
add_project_arguments(['--vapidir', vapi_dir], language: 'vala')
+vala_flags = []
+
+if get_option('wallpaper')
+ vala_flags += ['--define', 'WALLPAPER']
+endif
+
+add_project_arguments(vala_flags, language: 'vala')
+
subdir('data')
subdir('src')
subdir('po')
diff --git a/meson_options.txt b/meson_options.txt
new file mode 100644
index 00000000..8cef0bb3
--- /dev/null
+++ b/meson_options.txt
@@ -0,0 +1 @@
+option('wallpaper', type : 'boolean', value : true, description : 'Overlay logo on default wallpaper')
diff --git a/src/Views/OperatingSystemView.vala b/src/Views/OperatingSystemView.vala
index fdb92e7e..6110d1aa 100644
--- a/src/Views/OperatingSystemView.vala
+++ b/src/Views/OperatingSystemView.vala
@@ -39,6 +39,7 @@ public class About.OperatingSystemView : Gtk.Grid {
logo_icon_name = "distributor-logo";
}
+#if WALLPAPER
var logo = new Hdy.Avatar (128, "", false) {
// In case the wallpaper can't be loaded, we don't want an icon or text
icon_name = "invalid-icon-name",
@@ -53,6 +54,7 @@ public class About.OperatingSystemView : Gtk.Grid {
}
});
logo.get_style_context ().add_provider (style_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
+#endif
var icon = new Gtk.Image () {
icon_name = logo_icon_name + "-symbolic",
@@ -64,9 +66,11 @@ public class About.OperatingSystemView : Gtk.Grid {
icon_style_context.add_class ("logo");
icon_style_context.add_provider (style_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
+#if WALLPAPER
var logo_overlay = new Gtk.Overlay ();
logo_overlay.add (logo);
logo_overlay.add_overlay (icon);
+#endif
// Intentionally not using GLib.OsInfoKey.PRETTY_NAME here because we
// want more granular control over text formatting
@@ -145,7 +149,11 @@ public class About.OperatingSystemView : Gtk.Grid {
valign = Gtk.Align.CENTER,
vexpand = true
};
+#if WALLPAPER
software_grid.attach (logo_overlay, 0, 0, 1, 4);
+#else
+ software_grid.attach (icon, 0, 0, 1, 4);
+#endif
software_grid.attach (title, 1, 0, 3);
software_grid.attach (kernel_version_label, 1, 2, 3);

View file

@ -0,0 +1,74 @@
{ lib
, stdenv
, fetchFromGitHub
, nix-update-script
, meson
, ninja
, pkg-config
, vala
, libgee
, libgtop
, libhandy
, granite
, gtk3
, switchboard
, fwupd
, appstream
}:
stdenv.mkDerivation rec {
pname = "switchboard-plug-about";
version = "6.1.0";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "sha256-/8K3xSbzlagOT0zHdXNwEERJP88C+H2I6qJHXwdlTS4=";
};
patches = [
# Introduces a wallpaper meson flag.
# The wallpapaper path does not exist on NixOS, let's just remove the wallpaper.
# https://github.com/elementary/switchboard-plug-about/pull/236
./add-wallpaper-option.patch
];
nativeBuildInputs = [
meson
ninja
pkg-config
vala
];
buildInputs = [
appstream
fwupd
granite
gtk3
libgee
libgtop
libhandy
switchboard
];
mesonFlags = [
# This option is introduced in add-wallpaper-option.patch
"-Dwallpaper=false"
];
passthru = {
updateScript = nix-update-script {
attrPath = "pantheon.${pname}";
};
};
meta = with lib; {
description = "Switchboard About Plug";
homepage = "https://github.com/elementary/switchboard-plug-about";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
};
}

View file

@ -0,0 +1,55 @@
{ lib
, stdenv
, fetchFromGitHub
, nix-update-script
, meson
, ninja
, pkg-config
, vala
, libgee
, granite
, gtk3
, switchboard
, flatpak
}:
stdenv.mkDerivation rec {
pname = "switchboard-plug-applications";
version = "6.0.1";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "18izmzhqp6x5ivha9yl8gyz9adyrsylw7w5p0cwm1bndgqbi7yh5";
};
nativeBuildInputs = [
meson
ninja
pkg-config
vala
];
buildInputs = [
flatpak
granite
gtk3
libgee
switchboard
];
passthru = {
updateScript = nix-update-script {
attrPath = "pantheon.${pname}";
};
};
meta = with lib; {
description = "Switchboard Applications Plug";
homepage = "https://github.com/elementary/switchboard-plug-applications";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
};
}

View file

@ -0,0 +1,68 @@
{ lib
, stdenv
, fetchFromGitHub
, fetchpatch
, nix-update-script
, meson
, ninja
, pkg-config
, vala
, libgee
, granite
, gtk3
, bluez
, switchboard
, wingpanel-indicator-bluetooth
}:
stdenv.mkDerivation rec {
pname = "switchboard-plug-bluetooth";
version = "2.3.6";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "0n9fhi9g0ww341bjk6lpc5ppnl7qj9b3d63j9a7iqnap57bgks9y";
};
patches = [
# Upstream code not respecting our localedir
# https://github.com/elementary/switchboard-plug-bluetooth/pull/182
(fetchpatch {
url = "https://github.com/elementary/switchboard-plug-bluetooth/commit/031dd5660b4bcb0bb4e82ebe6d8bcdaa1791c385.patch";
sha256 = "1g01ad6md7pqp1fx00avbra8yfnr8ipg8y6zhfg35fgjakj4aags";
})
];
nativeBuildInputs = [
meson
ninja
pkg-config
vala
];
buildInputs = [
bluez
granite
gtk3
libgee
switchboard
wingpanel-indicator-bluetooth # settings schema
];
passthru = {
updateScript = nix-update-script {
attrPath = "pantheon.${pname}";
};
};
meta = with lib; {
description = "Switchboard Bluetooth Plug";
homepage = "https://github.com/elementary/switchboard-plug-bluetooth";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
};
}

View file

@ -0,0 +1,71 @@
{ lib
, stdenv
, fetchFromGitHub
, fetchpatch
, nix-update-script
, meson
, ninja
, substituteAll
, pkg-config
, vala
, libgee
, granite
, gtk3
, libxml2
, switchboard
, tzdata
}:
stdenv.mkDerivation rec {
pname = "switchboard-plug-datetime";
version = "2.2.0";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "10rqhxsqbl1xnz5n84d7m39c3vb71k153989xvyc55djia1wjx96";
};
patches = [
(substituteAll {
src = ./fix-paths.patch;
tzdata = tzdata;
})
# Upstream code not respecting our localedir
# https://github.com/elementary/switchboard-plug-datetime/pull/100
(fetchpatch {
url = "https://github.com/elementary/switchboard-plug-datetime/commit/a90639ed4f185f50d4ae448cd9503203dc24b3f4.patch";
sha256 = "0dz0s02ccnds62dqil44k652pc5icka2rfhcx0a5bj1wi5sifnp7";
})
];
nativeBuildInputs = [
libxml2
meson
ninja
pkg-config
vala
];
buildInputs = [
granite
gtk3
libgee
switchboard
];
passthru = {
updateScript = nix-update-script {
attrPath = "pantheon.${pname}";
};
};
meta = with lib; {
description = "Switchboard Date & Time Plug";
homepage = "https://github.com/elementary/switchboard-plug-datetime";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
};
}

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,55 @@
{ lib
, stdenv
, fetchFromGitHub
, nix-update-script
, meson
, ninja
, pkg-config
, vala
, libgee
, libhandy
, granite
, gtk3
, switchboard
}:
stdenv.mkDerivation rec {
pname = "switchboard-plug-display";
version = "2.3.2";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "sha256-3sYZCazGnTjIi3Iry5673TMI13sD0GuY+46AK+NJH70=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
vala
];
buildInputs = [
granite
gtk3
libgee
libhandy
switchboard
];
passthru = {
updateScript = nix-update-script {
attrPath = "pantheon.${pname}";
};
};
meta = with lib; {
description = "Switchboard Displays Plug";
homepage = "https://github.com/elementary/switchboard-plug-display";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
};
}

View file

@ -0,0 +1,698 @@
From f23363ad2fa402d59b41ffe2c13a46462c6d2194 Mon Sep 17 00:00:00 2001
From: Bobby Rong <rjl931189261@126.com>
Date: Fri, 16 Jul 2021 23:28:56 +0800
Subject: [PATCH] Remove Install Unlisted Engines function
https://github.com/elementary/switchboard-plug-keyboard/issues/324
Co-Authored-By: WORLDofPEACE <worldofpeace@protonmail.ch>
---
src/Dialogs/InstallEngineDialog.vala | 140 -----------------
src/Dialogs/ProgressDialog.vala | 82 ----------
src/InputMethod/Installer/InstallList.vala | 73 ---------
.../Installer/UbuntuInstaller.vala | 142 ------------------
src/InputMethod/Installer/aptd-client.vala | 93 ------------
.../InputMethod/AddEnginesPopover.vala | 12 --
src/Widgets/InputMethod/LanguagesRow.vala | 43 ------
src/meson.build | 6 -
8 files changed, 591 deletions(-)
delete mode 100644 src/Dialogs/InstallEngineDialog.vala
delete mode 100644 src/Dialogs/ProgressDialog.vala
delete mode 100644 src/InputMethod/Installer/InstallList.vala
delete mode 100644 src/InputMethod/Installer/UbuntuInstaller.vala
delete mode 100644 src/InputMethod/Installer/aptd-client.vala
delete mode 100644 src/Widgets/InputMethod/LanguagesRow.vala
diff --git a/src/Dialogs/InstallEngineDialog.vala b/src/Dialogs/InstallEngineDialog.vala
deleted file mode 100644
index ffba3a8..0000000
--- a/src/Dialogs/InstallEngineDialog.vala
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
-* Copyright 2019-2020 elementary, Inc. (https://elementary.io)
-*
-* This program is free software: you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation, either version 3 of the License, or
-* (at your option) any later version.
-*
-* This program is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-* You should have received a copy of the GNU General Public License
-* along with this program. If not, see <https://www.gnu.org/licenses/>.
-*/
-
-public class Pantheon.Keyboard.InputMethodPage.InstallEngineDialog : Granite.MessageDialog {
- private InstallList? engines_filter;
-
- public InstallEngineDialog (Gtk.Window parent) {
- Object (
- primary_text: _("Choose an engine to install"),
- secondary_text: _("Select an engine from the list to install and use."),
- image_icon: new ThemedIcon ("extension"),
- transient_for: parent,
- buttons: Gtk.ButtonsType.CANCEL
- );
- }
-
- construct {
- var languages_list = new Gtk.ListBox () {
- activate_on_single_click = true,
- expand = true,
- selection_mode = Gtk.SelectionMode.NONE
- };
-
- foreach (var language in InstallList.get_all ()) {
- var lang = new LanguagesRow (language);
- languages_list.add (lang);
- }
-
- var back_button = new Gtk.Button.with_label (_("Languages")) {
- halign = Gtk.Align.START,
- margin = 6
- };
- back_button.get_style_context ().add_class (Granite.STYLE_CLASS_BACK_BUTTON);
-
- var language_title = new Gtk.Label ("");
-
- var language_header = new Gtk.Box (Gtk.Orientation.HORIZONTAL, 6);
- language_header.pack_start (back_button);
- language_header.set_center_widget (language_title);
-
- var listbox = new Gtk.ListBox () {
- expand = true
- };
- listbox.set_filter_func (filter_function);
- listbox.set_sort_func (sort_function);
-
- foreach (var language in InstallList.get_all ()) {
- foreach (var engine in language.get_components ()) {
- listbox.add (new EnginesRow (engine));
- }
- }
-
- var scrolled = new Gtk.ScrolledWindow (null, null);
- scrolled.add (listbox);
-
- var engine_list_grid = new Gtk.Grid () {
- orientation = Gtk.Orientation.VERTICAL
- };
- engine_list_grid.get_style_context ().add_class (Gtk.STYLE_CLASS_VIEW);
- engine_list_grid.add (language_header);
- engine_list_grid.add (new Gtk.Separator (Gtk.Orientation.HORIZONTAL));
- engine_list_grid.add (scrolled);
-
- var stack = new Gtk.Stack () {
- height_request = 200,
- width_request = 300,
- transition_type = Gtk.StackTransitionType.SLIDE_LEFT_RIGHT
- };
- stack.add (languages_list);
- stack.add (engine_list_grid);
-
- var frame = new Gtk.Frame (null);
- frame.add (stack);
-
- custom_bin.add (frame);
- custom_bin.show_all ();
-
- var install_button = add_button (_("Install"), Gtk.ResponseType.OK);
- install_button.sensitive = false;
- install_button.get_style_context ().add_class (Gtk.STYLE_CLASS_SUGGESTED_ACTION);
-
- languages_list.row_activated.connect ((row) => {
- stack.visible_child = engine_list_grid;
- language_title.label = ((LanguagesRow) row).language.get_name ();
- engines_filter = ((LanguagesRow) row).language;
- listbox.invalidate_filter ();
- var adjustment = scrolled.get_vadjustment ();
- adjustment.set_value (adjustment.lower);
- });
-
- back_button.clicked.connect (() => {
- stack.visible_child = languages_list;
- install_button.sensitive = false;
- });
-
- listbox.selected_rows_changed.connect (() => {
- foreach (var engines_row in listbox.get_children ()) {
- ((EnginesRow) engines_row).selected = false;
- }
-
- ((EnginesRow) listbox.get_selected_row ()).selected = true;
- install_button.sensitive = true;
- });
-
- response.connect ((response_id) => {
- if (response_id == Gtk.ResponseType.OK) {
- string engine_to_install = ((EnginesRow) listbox.get_selected_row ()).engine_name;
- UbuntuInstaller.get_default ().install (engine_to_install);
- }
- });
- }
-
- [CCode (instance_pos = -1)]
- private bool filter_function (Gtk.ListBoxRow row) {
- if (InstallList.get_language_from_engine_name (((EnginesRow) row).engine_name) == engines_filter) {
- return true;
- }
-
- return false;
- }
-
- [CCode (instance_pos = -1)]
- private int sort_function (Gtk.ListBoxRow row1, Gtk.ListBoxRow row2) {
- return ((EnginesRow) row1).engine_name.collate (((EnginesRow) row1).engine_name);
- }
-}
diff --git a/src/Dialogs/ProgressDialog.vala b/src/Dialogs/ProgressDialog.vala
deleted file mode 100644
index 868f167..0000000
--- a/src/Dialogs/ProgressDialog.vala
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
-* Copyright 2011-2020 elementary, Inc. (https://elementary.io)
-*
-* This program is free software: you can redistribute it
-* and/or modify it under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation, either version 3 of the
-* License, or (at your option) any later version.
-*
-* This program is distributed in the hope that it will be
-* useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-* Public License for more details.
-*
-* You should have received a copy of the GNU General Public License along
-* with this program. If not, see http://www.gnu.org/licenses/.
-*/
-
-public class Pantheon.Keyboard.InputMethodPage.ProgressDialog : Granite.Dialog {
- public int progress {
- set {
- if (value >= 100) {
- destroy ();
- }
-
- progress_bar.fraction = value / 100.0;
- }
- }
-
- private Gtk.ProgressBar progress_bar;
-
- construct {
- var image = new Gtk.Image.from_icon_name ("preferences-desktop-locale", Gtk.IconSize.DIALOG) {
- valign = Gtk.Align.START
- };
-
- var primary_label = new Gtk.Label (null) {
- max_width_chars = 50,
- wrap = true,
- xalign = 0
- };
- primary_label.get_style_context ().add_class (Granite.STYLE_CLASS_PRIMARY_LABEL);
-
- unowned UbuntuInstaller installer = UbuntuInstaller.get_default ();
- switch (installer.transaction_mode) {
- case UbuntuInstaller.TransactionMode.INSTALL:
- primary_label.label = _("Installing %s").printf (installer.engine_to_address);
- break;
- case UbuntuInstaller.TransactionMode.REMOVE:
- primary_label.label = _("Removing %s").printf (installer.engine_to_address);
- break;
- }
-
- progress_bar = new Gtk.ProgressBar () {
- hexpand = true,
- valign = Gtk.Align.START,
- width_request = 300
- };
-
- var cancel_button = (Gtk.Button) add_button (_("Cancel"), 0);
-
- installer.bind_property ("install-cancellable", cancel_button, "sensitive");
-
- var grid = new Gtk.Grid () {
- column_spacing = 12,
- margin = 6,
- row_spacing = 6
- };
- grid.attach (image, 0, 0, 1, 2);
- grid.attach (primary_label, 1, 0);
- grid.attach (progress_bar, 1, 1);
- grid.show_all ();
-
- border_width = 6;
- deletable = false;
- get_content_area ().add (grid);
-
- cancel_button.clicked.connect (() => {
- installer.cancel_install ();
- destroy ();
- });
- }
-}
diff --git a/src/InputMethod/Installer/InstallList.vala b/src/InputMethod/Installer/InstallList.vala
deleted file mode 100644
index 275c302..0000000
--- a/src/InputMethod/Installer/InstallList.vala
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
-* 2019-2020 elementary, Inc. (https://elementary.io)
-*
-* This program is free software: you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation, either version 3 of the License, or
-* (at your option) any later version.
-*
-* This program is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-* You should have received a copy of the GNU General Public License
-* along with this program. If not, see <https://www.gnu.org/licenses/>.
-*/
-
-public enum Pantheon.Keyboard.InputMethodPage.InstallList {
- JA,
- KO,
- ZH;
-
- public string get_name () {
- switch (this) {
- case JA:
- return _("Japanese");
- case KO:
- return _("Korean");
- case ZH:
- return _("Chinese");
- default:
- assert_not_reached ();
- }
- }
-
- public string[] get_components () {
- switch (this) {
- case JA:
- return { "ibus-anthy", "ibus-mozc", "ibus-skk" };
- case KO:
- return { "ibus-hangul" };
- case ZH:
- return { "ibus-cangjie", "ibus-chewing", "ibus-pinyin" };
- default:
- assert_not_reached ();
- }
- }
-
- public static InstallList get_language_from_engine_name (string engine_name) {
- switch (engine_name) {
- case "ibus-anthy":
- return JA;
- case "ibus-mozc":
- return JA;
- case "ibus-skk":
- return JA;
- case "ibus-hangul":
- return KO;
- case "ibus-cangjie":
- return ZH;
- case "ibus-chewing":
- return ZH;
- case "ibus-pinyin":
- return ZH;
- default:
- assert_not_reached ();
- }
- }
-
- public static InstallList[] get_all () {
- return { JA, KO, ZH };
- }
-}
diff --git a/src/InputMethod/Installer/UbuntuInstaller.vala b/src/InputMethod/Installer/UbuntuInstaller.vala
deleted file mode 100644
index b65aa1f..0000000
--- a/src/InputMethod/Installer/UbuntuInstaller.vala
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
-* Copyright 2011-2020 elementary, Inc. (https://elementary.io)
-*
-* This program is free software: you can redistribute it
-* and/or modify it under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation, either version 3 of the
-* License, or (at your option) any later version.
-*
-* This program is distributed in the hope that it will be
-* useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-* Public License for more details.
-*
-* You should have received a copy of the GNU General Public License along
-* with this program. If not, see http://www.gnu.org/licenses/.
-*/
-
-public class Pantheon.Keyboard.InputMethodPage.UbuntuInstaller : Object {
- private AptdProxy aptd;
- private AptdTransactionProxy proxy;
-
- public bool install_cancellable { get; private set; }
- public TransactionMode transaction_mode { get; private set; }
- public string engine_to_address { get; private set; }
-
- public signal void install_finished (string langcode);
- public signal void install_failed ();
- public signal void remove_finished (string langcode);
- public signal void progress_changed (int progress);
-
- public enum TransactionMode {
- INSTALL,
- REMOVE,
- INSTALL_MISSING,
- }
-
- Gee.HashMap<string, string> transactions;
-
- private static GLib.Once<UbuntuInstaller> instance;
- public static unowned UbuntuInstaller get_default () {
- return instance.once (() => {
- return new UbuntuInstaller ();
- });
- }
-
- private UbuntuInstaller () {}
-
- construct {
- transactions = new Gee.HashMap<string, string> ();
- aptd = new AptdProxy ();
-
- try {
- aptd.connect_to_aptd ();
- } catch (Error e) {
- warning ("Could not connect to APT daemon");
- }
- }
-
- public void install (string engine_name) {
- transaction_mode = TransactionMode.INSTALL;
- engine_to_address = engine_name;
- string[] packages = {};
- packages += engine_to_address;
-
- foreach (var packet in packages) {
- message ("Packet: %s", packet);
- }
-
- aptd.install_packages.begin (packages, (obj, res) => {
- try {
- var transaction_id = aptd.install_packages.end (res);
- transactions.@set (transaction_id, "i-" + engine_name);
- run_transaction (transaction_id);
- } catch (Error e) {
- warning ("Could not queue downloads: %s", e.message);
- }
- });
- }
-
- public void cancel_install () {
- if (install_cancellable) {
- warning ("cancel_install");
- try {
- proxy.cancel ();
- } catch (Error e) {
- warning ("cannot cancel installation:%s", e.message);
- }
- }
- }
-
- private void run_transaction (string transaction_id) {
- proxy = new AptdTransactionProxy ();
- proxy.finished.connect (() => {
- on_apt_finshed (transaction_id, true);
- });
-
- proxy.property_changed.connect ((prop, val) => {
- if (prop == "Progress") {
- progress_changed ((int) val.get_int32 ());
- }
-
- if (prop == "Cancellable") {
- install_cancellable = val.get_boolean ();
- }
- });
-
- try {
- proxy.connect_to_aptd (transaction_id);
- proxy.simulate ();
-
- proxy.run ();
- } catch (Error e) {
- on_apt_finshed (transaction_id, false);
- warning ("Could no run transaction: %s", e.message);
- }
- }
-
- private void on_apt_finshed (string id, bool success) {
- if (!success) {
- install_failed ();
- transactions.unset (id);
- return;
- }
-
- if (!transactions.has_key (id)) { //transaction already removed
- return;
- }
-
- var action = transactions.get (id);
- var lang = action[2:action.length];
-
- message ("ID %s -> %s", id, success ? "success" : "failed");
-
- if (action[0:1] == "i") { // install
- install_finished (lang);
- } else {
- remove_finished (lang);
- }
-
- transactions.unset (id);
- }
-}
diff --git a/src/InputMethod/Installer/aptd-client.vala b/src/InputMethod/Installer/aptd-client.vala
deleted file mode 100644
index ee5c3f5..0000000
--- a/src/InputMethod/Installer/aptd-client.vala
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright (C) 2012 Canonical Ltd
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 3 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- * Authored by Pawel Stolowski <pawel.stolowski@canonical.com>
- */
-
-namespace Pantheon.Keyboard.InputMethodPage {
- private const string APTD_DBUS_NAME = "org.debian.apt";
- private const string APTD_DBUS_PATH = "/org/debian/apt";
-
- /**
- * Expose a subset of org.debian.apt interfaces -- only what's needed by applications lens.
- */
- [DBus (name = "org.debian.apt")]
- public interface AptdService : GLib.Object {
- public abstract async string install_packages (string[] packages) throws GLib.Error;
- public abstract async string remove_packages (string[] packages) throws GLib.Error;
- public abstract async void quit () throws GLib.Error;
- }
-
- [DBus (name = "org.debian.apt.transaction")]
- public interface AptdTransactionService : GLib.Object {
- public abstract void run () throws GLib.Error;
- public abstract void simulate () throws GLib.Error;
- public abstract void cancel () throws GLib.Error;
- public signal void finished (string exit_state);
- public signal void property_changed (string property, Variant val);
- }
-
- public class AptdProxy : GLib.Object {
- private AptdService _aptd_service;
-
- public void connect_to_aptd () throws GLib.Error {
- _aptd_service = Bus.get_proxy_sync (BusType.SYSTEM, APTD_DBUS_NAME, APTD_DBUS_PATH);
- }
-
- public async string install_packages (string[] packages) throws GLib.Error {
- string res = yield _aptd_service.install_packages (packages);
- return res;
- }
-
- public async string remove_packages (string[] packages) throws GLib.Error {
- string res = yield _aptd_service.remove_packages (packages);
- return res;
- }
-
- public async void quit () throws GLib.Error {
- yield _aptd_service.quit ();
- }
- }
-
- public class AptdTransactionProxy : GLib.Object {
- public signal void finished (string transaction_id);
- public signal void property_changed (string property, Variant variant);
-
- private AptdTransactionService _aptd_service;
-
- public void connect_to_aptd (string transaction_id) throws GLib.Error {
- _aptd_service = Bus.get_proxy_sync (BusType.SYSTEM, APTD_DBUS_NAME, transaction_id);
- _aptd_service.finished.connect ((exit_state) => {
- debug ("aptd transaction finished: %s\n", exit_state);
- finished (transaction_id);
- });
- _aptd_service.property_changed.connect ((prop, variant) => {
- property_changed (prop, variant);
- });
- }
-
- public void simulate () throws GLib.Error {
- _aptd_service.simulate ();
- }
-
- public void run () throws GLib.Error {
- _aptd_service.run ();
- }
-
- public void cancel () throws GLib.Error {
- _aptd_service.cancel ();
- }
- }
-}
diff --git a/src/Widgets/InputMethod/AddEnginesPopover.vala b/src/Widgets/InputMethod/AddEnginesPopover.vala
index 110bc1d..8a03ca8 100644
--- a/src/Widgets/InputMethod/AddEnginesPopover.vala
+++ b/src/Widgets/InputMethod/AddEnginesPopover.vala
@@ -43,8 +43,6 @@ public class Pantheon.Keyboard.InputMethodPage.AddEnginesPopover : Gtk.Popover {
};
scrolled.add (listbox);
- var install_button = new Gtk.Button.with_label (_("Install Unlisted Engines…"));
-
var cancel_button = new Gtk.Button.with_label (_("Cancel"));
var add_button = new Gtk.Button.with_label (_("Add Engine"));
@@ -55,10 +53,8 @@ public class Pantheon.Keyboard.InputMethodPage.AddEnginesPopover : Gtk.Popover {
margin = 12,
spacing = 6
};
- button_box.add (install_button);
button_box.add (cancel_button);
button_box.add (add_button);
- button_box.set_child_secondary (install_button, true);
var grid = new Gtk.Grid ();
grid.attach (search_entry, 0, 0);
@@ -88,14 +84,6 @@ public class Pantheon.Keyboard.InputMethodPage.AddEnginesPopover : Gtk.Popover {
listbox.invalidate_filter ();
});
- install_button.clicked.connect (() => {
- popdown ();
-
- var install_dialog = new InstallEngineDialog ((Gtk.Window) get_toplevel ());
- install_dialog.run ();
- install_dialog.destroy ();
- });
-
cancel_button.clicked.connect (() => {
popdown ();
});
diff --git a/src/Widgets/InputMethod/LanguagesRow.vala b/src/Widgets/InputMethod/LanguagesRow.vala
deleted file mode 100644
index dc064ae..0000000
--- a/src/Widgets/InputMethod/LanguagesRow.vala
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
-* 2019-2020 elementary, Inc. (https://elementary.io)
-*
-* This program is free software: you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation, either version 3 of the License, or
-* (at your option) any later version.
-*
-* This program is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-* You should have received a copy of the GNU General Public License
-* along with this program. If not, see <https://www.gnu.org/licenses/>.
-*/
-
-public class Pantheon.Keyboard.InputMethodPage.LanguagesRow : Gtk.ListBoxRow {
- public InstallList language { get; construct; }
-
- public LanguagesRow (InstallList language) {
- Object (language: language);
- }
-
- construct {
- var label = new Gtk.Label (language.get_name ()) {
- halign = Gtk.Align.START,
- hexpand = true
- };
-
- var caret = new Gtk.Image.from_icon_name ("pan-end-symbolic", Gtk.IconSize.MENU);
-
- var grid = new Gtk.Grid () {
- margin = 3,
- margin_start = 6,
- margin_end = 6
- };
- grid.add (label);
- grid.add (caret);
-
- add (grid);
- }
-}
diff --git a/src/meson.build b/src/meson.build
index 77a51d0..26711c5 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -17,7 +17,6 @@ plug_files = files(
'Widgets/Layout/Display.vala',
'Widgets/Layout/AdvancedSettingsPanel.vala',
'Widgets/Layout/AdvancedSettingsGrid.vala',
- 'Widgets/InputMethod/LanguagesRow.vala',
'Widgets/InputMethod/EnginesRow.vala',
'Widgets/InputMethod/AddEnginesPopover.vala',
'Views/Shortcuts.vala',
@@ -33,11 +32,6 @@ plug_files = files(
'InputSources/SourceSettings.vala',
'InputSources/InputSource.vala',
'InputMethod/AddEnginesList.vala',
- 'InputMethod/Installer/UbuntuInstaller.vala',
- 'InputMethod/Installer/InstallList.vala',
- 'InputMethod/Installer/aptd-client.vala',
- 'Dialogs/ProgressDialog.vala',
- 'Dialogs/InstallEngineDialog.vala',
'Dialogs/ConflictDialog.vala',
'Dialogs/AddLayoutDialog.vala'
)

View file

@ -0,0 +1,77 @@
{ lib
, stdenv
, fetchFromGitHub
, nix-update-script
, substituteAll
, meson
, ninja
, pkg-config
, vala
, libgee
, gnome-settings-daemon
, granite
, gsettings-desktop-schemas
, gtk3
, libhandy
, libxml2
, libgnomekbd
, libxklavier
, ibus
, onboard
, switchboard
}:
stdenv.mkDerivation rec {
pname = "switchboard-plug-keyboard";
version = "2.7.0";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "sha256-ge87rctbd7iR9x9Xq4sMIC09DiPHbpbWBgMZUuJNWbw=";
};
patches = [
./0001-Remove-Install-Unlisted-Engines-function.patch
(substituteAll {
src = ./fix-paths.patch;
inherit ibus onboard;
})
];
nativeBuildInputs = [
libxml2
meson
ninja
pkg-config
vala
];
buildInputs = [
gnome-settings-daemon # media-keys
granite
gsettings-desktop-schemas
gtk3
ibus
libgee
libgnomekbd
libhandy
libxklavier
switchboard
];
passthru = {
updateScript = nix-update-script {
attrPath = "pantheon.${pname}";
};
};
meta = with lib; {
description = "Switchboard Keyboard Plug";
homepage = "https://github.com/elementary/switchboard-plug-keyboard";
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
};
}

View file

@ -0,0 +1,26 @@
diff --git a/src/Views/InputMethod.vala b/src/Views/InputMethod.vala
index 7f73c1e1..1f0d6400 100644
--- a/src/Views/InputMethod.vala
+++ b/src/Views/InputMethod.vala
@@ -328,7 +328,7 @@ public class Pantheon.Keyboard.InputMethodPage.Page : Gtk.Grid {
private void spawn_ibus_daemon () {
bool is_spawn_succeeded = false;
try {
- is_spawn_succeeded = Process.spawn_sync ("/", { "ibus-daemon", "-drx" }, Environ.get (), SpawnFlags.SEARCH_PATH, null);
+ is_spawn_succeeded = Process.spawn_sync ("/", { "@ibus@/bin/ibus-daemon", "-drx" }, Environ.get (), SpawnFlags.SEARCH_PATH, null);
} catch (GLib.SpawnError e) {
warning (e.message);
set_visible_view (e.message);
diff --git a/src/Views/Layout.vala b/src/Views/Layout.vala
index 75d2d805..b86252a4 100644
--- a/src/Views/Layout.vala
+++ b/src/Views/Layout.vala
@@ -219,7 +219,7 @@ namespace Pantheon.Keyboard {
onscreen_keyboard_settings.clicked.connect (() => {
try {
- var appinfo = AppInfo.create_from_commandline ("onboard-settings", null, AppInfoCreateFlags.NONE);
+ var appinfo = AppInfo.create_from_commandline ("@onboard@/bin/onboard-settings", null, AppInfoCreateFlags.NONE);
appinfo.launch (null, null);
} catch (Error e) {
warning ("Unable to launch onboard-settings: %s", e.message);

View file

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

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,66 @@
{ lib
, stdenv
, fetchFromGitHub
, nix-update-script
, meson
, ninja
, pkg-config
, substituteAll
, vala
, libgee
, granite
, gtk3
, networkmanager
, networkmanagerapplet
, libnma
, switchboard
}:
stdenv.mkDerivation rec {
pname = "switchboard-plug-network";
version = "2.4.2";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "sha256-CdSX4p98HQNC0VF5Ae/ZnDqm000+9KJ6JhQWhSHC4CI=";
};
patches = [
(substituteAll {
src = ./fix-paths.patch;
inherit networkmanagerapplet;
})
];
nativeBuildInputs = [
meson
ninja
pkg-config
vala
];
buildInputs = [
granite
gtk3
libgee
networkmanager
libnma
switchboard
];
passthru = {
updateScript = nix-update-script {
attrPath = "pantheon.${pname}";
};
};
meta = with lib; {
description = "Switchboard Networking Plug";
homepage = "https://github.com/elementary/switchboard-plug-network";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
};
}

View file

@ -0,0 +1,26 @@
diff --git a/src/Views/VPNPage.vala b/src/Views/VPNPage.vala
index ba9dc22..a12871a 100644
--- a/src/Views/VPNPage.vala
+++ b/src/Views/VPNPage.vala
@@ -264,7 +264,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/SettingsButton.vala b/src/Widgets/SettingsButton.vala
index 5849b69..7bbd172 100644
--- a/src/Widgets/SettingsButton.vala
+++ b/src/Widgets/SettingsButton.vala
@@ -55,7 +55,7 @@ public class Network.Widgets.SettingsButton : Gtk.Button {
clicked.connect (() => {
try {
var appinfo = AppInfo.create_from_commandline (
- "nm-connection-editor %s".printf (args), null, AppInfoCreateFlags.NONE
+ "@networkmanagerapplet@/bin/nm-connection-editor %s".printf (args), null, AppInfoCreateFlags.NONE
);
appinfo.launch (null, null);

View file

@ -0,0 +1,65 @@
{ lib
, stdenv
, fetchFromGitHub
, nix-update-script
, fetchpatch
, meson
, ninja
, pkg-config
, vala
, libgee
, granite
, gtk3
, switchboard
, elementary-notifications
}:
stdenv.mkDerivation rec {
pname = "switchboard-plug-notifications";
version = "2.2.0";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "0zzhgs8m1y7ab31hbn7v8g8k7rx51gqajl243zmysn86lfqk8iay";
};
patches = [
# Upstream code not respecting our localedir
# https://github.com/elementary/switchboard-plug-notifications/pull/83
(fetchpatch {
url = "https://github.com/elementary/switchboard-plug-notifications/commit/2e0320aab62b6932e8ef5f941d02e244de381957.patch";
sha256 = "0rcamasq837grck0i2yx6psggzrhv7p7m3mra5l0k9zsjxgar92v";
})
];
nativeBuildInputs = [
meson
ninja
pkg-config
vala
];
buildInputs = [
elementary-notifications
granite
gtk3
libgee
switchboard
];
passthru = {
updateScript = nix-update-script {
attrPath = "pantheon.${pname}";
};
};
meta = with lib; {
description = "Switchboard Notifications Plug";
homepage = "https://github.com/elementary/switchboard-plug-notifications";
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
};
}

View file

@ -0,0 +1,61 @@
{ lib
, stdenv
, fetchFromGitHub
, nix-update-script
, meson
, ninja
, pkg-config
, vala
, evolution-data-server
, glib
, granite
, gtk3
, libgdata
, libhandy
, sqlite
, switchboard
}:
stdenv.mkDerivation rec {
pname = "switchboard-plug-onlineaccounts";
version = "6.5.0";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "sha256-Q/vvXKyeedn5o7HnL9F5ixSjJS3OWrvvHbzvx2fW2qY=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
vala
];
buildInputs = [
evolution-data-server
glib
granite
gtk3
libgdata
libhandy
sqlite # needed for camel-1.2
switchboard
];
passthru = {
updateScript = nix-update-script {
attrPath = "pantheon.${pname}";
};
};
meta = with lib; {
description = "Switchboard Online Accounts Plug";
homepage = "https://github.com/elementary/switchboard-plug-onlineaccounts";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
};
}

View file

@ -0,0 +1,73 @@
{ lib
, stdenv
, fetchFromGitHub
, nix-update-script
, meson
, ninja
, pkg-config
, vala
, glib
, libgee
, granite
, gexiv2
, gnome-settings-daemon
, elementary-settings-daemon
, gtk3
, gnome-desktop
, gala
, wingpanel
, elementary-dock
, switchboard
, gettext
, bamf
}:
stdenv.mkDerivation rec {
pname = "switchboard-plug-pantheon-shell";
version = "6.1.0";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "sha256-rwneQ1bqpWDyTHULMtGqhPdpSDa4ObnVortmL0E+gHA=";
};
nativeBuildInputs = [
gettext
meson
ninja
pkg-config
vala
];
buildInputs = [
bamf
elementary-dock
elementary-settings-daemon
gnome-settings-daemon
gala
gexiv2
glib
gnome-desktop
granite
gtk3
libgee
switchboard
wingpanel
];
passthru = {
updateScript = nix-update-script {
attrPath = "pantheon.${pname}";
};
};
meta = with lib; {
description = "Switchboard Desktop Plug";
homepage = "https://github.com/elementary/switchboard-plug-pantheon-shell";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
};
}

View file

@ -0,0 +1,63 @@
{ lib
, stdenv
, fetchFromGitHub
, nix-update-script
, meson
, ninja
, pkg-config
, vala
, libgee
, gnome-settings-daemon
, granite
, gtk3
, glib
, dbus
, polkit
, switchboard
, wingpanel-indicator-power
}:
stdenv.mkDerivation rec {
pname = "switchboard-plug-power";
version = "2.7.0";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "sha256-8Hu2RIgA0gSc+tLNjDqGS+b/HpbsOdR4otpY4UqNzKs=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
vala
];
buildInputs = [
dbus
gnome-settings-daemon
glib
granite
gtk3
libgee
polkit
switchboard
wingpanel-indicator-power # settings schema
];
passthru = {
updateScript = nix-update-script {
attrPath = "pantheon.${pname}";
};
};
meta = with lib; {
description = "Switchboard Power Plug";
homepage = "https://github.com/elementary/switchboard-plug-power";
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
};
}

View file

@ -0,0 +1,66 @@
{ lib
, stdenv
, fetchFromGitHub
, nix-update-script
, fetchpatch
, meson
, ninja
, pkg-config
, vala
, libgee
, granite
, gtk3
, cups
, switchboard
}:
stdenv.mkDerivation rec {
pname = "switchboard-plug-printers";
version = "2.1.10";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "0frvybbx7mcs87kww0if4zn0c6c2gb400cpiqrl8b0294py58xpb";
};
patches = [
# Upstream code not respecting our localedir
# https://github.com/elementary/switchboard-plug-printers/pull/153
(fetchpatch {
url = "https://github.com/elementary/switchboard-plug-printers/commit/3e2b01378cbb8e666d23daeef7f40fcaa90daa45.patch";
sha256 = "0b8pq525xnir06pn65rcz68bcp5xdxl0gpbj7p5x1hs23p5dp04n";
})
];
nativeBuildInputs = [
meson
ninja
pkg-config
vala
];
buildInputs = [
cups
granite
gtk3
libgee
switchboard
];
passthru = {
updateScript = nix-update-script {
attrPath = "pantheon.${pname}";
};
};
meta = with lib; {
description = "Switchboard Printers Plug";
homepage = "https://github.com/elementary/switchboard-plug-printers";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
};
}

View file

@ -0,0 +1,73 @@
{ lib
, stdenv
, fetchFromGitHub
, nix-update-script
, meson
, python3
, ninja
, pkg-config
, vala
, elementary-settings-daemon
, libgee
, granite
, gsettings-desktop-schemas
, gala
, gtk3
, glib
, polkit
, zeitgeist
, switchboard
}:
stdenv.mkDerivation rec {
pname = "switchboard-plug-security-privacy";
version = "2.4.0";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "sha256-jT8aYE36ZAeB9ng3RojVqxzmLtzpbsNRHPuDQ03XKcI=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
python3
vala
];
buildInputs = [
elementary-settings-daemon # settings schema
gala
glib
granite
gsettings-desktop-schemas
gtk3
libgee
polkit
switchboard
zeitgeist
];
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
passthru = {
updateScript = nix-update-script {
attrPath = "pantheon.${pname}";
};
};
meta = with lib; {
description = "Switchboard Security & Privacy Plug";
homepage = "https://github.com/elementary/switchboard-plug-security-privacy";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
};
}

View file

@ -0,0 +1,63 @@
{ lib
, stdenv
, fetchFromGitHub
, nix-update-script
, fetchpatch
, meson
, ninja
, pkg-config
, vala
, libgee
, granite
, gtk3
, switchboard
}:
stdenv.mkDerivation rec {
pname = "switchboard-plug-sharing";
version = "2.1.5";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "00lqrxq1wz3y2s9jiz8rh9d571va2vza2gdwj6c86z3q4c4hmn17";
};
patches = [
# Upstream code not respecting our localedir
# https://github.com/elementary/switchboard-plug-sharing/pull/55
(fetchpatch {
url = "https://github.com/elementary/switchboard-plug-sharing/commit/5219839738b79e3c5f039a811d96a40eb2644eab.patch";
sha256 = "020w746q7gzmic0pdnbxs792sx15wlsqaf2x770r5xwbyfmqr7bs";
})
];
nativeBuildInputs = [
meson
ninja
pkg-config
vala
];
buildInputs = [
granite
gtk3
libgee
switchboard
];
passthru = {
updateScript = nix-update-script {
attrPath = "pantheon.${pname}";
};
};
meta = with lib; {
description = "Switchboard Sharing Plug";
homepage = "https://github.com/elementary/switchboard-plug-sharing";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
};
}

View file

@ -0,0 +1,57 @@
{ lib
, stdenv
, fetchFromGitHub
, nix-update-script
, meson
, ninja
, pkg-config
, vala
, libgee
, granite
, gtk3
, pulseaudio
, libcanberra-gtk3
, switchboard
}:
stdenv.mkDerivation rec {
pname = "switchboard-plug-sound";
version = "2.3.1";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "sha256-hyBmo9P68XSXRUuLw+baEAetba2QdqOwUti64geH6xc=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
vala
];
buildInputs = [
granite
gtk3
libcanberra-gtk3
libgee
pulseaudio
switchboard
];
passthru = {
updateScript = nix-update-script {
attrPath = "pantheon.${pname}";
};
};
meta = with lib; {
description = "Switchboard Sound Plug";
homepage = "https://github.com/elementary/switchboard-plug-sound";
license = licenses.lgpl21Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
};
}

View file

@ -0,0 +1,72 @@
{ lib
, stdenv
, fetchFromGitHub
, fetchpatch
, nix-update-script
, meson
, ninja
, pkg-config
, vala
, glib
, granite
, gtk3
, libgee
, libgudev
, libwacom
, switchboard
, xorg
}:
stdenv.mkDerivation rec {
pname = "switchboard-plug-wacom";
version = "1.0.0";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "1n2yfq4s9xpnfqjikchjp4z2nk8cmfz4g0p18cplzh5w1lvz17lm";
};
patches = [
# Upstream code not respecting our localedir
# https://github.com/elementary/switchboard-plug-wacom/pull/29
(fetchpatch {
url = "https://github.com/elementary/switchboard-plug-wacom/commit/2a7dee180d73ffb3521d806efb7028f5a71cb511.patch";
sha256 = "06ra5c0f14brmj2mmsqscpc4d1114i4qazgnsazzh2hrp04ilnva";
})
];
nativeBuildInputs = [
meson
ninja
pkg-config
vala
];
buildInputs = [
glib
granite
gtk3
libgee
libgudev
libwacom
switchboard
xorg.libX11
xorg.libXi
];
passthru = {
updateScript = nix-update-script {
attrPath = "pantheon.${pname}";
};
};
meta = with lib; {
description = "Switchboard Wacom Plug";
homepage = "https://github.com/elementary/switchboard-plug-wacom";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
};
}

View file

@ -0,0 +1,69 @@
{ lib
, stdenv
, fetchFromGitHub
, nix-update-script
, pkg-config
, meson
, python3
, ninja
, vala
, gtk3
, libgee
, libhandy
, granite
, gettext
, wrapGAppsHook
}:
stdenv.mkDerivation rec {
pname = "switchboard";
version = "6.0.1";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
sha256 = "sha256-QMh9m6Xc0BeprZHrOgcmSireWb8Ja7Td0COYMgYw+5M=";
};
nativeBuildInputs = [
gettext
meson
ninja
pkg-config
python3
vala
wrapGAppsHook
];
buildInputs = [
granite
gtk3
libgee
libhandy
];
patches = [
./plugs-path-env.patch
];
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
passthru = {
updateScript = nix-update-script {
attrPath = "pantheon.${pname}";
};
};
meta = with lib; {
description = "Extensible System Settings app for Pantheon";
homepage = "https://github.com/elementary/switchboard";
license = licenses.lgpl21Plus;
platforms = platforms.linux;
maintainers = teams.pantheon.members;
mainProgram = "io.elementary.switchboard";
};
}

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,63 @@
{ wrapGAppsHook
, 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 rec {
pname = "${testingName}${switchboard.pname}-with-plugs";
inherit (switchboard) version;
src = null;
paths = [
switchboard
] ++ selectedPlugs;
passAsFile = [ "paths" ];
nativeBuildInputs = [
glib
wrapGAppsHook
];
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
'';
preFixup = ''
gappsWrapperArgs+=(
--set SWITCHBOARD_PLUGS_PATH "$out/lib/switchboard"
)
'';
inherit (switchboard) meta;
}