113 lines
3 KiB
Nix
113 lines
3 KiB
Nix
{
|
|
osConfig,
|
|
pkgs,
|
|
config,
|
|
lib,
|
|
hozen,
|
|
self',
|
|
...
|
|
}: let
|
|
inherit (lib) mkIf getExe elem;
|
|
inherit (builtins) attrValues;
|
|
inherit (osConfig.networking) hostName;
|
|
inherit (osConfig.ooknet.workstation) profiles;
|
|
inherit (osConfig.age.secrets) spotify_key;
|
|
inherit (config.ooknet) binds;
|
|
inherit (hozen) color;
|
|
in {
|
|
config = mkIf (elem "media" profiles) {
|
|
home.packages = attrValues {
|
|
inherit
|
|
(pkgs)
|
|
termusic
|
|
alsa-utils
|
|
mpv
|
|
;
|
|
};
|
|
|
|
ooknet.binds.spotify = {
|
|
launch = "${binds.terminalLaunch} spotify_player";
|
|
next = "spotify_player playback next";
|
|
previous = "spotify_player playback previous";
|
|
play = "spotify_player playback play-pause";
|
|
};
|
|
|
|
programs = {
|
|
spotify-player = {
|
|
enable = true;
|
|
package = self'.packages.spotify-player;
|
|
settings = {
|
|
theme = "default";
|
|
client_id_command = "cat ${spotify_key.path}";
|
|
client_port = 8080;
|
|
tracks_playback_limit = 50;
|
|
playback_format = "{track} • {artists}\n{album}\n{metadata}";
|
|
notify_format = {
|
|
summary = "{track} • {artists}";
|
|
body = "{album}";
|
|
};
|
|
app_refresh_duration_in_ms = 32;
|
|
playback_refresh_duration_in_ms = 0;
|
|
page_size_in_rows = 20;
|
|
enable_media_control = false;
|
|
enable_streaming = "Always";
|
|
enable_notify = true;
|
|
enable_cover_image_cache = false;
|
|
notify_streaming_only = false;
|
|
default_device = "${hostName}";
|
|
play_icon = "▶";
|
|
pause_icon = "▌▌";
|
|
liked_icon = "♥";
|
|
playback_window_position = "Top";
|
|
playback_window_width = 6;
|
|
|
|
device = {
|
|
name = "${hostName}";
|
|
device_type = "speaker";
|
|
volume = 60;
|
|
bitrate = 320;
|
|
audio_cache = false;
|
|
normalization = false;
|
|
};
|
|
};
|
|
};
|
|
|
|
cava = {
|
|
enable = true;
|
|
settings = {
|
|
general.framerate = 60;
|
|
color = {
|
|
gradient = 1;
|
|
gradient_count = 5;
|
|
gradient_color_1 = "'#${color.primary.base}'";
|
|
gradient_color_2 = "'#${color.primary.hard1}'";
|
|
gradient_color_3 = "'#${color.primary.hard2}'";
|
|
gradient_color_4 = "'#${color.primary.hard3}'";
|
|
gradient_color_5 = "'#${color.primary.hard4}'";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
programs.zellij.layouts.music = {
|
|
icon = "";
|
|
tabs =
|
|
# kdl
|
|
''
|
|
tab name="spotify" focus=true {
|
|
pane name="spotify" {
|
|
borderless true
|
|
command "${getExe self'.packages.spotify-player}"
|
|
focus true
|
|
}
|
|
pane name="Visualizer" {
|
|
borderless false
|
|
split_direction "horizontal"
|
|
size "20%"
|
|
command "${getExe pkgs.cava}"
|
|
}
|
|
}
|
|
'';
|
|
};
|
|
};
|
|
}
|