mirror of
https://github.com/sadan4/dotfiles.git
synced 2025-06-22 20:27:02 -04:00
94 current 2024-04-27 16:04:47 24.05.20240419.5c24cf2 6.6.28 *
This commit is contained in:
parent
08c66b6451
commit
4f069b3e2c
9 changed files with 4420 additions and 12 deletions
175
customPackages/discord/linux.nix
Normal file
175
customPackages/discord/linux.nix
Normal file
|
@ -0,0 +1,175 @@
|
|||
{ pname, version, src, meta, binaryName, desktopName, autoPatchelfHook
|
||||
, makeDesktopItem, lib, stdenv, wrapGAppsHook, makeShellWrapper, alsa-lib, at-spi2-atk
|
||||
, at-spi2-core, atk, cairo, cups, dbus, expat, fontconfig, freetype, gdk-pixbuf
|
||||
, glib, gtk3, libcxx, libdrm, libglvnd, libnotify, libpulseaudio, libuuid, libX11
|
||||
, libXScrnSaver, libXcomposite, libXcursor, libXdamage, libXext, libXfixes
|
||||
, libXi, libXrandr, libXrender, libXtst, libxcb, libxshmfence, mesa, nspr, nss
|
||||
, pango, systemd, libappindicator-gtk3, libdbusmenu, writeScript, python3, runCommand
|
||||
, libunity
|
||||
, speechd
|
||||
, wayland
|
||||
, branch
|
||||
, withOpenASAR ? false, openasar
|
||||
, withVencord ? true, vencord
|
||||
, withTTS ? true }:
|
||||
|
||||
let
|
||||
disableBreakingUpdates = runCommand "disable-breaking-updates.py"
|
||||
{
|
||||
pythonInterpreter = "${python3.interpreter}";
|
||||
configDirName = lib.toLower binaryName;
|
||||
meta.mainProgram = "disable-breaking-updates.py";
|
||||
} ''
|
||||
mkdir -p $out/bin
|
||||
cp ${./disable-breaking-updates.py} $out/bin/disable-breaking-updates.py
|
||||
substituteAllInPlace $out/bin/disable-breaking-updates.py
|
||||
chmod +x $out/bin/disable-breaking-updates.py
|
||||
'';
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
inherit pname version src meta;
|
||||
|
||||
nativeBuildInputs = [
|
||||
alsa-lib
|
||||
autoPatchelfHook
|
||||
cups
|
||||
libdrm
|
||||
libuuid
|
||||
libXdamage
|
||||
libX11
|
||||
libXScrnSaver
|
||||
libXtst
|
||||
libxcb
|
||||
libxshmfence
|
||||
mesa
|
||||
nss
|
||||
wrapGAppsHook
|
||||
makeShellWrapper
|
||||
];
|
||||
|
||||
dontWrapGApps = true;
|
||||
|
||||
libPath = lib.makeLibraryPath ([
|
||||
libcxx
|
||||
systemd
|
||||
libpulseaudio
|
||||
libdrm
|
||||
mesa
|
||||
stdenv.cc.cc
|
||||
alsa-lib
|
||||
atk
|
||||
at-spi2-atk
|
||||
at-spi2-core
|
||||
cairo
|
||||
cups
|
||||
dbus
|
||||
expat
|
||||
fontconfig
|
||||
freetype
|
||||
gdk-pixbuf
|
||||
glib
|
||||
gtk3
|
||||
libglvnd
|
||||
libnotify
|
||||
libX11
|
||||
libXcomposite
|
||||
libunity
|
||||
libuuid
|
||||
libXcursor
|
||||
libXdamage
|
||||
libXext
|
||||
libXfixes
|
||||
libXi
|
||||
libXrandr
|
||||
libXrender
|
||||
libXtst
|
||||
nspr
|
||||
libxcb
|
||||
pango
|
||||
libXScrnSaver
|
||||
libappindicator-gtk3
|
||||
libdbusmenu
|
||||
wayland
|
||||
] ++ lib.optional withTTS speechd);
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/{bin,opt/${binaryName},share/pixmaps,share/icons/hicolor/256x256/apps}
|
||||
mv * $out/opt/${binaryName}
|
||||
|
||||
chmod +x $out/opt/${binaryName}/${binaryName}
|
||||
patchelf --set-interpreter ${stdenv.cc.bintools.dynamicLinker} \
|
||||
$out/opt/${binaryName}/${binaryName}
|
||||
|
||||
wrapProgramShell $out/opt/${binaryName}/${binaryName} \
|
||||
"''${gappsWrapperArgs[@]}" \
|
||||
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform=wayland --enable-features=WaylandWindowDecorations}}" \
|
||||
${lib.strings.optionalString withTTS "--add-flags \"--enable-speech-dispatcher\""} \
|
||||
--prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \
|
||||
--prefix LD_LIBRARY_PATH : ${libPath}:$out/opt/${binaryName} \
|
||||
--run "${lib.getExe disableBreakingUpdates}"
|
||||
|
||||
ln -s $out/opt/${binaryName}/${binaryName} $out/bin/
|
||||
# Without || true the install would fail on case-insensitive filesystems
|
||||
ln -s $out/opt/${binaryName}/${binaryName} $out/bin/${
|
||||
lib.strings.toLower binaryName
|
||||
} || true
|
||||
|
||||
ln -s $out/opt/${binaryName}/discord.png $out/share/pixmaps/${pname}.png
|
||||
ln -s $out/opt/${binaryName}/discord.png $out/share/icons/hicolor/256x256/apps/${pname}.png
|
||||
|
||||
ln -s "$desktopItem/share/applications" $out/share/
|
||||
|
||||
set -x
|
||||
set -e
|
||||
|
||||
cp "${./installer}" $out/opt/vencordInstaller
|
||||
chmod 770 $out/opt/vencordInstaller
|
||||
patchelf --set-interpreter ${stdenv.cc.bintools.dynamicLinker} \
|
||||
$out/opt/vencordInstaller
|
||||
|
||||
VENCORD_USER_DATA_DIR="/home/meyer/.config/Vencord/dist" $out/opt/vencordInstaller -location $out/opt/Discord -install
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
postInstall =
|
||||
''
|
||||
# set -x
|
||||
# set -e
|
||||
#
|
||||
# cp "${./installer}" $out/bin/vencordInstaller
|
||||
#
|
||||
# chmod +x $out/bin/vencordInstaller
|
||||
# patchelf --set-interpreter ${stdenv.cc.bintools.dynamicLinker} \
|
||||
# $out/bin/vencordInstaller
|
||||
# $out/bin/vencordInstaller -location $out/opt/Discord -install
|
||||
'';
|
||||
|
||||
desktopItem = makeDesktopItem {
|
||||
name = pname;
|
||||
exec = binaryName;
|
||||
icon = pname;
|
||||
inherit desktopName;
|
||||
genericName = meta.description;
|
||||
categories = [ "Network" "InstantMessaging" ];
|
||||
mimeTypes = [ "x-scheme-handler/discord" ];
|
||||
};
|
||||
|
||||
passthru = {
|
||||
# make it possible to run disableBreakingUpdates standalone
|
||||
inherit disableBreakingUpdates;
|
||||
updateScript = writeScript "discord-update-script" ''
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p curl gnugrep common-updater-scripts
|
||||
set -eou pipefail;
|
||||
url=$(curl -sI "https://discordapp.com/api/download/${
|
||||
builtins.replaceStrings [ "discord-" "discord" ] [ "" "stable" ] pname
|
||||
}?platform=linux&format=tar.gz" | grep -oP 'location: \K\S+')
|
||||
version=''${url##https://dl*.discordapp.net/apps/linux/}
|
||||
version=''${version%%/*.tar.gz}
|
||||
update-source-version ${pname} "$version" --file=./pkgs/applications/networking/instant-messengers/discord/default.nix --version-key=${branch}
|
||||
'';
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue