Compare commits
3 Commits
5ea9ec478e
...
e6e6d716e9
| Author | SHA1 | Date | |
|---|---|---|---|
|
e6e6d716e9
|
|||
|
d522f52cb4
|
|||
|
28b6003123
|
@ -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
|
||||
; ===========================
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -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}")
|
||||
))),
|
||||
),
|
||||
]
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user