Add spotube & some tweaks

- move steam pkg override into os-mods/desktop/gaming.nix
- simplify nixpkgs overrides in flake.nix
This commit is contained in:
Tristan D. 2024-01-22 15:50:26 +01:00
parent 72c93dbff4
commit 1bf50449e2
Signed by: tristan
SSH key fingerprint: SHA256:U7y6eMb7CQDaTHv9XoX6/BaQnPqyxxKc+Xnfcefi6rY
5 changed files with 101 additions and 27 deletions

View file

@ -76,16 +76,14 @@
let
system = "x86_64-linux";
unstable-os = import nixos-unstable pkgs-args;
unstable-os-overlay = _final: _prev: {
unstable-pkgs = import nixpkgs-unstable pkgs-args;
my-overlay = final: prev: {
my = self.packages."${system}";
unstable-pkgs = unstable-pkgs.pkgs;
unstable-os = unstable-os.pkgs;
};
unstable-pkgs = import nixpkgs-unstable pkgs-args;
unstable-pkgs-overlay = _final: _prev: {
unstable-pkgs = unstable-pkgs.pkgs;
};
overlays = [
unstable-os-overlay
unstable-pkgs-overlay
my-overlay
emacs-overlay.overlay
inputs.nix-alien.overlays.default
inputs.nix-ld-rs.overlays.default
@ -95,23 +93,7 @@
inherit overlays;
config = {
allowUnfree = true;
packageOverrides = pkgs: {
steam = pkgs.steam.override {
extraPkgs = pkgs:
with pkgs.unstable-os; [
xorg.libXcursor
xorg.libXi
xorg.libXinerama
xorg.libXScrnSaver
libpng
libpulseaudio
libvorbis
stdenv.cc.cc.lib
libkrb5
keyutils
];
};
};
packageOverrides = pkgs: { };
permittedInsecurePackages = [
"electron-22.3.27"
"electron-24.8.6"
@ -145,6 +127,9 @@
formatter = {
${system} = pkgs.nixpkgs-fmt;
};
packages."${system}" = {
spotube = pkgs.callPackage ./pkgs/spotube.nix { };
};
diskoConfigurations = {
nixos-desk = import ./systems/nixos-desk/disko.nix;
nixos-pulse = import ./systems/nixos-pulse/disko.nix;

View file

@ -51,9 +51,9 @@
clearurls
consent-o-matic
darkreader
dearrow
deutsch-de-language-pack
dictionary-german
dearrow
deutsch-de-language-pack
dictionary-german
localcdn
plasma-integration
privacy-badger

View file

@ -5,6 +5,22 @@
}: {
programs.steam = {
enable = true;
package = pkgs.unstable-os.steam.override {
extraPkgs = pkgs:
with pkgs.unstable-os; [
xorg.libXcursor
xorg.libXi
xorg.libXinerama
xorg.libXScrnSaver
libpng
libpulseaudio
libvorbis
stdenv.cc.cc.lib
libkrb5
keyutils
];
};
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true;
};

72
pkgs/spotube.nix Normal file
View file

@ -0,0 +1,72 @@
{ lib
, stdenv
, fetchurl
, autoPatchelfHook
, dpkg
, makeWrapper
, wrapGAppsHook
, libappindicator
, libnotify
, libsecret
, mpv-unwrapped
, xdg-user-dirs
,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "spotube";
version = "3.4.0";
src = fetchurl {
url = "https://github.com/KRTirtho/spotube/releases/download/v${finalAttrs.version}/Spotube-linux-x86_64.deb";
hash = "sha256-XBciTNWsmaY1C8ji+SCWWP/M/uIDZHM9fi9wucHJsBY=";
};
nativeBuildInputs = [
autoPatchelfHook
dpkg
makeWrapper
wrapGAppsHook
];
buildInputs = [
libappindicator
libnotify
libsecret
mpv-unwrapped
];
dontWrapGApps = true;
installPhase = ''
runHook preInstall
mkdir -p $out
mv usr/* $out
runHook postInstall
'';
preFixup = ''
patchelf $out/share/spotube/lib/libmedia_kit_native_event_loop.so \
--replace-needed libmpv.so.1 libmpv.so.2
'';
postFixup = ''
makeWrapper $out/share/spotube/spotube $out/bin/spotube \
"''${gappsWrapperArgs[@]}" \
--prefix LD_LIBRARY_PATH : $out/share/spotube/lib:${lib.makeLibraryPath [mpv-unwrapped]} \
--prefix PATH : ${lib.makeBinPath [xdg-user-dirs]}
'';
meta = {
changelog = "https://github.com/KRTirtho/spotube/blob/v${finalAttrs.version}/CHANGELOG.md";
description = "An open source Spotify client";
longDescription = ''
Spotube is an open source, cross-platform Spotify client that
doesn't require Premium nor uses Electron
'';
homepage = "https://spotube.netlify.app/";
license = lib.licenses.bsdOriginal;
maintainers = with lib.maintainers; [ tomasajt ];
platforms = [ "x86_64-linux" ];
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
};
})

View file

@ -148,6 +148,7 @@
android-tools
android-udev-rules
rustdesk
my.spotube
];
hardware = {