50 lines
1.4 KiB
Nix
50 lines
1.4 KiB
Nix
{ config, pkgs, lib, ... }:
|
|
let
|
|
inherit (lib) mkEnableOption mkIf;
|
|
cfg = config.my-namespace.home.vesktop-appimage;
|
|
vesktopVersion = "1.6.1";
|
|
|
|
vesktopAppImage = pkgs.runCommand "vesktop-appimage" { } ''
|
|
cp ${pkgs.fetchurl {
|
|
url = "https://github.com/Vencord/Vesktop/releases/download/v${vesktopVersion}/Vesktop-${vesktopVersion}.AppImage";
|
|
sha256 = "sha256-zK098H7iiOEe5y5YhgsUCPYVQQPcsnZw6/6q6Nx7h+w=";
|
|
}} $out
|
|
chmod +x $out
|
|
'';
|
|
|
|
vesktopWrapped = pkgs.writeShellScriptBin "vesktop" ''
|
|
exec ${pkgs.appimage-run}/bin/appimage-run ${vesktopAppImage} "$@"
|
|
'';
|
|
|
|
vesktopIcon = pkgs.fetchurl {
|
|
url = "https://raw.githubusercontent.com/Vencord/Vesktop/main/build/icon.svg";
|
|
sha256 = "sha256-fQ+dvbPIb4AFd9f7JqIt7+twJdEMQF9jTTwrk5p1vn8=";
|
|
};
|
|
|
|
in
|
|
{
|
|
options.my-namespace.home.vesktop-appimage = {
|
|
enable = mkEnableOption "Install Vesktop (AppImage) with Vencord support";
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
|
|
xdg.dataFile."icons/hicolor/scalable/apps/vesktop.svg".source = vesktopIcon;
|
|
|
|
home.packages = [
|
|
pkgs.appimage-run
|
|
vesktopWrapped
|
|
];
|
|
|
|
xdg.desktopEntries.vesktop = {
|
|
name = "Vesktop";
|
|
comment = "Discord client with Vencord (AppImage)";
|
|
exec = "${vesktopWrapped}/bin/vesktop";
|
|
icon = "vesktop";
|
|
terminal = false;
|
|
type = "Application";
|
|
categories = [ "Network" "Chat" ];
|
|
};
|
|
};
|
|
}
|