diff options
Diffstat (limited to 'user-profiles')
-rw-r--r-- | user-profiles/mpv/default.nix | 211 | ||||
-rw-r--r-- | user-profiles/yt-dlp.nix | 34 |
2 files changed, 132 insertions, 113 deletions
diff --git a/user-profiles/mpv/default.nix b/user-profiles/mpv/default.nix index 9c9d077b..908a4de3 100644 --- a/user-profiles/mpv/default.nix +++ b/user-profiles/mpv/default.nix | |||
@@ -1,108 +1,125 @@ | |||
1 | { config, lib, userName, pkgs, sources, ... }: | 1 | { config, lib, userName, pkgs, sources, ... }: |
2 | { | 2 | { |
3 | home-manager.users.${userName}.programs.mpv = { | 3 | home-manager.users.${userName} = { |
4 | enable = true; | 4 | programs.mpv = { |
5 | bindings = { | 5 | enable = true; |
6 | # "CTRL+n" = "af toggle \"lavfi=[dynaudnorm=f=100:g=31:s=20.0]\""; | 6 | bindings = { |
7 | }; | 7 | # "CTRL+n" = "af toggle \"lavfi=[dynaudnorm=f=100:g=31:s=20.0]\""; |
8 | config = { | 8 | }; |
9 | ytdl = true; | 9 | config = { |
10 | subs-with-matching-audio = false; | 10 | ytdl = true; |
11 | audio-display = false; | 11 | subs-with-matching-audio = false; |
12 | osd-font = "Fira Sans"; | 12 | audio-display = false; |
13 | sub-font = "Fira Sans"; | 13 | osd-font = "Fira Sans"; |
14 | # vo = "gpu"; | 14 | sub-font = "Fira Sans"; |
15 | hwdec = "auto"; | 15 | # vo = "gpu"; |
16 | force-window = "yes"; | 16 | hwdec = "auto"; |
17 | # af = "lavfi=[dynaudnorm=f=100:g=31:s=20.0]"; | 17 | force-window = "yes"; |
18 | script-opts = lib.concatStringsSep "," [ | 18 | # af = "lavfi=[dynaudnorm=f=100:g=31:s=20.0]"; |
19 | "osc-layout=topbar" | 19 | script-opts = lib.concatStringsSep "," [ |
20 | "vidscale=no" | 20 | "osc-layout=topbar" |
21 | "deadzonesize=0.9" | 21 | "vidscale=no" |
22 | "ytdl_hook-ytdl_path=${pkgs.yt-dlp}/bin/yt-dlp" | 22 | "deadzonesize=0.9" |
23 | "chapterskip-skip=sponsor;intro;endcard;interact" | 23 | "ytdl_hook-ytdl_path=${pkgs.yt-dlp}/bin/yt-dlp" |
24 | "chapterskip-categories=sponsor>%[SponsorBlock%]: .*Sponsor.*;intro>%[SponsorBlock%]: .*Intro Animation.*;endcard>%[SponsorBlock%]: .*Endcards.*;interact>%[SponsorBlock%]: .*Interaction Reminder.*" | 24 | "chapterskip-skip=sponsor;intro;endcard;interact" |
25 | "sub_select-config=${pkgs.writeTextDir "sub-select.json" (builtins.toJSON [ | 25 | "chapterskip-categories=sponsor>%[SponsorBlock%]: .*Sponsor.*;intro>%[SponsorBlock%]: .*Intro Animation.*;endcard>%[SponsorBlock%]: .*Endcards.*;interact>%[SponsorBlock%]: .*Interaction Reminder.*" |
26 | { | 26 | "sub_select-config=${pkgs.writeTextDir "sub-select.json" (builtins.toJSON [ |
27 | alang = "*"; | 27 | { |
28 | slang = "forced"; | 28 | alang = "*"; |
29 | } | 29 | slang = "forced"; |
30 | { | 30 | } |
31 | alang = ["jpn" "ja"]; | 31 | { |
32 | slang = "eng?"; | 32 | alang = ["jpn" "ja"]; |
33 | blacklist = [ "sign" ]; | 33 | slang = "eng?"; |
34 | } | 34 | blacklist = [ "sign" ]; |
35 | { | 35 | } |
36 | alang = ["jpn" "ja"]; | 36 | { |
37 | slang = "und"; | 37 | alang = ["jpn" "ja"]; |
38 | blacklist = [ "sign" ]; | 38 | slang = "und"; |
39 | } | 39 | blacklist = [ "sign" ]; |
40 | { | 40 | } |
41 | alang = ["eng?" "deu?"]; | 41 | { |
42 | slang = "no"; | 42 | alang = ["eng?" "deu?"]; |
43 | } | 43 | slang = "no"; |
44 | { | 44 | } |
45 | alang = "*"; | 45 | { |
46 | slang = "eng?"; | 46 | alang = "*"; |
47 | } | 47 | slang = "eng?"; |
48 | { | 48 | } |
49 | alang = "*"; | 49 | { |
50 | slang = "und"; | 50 | alang = "*"; |
51 | } | 51 | slang = "und"; |
52 | ])}" | 52 | } |
53 | ]; | 53 | ])}" |
54 | }; | 54 | ]; |
55 | scripts = [ | 55 | }; |
56 | (pkgs.stdenv.mkDerivation (sources.mpv-reload // rec { | 56 | scripts = [ |
57 | installPhase = '' | 57 | (pkgs.stdenv.mkDerivation (sources.mpv-reload // rec { |
58 | install -d $out/share/mpv/scripts | 58 | installPhase = '' |
59 | install -m 0644 reload.lua $out/share/mpv/scripts/${passthru.scriptName} | 59 | install -d $out/share/mpv/scripts |
60 | ''; | 60 | install -m 0644 reload.lua $out/share/mpv/scripts/${passthru.scriptName} |
61 | ''; | ||
62 | |||
63 | passthru.scriptName = "reload.lua"; | ||
64 | })) | ||
65 | (pkgs.stdenv.mkDerivation (sources.mpv-createchapter // rec { | ||
66 | installPhase = '' | ||
67 | install -d $out/share/mpv/scripts | ||
68 | install -m 0644 createchapter.lua $out/share/mpv/scripts/${passthru.scriptName} | ||
69 | ''; | ||
61 | 70 | ||
62 | passthru.scriptName = "reload.lua"; | 71 | passthru.scriptName = "createchapter.lua"; |
63 | })) | 72 | })) |
64 | (pkgs.stdenv.mkDerivation (sources.mpv-createchapter // rec { | 73 | (pkgs.stdenv.mkDerivation (sources.mpv-autosave // rec { |
65 | installPhase = '' | 74 | installPhase = '' |
66 | install -d $out/share/mpv/scripts | 75 | install -d $out/share/mpv/scripts |
67 | install -m 0644 createchapter.lua $out/share/mpv/scripts/${passthru.scriptName} | 76 | install -m 0644 autosave.lua $out/share/mpv/scripts/${passthru.scriptName} |
68 | ''; | 77 | ''; |
69 | 78 | ||
70 | passthru.scriptName = "createchapter.lua"; | 79 | passthru.scriptName = "autosave.lua"; |
71 | })) | 80 | })) |
72 | (pkgs.stdenv.mkDerivation (sources.mpv-autosave // rec { | 81 | (pkgs.stdenv.mkDerivation (sources.mpv-mpris // rec { |
73 | installPhase = '' | 82 | installPhase = '' |
74 | install -d $out/share/mpv/scripts | 83 | install -d $out/share/mpv/scripts |
75 | install -m 0644 autosave.lua $out/share/mpv/scripts/${passthru.scriptName} | 84 | install -m 0644 mpris.so $out/share/mpv/scripts/${passthru.scriptName} |
76 | ''; | 85 | ''; |
77 | 86 | ||
78 | passthru.scriptName = "autosave.lua"; | 87 | nativeBuildInputs = with pkgs; [ pkg-config glib mpv ]; |
79 | })) | ||
80 | (pkgs.stdenv.mkDerivation (sources.mpv-mpris // rec { | ||
81 | installPhase = '' | ||
82 | install -d $out/share/mpv/scripts | ||
83 | install -m 0644 mpris.so $out/share/mpv/scripts/${passthru.scriptName} | ||
84 | ''; | ||
85 | 88 | ||
86 | nativeBuildInputs = with pkgs; [ pkg-config glib mpv ]; | 89 | passthru.scriptName = "mpris.so"; |
90 | })) | ||
91 | (pkgs.stdenv.mkDerivation (sources.mpv-chapterskip // rec { | ||
92 | installPhase = '' | ||
93 | install -d $out/share/mpv/scripts | ||
94 | install -m 0644 chapterskip.lua $out/share/mpv/scripts/${passthru.scriptName} | ||
95 | ''; | ||
87 | 96 | ||
88 | passthru.scriptName = "mpris.so"; | 97 | passthru.scriptName = "chapterskip.lua"; |
89 | })) | 98 | })) |
90 | (pkgs.stdenv.mkDerivation (sources.mpv-chapterskip // rec { | 99 | (pkgs.stdenv.mkDerivation (sources.mpv-subselect // rec { |
91 | installPhase = '' | 100 | installPhase = '' |
92 | install -d $out/share/mpv/scripts | 101 | install -d $out/share/mpv/scripts |
93 | install -m 0644 chapterskip.lua $out/share/mpv/scripts/${passthru.scriptName} | 102 | install -m 0644 sub-select.lua $out/share/mpv/scripts/${passthru.scriptName} |
94 | ''; | 103 | ''; |
95 | 104 | ||
96 | passthru.scriptName = "chapterskip.lua"; | 105 | passthru.scriptName = "sub-select.lua"; |
97 | })) | 106 | })) |
98 | (pkgs.stdenv.mkDerivation (sources.mpv-subselect // rec { | 107 | (pkgs.stdenv.mkDerivation (sources.mpv-youtube-quality // rec { |
99 | installPhase = '' | 108 | patches = [ |
100 | install -d $out/share/mpv/scripts | 109 | (pkgs.fetchpatch { url = "https://github.com/jgreco/mpv-youtube-quality/pull/31.patch"; hash = "sha256-2aTTkW48uRe8XC1ZQ8J5T9sUmZ5F3YAoYCMxqEs2AY8="; }) |
101 | install -m 0644 sub-select.lua $out/share/mpv/scripts/${passthru.scriptName} | 110 | (pkgs.fetchpatch { url = "https://github.com/jgreco/mpv-youtube-quality/pull/20.patch"; hash = "sha256-X5BwDsxziYbeiQvrBt8+IS+6oH1i0LvaaYtugL790gg="; }) |
102 | ''; | 111 | ]; |
112 | |||
113 | installPhase = '' | ||
114 | install -d $out/share/mpv/scripts | ||
115 | install -m 0644 youtube-quality.lua $out/share/mpv/scripts/${passthru.scriptName} | ||
116 | ''; | ||
117 | |||
118 | passthru.scriptName = "youtube-quality.lua"; | ||
119 | })) | ||
120 | ]; | ||
121 | }; | ||
103 | 122 | ||
104 | passthru.scriptName = "sub-select.lua"; | 123 | xdg.configFile."mpv/youtube-dl".source = "${pkgs.yt-dlp}/bin/yt-dlp"; |
105 | })) | ||
106 | ]; | ||
107 | }; | 124 | }; |
108 | } | 125 | } |
diff --git a/user-profiles/yt-dlp.nix b/user-profiles/yt-dlp.nix index 0af42786..1a30ab5a 100644 --- a/user-profiles/yt-dlp.nix +++ b/user-profiles/yt-dlp.nix | |||
@@ -1,21 +1,23 @@ | |||
1 | { config, lib, userName, pkgs, ... }: | 1 | { config, lib, userName, pkgs, ... }: |
2 | { | 2 | { |
3 | home-manager.users.${userName} = { | 3 | home-manager.users.${userName} = { |
4 | home.packages = with pkgs; [ yt-dlp ]; | 4 | programs.yt-dlp = { |
5 | xdg.configFile."yt-dlp/config".text = '' | 5 | enable = true; |
6 | --cookies-from-browser firefox | 6 | settings = { |
7 | --mark-watched | 7 | cookies-from-browser = "firefox"; |
8 | --format ${lib.concatStringsSep "/" [ | 8 | mark-watched = true; |
9 | "bestvideo[width<=3840][height<=2160][fps<=60]+bestaudio" | 9 | format = lib.concatStringsSep "/" [ |
10 | "best[width<=3840][height<=2160][fps<=60]" | 10 | "bestvideo[width<=3840][height<=2160][fps<=60]+bestaudio" |
11 | "best" | 11 | "best[width<=3840][height<=2160][fps<=60]" |
12 | ]} | 12 | "best" |
13 | --sub-langs all,-live_chat | 13 | ]; |
14 | --prefer-free-formats | 14 | sub-langs = "all,-live_chat,-rechat"; |
15 | --embed-metadata | 15 | prefer-free-formats = true; |
16 | --downloader ${pkgs.aria2}/bin/aria2c | 16 | embed-metadata = true; |
17 | --sponsorblock-mark all | 17 | downloader = "${pkgs.aria2}/bin/aria2c"; |
18 | --restrict-filenames | 18 | sponsorblock-mark = "all"; |
19 | ''; | 19 | restrict-filenames = true; |
20 | }; | ||
21 | }; | ||
20 | }; | 22 | }; |
21 | } | 23 | } |