nixos-config/modules/applications/youtube-to-mpv.nix

28 lines
1013 B
Nix
Raw Normal View History

2019-09-17 16:48:19 +04:00
2019-09-17 23:07:22 +04:00
{ stdenv, pkgs, isLaptop ? false }:
2019-09-17 16:48:19 +04:00
let
2019-09-17 23:07:22 +04:00
myScript = if isLaptop then
2019-09-17 16:48:19 +04:00
pkgs.writeShellScriptBin "yt-mpv" ''
BATTERY="`${pkgs.acpi}/bin/acpi -b | grep --invert-match unavailable | head -1`"
STATUS=`awk -F'[,:] ' '{print $2}' <<< "$BATTERY"`
${pkgs.libnotify}/bin/notify-send -t 3000 --icon=video-television "Playing Video" "$(xclip -o)";
if [[ "$STATUS" == "Discharging" ]]; then
${pkgs.mpv}/bin/mpv --hwdec=vaapi --fs --ytdl-format="bestvideo[height<=?1080][fps<=?30][vcodec!=?vp9]+bestaudio/best" "$(xclip -o)"
else
${pkgs.mpv}/bin/mpv --hwdec=vaapi --fs "$(xclip -o)"
fi
''
else
pkgs.writeShellScriptBin "yt-mpv" ''
${pkgs.libnotify}/bin/notify-send -t 3000 --icon=video-television "Playing Video" "$(xclip -o)";
${pkgs.mpv}/bin/mpv --hwdec=vaapi --fs "$(xclip -o)"
'';
in
stdenv.mkDerivation rec {
name = "youtube-to-mpv";
src = myScript;
installPhase = ''
mkdir -p $out/bin
cp ./bin/yt-mpv $out/bin/yt-mpv
'';
}