4f03644c56
Add a Spotify wrapper with a `deviceScaleFactor` argument to set the `--force-device-scale-factor` flag for high-DPI displays. If unset, nothing is added. This allows e.g. spotify.override { deviceScaleFactor = 1.66; } Uses a separate wrapper derivation as suggested by @Ma27. Uses `wrapProgram` instead of `makeWrapper` as suggested by @Ma27.
32 lines
803 B
Nix
32 lines
803 B
Nix
{ symlinkJoin
|
|
, lib
|
|
, spotify-unwrapped
|
|
, makeWrapper
|
|
|
|
# High-DPI support: Spotify's --force-device-scale-factor argument; not added
|
|
# if `null`, otherwise, should be a number.
|
|
, deviceScaleFactor ? null
|
|
}:
|
|
|
|
symlinkJoin {
|
|
name = "spotify-${spotify-unwrapped.version}";
|
|
|
|
paths = [ spotify-unwrapped.out ];
|
|
|
|
nativeBuildInputs = [ makeWrapper ];
|
|
preferLocalBuild = true;
|
|
passthru.unwrapped = spotify-unwrapped;
|
|
postBuild = ''
|
|
wrapProgram $out/bin/spotify \
|
|
${lib.optionalString (deviceScaleFactor != null) ''
|
|
--add-flags ${lib.escapeShellArg "--force-device-scale-factor=${
|
|
builtins.toString deviceScaleFactor
|
|
}"}
|
|
''}
|
|
'';
|
|
|
|
meta = spotify-unwrapped.meta // {
|
|
priority = (spotify-unwrapped.meta.priority or 0) - 1;
|
|
};
|
|
}
|