Change viewtube to simple script
This commit is contained in:
parent
101a0dedb7
commit
4084b5fd3c
@ -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
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -18,6 +18,8 @@
|
||||
vdpauinfo
|
||||
libva-utils
|
||||
lm_sensors
|
||||
libnotify
|
||||
youtube-to-mpv
|
||||
# Other
|
||||
(vivaldi.override { proprietaryCodecs = true; })
|
||||
wget
|
||||
|
28
modules/applications/youtube-to-mpv.nix
Normal file
28
modules/applications/youtube-to-mpv.nix
Normal 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
|
||||
'';
|
||||
}
|
@ -33,7 +33,7 @@
|
||||
./applications.nix
|
||||
./secrets.nix
|
||||
./devices.nix
|
||||
# ./packages.nix
|
||||
./packages.nix
|
||||
./nix.nix
|
||||
./users.nix
|
||||
./hardware.nix
|
||||
|
@ -3,6 +3,7 @@
|
||||
(self: old:
|
||||
rec {
|
||||
# nerdfonts = nur.balsoft.pkgs.roboto-mono-nerd;
|
||||
youtube-to-mpv = pkgs.callPackage ./applications/youtube-to-mpv.nix {};
|
||||
}
|
||||
)
|
||||
];
|
||||
|
@ -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}";
|
||||
|
@ -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;
|
||||
}
|
||||
};
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user