Change viewtube to simple script

This commit is contained in:
Dmitriy 2019-09-17 16:48:19 +04:00
parent 101a0dedb7
commit 4084b5fd3c
7 changed files with 55 additions and 40 deletions

View File

@ -42,8 +42,8 @@ with import ../support.nix { inherit lib config; }; {
cmd = "${pkgs.xarchiver}/bin/xarchiver";
desktop = "xarchiver";
};
viewtube = {
desktop = "viewtube";
youtube-to-mpv = {
cmd = "${pkgs.youtube-to-mpv}/bin/yt-mpv";
};
# archive = {
# cmd = "${pkgs.ark}/bin/ark";
@ -62,7 +62,7 @@ with import ../support.nix { inherit lib config; }; {
# desktop = "gnumeric";
# };
};
home-manager.users.alukard.xdg.configFile."mimeapps.list".text =
home-manager.users.alukard.xdg.configFile."mimeapps.list.home".text =
with config.defaultApplications;
let
apps = builtins.mapAttrs (name: value: "${value.desktop}.desktop;") {
@ -101,11 +101,13 @@ with import ../support.nix { inherit lib config; }; {
"embed-text/plain" = false;
};
};
# home-manager.users.alukard.home.activation.mimeapps = {
# before = [];
# after = ["linkGeneration"];
# data =
# "$DRY_RUN_CMD cp ~/.config/mimeapps.list.home ~/.config/mimeapps.list";
# };
home-manager.users.alukard.home.activation.mimeapps = {
before = [];
after = ["linkGeneration"];
data = ''
$DRY_RUN_CMD rm -f ~/.config/mimeapps.list
$DRY_RUN_CMD cp ~/.config/mimeapps.list.home ~/.config/mimeapps.list
'';
};
};
}

View File

@ -18,6 +18,8 @@
vdpauinfo
libva-utils
lm_sensors
libnotify
youtube-to-mpv
# Other
(vivaldi.override { proprietaryCodecs = true; })
wget

View File

@ -0,0 +1,28 @@
{ stdenv, pkgs }:
let
myScript = if config.deviceSpecific.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)"
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
'';
}

View File

@ -33,7 +33,7 @@
./applications.nix
./secrets.nix
./devices.nix
# ./packages.nix
./packages.nix
./nix.nix
./users.nix
./hardware.nix

View File

@ -3,6 +3,7 @@
(self: old:
rec {
# nerdfonts = nur.balsoft.pkgs.roboto-mono-nerd;
youtube-to-mpv = pkgs.callPackage ./applications/youtube-to-mpv.nix {};
}
)
];

View File

@ -110,6 +110,7 @@ in {
"${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}+l" = "layout toggle";
"${modifier}+Left" = "focus child; focus left; exec ${moveMouse}";
"${modifier}+Right" = "focus child; focus right; exec ${moveMouse}";

View File

@ -1,35 +1,16 @@
{ config, lib, pkgs, ... }: {
{ config, lib, pkgs, ... }:
with rec {
inherit (config) deviceSpecific;
};
with deviceSpecific; {
home-manager.users.alukard.programs.mpv = {
enable = true;
};
home-manager.users.alukard.home.file.".local/share/applications/viewtube.desktop" = {
text = ''
[Desktop Entry]
Name=ViewTube Protocol
Exec=/home/alukard/.scripts/viewtube.sh %u
Type=Application
Terminal=false
MimeType=x-scheme-handler/viewtube
'';
};
home-manager.users.alukard.home.file.".scripts/viewtube.sh" = {
executable = true;
text = ''
#!/usr/bin/env bash
s="$(echo "$1" | sed -e "s/viewtube://")"
v="$(echo "$s" | awk -F 'SEPARATOR' '{print $1}')"
a="$(echo "$s" | awk -F 'SEPARATOR' '{print $2}')"
if [ "$a" = "" ]; then
echo "$v" > viewtube.log
mpv --log-file=mpv.log --hwdec=vaapi --fs --ytdl=yes "$v" >> viewtube.log
#cvlc -f "$v"
config = {
ytdl-format = if isLaptop then
"bestvideo[height<=?1080]+bestaudio/best"
else
echo "$v" > viewtube.log
echo "$a" >> viewtube.log
mpv --log-file=mpv.log --hwdec=vaapi --fs --ytdl=yes --audio-file "$a" "$v" >> viewtube.log
#cvlc -f --input-slave "$a" "$v"
fi
'';
"bestvideo+bestaudio/best";
# cache-default = 4000000;
}
};
}