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:
commit
56de2bcd43
30691 changed files with 3076956 additions and 0 deletions
86
pkgs/desktops/pantheon/apps/appcenter/default.nix
Normal file
86
pkgs/desktops/pantheon/apps/appcenter/default.nix
Normal 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";
|
||||
};
|
||||
}
|
||||
|
|
@ -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";
|
||||
};
|
||||
}
|
||||
77
pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
Normal file
77
pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
Normal 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";
|
||||
};
|
||||
}
|
||||
76
pkgs/desktops/pantheon/apps/elementary-camera/default.nix
Normal file
76
pkgs/desktops/pantheon/apps/elementary-camera/default.nix
Normal 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";
|
||||
};
|
||||
}
|
||||
91
pkgs/desktops/pantheon/apps/elementary-code/default.nix
Normal file
91
pkgs/desktops/pantheon/apps/elementary-code/default.nix
Normal 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";
|
||||
};
|
||||
}
|
||||
85
pkgs/desktops/pantheon/apps/elementary-dock/default.nix
Normal file
85
pkgs/desktops/pantheon/apps/elementary-dock/default.nix
Normal 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";
|
||||
};
|
||||
}
|
||||
75
pkgs/desktops/pantheon/apps/elementary-feedback/default.nix
Normal file
75
pkgs/desktops/pantheon/apps/elementary-feedback/default.nix
Normal 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";
|
||||
};
|
||||
}
|
||||
|
|
@ -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) {
|
||||
93
pkgs/desktops/pantheon/apps/elementary-files/default.nix
Normal file
93
pkgs/desktops/pantheon/apps/elementary-files/default.nix
Normal 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";
|
||||
};
|
||||
}
|
||||
77
pkgs/desktops/pantheon/apps/elementary-mail/default.nix
Normal file
77
pkgs/desktops/pantheon/apps/elementary-mail/default.nix
Normal 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";
|
||||
};
|
||||
}
|
||||
78
pkgs/desktops/pantheon/apps/elementary-music/default.nix
Normal file
78
pkgs/desktops/pantheon/apps/elementary-music/default.nix
Normal 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";
|
||||
};
|
||||
}
|
||||
102
pkgs/desktops/pantheon/apps/elementary-photos/default.nix
Normal file
102
pkgs/desktops/pantheon/apps/elementary-photos/default.nix
Normal 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";
|
||||
};
|
||||
}
|
||||
|
|
@ -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";
|
||||
};
|
||||
}
|
||||
81
pkgs/desktops/pantheon/apps/elementary-tasks/default.nix
Normal file
81
pkgs/desktops/pantheon/apps/elementary-tasks/default.nix
Normal 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";
|
||||
};
|
||||
}
|
||||
78
pkgs/desktops/pantheon/apps/elementary-terminal/default.nix
Normal file
78
pkgs/desktops/pantheon/apps/elementary-terminal/default.nix
Normal 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";
|
||||
};
|
||||
}
|
||||
77
pkgs/desktops/pantheon/apps/elementary-videos/default.nix
Normal file
77
pkgs/desktops/pantheon/apps/elementary-videos/default.nix
Normal 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";
|
||||
};
|
||||
}
|
||||
73
pkgs/desktops/pantheon/apps/sideload/default.nix
Normal file
73
pkgs/desktops/pantheon/apps/sideload/default.nix
Normal 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";
|
||||
};
|
||||
}
|
||||
|
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
|
@ -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);
|
||||
|
|
@ -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);
|
||||
|
|
@ -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;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
|
@ -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;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
|
@ -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'
|
||||
)
|
||||
|
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
|
@ -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);
|
||||
|
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
|
@ -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");
|
||||
}
|
||||
|
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
|
@ -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);
|
||||
|
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
|
@ -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;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
@ -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;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
|
@ -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;
|
||||
};
|
||||
}
|
||||
69
pkgs/desktops/pantheon/apps/switchboard/default.nix
Normal file
69
pkgs/desktops/pantheon/apps/switchboard/default.nix
Normal 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";
|
||||
};
|
||||
}
|
||||
21
pkgs/desktops/pantheon/apps/switchboard/plugs-path-env.patch
Normal file
21
pkgs/desktops/pantheon/apps/switchboard/plugs-path-env.patch
Normal 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);
|
||||
}
|
||||
|
||||
63
pkgs/desktops/pantheon/apps/switchboard/wrapper.nix
Normal file
63
pkgs/desktops/pantheon/apps/switchboard/wrapper.nix
Normal 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;
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
{ lib
|
||||
, stdenvNoCC
|
||||
, fetchFromGitHub
|
||||
, nix-update-script
|
||||
, gettext
|
||||
, meson
|
||||
, ninja
|
||||
, python3
|
||||
, sassc
|
||||
}:
|
||||
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "elementary-gtk-theme";
|
||||
version = "7.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = "stylesheet";
|
||||
rev = version;
|
||||
sha256 = "sha256-ZnQ54ktH0/ZyFH6c180YzbkK/TyIDziiwAXi/zqHpe4=";
|
||||
};
|
||||
|
||||
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 {
|
||||
attrPath = "pantheon.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
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;
|
||||
maintainers = teams.pantheon.members;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,68 @@
|
|||
{ lib
|
||||
, stdenvNoCC
|
||||
, fetchFromGitHub
|
||||
, nix-update-script
|
||||
, meson
|
||||
, python3
|
||||
, ninja
|
||||
, hicolor-icon-theme
|
||||
, gtk3
|
||||
, xcursorgen
|
||||
, librsvg
|
||||
}:
|
||||
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "elementary-icon-theme";
|
||||
version = "7.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = "icons";
|
||||
rev = version;
|
||||
sha256 = "sha256-tyhKhZPoZ8xVy1KVUWd8BK2meTT3Z6qM787spjE+NL8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
gtk3
|
||||
librsvg
|
||||
meson
|
||||
ninja
|
||||
python3
|
||||
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
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x meson/symlink.py
|
||||
patchShebangs meson/symlink.py
|
||||
'';
|
||||
|
||||
postFixup = "gtk-update-icon-cache $out/share/icons/elementary";
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script {
|
||||
attrPath = "pantheon.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
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;
|
||||
maintainers = teams.pantheon.members;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
{ 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 {
|
||||
attrPath = "pantheon.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Font for concealing text";
|
||||
homepage = "https://github.com/elementary/fonts";
|
||||
license = licenses.ofl;
|
||||
maintainers = teams.pantheon.members;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
{ 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 {
|
||||
attrPath = "pantheon.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "A set of system sounds for elementary";
|
||||
homepage = "https://github.com/elementary/sound-theme";
|
||||
license = licenses.unlicense;
|
||||
platforms = platforms.linux;
|
||||
maintainers = teams.pantheon.members;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, nix-update-script
|
||||
, gettext
|
||||
, meson
|
||||
, ninja
|
||||
, python3
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "elementary-wallpapers";
|
||||
version = "6.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = "wallpapers";
|
||||
rev = version;
|
||||
sha256 = "sha256-E/cUxa/GNt/01EjuuvurHxJu3qV9e+jcdcCi2+NxVDA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
gettext
|
||||
meson
|
||||
ninja
|
||||
python3
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x meson/symlink.py
|
||||
patchShebangs meson/symlink.py
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script {
|
||||
attrPath = "pantheon.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Collection of wallpapers for elementary";
|
||||
homepage = "https://github.com/elementary/wallpapers";
|
||||
license = licenses.publicDomain;
|
||||
platforms = platforms.linux;
|
||||
maintainers = teams.pantheon.members;
|
||||
};
|
||||
}
|
||||
|
||||
251
pkgs/desktops/pantheon/default.nix
Normal file
251
pkgs/desktops/pantheon/default.nix
Normal file
|
|
@ -0,0 +1,251 @@
|
|||
{ config, pkgs, lib, gnome }:
|
||||
|
||||
|
||||
lib.makeScope pkgs.newScope (self: with self; {
|
||||
|
||||
switchboardPlugs = [
|
||||
switchboard-plug-a11y
|
||||
switchboard-plug-about
|
||||
switchboard-plug-applications
|
||||
switchboard-plug-bluetooth
|
||||
switchboard-plug-datetime
|
||||
switchboard-plug-display
|
||||
switchboard-plug-keyboard
|
||||
switchboard-plug-mouse-touchpad
|
||||
switchboard-plug-network
|
||||
switchboard-plug-notifications
|
||||
switchboard-plug-onlineaccounts
|
||||
switchboard-plug-pantheon-shell
|
||||
switchboard-plug-power
|
||||
switchboard-plug-printers
|
||||
switchboard-plug-security-privacy
|
||||
switchboard-plug-sharing
|
||||
switchboard-plug-sound
|
||||
switchboard-plug-wacom
|
||||
];
|
||||
|
||||
wingpanelIndicators = [
|
||||
wingpanel-applications-menu
|
||||
wingpanel-indicator-a11y
|
||||
wingpanel-indicator-bluetooth
|
||||
wingpanel-indicator-datetime
|
||||
wingpanel-indicator-keyboard
|
||||
wingpanel-indicator-network
|
||||
wingpanel-indicator-nightlight
|
||||
wingpanel-indicator-notifications
|
||||
wingpanel-indicator-power
|
||||
wingpanel-indicator-session
|
||||
wingpanel-indicator-sound
|
||||
];
|
||||
|
||||
maintainers = lib.teams.pantheon.members;
|
||||
|
||||
mutter = pkgs.gnome.mutter338;
|
||||
|
||||
# Using 3.38 to match Mutter used in Pantheon
|
||||
gnome-settings-daemon = pkgs.gnome.gnome-settings-daemon338;
|
||||
|
||||
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-mail = callPackage ./apps/elementary-mail { };
|
||||
|
||||
elementary-music = callPackage ./apps/elementary-music { };
|
||||
|
||||
elementary-photos = callPackage ./apps/elementary-photos { };
|
||||
|
||||
elementary-screenshot = callPackage ./apps/elementary-screenshot { };
|
||||
|
||||
elementary-tasks = callPackage ./apps/elementary-tasks { };
|
||||
|
||||
elementary-terminal = callPackage ./apps/elementary-terminal { };
|
||||
|
||||
elementary-videos = callPackage ./apps/elementary-videos { };
|
||||
|
||||
epiphany = pkgs.epiphany.override { withPantheon = true; };
|
||||
|
||||
sideload = callPackage ./apps/sideload { };
|
||||
|
||||
#### DESKTOP
|
||||
|
||||
elementary-default-settings = callPackage ./desktop/elementary-default-settings { };
|
||||
|
||||
elementary-greeter = callPackage ./desktop/elementary-greeter { };
|
||||
|
||||
elementary-onboarding = callPackage ./desktop/elementary-onboarding { };
|
||||
|
||||
elementary-print-shim = callPackage ./desktop/elementary-print-shim { };
|
||||
|
||||
elementary-session-settings = callPackage ./desktop/elementary-session-settings {
|
||||
inherit (gnome) gnome-session gnome-keyring;
|
||||
};
|
||||
|
||||
elementary-shortcut-overlay = callPackage ./desktop/elementary-shortcut-overlay { };
|
||||
|
||||
file-roller-contract = callPackage ./desktop/file-roller-contract {
|
||||
inherit (gnome) file-roller;
|
||||
};
|
||||
|
||||
gala = callPackage ./desktop/gala { };
|
||||
|
||||
gnome-bluetooth-contract = callPackage ./desktop/gnome-bluetooth-contract {
|
||||
inherit (gnome) gnome-bluetooth_1_0;
|
||||
};
|
||||
|
||||
wingpanel = callPackage ./desktop/wingpanel { };
|
||||
|
||||
wingpanel-with-indicators = callPackage ./desktop/wingpanel/wrapper.nix {
|
||||
indicators = null;
|
||||
};
|
||||
|
||||
#### LIBRARIES
|
||||
|
||||
granite = callPackage ./granite { };
|
||||
|
||||
granite7 = callPackage ./granite/7 { };
|
||||
|
||||
#### SERVICES
|
||||
|
||||
contractor = callPackage ./services/contractor { };
|
||||
|
||||
elementary-capnet-assist = callPackage ./services/elementary-capnet-assist { };
|
||||
|
||||
elementary-notifications = callPackage ./services/elementary-notifications { };
|
||||
|
||||
elementary-settings-daemon = callPackage ./services/elementary-settings-daemon { };
|
||||
|
||||
pantheon-agent-geoclue2 = callPackage ./services/pantheon-agent-geoclue2 { };
|
||||
|
||||
pantheon-agent-polkit = callPackage ./services/pantheon-agent-polkit { };
|
||||
|
||||
xdg-desktop-portal-pantheon = callPackage ./services/xdg-desktop-portal-pantheon { };
|
||||
|
||||
#### WINGPANEL INDICATORS
|
||||
|
||||
wingpanel-applications-menu = callPackage ./desktop/wingpanel-indicators/applications-menu { };
|
||||
|
||||
wingpanel-indicator-a11y = callPackage ./desktop/wingpanel-indicators/a11y { };
|
||||
|
||||
wingpanel-indicator-bluetooth = callPackage ./desktop/wingpanel-indicators/bluetooth { };
|
||||
|
||||
wingpanel-indicator-datetime = callPackage ./desktop/wingpanel-indicators/datetime { };
|
||||
|
||||
wingpanel-indicator-keyboard = callPackage ./desktop/wingpanel-indicators/keyboard { };
|
||||
|
||||
wingpanel-indicator-network = callPackage ./desktop/wingpanel-indicators/network { };
|
||||
|
||||
wingpanel-indicator-nightlight = callPackage ./desktop/wingpanel-indicators/nightlight { };
|
||||
|
||||
wingpanel-indicator-notifications = callPackage ./desktop/wingpanel-indicators/notifications { };
|
||||
|
||||
wingpanel-indicator-power = callPackage ./desktop/wingpanel-indicators/power {
|
||||
inherit (gnome) gnome-power-manager;
|
||||
};
|
||||
|
||||
wingpanel-indicator-session = callPackage ./desktop/wingpanel-indicators/session { };
|
||||
|
||||
wingpanel-indicator-sound = callPackage ./desktop/wingpanel-indicators/sound { };
|
||||
|
||||
#### SWITCHBOARD
|
||||
|
||||
switchboard = callPackage ./apps/switchboard { };
|
||||
|
||||
switchboard-with-plugs = callPackage ./apps/switchboard/wrapper.nix {
|
||||
plugs = null;
|
||||
};
|
||||
|
||||
switchboard-plug-a11y = callPackage ./apps/switchboard-plugs/a11y { };
|
||||
|
||||
switchboard-plug-about = callPackage ./apps/switchboard-plugs/about { };
|
||||
|
||||
switchboard-plug-applications = callPackage ./apps/switchboard-plugs/applications { };
|
||||
|
||||
switchboard-plug-bluetooth = callPackage ./apps/switchboard-plugs/bluetooth { };
|
||||
|
||||
switchboard-plug-datetime = callPackage ./apps/switchboard-plugs/datetime { };
|
||||
|
||||
switchboard-plug-display = callPackage ./apps/switchboard-plugs/display { };
|
||||
|
||||
switchboard-plug-keyboard = callPackage ./apps/switchboard-plugs/keyboard { };
|
||||
|
||||
switchboard-plug-mouse-touchpad = callPackage ./apps/switchboard-plugs/mouse-touchpad { };
|
||||
|
||||
switchboard-plug-network = callPackage ./apps/switchboard-plugs/network { };
|
||||
|
||||
switchboard-plug-notifications = callPackage ./apps/switchboard-plugs/notifications { };
|
||||
|
||||
switchboard-plug-onlineaccounts = callPackage ./apps/switchboard-plugs/onlineaccounts { };
|
||||
|
||||
switchboard-plug-pantheon-shell = callPackage ./apps/switchboard-plugs/pantheon-shell { };
|
||||
|
||||
switchboard-plug-power = callPackage ./apps/switchboard-plugs/power { };
|
||||
|
||||
switchboard-plug-printers = callPackage ./apps/switchboard-plugs/printers { };
|
||||
|
||||
switchboard-plug-security-privacy = callPackage ./apps/switchboard-plugs/security-privacy { };
|
||||
|
||||
switchboard-plug-sharing = callPackage ./apps/switchboard-plugs/sharing { };
|
||||
|
||||
switchboard-plug-sound = callPackage ./apps/switchboard-plugs/sound { };
|
||||
|
||||
switchboard-plug-wacom = callPackage ./apps/switchboard-plugs/wacom { };
|
||||
|
||||
### ARTWORK
|
||||
|
||||
elementary-gtk-theme = callPackage ./artwork/elementary-gtk-theme { };
|
||||
|
||||
elementary-icon-theme = callPackage ./artwork/elementary-icon-theme { };
|
||||
|
||||
elementary-redacted-script = callPackage ./artwork/elementary-redacted-script { };
|
||||
|
||||
elementary-sound-theme = callPackage ./artwork/elementary-sound-theme { };
|
||||
|
||||
elementary-wallpapers = callPackage ./artwork/elementary-wallpapers { };
|
||||
|
||||
### THIRD-PARTY
|
||||
|
||||
# Put packages that ONLY works with Pantheon in pkgs/desktops/pantheon/third-party,
|
||||
# specifically third party switchboard plugins and wingpanel indicators.
|
||||
# Please call these packages in pkgs/top-level/all-packages.nix instead of this file.
|
||||
# https://github.com/NixOS/nixpkgs/issues/115222#issuecomment-906868654
|
||||
|
||||
}) // 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.gnome.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.gnome.file-roller; # added 2022-03-12
|
||||
|
||||
notes-up = throw "The ‘pantheon.notes-up’ alias was removed on 2022-02-02, please use ‘pkgs.notes-up’ directly."; # added 2021-12-18
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,78 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, nix-update-script
|
||||
, meson
|
||||
, ninja
|
||||
, nixos-artwork
|
||||
, glib
|
||||
, pkg-config
|
||||
, dbus
|
||||
, polkit
|
||||
, accountsservice
|
||||
, python3
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "elementary-default-settings";
|
||||
version = "6.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = "default-settings";
|
||||
rev = version;
|
||||
sha256 = "sha256-qaPj/Qp7RYzHgElFdM8bHV42oiPUbCMTC9Q+MUj4Q6Y=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
accountsservice
|
||||
dbus
|
||||
glib # polkit requires
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
polkit
|
||||
python3
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
"--sysconfdir=${placeholder "out"}/etc"
|
||||
"-Ddefault-wallpaper=${nixos-artwork.wallpapers.simple-dark-gray.gnomeFilePath}"
|
||||
"-Dplank-dockitems=false"
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x meson/post_install.py
|
||||
patchShebangs meson/post_install.py
|
||||
'';
|
||||
|
||||
preInstall = ''
|
||||
# Install our override for plank dockitems as the desktop file path is different.
|
||||
schema_dir=$out/share/glib-2.0/schemas
|
||||
install -D ${./overrides/plank-dockitems.gschema.override} $schema_dir/plank-dockitems.gschema.override
|
||||
|
||||
# Our launchers that use paths at /run/current-system/sw/bin
|
||||
mkdir -p $out/etc/skel/.config/plank/dock1
|
||||
cp -avr ${./launchers} $out/etc/skel/.config/plank/dock1/launchers
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
# https://github.com/elementary/default-settings/issues/55
|
||||
rm -r $out/share/cups
|
||||
rm -r $out/share/applications
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script {
|
||||
attrPath = "pantheon.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Default settings and configuration files for elementary";
|
||||
homepage = "https://github.com/elementary/default-settings";
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = teams.pantheon.members;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[PlankDockItemPreferences]
|
||||
Launcher=file:///run/current-system/sw/share/applications/gala-multitaskingview.desktop
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[PlankDockItemPreferences]
|
||||
Launcher=file:///run/current-system/sw/share/applications/io.elementary.appcenter.desktop
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[PlankDockItemPreferences]
|
||||
Launcher=file:///run/current-system/sw/share/applications/io.elementary.calendar.desktop
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[PlankDockItemPreferences]
|
||||
Launcher=file:///run/current-system/sw/share/applications/io.elementary.mail.desktop
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[PlankDockItemPreferences]
|
||||
Launcher=file:///run/current-system/sw/share/applications/io.elementary.music.desktop
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[PlankDockItemPreferences]
|
||||
Launcher=file:///run/current-system/sw/share/applications/io.elementary.photos.desktop
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[PlankDockItemPreferences]
|
||||
Launcher=file:///run/current-system/sw/share/applications/io.elementary.switchboard.desktop
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[PlankDockItemPreferences]
|
||||
Launcher=file:///run/current-system/sw/share/applications/io.elementary.tasks.desktop
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[PlankDockItemPreferences]
|
||||
Launcher=file:///run/current-system/sw/share/applications/io.elementary.videos.desktop
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[PlankDockItemPreferences]
|
||||
Launcher=file:///run/current-system/sw/share/applications/org.gnome.Epiphany.desktop
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[net.launchpad.plank.dock.settings]
|
||||
dock-items=['gala-multitaskingview.dockitem','org.gnome.Epiphany.dockitem','io.elementary.mail.dockitem','io.elementary.tasks.dockitem','io.elementary.calendar.dockitem','io.elementary.music.dockitem','io.elementary.videos.dockitem','io.elementary.photos.dockitem','io.elementary.switchboard.dockitem','io.elementary.appcenter.dockitem']
|
||||
130
pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
Normal file
130
pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
Normal file
|
|
@ -0,0 +1,130 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, nix-update-script
|
||||
, linkFarm
|
||||
, substituteAll
|
||||
, elementary-greeter
|
||||
, pkg-config
|
||||
, meson
|
||||
, ninja
|
||||
, vala
|
||||
, desktop-file-utils
|
||||
, gtk3
|
||||
, granite
|
||||
, libgee
|
||||
, libhandy
|
||||
, gnome-settings-daemon
|
||||
, mutter
|
||||
, elementary-icon-theme
|
||||
, wingpanel-with-indicators
|
||||
, elementary-gtk-theme
|
||||
, nixos-artwork
|
||||
, lightdm
|
||||
, gdk-pixbuf
|
||||
, clutter-gtk
|
||||
, dbus
|
||||
, accountsservice
|
||||
, wrapGAppsHook
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "elementary-greeter";
|
||||
version = "6.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = "greeter";
|
||||
rev = version;
|
||||
sha256 = "sha256-CY+dPSyQ/ovSdI80uEipDdnWy1KjbZnwpn9sd8HrbPQ=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./sysconfdir-install.patch
|
||||
# Needed until https://github.com/elementary/greeter/issues/360 is fixed
|
||||
(substituteAll {
|
||||
src = ./hardcode-fallback-background.patch;
|
||||
default_wallpaper = "${nixos-artwork.wallpapers.simple-dark-gray.gnomeFilePath}";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
desktop-file-utils
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
vala
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
accountsservice
|
||||
clutter-gtk # else we get could not generate cargs for mutter-clutter-2
|
||||
elementary-icon-theme
|
||||
gnome-settings-daemon
|
||||
gdk-pixbuf
|
||||
granite
|
||||
gtk3
|
||||
libgee
|
||||
libhandy
|
||||
lightdm
|
||||
mutter
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
# A hook does this but after wrapGAppsHook 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 {
|
||||
attrPath = "pantheon.${pname}";
|
||||
};
|
||||
|
||||
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;
|
||||
maintainers = teams.pantheon.members;
|
||||
mainProgram = "io.elementary.greeter";
|
||||
};
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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
|
||||
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
{ lib
|
||||
, runCommand
|
||||
, mutter
|
||||
, elementary-default-settings
|
||||
, glib
|
||||
, gala
|
||||
, epiphany
|
||||
, gnome-settings-daemon
|
||||
, gtk3
|
||||
, elementary-dock
|
||||
, gsettings-desktop-schemas
|
||||
, extraGSettingsOverrides ? ""
|
||||
, extraGSettingsOverridePackages ? []
|
||||
}:
|
||||
|
||||
let
|
||||
|
||||
gsettingsOverridePackages = [
|
||||
elementary-dock
|
||||
gnome-settings-daemon
|
||||
epiphany
|
||||
gala
|
||||
gsettings-desktop-schemas
|
||||
gtk3
|
||||
mutter
|
||||
] ++ extraGSettingsOverridePackages;
|
||||
|
||||
in
|
||||
|
||||
with lib;
|
||||
|
||||
# TODO: Having https://github.com/NixOS/nixpkgs/issues/54150 would supersede this
|
||||
runCommand "elementary-gsettings-desktop-schemas" {}
|
||||
''
|
||||
schema_dir=$out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas
|
||||
|
||||
mkdir -p $schema_dir
|
||||
|
||||
cp -rf ${glib.getSchemaPath gala}/*.gschema.override $schema_dir
|
||||
|
||||
${concatMapStrings (pkg: "cp -rf ${glib.getSchemaPath pkg}/*.xml $schema_dir\n") gsettingsOverridePackages}
|
||||
|
||||
chmod -R a+w $out/share/gsettings-schemas/nixos-gsettings-overrides
|
||||
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
|
||||
''
|
||||
|
|
@ -0,0 +1,69 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, nix-update-script
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, python3
|
||||
, vala
|
||||
, wrapGAppsHook4
|
||||
, appcenter
|
||||
, elementary-settings-daemon
|
||||
, glib
|
||||
, granite7
|
||||
, gtk4
|
||||
, libadwaita
|
||||
, libgee
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "elementary-onboarding";
|
||||
version = "7.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = "onboarding";
|
||||
rev = version;
|
||||
sha256 = "sha256-bxOy9VivpgL4xXJhDF7K/gpq9zcCFIJFfRpG7QC8svE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
vala
|
||||
wrapGAppsHook4
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
appcenter # settings schema
|
||||
elementary-settings-daemon # settings schema
|
||||
glib
|
||||
granite7
|
||||
gtk4
|
||||
libadwaita
|
||||
libgee
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x meson/post_install.py
|
||||
patchShebangs meson/post_install.py
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script {
|
||||
attrPath = "pantheon.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
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;
|
||||
maintainers = teams.pantheon.members;
|
||||
mainProgram = "io.elementary.onboarding";
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
{ 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 {
|
||||
attrPath = "pantheon.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Simple shim for printing support via Contractor";
|
||||
homepage = "https://github.com/elementary/print";
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = teams.pantheon.members;
|
||||
mainProgram = "io.elementary.print";
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,158 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, nix-update-script
|
||||
, desktop-file-utils
|
||||
, pkg-config
|
||||
, writeScript
|
||||
, gnome-keyring
|
||||
, gnome-session
|
||||
, wingpanel
|
||||
, orca
|
||||
, onboard
|
||||
, elementary-default-settings
|
||||
, gnome-settings-daemon
|
||||
, runtimeShell
|
||||
, writeText
|
||||
, meson
|
||||
, ninja
|
||||
}:
|
||||
|
||||
let
|
||||
|
||||
#
|
||||
# ─── ENSURES PLANK GETS ELEMENTARY'S DEFAULT DOCKITEMS ────────────────────────────
|
||||
#
|
||||
|
||||
#
|
||||
# Upstream relies on /etc/skel to initiate a new users home directory with plank's dockitems.
|
||||
#
|
||||
# That is not possible within nixos, but we can achieve this easily with a simple script that copies
|
||||
# them. We then use a xdg autostart and initalize it during the "EarlyInitialization" phase of a gnome session
|
||||
# which is most appropriate for installing files into $HOME.
|
||||
#
|
||||
|
||||
dockitems-script = writeScript "dockitems-script" ''
|
||||
#!${runtimeShell}
|
||||
|
||||
elementary_default_settings="${elementary-default-settings}"
|
||||
dock_items="$elementary_default_settings/etc/skel/.config/plank/dock1/launchers"/*
|
||||
|
||||
if [ ! -d "$HOME/.config/plank/dock1" ]; then
|
||||
echo "Instantiating default Plank Dockitems..."
|
||||
|
||||
mkdir -p "$HOME/.config/plank/dock1/launchers"
|
||||
cp -r --no-preserve=mode,ownership $dock_items "$HOME/.config/plank/dock1/launchers/"
|
||||
else
|
||||
echo "Plank Dockitems already instantiated"
|
||||
fi
|
||||
'';
|
||||
|
||||
dockitemAutostart = writeText "default-elementary-dockitems.desktop" ''
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Instantiate Default elementary dockitems
|
||||
Exec=${dockitems-script}
|
||||
StartupNotify=false
|
||||
NoDisplay=true
|
||||
OnlyShowIn=Pantheon;
|
||||
X-GNOME-Autostart-Phase=EarlyInitialization
|
||||
'';
|
||||
|
||||
executable = writeScript "pantheon" ''
|
||||
# gnome-session can find RequiredComponents for `pantheon` session (notably pantheon's patched g-s-d autostarts)
|
||||
export XDG_CONFIG_DIRS=@out@/etc/xdg:$XDG_CONFIG_DIRS
|
||||
|
||||
# Make sure we use our gtk-3.0/settings.ini
|
||||
export XDG_CONFIG_DIRS=${elementary-default-settings}/etc:$XDG_CONFIG_DIRS
|
||||
|
||||
# * gnome-session can find the `pantheon' session
|
||||
# * use pantheon-mimeapps.list
|
||||
export XDG_DATA_DIRS=@out@/share:$XDG_DATA_DIRS
|
||||
|
||||
# Start pantheon session. Keep in sync with upstream
|
||||
exec ${gnome-session}/bin/gnome-session --builtin --session=pantheon "$@"
|
||||
'';
|
||||
|
||||
# Absolute path patched version of the upstream xsession
|
||||
xsession = writeText "pantheon.desktop" ''
|
||||
[Desktop Entry]
|
||||
Name=Pantheon
|
||||
Comment=This session provides elementary experience
|
||||
Exec=@out@/libexec/pantheon
|
||||
TryExec=${wingpanel}/bin/io.elementary.wingpanel
|
||||
Icon=
|
||||
DesktopNames=Pantheon
|
||||
Type=Application
|
||||
'';
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "elementary-session-settings";
|
||||
version = "6.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = "session-settings";
|
||||
rev = version;
|
||||
sha256 = "1faglpa7q3a4335gnd074a3lnsdspyjdnskgy4bfnf6xmwjx7kjx";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
desktop-file-utils
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gnome-keyring
|
||||
gnome-settings-daemon
|
||||
onboard
|
||||
orca
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
"-Dmimeapps-list=false"
|
||||
"-Dfallback-session=GNOME"
|
||||
"-Ddetect-program-prefixes=true"
|
||||
"--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
|
||||
|
||||
# instantiates pantheon's dockitems
|
||||
cp "${dockitemAutostart}" $out/etc/xdg/autostart/default-elementary-dockitems.desktop
|
||||
|
||||
# script `Exec` to start pantheon
|
||||
mkdir -p $out/libexec
|
||||
substitute ${executable} $out/libexec/pantheon --subst-var out
|
||||
chmod +x $out/libexec/pantheon
|
||||
|
||||
# absolute path patched xsession
|
||||
substitute ${xsession} $out/share/xsessions/pantheon.desktop --subst-var out
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script {
|
||||
attrPath = "pantheon.${pname}";
|
||||
};
|
||||
|
||||
providedSessions = [
|
||||
"pantheon"
|
||||
];
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Session settings for elementary";
|
||||
homepage = "https://github.com/elementary/session-settings";
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = teams.pantheon.members;
|
||||
};
|
||||
}
|
||||
|
|
@ -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
|
||||
|
||||
|
|
@ -0,0 +1,72 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, nix-update-script
|
||||
, pkg-config
|
||||
, meson
|
||||
, ninja
|
||||
, vala
|
||||
, libxml2
|
||||
, desktop-file-utils
|
||||
, gtk3
|
||||
, glib
|
||||
, granite
|
||||
, libgee
|
||||
, libhandy
|
||||
, wrapGAppsHook
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "elementary-shortcut-overlay";
|
||||
version = "1.2.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = "shortcut-overlay";
|
||||
rev = version;
|
||||
sha256 = "sha256-qmqzGCM3cVM6y80pzjm5CCyG6BO6XlKZiODAAEnwVrM=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fix build with meson 0.61
|
||||
# https://github.com/elementary/shortcut-overlay/pull/113
|
||||
(fetchpatch {
|
||||
url = "https://github.com/elementary/shortcut-overlay/commit/130f78eb4b7770586ea98ba0a5fdbbf5bb116f3f.patch";
|
||||
sha256 = "sha256-XXWq9CEv3Z2B8ogcFQAJZCfy19XxNHs3c8NToE2m/aA=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
desktop-file-utils
|
||||
libxml2
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
vala
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
glib
|
||||
granite
|
||||
gtk3
|
||||
libgee
|
||||
libhandy
|
||||
];
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script {
|
||||
attrPath = "pantheon.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "A native OS-wide shortcut overlay to be launched by Gala";
|
||||
homepage = "https://github.com/elementary/shortcut-overlay";
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = teams.pantheon.members;
|
||||
mainProgram = "io.elementary.shortcut-overlay";
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, unstableGitUpdater
|
||||
, substituteAll
|
||||
, file-roller
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "file-roller-contract";
|
||||
version = "unstable-2021-02-22";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = pname;
|
||||
rev = "cf001d84a7e2ddcfbee2cfdb19885798a869833e";
|
||||
sha256 = "sha256-jnXq44NiQiSYsvaBF828TklLg9d6z6n+gCZKgbFiERI=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./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;
|
||||
maintainers = teams.pantheon.members;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
@ -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
|
||||
101
pkgs/desktops/pantheon/desktop/gala/default.nix
Normal file
101
pkgs/desktops/pantheon/desktop/gala/default.nix
Normal file
|
|
@ -0,0 +1,101 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, nix-update-script
|
||||
, pkg-config
|
||||
, meson
|
||||
, python3
|
||||
, ninja
|
||||
, vala
|
||||
, desktop-file-utils
|
||||
, gettext
|
||||
, libxml2
|
||||
, gtk3
|
||||
, granite
|
||||
, libgee
|
||||
, bamf
|
||||
, libcanberra-gtk3
|
||||
, gnome-desktop
|
||||
, mutter
|
||||
, clutter
|
||||
, gnome-settings-daemon
|
||||
, wrapGAppsHook
|
||||
, gexiv2
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gala";
|
||||
version = "6.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-7RZt6gA3wyp1cxIWBYFK+fYFSZDbjHcwYa2snOmDw1Y=";
|
||||
};
|
||||
|
||||
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
|
||||
|
||||
# WindowManager: save/restore easing on workspace switch
|
||||
# https://github.com/elementary/gala/pull/1430
|
||||
(fetchpatch {
|
||||
url = "https://github.com/elementary/gala/commit/1f94db16c627f73af5dc69714611815e4691b5e8.patch";
|
||||
sha256 = "sha256-PLNbAXyOG0TMn1y2QIBnL6BOQVqBA+DBgPOVJo4nDr8=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
desktop-file-utils
|
||||
gettext
|
||||
libxml2
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
vala
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
bamf
|
||||
clutter
|
||||
gnome-settings-daemon
|
||||
gexiv2
|
||||
gnome-desktop
|
||||
granite
|
||||
gtk3
|
||||
libcanberra-gtk3
|
||||
libgee
|
||||
mutter
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
# TODO: enable this and remove --builtin flag from session-settings
|
||||
# https://github.com/NixOS/nixpkgs/pull/140429
|
||||
"-Dsystemd=false"
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x build-aux/meson/post_install.py
|
||||
patchShebangs build-aux/meson/post_install.py
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script {
|
||||
attrPath = "pantheon.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "A 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;
|
||||
maintainers = teams.pantheon.members;
|
||||
mainProgram = "gala";
|
||||
};
|
||||
}
|
||||
21
pkgs/desktops/pantheon/desktop/gala/plugins-dir.patch
Normal file
21
pkgs/desktops/pantheon/desktop/gala/plugins-dir.patch
Normal 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')
|
||||
|
|
@ -0,0 +1,55 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, unstableGitUpdater
|
||||
, substituteAll
|
||||
, gnome-bluetooth_1_0
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-bluetooth-contract";
|
||||
version = "unstable-2021-02-22";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = pname;
|
||||
rev = "8dcd4d03dc7a7d487980fd8bc95af985dc4fff5c";
|
||||
sha256 = "sha256-9eX6j/cvN/CoqrHrh9mZEsUJ8viDWIGxIva1xFwIK7c=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./exec-path.patch;
|
||||
# sendto device selection is removed in gnome-bluetooth 42
|
||||
# https://github.com/elementary/gnome-bluetooth-contract/issues/1
|
||||
gnome_bluetooth = gnome-bluetooth_1_0;
|
||||
})
|
||||
];
|
||||
|
||||
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/gnome-bluetooth-contract.git";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Contractor extension for GNOME Bluetooth";
|
||||
homepage = "https://github.com/elementary/gnome-bluetooth-contract";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = teams.pantheon.members;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
diff --git a/io.elementary.contracter.gnome-bluetooth.contract b/io.elementary.contracter.gnome-bluetooth.contract
|
||||
index 3eb2334..ce0e5f5 100644
|
||||
--- a/io.elementary.contracter.gnome-bluetooth.contract
|
||||
+++ b/io.elementary.contracter.gnome-bluetooth.contract
|
||||
@@ -3,5 +3,5 @@ Name=Send Files via Bluetooth
|
||||
Icon=bluetooth
|
||||
Description=Send files to device...
|
||||
MimeType=!inode;
|
||||
-Exec=bluetooth-sendto %F
|
||||
+Exec=@gnome_bluetooth@/bin/bluetooth-sendto %F
|
||||
Gettext-Domain=gnome-bluetooth2
|
||||
|
|
@ -0,0 +1,70 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, nix-update-script
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, python3
|
||||
, vala
|
||||
, granite
|
||||
, gtk3
|
||||
, libgee
|
||||
, wingpanel
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "wingpanel-indicator-a11y";
|
||||
version = "1.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "1adx1sx9qh02hjgv5h0gwyn116shjl3paxmyaiv4cgh6vq3ndp3c";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Upstream code not respecting our localedir
|
||||
# https://github.com/elementary/wingpanel-indicator-a11y/pull/48
|
||||
(fetchpatch {
|
||||
url = "https://github.com/elementary/wingpanel-indicator-a11y/commit/fb8412d56bc1c42b70e8ee41b837e8024e1297f7.patch";
|
||||
sha256 = "0619npdw9wvaz1zk2lzikczyjdqba8v8c9ry9zizvvl4j1i1ad7k";
|
||||
})
|
||||
];
|
||||
|
||||
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 {
|
||||
attrPath = "pantheon.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Universal Access Indicator for Wingpanel";
|
||||
homepage = "https://github.com/elementary/wingpanel-indicator-a11y";
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = teams.pantheon.members;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,96 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, nix-update-script
|
||||
, substituteAll
|
||||
, meson
|
||||
, ninja
|
||||
, python3
|
||||
, pkg-config
|
||||
, vala
|
||||
, granite
|
||||
, libgee
|
||||
, gettext
|
||||
, gtk3
|
||||
, gnome-menus
|
||||
, json-glib
|
||||
, elementary-dock
|
||||
, bamf
|
||||
, switchboard-with-plugs
|
||||
, libsoup
|
||||
, wingpanel
|
||||
, zeitgeist
|
||||
, bc
|
||||
, libhandy
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "wingpanel-applications-menu";
|
||||
version = "2.10.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = "applications-menu";
|
||||
rev = version;
|
||||
sha256 = "sha256-xBuMJzIFOueSvNwvXc85AI9NHuMW3bOblNsyuDkIzyk=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./fix-paths.patch;
|
||||
bc = "${bc}/bin/bc";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
gettext
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
vala
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
bamf
|
||||
elementary-dock
|
||||
granite
|
||||
gtk3
|
||||
json-glib
|
||||
libgee
|
||||
libhandy
|
||||
libsoup
|
||||
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"
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x meson/post_install.py
|
||||
patchShebangs meson/post_install.py
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script {
|
||||
attrPath = "pantheon.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Lightweight and stylish app launcher for Pantheon";
|
||||
homepage = "https://github.com/elementary/applications-menu";
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = teams.pantheon.members;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
diff --git a/src/synapse-plugins/calculator-plugin.vala b/src/synapse-plugins/calculator-plugin.vala
|
||||
index 886a44cd..a4601da6 100644
|
||||
--- a/src/synapse-plugins/calculator-plugin.vala
|
||||
+++ b/src/synapse-plugins/calculator-plugin.vala
|
||||
@@ -50,9 +50,7 @@ namespace Synapse {
|
||||
_("Calculator"),
|
||||
_("Calculate basic expressions."),
|
||||
"accessories-calculator",
|
||||
- register_plugin,
|
||||
- Environment.find_program_in_path ("bc") != null,
|
||||
- _("bc is not installed")
|
||||
+ register_plugin
|
||||
);
|
||||
}
|
||||
|
||||
@@ -94,7 +92,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"};
|
||||
string? solution = null;
|
||||
|
||||
try {
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, nix-update-script
|
||||
, pkg-config
|
||||
, meson
|
||||
, python3
|
||||
, ninja
|
||||
, vala
|
||||
, gtk3
|
||||
, glib
|
||||
, granite
|
||||
, libnotify
|
||||
, wingpanel
|
||||
, libgee
|
||||
, libxml2
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "wingpanel-indicator-bluetooth";
|
||||
version = "2.1.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "12rasf8wy3cqnfjlm9s2qnx4drzx0w0yviagkng3kspdzm3vzsqy";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
glib # for glib-compile-schemas
|
||||
libxml2
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
vala
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
glib
|
||||
granite
|
||||
gtk3
|
||||
libgee
|
||||
libnotify
|
||||
wingpanel
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x meson/post_install.py
|
||||
patchShebangs meson/post_install.py
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script {
|
||||
attrPath = "pantheon.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Bluetooth Indicator for Wingpanel";
|
||||
homepage = "https://github.com/elementary/wingpanel-indicator-bluetooth";
|
||||
license = licenses.lgpl21Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = teams.pantheon.members;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,80 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, nix-update-script
|
||||
, substituteAll
|
||||
, pkg-config
|
||||
, meson
|
||||
, python3
|
||||
, ninja
|
||||
, vala
|
||||
, gtk3
|
||||
, granite
|
||||
, wingpanel
|
||||
, evolution-data-server
|
||||
, libical
|
||||
, libgee
|
||||
, libhandy
|
||||
, libxml2
|
||||
, libsoup
|
||||
, libgdata
|
||||
, elementary-calendar
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "wingpanel-indicator-datetime";
|
||||
version = "2.4.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-GxlnzLDrZmDDAGlUMoM4k4SkbCqra3Th6ugRAj3Wse4=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./fix-paths.patch;
|
||||
elementary_calendar = elementary-calendar;
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
libxml2
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
vala
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
evolution-data-server
|
||||
granite
|
||||
gtk3
|
||||
libgee
|
||||
libhandy
|
||||
libical
|
||||
libsoup
|
||||
wingpanel
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x meson/post_install.py
|
||||
patchShebangs meson/post_install.py
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script {
|
||||
attrPath = "pantheon.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Date & Time Indicator for Wingpanel";
|
||||
homepage = "https://github.com/elementary/wingpanel-indicator-datetime";
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = teams.pantheon.members;
|
||||
};
|
||||
}
|
||||
|
|
@ -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);
|
||||
|
|
@ -0,0 +1,75 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, nix-update-script
|
||||
, pkg-config
|
||||
, meson
|
||||
, ninja
|
||||
, substituteAll
|
||||
, vala
|
||||
, gtk3
|
||||
, granite
|
||||
, libxml2
|
||||
, wingpanel
|
||||
, libgee
|
||||
, xorg
|
||||
, libgnomekbd
|
||||
, ibus
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "wingpanel-indicator-keyboard";
|
||||
version = "2.4.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "10zzsil5l6snz47nx887r22sl2n0j6bg4dhxmgk3j3xp3jhgmrgl";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./fix-paths.patch;
|
||||
gkbd_keyboard_display = "${libgnomekbd}/bin/gkbd-keyboard-display";
|
||||
})
|
||||
# Upstream code not respecting our localedir
|
||||
# https://github.com/elementary/wingpanel-indicator-keyboard/pull/110
|
||||
(fetchpatch {
|
||||
url = "https://github.com/elementary/wingpanel-indicator-keyboard/commit/ea5df2f62a99a216ee5ed137268e710490a852a4.patch";
|
||||
sha256 = "0fmdz10xgzsryj0f0dnpjrh9yygjkb91a7pxg0rwddxbprhnr7j0";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
libxml2
|
||||
pkg-config
|
||||
vala
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
granite
|
||||
gtk3
|
||||
ibus
|
||||
libgee
|
||||
wingpanel
|
||||
xorg.xkeyboardconfig
|
||||
];
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script {
|
||||
attrPath = "pantheon.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Keyboard Indicator for Wingpanel";
|
||||
homepage = "https://github.com/elementary/wingpanel-indicator-keyboard";
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = teams.pantheon.members;
|
||||
};
|
||||
}
|
||||
|
|
@ -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);
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, nix-update-script
|
||||
, substituteAll
|
||||
, pkg-config
|
||||
, meson
|
||||
, ninja
|
||||
, vala
|
||||
, gtk3
|
||||
, granite
|
||||
, networkmanager
|
||||
, libnma
|
||||
, wingpanel
|
||||
, libgee
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "wingpanel-indicator-network";
|
||||
version = "2.3.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-4Fg8/Gm9mUqaL3wEc8h+/pMvOfD75ILjo7LhLz6LQmo=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
vala
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
granite
|
||||
gtk3
|
||||
libgee
|
||||
networkmanager
|
||||
libnma
|
||||
wingpanel
|
||||
];
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script {
|
||||
attrPath = "pantheon.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Network Indicator for Wingpanel";
|
||||
homepage = "https://github.com/elementary/wingpanel-indicator-network";
|
||||
license = licenses.lgpl21Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = teams.pantheon.members;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,65 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, nix-update-script
|
||||
, pkg-config
|
||||
, meson
|
||||
, ninja
|
||||
, vala
|
||||
, gtk3
|
||||
, granite
|
||||
, wingpanel
|
||||
, libgee
|
||||
, libxml2
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "wingpanel-indicator-nightlight";
|
||||
version = "2.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "1zxjw68byg4sjn8lzsidzmy4ipwxgnv8rm529a7wzlpgj2xq3x4j";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Upstream code not respecting our localedir
|
||||
# https://github.com/elementary/wingpanel-indicator-nightlight/pull/91
|
||||
(fetchpatch {
|
||||
url = "https://github.com/elementary/wingpanel-indicator-nightlight/commit/4e15f71ed958df3569b2f1e224b9fb18613281f1.patch";
|
||||
sha256 = "07awmswyy0988pm6ggyz22mllja675cbdzrjdqc1xd4knwcgy77v";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
libxml2
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
vala
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
granite
|
||||
gtk3
|
||||
libgee
|
||||
wingpanel
|
||||
];
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script {
|
||||
attrPath = "pantheon.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Night Light Indicator for Wingpanel";
|
||||
homepage = "https://github.com/elementary/wingpanel-indicator-nightlight";
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = teams.pantheon.members;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
{ 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 = "6.0.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-tIpR/WIhE0Mmt2EploNNDVlAX4OUNI3VnEflTLVkfSo=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
vala
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
elementary-notifications
|
||||
granite
|
||||
gtk3
|
||||
libgee
|
||||
libhandy
|
||||
wingpanel
|
||||
];
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script {
|
||||
attrPath = "pantheon.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Notifications Indicator for Wingpanel";
|
||||
homepage = "https://github.com/elementary/wingpanel-indicator-notifications";
|
||||
license = licenses.lgpl21Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = teams.pantheon.members;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,77 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, substituteAll
|
||||
, nix-update-script
|
||||
, gnome-power-manager
|
||||
, pkg-config
|
||||
, meson
|
||||
, python3
|
||||
, ninja
|
||||
, vala
|
||||
, gtk3
|
||||
, granite
|
||||
, bamf
|
||||
, libgtop
|
||||
, libnotify
|
||||
, udev
|
||||
, wingpanel
|
||||
, libgee
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "wingpanel-indicator-power";
|
||||
version = "6.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "1zlpnl7983jkpy2nik08ih8lwrqvm456h993ixa6armzlazdvnjk";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./fix-paths.patch;
|
||||
gnome_power_manager = gnome-power-manager;
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
vala
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
bamf
|
||||
granite
|
||||
gtk3
|
||||
libgee
|
||||
libgtop
|
||||
libnotify
|
||||
udev
|
||||
wingpanel
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x meson/post_install.py
|
||||
patchShebangs meson/post_install.py
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script {
|
||||
attrPath = "pantheon.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Power Indicator for Wingpanel";
|
||||
homepage = "https://github.com/elementary/wingpanel-indicator-power";
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = teams.pantheon.members;
|
||||
};
|
||||
}
|
||||
|
|
@ -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
|
||||
);
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, nix-update-script
|
||||
, fetchpatch
|
||||
, pkg-config
|
||||
, meson
|
||||
, ninja
|
||||
, vala
|
||||
, gtk3
|
||||
, granite
|
||||
, wingpanel
|
||||
, accountsservice
|
||||
, libgee
|
||||
, libhandy
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "wingpanel-indicator-session";
|
||||
version = "2.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "0hww856qjl4kjmmksd5gp8bc5vj4fhs2s9fmbnpbf88lg5ds0wv0";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Upstream code not respecting our localedir
|
||||
# https://github.com/elementary/wingpanel-indicator-session/pull/162
|
||||
(fetchpatch {
|
||||
url = "https://github.com/elementary/wingpanel-indicator-session/commit/e85032da8e923df4589dc75ccded10026b6c1cd7.patch";
|
||||
sha256 = "139b2zbc6qjaw41nwfjkqv4npahkzryv4p5m6v10273clv6l72ng";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
vala
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
accountsservice
|
||||
granite
|
||||
gtk3
|
||||
libgee
|
||||
libhandy
|
||||
wingpanel
|
||||
];
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script {
|
||||
attrPath = "pantheon.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Session Indicator for Wingpanel";
|
||||
homepage = "https://github.com/elementary/wingpanel-indicator-session";
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = teams.pantheon.members;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,68 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, nix-update-script
|
||||
, pkg-config
|
||||
, meson
|
||||
, python3
|
||||
, ninja
|
||||
, vala
|
||||
, gtk3
|
||||
, granite
|
||||
, wingpanel
|
||||
, libnotify
|
||||
, pulseaudio
|
||||
, libcanberra-gtk3
|
||||
, libgee
|
||||
, libxml2
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "wingpanel-indicator-sound";
|
||||
version = "6.0.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-FHZ4YhGLqGTz5Po2XFJvnWuAi1eHKcT9zzgJFHic02E=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
libxml2
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
vala
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
granite
|
||||
gtk3
|
||||
libcanberra-gtk3
|
||||
libgee
|
||||
libnotify
|
||||
pulseaudio
|
||||
wingpanel
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x meson/post_install.py
|
||||
patchShebangs meson/post_install.py
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script {
|
||||
attrPath = "pantheon.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Sound Indicator for Wingpanel";
|
||||
homepage = "https://github.com/elementary/wingpanel-indicator-sound";
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = teams.pantheon.members;
|
||||
};
|
||||
}
|
||||
92
pkgs/desktops/pantheon/desktop/wingpanel/default.nix
Normal file
92
pkgs/desktops/pantheon/desktop/wingpanel/default.nix
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, nix-update-script
|
||||
, wrapGAppsHook
|
||||
, pkg-config
|
||||
, meson
|
||||
, ninja
|
||||
, vala
|
||||
, gala
|
||||
, gtk3
|
||||
, libgee
|
||||
, granite
|
||||
, gettext
|
||||
, mutter
|
||||
, mesa
|
||||
, json-glib
|
||||
, python3
|
||||
, elementary-gtk-theme
|
||||
, elementary-icon-theme
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "wingpanel";
|
||||
version = "3.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-WvkQx+9YjKCINpyVg8KjCV0GAb0rJfblSFaO14/4oas=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./indicators.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
gettext
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
vala
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
elementary-icon-theme
|
||||
gala
|
||||
granite
|
||||
gtk3
|
||||
json-glib
|
||||
libgee
|
||||
mutter
|
||||
mesa # for libEGL
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x meson/post_install.py
|
||||
patchShebangs meson/post_install.py
|
||||
'';
|
||||
|
||||
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 {
|
||||
attrPath = "pantheon.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "The 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;
|
||||
maintainers = teams.pantheon.members;
|
||||
mainProgram = "io.elementary.wingpanel";
|
||||
};
|
||||
}
|
||||
21
pkgs/desktops/pantheon/desktop/wingpanel/indicators.patch
Normal file
21
pkgs/desktops/pantheon/desktop/wingpanel/indicators.patch
Normal 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);
|
||||
61
pkgs/desktops/pantheon/desktop/wingpanel/wrapper.nix
Normal file
61
pkgs/desktops/pantheon/desktop/wingpanel/wrapper.nix
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
{ lib
|
||||
, wrapGAppsHook
|
||||
, 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 rec {
|
||||
pname = "${wingpanel.pname}-with-indicators";
|
||||
inherit (wingpanel) version;
|
||||
|
||||
src = null;
|
||||
|
||||
paths = [
|
||||
wingpanel
|
||||
] ++ selectedIndicators;
|
||||
|
||||
passAsFile = [ "paths" ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
glib
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
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"
|
||||
)
|
||||
'';
|
||||
|
||||
inherit (wingpanel) meta;
|
||||
}
|
||||
73
pkgs/desktops/pantheon/granite/7/default.nix
Normal file
73
pkgs/desktops/pantheon/granite/7/default.nix
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, nix-update-script
|
||||
, python3
|
||||
, meson
|
||||
, ninja
|
||||
, vala
|
||||
, pkg-config
|
||||
, libgee
|
||||
, gtk4
|
||||
, glib
|
||||
, gettext
|
||||
, gsettings-desktop-schemas
|
||||
, gobject-introspection
|
||||
, wrapGAppsHook4
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "granite";
|
||||
version = "7.0.0";
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-fuyjQDH3C8qRYuAfQDDeW3aSWVTLtGzMAjcuAHCB1Zw=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
gettext
|
||||
gobject-introspection
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
vala
|
||||
wrapGAppsHook4
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
glib
|
||||
gsettings-desktop-schemas # is_clock_format_12h uses "org.gnome.desktop.interface clock-format"
|
||||
gtk4
|
||||
libgee
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x meson/post_install.py
|
||||
patchShebangs meson/post_install.py
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script {
|
||||
attrPath = "pantheon.granite7";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "An 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;
|
||||
maintainers = teams.pantheon.members;
|
||||
mainProgram = "granite-7-demo";
|
||||
};
|
||||
}
|
||||
66
pkgs/desktops/pantheon/granite/default.nix
Normal file
66
pkgs/desktops/pantheon/granite/default.nix
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, python3
|
||||
, meson
|
||||
, ninja
|
||||
, vala
|
||||
, pkg-config
|
||||
, libgee
|
||||
, gtk3
|
||||
, glib
|
||||
, gettext
|
||||
, gsettings-desktop-schemas
|
||||
, gobject-introspection
|
||||
, wrapGAppsHook
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "granite";
|
||||
version = "6.2.0"; # nixpkgs-update: no auto update
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-WM0Wo9giVP5pkMFaPCHsMfnAP6xD71zg6QLCYV6lmkY=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
gettext
|
||||
gobject-introspection
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
vala
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
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 = "An 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;
|
||||
maintainers = teams.pantheon.members;
|
||||
mainProgram = "granite-demo";
|
||||
};
|
||||
}
|
||||
60
pkgs/desktops/pantheon/services/contractor/default.nix
Normal file
60
pkgs/desktops/pantheon/services/contractor/default.nix
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, nix-update-script
|
||||
, meson
|
||||
, python3
|
||||
, ninja
|
||||
, pkg-config
|
||||
, vala
|
||||
, glib
|
||||
, libgee
|
||||
, dbus
|
||||
, glib-networking
|
||||
, wrapGAppsHook
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "contractor";
|
||||
version = "0.3.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "1sqww7zlzl086pjww3d21ah1g78lfrc9aagrqhmsnnbji9gwb8ab";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
dbus
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
vala
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
glib
|
||||
glib-networking
|
||||
libgee
|
||||
];
|
||||
|
||||
PKG_CONFIG_DBUS_1_SESSION_BUS_SERVICES_DIR = "${placeholder "out"}/share/dbus-1/services";
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script {
|
||||
attrPath = "pantheon.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "A desktop-wide extension service used by elementary OS";
|
||||
homepage = "https://github.com/elementary/contractor";
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = teams.pantheon.members;
|
||||
mainProgram = "contractor";
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,69 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, nix-update-script
|
||||
, pkg-config
|
||||
, meson
|
||||
, python3
|
||||
, ninja
|
||||
, vala
|
||||
, desktop-file-utils
|
||||
, gtk3
|
||||
, granite
|
||||
, libgee
|
||||
, libhandy
|
||||
, gcr
|
||||
, webkitgtk
|
||||
, wrapGAppsHook
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "elementary-capnet-assist";
|
||||
version = "2.4.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = "capnet-assist";
|
||||
rev = version;
|
||||
sha256 = "sha256-aA71kxu4/dwODZt+DSp3vvely3P0dL23Ykqhd84hrZw=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
desktop-file-utils
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
vala
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gcr
|
||||
granite
|
||||
gtk3
|
||||
libgee
|
||||
libhandy
|
||||
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 = "A 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;
|
||||
maintainers = teams.pantheon.members;
|
||||
mainProgram = "io.elementary.capnet-assist";
|
||||
};
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue