1

Compare commits

..

3 Commits

3 changed files with 124 additions and 67 deletions

View File

@ -136,6 +136,10 @@ yt-dlp -f 'bv*[ext=mp4]+ba[ext=m4a]/b[ext=mp4] / bv*+ba/b' --recode-video mp4 "<
# Download mp3 video in best quality
yt-dlp -f 'ba' --extract-audio --audio-format mp3 "<url>"
% spotdl
# Download spotify playlist
spotdl --config /home/christoph/.spotdl/config.json --user-auth --format m4a --bitrate disable --threads 24 --generate-lrc --m3u "<name>" download "<url>"
; ===========================
; FFMPEG
; ===========================

View File

@ -366,6 +366,7 @@ rec {
imagemagick # Convert image (magic)
mp3val # Validate mp3 files
flac # Validate flac files
spotdl
# Document utils
poppler_utils # pdfunite
@ -478,28 +479,29 @@ rec {
# https://beets.readthedocs.io/en/stable/reference/config.html
settings = {
directory = "${home.homeDirectory}/Music";
threaded = "yes";
threaded = true;
art_filename = "cover";
ui = {
color = "yes";
color = true;
};
import = {
write = "yes"; # Write metadata to files
copy = "yes"; # Move files to the music directory when importing
write = true; # Write metadata to files
copy = true; # Move files to the music directory when importing
log = "${home.homeDirectory}/Music/.beetslog.txt";
};
paths = {
default = "$albumartist/$albumartist - $album/$track $title";
singleton = "$artist/0 Singles/$artist - $title"; # Single songs
comp = "1 Various Arists/$album/$track $title";
singleton = "0 Singles/$artist - $title"; # Single songs
comp = "1 Various/$album/$track $title";
};
plugins = [
"badfiles" # check audio file integrity
"duplicates"
"edit" # edit metadata in text editor
"fetchart" # pickup local cover art or search online
"fish" # beet fish generates ~/.config/fish/completions file
# "lyrics" # fetch song lyrics
@ -507,7 +509,7 @@ rec {
];
fetchart = {
auto = "yes";
auto = true;
sources = "filesystem coverart itunes amazon albumart"; # sources are queried in this order
};
@ -517,7 +519,7 @@ rec {
# };
replaygain = {
auto = "no"; # analyze on import automatically
auto = false; # analyze on import automatically
backend = "ffmpeg";
overwrite = true; # re-analyze files with existing replaygain tags on import
};
@ -721,28 +723,28 @@ rec {
nushell.enable = false;
spicetify = let
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
in {
enable = true;
# https://github.com/catppuccin/spicetify
theme = spicePkgs.themes.catppuccin;
colorScheme = "mocha";
wayland = true;
enabledExtensions = with spicePkgs.extensions; [
adblock
hidePodcasts
oneko # cat
];
# enabledCustomApps = with spicePkgs.apps; [];
enabledSnippets = with spicePkgs.snippets; [
rotatingCoverart
pointer
];
};
# spicetify = let
# spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
# in {
# enable = true;
#
# # https://github.com/catppuccin/spicetify
# theme = spicePkgs.themes.catppuccin;
# colorScheme = "mocha";
#
# wayland = true;
#
# enabledExtensions = with spicePkgs.extensions; [
# adblock
# hidePodcasts
# oneko # cat
# ];
# # enabledCustomApps = with spicePkgs.apps; [];
# enabledSnippets = with spicePkgs.snippets; [
# rotatingCoverart
# pointer
# ];
# };
ssh = {
enable = true;
@ -794,7 +796,7 @@ rec {
shellWrapperName = "y";
plugins = {
inherit (pkgs.yaziPlugins) chmod diff full-border git lazygit mount ouch rsync smart-paste starship sudo;
inherit (pkgs.yaziPlugins) chmod diff full-border git lazygit mount ouch rsync starship sudo; # smar-paste
};
initLua = ''
@ -978,11 +980,11 @@ rec {
run = [''shell -- for path in "$@"; do echo "file://$path"; done | wl-copy -t text/uri-list'' "yank"];
desc = "Copy files to system clipboard on yank";
}
{
on = "p";
run = "plugin smart-paste";
desc = "Paste into hovered directory or CWD";
}
# {
# on = "p";
# run = "plugin smart-paste";
# desc = "Paste into hovered directory or CWD";
# }
{
on = "d";
run = "remove --permanently";
@ -1076,7 +1078,7 @@ rec {
packages = [
"com.github.tchx84.Flatseal"
# "com.spotify.Client" # Don't need this when spicetify is enabled
"com.spotify.Client" # Don't need this when spicetify is enabled
# NOTE: Also change discord-ipc-0 below
"com.discordapp.Discord"

View File

@ -83,7 +83,7 @@ in {
tabs: [
(
name: "Queue",
name: "Queue (1)",
pane: Split(
borders: "NONE",
direction: Horizontal,
@ -133,31 +133,31 @@ in {
),
),
(
name: "Albums",
name: "Albums (2)",
pane: Pane(Albums),
),
(
name: "Artists",
name: "Album Artists (3)",
pane: Pane(AlbumArtists),
),
(
name: "Artists (4)",
pane: Pane(Artists),
),
(
name: "Playlists",
name: "Playlists (5)",
pane: Pane(Playlists),
),
(
name: "Search",
name: "Directories (6)",
pane: Pane(Directories),
),
(
name: "Search (7)",
pane: Pane(Search),
),
// (
// name: "Album Artists",
// pane: Pane(AlbumArtists),
// ),
// (
// name: "Directories",
// pane: Pane(Directories),
// ),
// (
// name: "Visualizer",
// name: "Visualizer (8)",
// pane: Pane(Cava),
// ),
],
@ -201,20 +201,20 @@ in {
"<Tab>": NextTab,
"<S-Tab>": PreviousTab,
"1": SwitchToTab("Queue"),
"2": SwitchToTab("Albums"),
"3": SwitchToTab("Artists"),
"4": SwitchToTab("Playlists"),
"5": SwitchToTab("Search"),
// " ": SwitchToTab("Visualizer"),
// " ": SwitchToTab("Directories"),
// " ": SwitchToTab("Album Artists"),
"1": SwitchToTab("Queue (1)"),
"2": SwitchToTab("Albums (2)"),
"3": SwitchToTab("Album Artists (3)"),
"4": SwitchToTab("Artists (4)"),
"5": SwitchToTab("Playlists (5)"),
"6": SwitchToTab("Directories (6)"),
"7": SwitchToTab("Search (7)"),
// "8": SwitchToTab("Visualizer (8)"),
"f": SeekForward,
"z": ToggleRepeat,
"x": ToggleRandom,
"c": ToggleConsume,
"v": ToggleSingle,
"c": ToggleConsumeOnOff, // Skip OneShot mode
"v": ToggleSingleOnOff, // Skip OneShot mode
"b": SeekBack,
"~": ShowHelp,
"u": Update,
@ -505,13 +505,64 @@ in {
)
],
right: [
// (
// kind: Property(Widget(States(
// active_style: (fg: "#${accentHL}", modifiers: "Bold|Underlined"),
// inactive_style: (fg: "#${text}"),
// separator_style: (fg: "#${text}"))),
// )
// // style: (fg: "dark_gray")
// ),
(
kind: Property(Widget(States(
active_style: (fg: "#${accentHL}", modifiers: "Bold|Underlined"),
inactive_style: (fg: "#${text}"),
separator_style: (fg: "#${text}")))
)
// style: (fg: "dark_gray")
kind: Property(Status(RepeatV2(
on_label: "Repeat (z)",
off_label: "Repeat (z)",
on_style: (fg: "#${accentHL}", modifiers: "Bold|Underlined"),
off_style: (fg: "#${text}"),
))),
),
(
kind: Text(" / "),
style: (fg: "#${text}"),
),
(
kind: Property(Status(RandomV2(
on_label: "Random (x)",
off_label: "Random (x)",
on_style: (fg: "#${accentHL}", modifiers: "Bold|Underlined"),
off_style: (fg: "#${text}"),
))),
),
(
kind: Text(" / "),
style: (fg: "#${text}"),
),
(
kind: Property(Status(ConsumeV2(
on_label: "Consume (c)",
oneshot_label: "Consume OS (c)",
off_label: "Consume (c)",
on_style: (fg: "#${accentHL}", modifiers: "Bold|Underlined"),
oneshot_style: (fg: "#${accentHL}", modifiers: "Bold|Underlined"),
off_style: (fg: "#${text}"),
))),
),
(
kind: Text(" / "),
style: (fg: "#${text}"),
),
(
kind: Property(Status(SingleV2(
on_label: "Single (v)",
oneshot_label: "Single OS (v)",
off_label: "Single (v)",
on_style: (fg: "#${accentHL}", modifiers: "Bold|Underlined"),
oneshot_style: (fg: "#${accentHL}", modifiers: "Bold|Underlined"),
off_style: (fg: "#${text}")
))),
),
]
),