added stuff

This commit is contained in:
Charlie Root 2024-04-09 23:11:33 +02:00
commit 9d0ebdfbd0
907 changed files with 70990 additions and 0 deletions

View 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";
};
};
}

View file

@ -0,0 +1,9 @@
{
imports = [
./mpv
./ncmpcpp
./beets.nix
./packages.nix
];
}

View 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
];
};
};
}

View 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"'';
}

View 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"];
}
];
}

View 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;
};
}

View 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";
};
}

View 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;
};
}