summary refs log tree commit diff
path: root/pkgs/desktops/pantheon/desktop/wingpanel-indicators
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/desktops/pantheon/desktop/wingpanel-indicators')
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/bc.patch24
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix72
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/xdg.patch13
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix56
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/calendar-exec.patch13
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix71
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix57
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/fix-paths.patch26
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix50
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix49
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix48
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix57
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix49
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix59
14 files changed, 644 insertions, 0 deletions
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/bc.patch b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/bc.patch
new file mode 100644
index 00000000000..264a4a5b26d
--- /dev/null
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/bc.patch
@@ -0,0 +1,24 @@
+diff --git a/lib/synapse-plugins/calculator-plugin.vala b/lib/synapse-plugins/calculator-plugin.vala
+index 1b5fa06..076c0c7 100644
+--- a/lib/synapse-plugins/calculator-plugin.vala
++++ b/lib/synapse-plugins/calculator-plugin.vala
+@@ -51,9 +51,7 @@ namespace Synapse {
+                                                                     _("Calculator"),
+                                                                     _("Calculate basic expressions."),
+                                                                     "accessories-calculator",
+-                                                                    register_plugin,
+-                                                                    Environment.find_program_in_path ("bc") != null,
+-                                                                    _("bc is not installed"));
++                                                                    register_plugin);
+         }
+ 
+         static construct {
+@@ -90,7 +88,7 @@ namespace Synapse {
+             if (matched) {
+                 Pid pid;
+                 int read_fd, write_fd;
+-                string[] argv = {"bc", "-l"};
++                string[] argv = {"@exec@", "-l"};
+                 string? solution = null;
+ 
+                 try {
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
new file mode 100644
index 00000000000..e4f7df107ba
--- /dev/null
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
@@ -0,0 +1,72 @@
+{ stdenv, fetchFromGitHub, pantheon, substituteAll, cmake, ninja
+, pkgconfig, vala, granite, libgee, gettext, gtk3, appstream, gnome-menus
+, json-glib, plank, bamf, switchboard, libunity, libsoup, wingpanel, libwnck3
+, zeitgeist, gobject-introspection, elementary-icon-theme, bc, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+  pname = "applications-menu";
+  version = "2.4.2";
+
+  name = "wingpanel-${pname}-${version}";
+
+  src = fetchFromGitHub {
+    owner = "elementary";
+    repo = pname;
+    rev = version;
+    sha256 = "0y7kh50ixvm4m56v18c70s05hhpfp683c4qi3sxy50p2368d772x";
+  };
+
+  passthru = {
+    updateScript = pantheon.updateScript {
+      repoName = pname;
+      attrPath = "wingpanel-${pname}";
+    };
+  };
+
+  nativeBuildInputs = [
+    appstream
+    cmake
+    ninja
+    gettext
+    gobject-introspection
+    pkgconfig
+    vala
+    wrapGAppsHook
+   ];
+
+  buildInputs = [
+    bamf
+    elementary-icon-theme
+    gnome-menus
+    granite
+    gtk3
+    json-glib
+    libgee
+    libsoup
+    libunity
+    libwnck3
+    plank
+    switchboard
+    wingpanel
+    zeitgeist
+   ];
+
+  PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "lib/wingpanel";
+  PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard";
+
+  patches = [
+    (substituteAll {
+      src = ./bc.patch;
+      exec = "${bc}/bin/bc";
+    })
+    ./xdg.patch
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Lightweight and stylish app launcher for Pantheon";
+    homepage = https://github.com/elementary/applications-menu;
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = pantheon.maintainers;
+  };
+}
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/xdg.patch b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/xdg.patch
new file mode 100644
index 00000000000..f17e2581e07
--- /dev/null
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/xdg.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 928976a..7f0ea58 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -90,7 +90,7 @@ link_directories (${DEPS_LIBRARY_DIRS})
+ 
+ # Installation
+ install (TARGETS ${APPNAME} RUNTIME DESTINATION bin)
+-install (FILES ${applications_menu} DESTINATION /etc/xdg/menus)
++install (FILES ${applications_menu} DESTINATION etc/xdg/menus)
+ file (GLOB resources "${CMAKE_CURRENT_SOURCE_DIR}/data/*")
+ 
+ # Settings schema
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
new file mode 100644
index 00000000000..16f3ae2e28e
--- /dev/null
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, python3
+, ninja, vala, gtk3, granite, libnotify, wingpanel, libgee, libxml2
+, gobject-introspection, elementary-icon-theme, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+  pname = "wingpanel-indicator-bluetooth";
+  version = "2.1.2";
+
+  src = fetchFromGitHub {
+    owner = "elementary";
+    repo = pname;
+    rev = version;
+    sha256 = "1gx0xglp6b3znxl4d2vpzhfkxz5z8q04hh7z2mrihj1in155bn44";
+  };
+
+  passthru = {
+    updateScript = pantheon.updateScript {
+      repoName = pname;
+    };
+  };
+
+  nativeBuildInputs = [
+    gobject-introspection
+    libxml2
+    meson
+    ninja
+    pkgconfig
+    python3
+    vala
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    elementary-icon-theme
+    granite
+    gtk3
+    libgee
+    libnotify
+    wingpanel
+  ];
+
+  PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "lib/wingpanel";
+
+  postPatch = ''
+    chmod +x meson/post_install.py
+    patchShebangs meson/post_install.py
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Bluetooth Indicator for Wingpanel";
+    homepage = https://github.com/elementary/wingpanel-indicator-bluetooth;
+    license = licenses.lgpl21Plus;
+    platforms = platforms.linux;
+    maintainers = pantheon.maintainers;
+  };
+}
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/calendar-exec.patch b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/calendar-exec.patch
new file mode 100644
index 00000000000..2370fbcd3cb
--- /dev/null
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/calendar-exec.patch
@@ -0,0 +1,13 @@
+diff --git a/src/Widgets/calendar/Calendar.vala b/src/Widgets/calendar/Calendar.vala
+index 76443ca..d86bd44 100644
+--- a/src/Widgets/calendar/Calendar.vala
++++ b/src/Widgets/calendar/Calendar.vala
+@@ -19,7 +19,7 @@
+
+ namespace DateTime.Widgets {
+     public class Calendar : Gtk.Box {
+-        private const string CALENDAR_EXEC = "/usr/bin/io.elementary.calendar";
++        private const string CALENDAR_EXEC = "@elementary-calendar@";
+
+         ControlHeader heading;
+         CalendarView cal;
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
new file mode 100644
index 00000000000..ee5cd511818
--- /dev/null
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
@@ -0,0 +1,71 @@
+{ stdenv, fetchFromGitHub, fetchpatch, pantheon, pkgconfig, meson, python3
+, ninja, substituteAll, vala, gtk3, granite, wingpanel, evolution-data-server
+, libical, libgee, libxml2, libsoup, gobject-introspection
+, elementary-calendar, elementary-icon-theme, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+  pname = "wingpanel-indicator-datetime";
+  version = "2.1.3";
+
+  src = fetchFromGitHub {
+    owner = "elementary";
+    repo = pname;
+    rev = version;
+    sha256 = "1y7a4xjwl3bpls56ys6g3s6mh5b3qbjm2vw7b6n2i4x7a63c4cbh";
+  };
+
+  passthru = {
+    updateScript = pantheon.updateScript {
+      repoName = pname;
+    };
+  };
+
+  nativeBuildInputs = [
+    gobject-introspection
+    libxml2
+    meson
+    ninja
+    pkgconfig
+    python3
+    vala
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    elementary-icon-theme
+    evolution-data-server
+    granite
+    gtk3
+    libgee
+    libical
+    libsoup
+    wingpanel
+  ];
+
+  patches = [
+    (substituteAll {
+      src = ./calendar-exec.patch;
+      elementary-calendar = "${elementary-calendar}/bin/io.elementary.calendar";
+    })
+    # Use "clock-format" GSettings key that's been moved to granite
+    (fetchpatch {
+      url = "https://src.fedoraproject.org/rpms/wingpanel-indicator-datetime/raw/c8d515b76aa812c141212d5515621a6febd781a3/f/00-move-clock-format-settings-to-granite.patch";
+      sha256 = "1sq3aw9ckkm057rnrclnw9lyrxbpl37fyzfnbixi2q3ypr70n880";
+    })
+  ];
+
+  PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "lib/wingpanel";
+
+  postPatch = ''
+    chmod +x meson/post_install.py
+    patchShebangs meson/post_install.py
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Date & Time Indicator for Wingpanel";
+    homepage = https://github.com/elementary/wingpanel-indicator-datetime;
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = pantheon.maintainers;
+  };
+}
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix
new file mode 100644
index 00000000000..e2faccedbb7
--- /dev/null
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix
@@ -0,0 +1,57 @@
+{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja
+, substituteAll, vala, gtk3, granite, libxml2, wingpanel, libgee
+, xorg, libgnomekbd, gobject-introspection, elementary-icon-theme, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+  pname = "wingpanel-indicator-keyboard";
+  version = "2.1.1";
+
+  src = fetchFromGitHub {
+    owner = "elementary";
+    repo = pname;
+    rev = version;
+    sha256 = "0x0bdd9svw4sffx8pa0pqlh6mrj3fqp4mgrb4n7ys26k2w20ngnb";
+  };
+
+  passthru = {
+    updateScript = pantheon.updateScript {
+      repoName = pname;
+    };
+  };
+
+  nativeBuildInputs = [
+    gobject-introspection
+    meson
+    ninja
+    libxml2
+    pkgconfig
+    vala
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    elementary-icon-theme
+    granite
+    gtk3
+    libgee
+    wingpanel
+  ];
+
+  patches = [
+    (substituteAll {
+      src = ./fix-paths.patch;
+      libgnomekbd_path = "${libgnomekbd}/bin/";
+      config = "${xorg.xkeyboardconfig}/share/X11/xkb/rules/evdev.xml";
+    })
+  ];
+
+  PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "lib/wingpanel";
+
+  meta = with stdenv.lib; {
+    description = "Keyboard Indicator for Wingpanel";
+    homepage = https://github.com/elementary/wingpanel-indicator-keyboard;
+    license = licenses.lgpl21Plus;
+    platforms = platforms.linux;
+    maintainers = pantheon.maintainers;
+  };
+}
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/fix-paths.patch b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/fix-paths.patch
new file mode 100644
index 00000000000..58e6853e606
--- /dev/null
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/fix-paths.patch
@@ -0,0 +1,26 @@
+diff --git a/src/Indicator.vala b/src/Indicator.vala
+index cd7ca49..0bef9c7 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 = "@libgnomekbd_path@gkbd-keyboard-display \"--layout=" + layouts.get_current_with_variant () + "\"";
+ 
+         try {
+             AppInfo.create_from_commandline (command, null, AppInfoCreateFlags.NONE).launch (null, null);
+diff --git a/src/LayoutsManager.vala b/src/LayoutsManager.vala
+index 1bac80e..67df847 100644
+--- a/src/LayoutsManager.vala
++++ b/src/LayoutsManager.vala
+@@ -97,7 +97,7 @@ public class Keyboard.Widgets.LayoutManager : Gtk.ScrolledWindow {
+ 
+     public string? get_name_for_xkb_layout (string language, string? variant) {
+         debug ("get_name_for_xkb_layout (%s, %s)", language, variant);
+-        Xml.Doc* doc = Xml.Parser.parse_file ("/usr/share/X11/xkb/rules/evdev.xml");
++        Xml.Doc* doc = Xml.Parser.parse_file ("@config@");
+         if (doc == null) {
+             critical ("'evdev.xml' not found or permissions incorrect\n");
+             return null;
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix
new file mode 100644
index 00000000000..245e12d4591
--- /dev/null
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, vala
+, gtk3, granite, networkmanager, networkmanagerapplet, wingpanel
+, libgee, gobject-introspection, elementary-icon-theme, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+  pname = "wingpanel-indicator-network";
+  version = "2.2.2";
+
+  src = fetchFromGitHub {
+    owner = "elementary";
+    repo = pname;
+    rev = version;
+    sha256 = "0fch27imk5x4nfx49cwcylkxd7m289rl9niy1vx5kjplhbhyhdq2";
+  };
+
+  passthru = {
+    updateScript = pantheon.updateScript {
+      repoName = pname;
+    };
+  };
+
+  nativeBuildInputs = [
+    gobject-introspection
+    meson
+    ninja
+    pkgconfig
+    vala
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    elementary-icon-theme
+    granite
+    gtk3
+    libgee
+    networkmanager
+    networkmanagerapplet
+    wingpanel
+  ];
+
+  PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "lib/wingpanel";
+
+  meta = with stdenv.lib; {
+    description = "Network Indicator for Wingpanel";
+    homepage = https://github.com/elementary/wingpanel-indicator-network;
+    license = licenses.lgpl21Plus;
+    platforms = platforms.linux;
+    maintainers = pantheon.maintainers;
+  };
+}
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix
new file mode 100644
index 00000000000..53754c31d87
--- /dev/null
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, vala
+, gtk3, granite, wingpanel, libgee, libxml2, gobject-introspection
+, elementary-icon-theme, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+  pname = "wingpanel-indicator-nightlight";
+  version = "2.0.1";
+
+  src = fetchFromGitHub {
+    owner = "elementary";
+    repo = pname;
+    rev = version;
+    sha256 = "17pa048asbkhzz5945hjp96dnghdl72nqp1zq0b999nawnfrb339";
+  };
+
+  passthru = {
+    updateScript = pantheon.updateScript {
+      repoName = pname;
+    };
+  };
+
+  nativeBuildInputs = [
+    gobject-introspection
+    libxml2
+    meson
+    ninja
+    pkgconfig
+    vala
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    elementary-icon-theme
+    granite
+    gtk3
+    libgee
+    wingpanel
+  ];
+
+  PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "lib/wingpanel";
+
+  meta = with stdenv.lib; {
+    description = "Night Light Indicator for Wingpanel";
+    homepage = https://github.com/elementary/wingpanel-indicator-nightlight;
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = pantheon.maintainers;
+  };
+}
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
new file mode 100644
index 00000000000..aff7d9891ad
--- /dev/null
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, vala, gtk3, granite
+, wingpanel, libgee, libwnck3, gobject-introspection, elementary-icon-theme, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+  pname = "wingpanel-indicator-notifications";
+  version = "2.1.2";
+
+  src = fetchFromGitHub {
+    owner = "elementary";
+    repo = pname;
+    rev = version;
+    sha256 = "1960s3xcsx6yjlnk0csf1m66s1z1sj5rym9b2fy7pm2nan47z3ld";
+  };
+
+  passthru = {
+    updateScript = pantheon.updateScript {
+      repoName = pname;
+    };
+  };
+
+  nativeBuildInputs = [
+    gobject-introspection
+    meson
+    ninja
+    pkgconfig
+    vala
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    elementary-icon-theme
+    granite
+    gtk3
+    libgee
+    libwnck3
+    wingpanel
+  ];
+
+  PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "lib/wingpanel";
+
+  meta = with stdenv.lib; {
+    description = "Notifications Indicator for Wingpanel";
+    homepage = https://github.com/elementary/wingpanel-indicator-notifications;
+    license = licenses.lgpl21Plus;
+    platforms = platforms.linux;
+    maintainers = pantheon.maintainers;
+  };
+}
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix
new file mode 100644
index 00000000000..d7627c51100
--- /dev/null
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix
@@ -0,0 +1,57 @@
+{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, python3
+, ninja, vala, gtk3, granite, bamf, libgtop, udev, wingpanel
+, libgee, gobject-introspection, elementary-icon-theme, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+  pname = "wingpanel-indicator-power";
+  version = "2.1.4";
+
+  src = fetchFromGitHub {
+    owner = "elementary";
+    repo = pname;
+    rev = version;
+    sha256 = "02gp9m9zkmhcl43nz02kjkcim4zm25zab3il8dhwkihh731g1c6j";
+  };
+
+  passthru = {
+    updateScript = pantheon.updateScript {
+      repoName = pname;
+    };
+  };
+
+  nativeBuildInputs = [
+    gobject-introspection
+    meson
+    ninja
+    pkgconfig
+    python3
+    vala
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    bamf
+    elementary-icon-theme
+    granite
+    gtk3
+    libgee
+    libgtop
+    udev
+    wingpanel
+  ];
+
+  PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "lib/wingpanel";
+
+  postPatch = ''
+    chmod +x meson/post_install.py
+    patchShebangs meson/post_install.py
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Power Indicator for Wingpanel";
+    homepage = https://github.com/elementary/wingpanel-indicator-power;
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = pantheon.maintainers;
+  };
+}
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
new file mode 100644
index 00000000000..b910f6a7180
--- /dev/null
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson
+, ninja, vala, gtk3, granite, wingpanel, accountsservice
+, libgee, gobject-introspection, elementary-icon-theme, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+  pname = "wingpanel-indicator-session";
+  version = "2.2.2";
+
+  src = fetchFromGitHub {
+    owner = "elementary";
+    repo = pname;
+    rev = version;
+    sha256 = "15ghhiabk74m7fm5pzr2qmdwpc330jczvvkwbf5pf7qczfyipjln";
+  };
+
+  passthru = {
+    updateScript = pantheon.updateScript {
+      repoName = pname;
+    };
+  };
+
+  nativeBuildInputs = [
+    gobject-introspection
+    meson
+    ninja
+    pkgconfig
+    vala
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    accountsservice
+    elementary-icon-theme
+    granite
+    gtk3
+    libgee
+    wingpanel
+  ];
+
+  PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "lib/wingpanel";
+
+  meta = with stdenv.lib; {
+    description = "Session Indicator for Wingpanel";
+    homepage = https://github.com/elementary/wingpanel-indicator-session;
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = pantheon.maintainers;
+  };
+}
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix
new file mode 100644
index 00000000000..003e431bcf7
--- /dev/null
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix
@@ -0,0 +1,59 @@
+{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson
+, python3, ninja, vala, gtk3, granite, wingpanel, libnotify
+, pulseaudio, libcanberra-gtk3, libgee, libxml2, wrapGAppsHook
+, gobject-introspection, elementary-icon-theme }:
+
+stdenv.mkDerivation rec {
+  pname = "wingpanel-indicator-sound";
+  version = "2.1.2";
+
+  src = fetchFromGitHub {
+    owner = "elementary";
+    repo = pname;
+    rev = version;
+    sha256 = "0hxbr5dp8d1czq8ffw339r41c7srqb72vr48hxph8g091d3mcgcl";
+  };
+
+  passthru = {
+    updateScript = pantheon.updateScript {
+      repoName = pname;
+    };
+  };
+
+  nativeBuildInputs = [
+    gobject-introspection
+    libxml2
+    meson
+    ninja
+    pkgconfig
+    python3
+    vala
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    elementary-icon-theme
+    granite
+    gtk3
+    libcanberra-gtk3
+    libgee
+    libnotify
+    pulseaudio
+    wingpanel
+  ];
+
+  PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "lib/wingpanel";
+
+  postPatch = ''
+    chmod +x meson/post_install.py
+    patchShebangs meson/post_install.py
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Sound Indicator for Wingpanel";
+    homepage = https://github.com/elementary/wingpanel-indicator-sound;
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = pantheon.maintainers;
+  };
+}