Refresh system/tool pins, install official Element Nightly, expand development tools, and finish desktop workflows with a shared charcoal/gold design. Retain host-specific updates and NixOS recovery generations.
84 lines
2.3 KiB
Nix
84 lines
2.3 KiB
Nix
# Official Nightly binary, pinned like the other external application sources.
|
|
# Keep its matching Electron/native modules together; do not disable the sandbox.
|
|
{ pkgs }:
|
|
pkgs.stdenv.mkDerivation {
|
|
pname = "element-nightly";
|
|
version = "2026090401";
|
|
src = pkgs.fetchurl {
|
|
url = "https://packages.element.io/debian/pool/main/e/element-nightly/element-nightly_2026090401_amd64.deb";
|
|
hash = "sha256-lLIkH6MtJWhGgohDFBmdOPEI/YdLTAJ9mkgr+TgSPLc=";
|
|
};
|
|
nativeBuildInputs = with pkgs; [
|
|
dpkg
|
|
autoPatchelfHook
|
|
wrapGAppsHook3
|
|
makeWrapper
|
|
];
|
|
buildInputs = with pkgs; [
|
|
alsa-lib
|
|
at-spi2-atk
|
|
at-spi2-core
|
|
cairo
|
|
cups
|
|
dbus
|
|
expat
|
|
glib
|
|
gtk3
|
|
libgbm
|
|
libdrm
|
|
libxkbcommon
|
|
libx11
|
|
libxcb
|
|
libxcomposite
|
|
libxdamage
|
|
libxext
|
|
libxfixes
|
|
libxrandr
|
|
libxrender
|
|
libxtst
|
|
libxscrnsaver
|
|
libxshmfence
|
|
nss
|
|
nspr
|
|
pango
|
|
libsecret
|
|
stdenv.cc.cc
|
|
];
|
|
runtimeDependencies = with pkgs; [
|
|
libnotify
|
|
libGL
|
|
libsecret
|
|
libpulseaudio
|
|
systemd
|
|
];
|
|
dontUnpack = true;
|
|
dontBuild = true;
|
|
dontWrapGApps = true;
|
|
installPhase = ''
|
|
runHook preInstall
|
|
dpkg --fsys-tarfile "$src" | tar --extract --no-same-owner
|
|
mkdir -p "$out/lib" "$out/bin"
|
|
mv opt/Element-Nightly "$out/lib/element-nightly"
|
|
mv usr/share "$out/share"
|
|
substituteInPlace "$out/share/applications/element-desktop-nightly.desktop" \
|
|
--replace-fail /opt/Element-Nightly/element-desktop-nightly "$out/bin/element-desktop-nightly"
|
|
runHook postInstall
|
|
'';
|
|
preFixup = ''
|
|
makeWrapper "$out/lib/element-nightly/element-desktop-nightly" "$out/bin/element-desktop-nightly" \
|
|
"''${gappsWrapperArgs[@]}" \
|
|
--suffix PATH : ${pkgs.lib.makeBinPath [ pkgs.xdg-utils ]} \
|
|
--add-flags "--password-store=gnome-libsecret --disable-setuid-sandbox" \
|
|
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform=wayland}}"
|
|
# Compatibility command only, not a duplicate launcher or a second install.
|
|
ln -s element-desktop-nightly "$out/bin/element-desktop"
|
|
'';
|
|
meta = {
|
|
description = "Element Nightly, the upstream development build of the Matrix client";
|
|
homepage = "https://element.io/download";
|
|
license = pkgs.lib.licenses.agpl3Plus;
|
|
platforms = [ "x86_64-linux" ];
|
|
mainProgram = "element-desktop-nightly";
|
|
};
|
|
}
|