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

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

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

View file

@ -0,0 +1,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;
};
}

View file

@ -0,0 +1,2 @@
[PlankDockItemPreferences]
Launcher=file:///run/current-system/sw/share/applications/gala-multitaskingview.desktop

View file

@ -0,0 +1,2 @@
[PlankDockItemPreferences]
Launcher=file:///run/current-system/sw/share/applications/io.elementary.appcenter.desktop

View file

@ -0,0 +1,2 @@
[PlankDockItemPreferences]
Launcher=file:///run/current-system/sw/share/applications/io.elementary.calendar.desktop

View file

@ -0,0 +1,2 @@
[PlankDockItemPreferences]
Launcher=file:///run/current-system/sw/share/applications/io.elementary.mail.desktop

View file

@ -0,0 +1,2 @@
[PlankDockItemPreferences]
Launcher=file:///run/current-system/sw/share/applications/io.elementary.music.desktop

View file

@ -0,0 +1,2 @@
[PlankDockItemPreferences]
Launcher=file:///run/current-system/sw/share/applications/io.elementary.photos.desktop

View file

@ -0,0 +1,2 @@
[PlankDockItemPreferences]
Launcher=file:///run/current-system/sw/share/applications/io.elementary.switchboard.desktop

View file

@ -0,0 +1,2 @@
[PlankDockItemPreferences]
Launcher=file:///run/current-system/sw/share/applications/io.elementary.tasks.desktop

View file

@ -0,0 +1,2 @@
[PlankDockItemPreferences]
Launcher=file:///run/current-system/sw/share/applications/io.elementary.videos.desktop

View file

@ -0,0 +1,2 @@
[PlankDockItemPreferences]
Launcher=file:///run/current-system/sw/share/applications/org.gnome.Epiphany.desktop

View file

@ -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']

View 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";
};
}

View file

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

View file

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

View file

@ -0,0 +1,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
''

View file

@ -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";
};
}

View file

@ -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";
};
}

View file

@ -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;
};
}

View file

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

View file

@ -0,0 +1,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";
};
}

View file

@ -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;
};
}

View file

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

View file

@ -0,0 +1,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";
};
}

View file

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

View file

@ -0,0 +1,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;
};
}

View file

@ -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

View file

@ -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;
};
}

View file

@ -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;
};
}

View file

@ -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 {

View file

@ -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;
};
}

View file

@ -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;
};
}

View file

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

View file

@ -0,0 +1,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;
};
}

View file

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

View file

@ -0,0 +1,58 @@
{ lib
, stdenv
, fetchFromGitHub
, nix-update-script
, 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;
};
}

View file

@ -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;
};
}

View file

@ -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;
};
}

View file

@ -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;
};
}

View file

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

View file

@ -0,0 +1,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;
};
}

View file

@ -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;
};
}

View 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";
};
}

View file

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

View file

@ -0,0 +1,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;
}