Add history and audio-only to the yt-mpv

This commit is contained in:
Dmitriy Holkin 2019-09-22 01:32:26 +04:00
parent c60db2e0a7
commit c89e144026
4 changed files with 33 additions and 17 deletions

View File

@ -42,9 +42,6 @@ with import ../support.nix { inherit lib config; }; {
cmd = "${pkgs.xarchiver}/bin/xarchiver";
desktop = "xarchiver";
};
youtube-to-mpv = {
cmd = "${pkgs.youtube-to-mpv}/bin/yt-mpv";
};
# archive = {
# cmd = "${pkgs.ark}/bin/ark";
# desktop = "org.kde.ark";

View File

@ -1,21 +1,32 @@
{ stdenv, pkgs, isLaptop ? false }:
# TODO: отвязать от urxvt
let
myScript = if isLaptop then
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)"
if [[ "$1" != "--no-video" ]]; then
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 --fs --ytdl-format="bestvideo[height<=?1080][fps<=?30][vcodec!=?vp9]+bestaudio/best" "$(xclip -o)"
else
${pkgs.mpv}/bin/mpv --fs "$(xclip -o)"
fi
else
${pkgs.mpv}/bin/mpv --hwdec=vaapi --fs "$(xclip -o)"
${pkgs.libnotify}/bin/notify-send -t 3000 --icon=video-television "Playing Audio" "$(xclip -o)"
${pkgs.rxvt_unicode}/bin/urxvt -e ${pkgs.mpv}/bin/mpv --no-video "$(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)"
if [[ "$1" != "--no-video" ]]; then
${pkgs.libnotify}/bin/notify-send -t 3000 --icon=video-television "Playing Video" "$(xclip -o)"
${pkgs.mpv}/bin/mpv --fs "$(xclip -o)"
else
${pkgs.libnotify}/bin/notify-send -t 3000 --icon=video-television "Playing Audio" "$(xclip -o)"
${pkgs.rxvt_unicode}/bin/urxvt -e ${pkgs.mpv}/bin/mpv --no-video "$(xclip -o)"
fi
'';
in
stdenv.mkDerivation rec {

View File

@ -109,8 +109,9 @@ in {
"${modifier}+q" = "kill";
"${modifier}+w" = "exec ${apps.dmenu.cmd}";
"${modifier}+Return" = "exec ${apps.term.cmd}";
"${modifier}+e" = "exec ${apps.editor.cmd} -c -n";
"${modifier}+y" = "exec ${apps.youtube-to-mpv.cmd}";
"${modifier}+e" = "exec ${apps.editor.cmd}";
"${modifier}+y" = "exec ${pkgs.youtube-to-mpv}/bin/yt-mpv";
"${modifier}+Shift+y" = "exec ${pkgs.youtube-to-mpv}/bin/yt-mpv --no-video";
"${modifier}+l" = "layout toggle";
"${modifier}+Left" = "focus child; focus left; exec ${moveMouse}";
"${modifier}+Right" = "focus child; focus right; exec ${moveMouse}";
@ -133,12 +134,12 @@ in {
"${modifier}+Shift+f" = "floating toggle";
"${modifier}+d" = "exec ${apps.fm.cmd}";
"${modifier}+Escape" = "exec ${apps.monitor.cmd}";
"${modifier}+Print" = "exec ${pkgs.spectacle}/bin/spectacle -b";
"${modifier}+Control+Print" = "exec ${pkgs.spectacle}/bin/spectacle";
"${modifier}+Print" = "exec ${pkgs.maim}/bin/maim -s ~/Pictures/$(date +%s).png";
"${modifier}+Control+Print" = "exec ${pkgs.maim}/bin/maim -s | xclip -selection clipboard -t image/png";
"--release ${modifier}+Shift+Print" =
"exec ${pkgs.spectacle}/bin/spectacle -b -r";
"exec ${pkgs.maim}/bin/maim ~/Pictures/$(date +%s).png";
"--release ${modifier}+Control+Shift+Print" =
"exec ${pkgs.spectacle}/bin/spectacle -r";
"exec ${pkgs.maim}/bin/maim | xclip -selection clipboard -t image/png";
"${modifier}+x" = "move workspace to output right";
"${modifier}+c" = "workspace ";
"${modifier}+Shift+c" = "move container to workspace ";

View File

@ -17,4 +17,11 @@ with deviceSpecific; {
"bestvideo+bestaudio/best";
};
};
# TODO: отвязать от /home/alukard
home-manager.users.alukard.home.file.".config/youtube-dl/config" = {
text = ''
--cookie=/home/alukard/.config/yt-cookie
--mark-watched
'';
};
}