added stuff
This commit is contained in:
parent
937f28770d
commit
236b8c2a6b
907 changed files with 70990 additions and 0 deletions
76
nyx/homes/notashelf/programs/media/beets.nix
Normal file
76
nyx/homes/notashelf/programs/media/beets.nix
Normal file
|
@ -0,0 +1,76 @@
|
|||
{
|
||||
osConfig,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
inherit (lib.modules) mkIf;
|
||||
inherit (osConfig) modules;
|
||||
|
||||
env = modules.usrEnv;
|
||||
prg = env.programs;
|
||||
in {
|
||||
programs.beets = mkIf prg.media.beets.enable {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
ui.color = true;
|
||||
directory = config.services.mpd.musicDirectory;
|
||||
library = "${config.services.mpd.musicDirectory}/musiclibrary.db";
|
||||
|
||||
clutter = [
|
||||
"Thumbs.DB"
|
||||
".DS_Store"
|
||||
".directory"
|
||||
];
|
||||
|
||||
plugins = [
|
||||
# "acousticbrainz" # DEPRECATED
|
||||
"mpdupdate"
|
||||
"lyrics"
|
||||
"thumbnails"
|
||||
"fetchart"
|
||||
"embedart"
|
||||
"chroma"
|
||||
"fromfilename"
|
||||
"lastgenre"
|
||||
"absubmit"
|
||||
"duplicates"
|
||||
"edit"
|
||||
"mbcollection"
|
||||
"mbsync"
|
||||
"replaygain"
|
||||
"scrub"
|
||||
];
|
||||
|
||||
import = {
|
||||
move = true;
|
||||
timid = true;
|
||||
detail = true;
|
||||
bell = true;
|
||||
write = true;
|
||||
};
|
||||
|
||||
mpd = {
|
||||
host = "localhost";
|
||||
port = 6600;
|
||||
};
|
||||
|
||||
lyrics = {
|
||||
auto = true;
|
||||
};
|
||||
|
||||
thumbnails.auto = true;
|
||||
fetchart.auto = true;
|
||||
|
||||
embedart = {
|
||||
auto = true;
|
||||
remove_art_file = true;
|
||||
};
|
||||
|
||||
acousticbrainz.auto = true;
|
||||
chroma.auto = true;
|
||||
replaygain.backend = "gstreamer";
|
||||
};
|
||||
};
|
||||
}
|
9
nyx/homes/notashelf/programs/media/default.nix
Normal file
9
nyx/homes/notashelf/programs/media/default.nix
Normal file
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
imports = [
|
||||
./mpv
|
||||
./ncmpcpp
|
||||
|
||||
./beets.nix
|
||||
./packages.nix
|
||||
];
|
||||
}
|
78
nyx/homes/notashelf/programs/media/mpv/default.nix
Normal file
78
nyx/homes/notashelf/programs/media/mpv/default.nix
Normal file
|
@ -0,0 +1,78 @@
|
|||
{
|
||||
self',
|
||||
osConfig,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
inherit (lib.modules) mkIf mkMerge;
|
||||
inherit (osConfig) modules;
|
||||
|
||||
env = modules.usrEnv;
|
||||
prg = env.programs;
|
||||
|
||||
inherit (self'.packages) anime4k;
|
||||
low1k = import ./low1k.nix {inherit anime4k;};
|
||||
in {
|
||||
config = mkIf prg.media.mpv.enable {
|
||||
programs.mpv = {
|
||||
enable = true;
|
||||
|
||||
inherit (prg.media.mpv) scripts;
|
||||
|
||||
config = {
|
||||
ytdl-format = "bestvideo+bestaudio/best";
|
||||
audio-display = false;
|
||||
force-window = true;
|
||||
hidpi-window-scale = false;
|
||||
hwdec = "auto";
|
||||
keep-open = true;
|
||||
keep-open-pause = false;
|
||||
osd-on-seek = false;
|
||||
profile = "gpu-hq";
|
||||
script-opts = "osc-seekbarstyle=knob,osc-deadzonesize=1,osc-minmousemove=1";
|
||||
slang = "chi";
|
||||
sub-auto = "fuzzy";
|
||||
sub-codepage = "gbk";
|
||||
osc = "no";
|
||||
osd-bar = "no";
|
||||
border = "no";
|
||||
};
|
||||
|
||||
bindings = mkMerge [
|
||||
# mpv keybindings
|
||||
{
|
||||
"Y" = "add sub-scale +0.1"; # increase subtitle font size
|
||||
"G" = "add sub-scale -0.1"; # decrease subtitle font size
|
||||
"y" = "sub_step -1"; # immediately display next subtitle
|
||||
"g" = "sub_step +1"; # previous
|
||||
"R" = "cycle_values window-scale 2 0.5 1"; # switch between 2x, 1/2, unresized window size
|
||||
|
||||
"l" = "seek 5";
|
||||
"h" = "seek -5";
|
||||
"j" = "seek -60";
|
||||
"k" = "seek 60";
|
||||
|
||||
"s" = "cycle sub";
|
||||
"a" = "cycle audio";
|
||||
|
||||
"Alt+h" = "add chapter -1";
|
||||
"Alt+l" = "add chapter 1";
|
||||
"Ctrl+SPACE" = "add chapter 1";
|
||||
|
||||
"Alt+j" = "add video-zoom -0.25";
|
||||
"Alt+k" = "add video-zoom 0.25";
|
||||
|
||||
"Alt+J" = "add sub-pos -1";
|
||||
"Alt+K" = "add sub-pos +1";
|
||||
|
||||
"Ctrl+h" = "multiply speed 1/1.1";
|
||||
"Ctrl+l" = "multiply speed 1.1";
|
||||
"Ctrl+H" = "set speed 1.0";
|
||||
}
|
||||
|
||||
# merge low1k's keybindings into mpv bindings section
|
||||
low1k
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
10
nyx/homes/notashelf/programs/media/mpv/low1k.nix
Normal file
10
nyx/homes/notashelf/programs/media/mpv/low1k.nix
Normal file
|
@ -0,0 +1,10 @@
|
|||
{anime4k}: {
|
||||
# curl -sL https://github.com/bloc97/Anime4K/raw/master/GLSL_Instructions.md | grep '^CTRL' | sed -r -e '/^$/d' -e 's|~~/shaders/|${anime4k}/|g' -e 's|;\$|:$|g' -e "s| |\" = ''|" -e 's|^| "|' -e "s|$|'';|"
|
||||
"CTRL+1" = ''no-osd change-list glsl-shaders set "${anime4k}/Anime4K_Clamp_Highlights.glsl:${anime4k}/Anime4K_Restore_CNN_M.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_M.glsl:${anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_S.glsl"; show-text "Anime4K: Mode A (Fast)"'';
|
||||
"CTRL+2" = ''no-osd change-list glsl-shaders set "${anime4k}/Anime4K_Clamp_Highlights.glsl:${anime4k}/Anime4K_Restore_CNN_Soft_M.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_M.glsl:${anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_S.glsl"; show-text "Anime4K: Mode B (Fast)"'';
|
||||
"CTRL+3" = ''no-osd change-list glsl-shaders set "${anime4k}/Anime4K_Clamp_Highlights.glsl:${anime4k}/Anime4K_Upscale_Denoise_CNN_x2_M.glsl:${anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_S.glsl"; show-text "Anime4K: Mode C (Fast)"'';
|
||||
"CTRL+4" = ''no-osd change-list glsl-shaders set "${anime4k}/Anime4K_Clamp_Highlights.glsl:${anime4k}/Anime4K_Restore_CNN_M.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_M.glsl:${anime4k}/Anime4K_Restore_CNN_S.glsl:${anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_S.glsl"; show-text "Anime4K: Mode A+A (Fast)"'';
|
||||
"CTRL+5" = ''no-osd change-list glsl-shaders set "${anime4k}/Anime4K_Clamp_Highlights.glsl:${anime4k}/Anime4K_Restore_CNN_Soft_M.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_M.glsl:${anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${anime4k}/Anime4K_Restore_CNN_Soft_S.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_S.glsl"; show-text "Anime4K: Mode B+B (Fast)"'';
|
||||
"CTRL+6" = ''no-osd change-list glsl-shaders set "${anime4k}/Anime4K_Clamp_Highlights.glsl:${anime4k}/Anime4K_Upscale_Denoise_CNN_x2_M.glsl:${anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${anime4k}/Anime4K_Restore_CNN_S.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_S.glsl"; show-text "Anime4K: Mode C+A (Fast)"'';
|
||||
"CTRL+0" = ''no-osd change-list glsl-shaders clr ""; show-text "GLSL shaders cleared"'';
|
||||
}
|
20
nyx/homes/notashelf/programs/media/ncmpcpp/binds.nix
Normal file
20
nyx/homes/notashelf/programs/media/ncmpcpp/binds.nix
Normal file
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
programs.ncmpcpp.bindings = [
|
||||
{
|
||||
key = "j";
|
||||
command = "scroll_down";
|
||||
}
|
||||
{
|
||||
key = "k";
|
||||
command = "scroll_up";
|
||||
}
|
||||
{
|
||||
key = "J";
|
||||
command = ["select_item" "scroll_down"];
|
||||
}
|
||||
{
|
||||
key = "K";
|
||||
command = ["select_item" "scroll_up"];
|
||||
}
|
||||
];
|
||||
}
|
28
nyx/homes/notashelf/programs/media/ncmpcpp/default.nix
Normal file
28
nyx/homes/notashelf/programs/media/ncmpcpp/default.nix
Normal file
|
@ -0,0 +1,28 @@
|
|||
{
|
||||
osConfig,
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
inherit (lib.modules) mkIf;
|
||||
inherit (osConfig) modules;
|
||||
|
||||
env = modules.usrEnv;
|
||||
prg = env.programs;
|
||||
in {
|
||||
imports = [./binds.nix ./settings.nix];
|
||||
|
||||
config.programs.ncmpcpp = mkIf prg.media.ncmpcpp.enable {
|
||||
enable = true;
|
||||
|
||||
# provide visualisier support for ncmpcpp
|
||||
# it will optionally display a visualiser in the terminal
|
||||
# if the mpd server is configured to write the visualiser
|
||||
# mipe - e.g. /tmp/mpd.fifo
|
||||
package = pkgs.ncmpcpp.override {visualizerSupport = true;};
|
||||
|
||||
# look for music tracks inside mpd's music directory
|
||||
mpdMusicDir = config.services.mpd.musicDirectory;
|
||||
};
|
||||
}
|
61
nyx/homes/notashelf/programs/media/ncmpcpp/settings.nix
Normal file
61
nyx/homes/notashelf/programs/media/ncmpcpp/settings.nix
Normal file
|
@ -0,0 +1,61 @@
|
|||
{config, ...}: {
|
||||
programs.ncmpcpp.settings = {
|
||||
# Miscelaneous
|
||||
ncmpcpp_directory = "${config.xdg.configHome}/ncmpcpp";
|
||||
ignore_leading_the = true;
|
||||
external_editor = "nvim";
|
||||
message_delay_time = 1;
|
||||
playlist_disable_highlight_delay = 2;
|
||||
autocenter_mode = "yes";
|
||||
centered_cursor = "yes";
|
||||
allow_for_physical_item_deletion = "no";
|
||||
lines_scrolled = "0";
|
||||
follow_now_playing_lyrics = "yes";
|
||||
lyrics_fetchers = "musixmatch";
|
||||
|
||||
# visualizer
|
||||
visualizer_data_source = "/tmp/mpd.fifo";
|
||||
visualizer_output_name = "mpd_visualizer";
|
||||
visualizer_type = "ellipse";
|
||||
visualizer_look = "●● ";
|
||||
visualizer_color = "blue, green";
|
||||
|
||||
# appearance
|
||||
colors_enabled = "yes";
|
||||
playlist_display_mode = "classic";
|
||||
user_interface = "classic";
|
||||
volume_color = "white";
|
||||
|
||||
# window
|
||||
song_window_title_format = "Music";
|
||||
statusbar_visibility = "no";
|
||||
header_visibility = "no";
|
||||
titles_visibility = "no";
|
||||
# progress bar
|
||||
progressbar_look = "";
|
||||
progressbar_color = "black";
|
||||
progressbar_elapsed_color = "blue";
|
||||
|
||||
# song list
|
||||
song_status_format = "$7%t";
|
||||
song_list_format = "$(008)%t$R $(247)%a$R$5 %l$8";
|
||||
song_columns_list_format = "(53)[blue]{tr} (45)[blue]{a}";
|
||||
|
||||
current_item_prefix = "$b$2| ";
|
||||
current_item_suffix = "$/b$5";
|
||||
|
||||
now_playing_prefix = "$b$5| ";
|
||||
now_playing_suffix = "$/b$5";
|
||||
|
||||
song_library_format = "{{%a - %t} (%b)}|{%f}";
|
||||
|
||||
# colors
|
||||
main_window_color = "blue";
|
||||
|
||||
current_item_inactive_column_prefix = "$b$5";
|
||||
current_item_inactive_column_suffix = "$/b$5";
|
||||
|
||||
color1 = "white";
|
||||
color2 = "blue";
|
||||
};
|
||||
}
|
39
nyx/homes/notashelf/programs/media/packages.nix
Normal file
39
nyx/homes/notashelf/programs/media/packages.nix
Normal file
|
@ -0,0 +1,39 @@
|
|||
{
|
||||
inputs',
|
||||
osConfig,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
inherit (lib) mkIf;
|
||||
|
||||
inherit (osConfig) modules;
|
||||
|
||||
env = modules.usrEnv;
|
||||
prg = env.programs;
|
||||
cfg = prg.media;
|
||||
in {
|
||||
config = mkIf cfg.addDefaultPackages {
|
||||
home.packages = with pkgs;
|
||||
[
|
||||
# tools that help with media operations/management
|
||||
ffmpeg-full
|
||||
yt-dlp
|
||||
mpc_cli
|
||||
playerctl
|
||||
pavucontrol
|
||||
pulsemixer
|
||||
imv
|
||||
cantata
|
||||
easytag
|
||||
kid3
|
||||
musikcube
|
||||
|
||||
# get ani-cli and mov-cli from my own derivations
|
||||
# I don't want to wait for nixpkgs
|
||||
inputs'.nyxpkgs.packages.mov-cli
|
||||
inputs'.nyxpkgs.packages.ani-cli
|
||||
]
|
||||
++ cfg.extraPackages;
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue