Added spotify-player and spotifyd service

This commit is contained in:
Ryan Schanzenbacher 2024-01-13 23:55:15 -05:00
parent 67bd380ad4
commit 12e3af5758
Signed by: ryan77627
GPG key ID: 81B0E222A3E2308E
4 changed files with 81 additions and 0 deletions

View file

@ -17,6 +17,7 @@
(gnu home services gnupg) (gnu home services gnupg)
(gnu home services) (gnu home services)
(ryan-services pipewire) (ryan-services pipewire)
(ryan-services spotify)
(ryan-packages freedesktop) (ryan-packages freedesktop)
(ryan-packages mozilla)) (ryan-packages mozilla))
@ -128,6 +129,7 @@
("sway" ,(local-file "sway" #:recursive? #t)) ("sway" ,(local-file "sway" #:recursive? #t))
("hypr" ,(local-file "hypr" #:recursive? #t)) ("hypr" ,(local-file "hypr" #:recursive? #t))
("foot" ,(local-file "foot" #:recursive? #t)) ("foot" ,(local-file "foot" #:recursive? #t))
("spotify-player" ,(local-file "spotify-player" #:recursive? #t))
("pulse/client.conf" ,(local-file "pulseaudio/client.conf")) ("pulse/client.conf" ,(local-file "pulseaudio/client.conf"))
("waybar" ,(local-file "waybar" #:recursive? #t)) ("waybar" ,(local-file "waybar" #:recursive? #t))
("alacritty" ,(local-file "alacritty" #:recursive? #t)) ("alacritty" ,(local-file "alacritty" #:recursive? #t))
@ -142,6 +144,7 @@
(".docker/cli-plugins" ,(local-file "docker/cli-plugins" #:recursive? #t)) (".docker/cli-plugins" ,(local-file "docker/cli-plugins" #:recursive? #t))
(".nix-channels" ,(local-file "nix-channels")))) (".nix-channels" ,(local-file "nix-channels"))))
(service home-pipewire-service-type) (service home-pipewire-service-type)
(service home-spotifyd-service-type)
(service home-dbus-service-type) (service home-dbus-service-type)
(service home-gpg-agent-service-type (service home-gpg-agent-service-type
(home-gpg-agent-configuration (home-gpg-agent-configuration

View file

@ -40,6 +40,7 @@
gifski gifski
waypaper waypaper
gdu gdu
spotify-player
# # It is sometimes useful to fine-tune packages, for example, by applying # # It is sometimes useful to fine-tune packages, for example, by applying
# # overrides. You can do that directly here, just don't forget the # # overrides. You can do that directly here, just don't forget the

View file

@ -0,0 +1,34 @@
theme = "dracula"
client_id = "4b1219bdc29945bc8ca914f80a8a6a47"
client_port = 8888
playback_format = """
{track} {artists}
{album}
{metadata}"""
tracks_playback_limit = 50
app_refresh_duration_in_ms = 32
playback_refresh_duration_in_ms = 0
cover_image_refresh_duration_in_ms = 2000
page_size_in_rows = 20
play_icon = "▶"
pause_icon = "▌▌"
liked_icon = "♥"
border_type = "Plain"
progress_bar_type = "Rectangle"
playback_window_position = "Top"
cover_img_length = 9
cover_img_width = 5
cover_img_scale = 1.0
playback_window_width = 6
enable_media_control = true
enable_streaming = "DaemonOnly"
enable_cover_image_cache = true
default_device = "RyanThinkpad"
[copy_command]
command = "wlcopy"
args = []
[notify_format]
summary = "{track} • {artists}"
body = "{album}"

View file

@ -0,0 +1,43 @@
(define-module (ryan-services spotify)
#:use-module (gnu packages)
#:use-module (gnu packages rust-apps)
#:use-module (gnu services)
#:use-module (gnu services configuration)
#:use-module (gnu home services)
#:use-module (gnu home services shepherd)
#:use-module (guix gexp))
(define (home-spotifyd-profile-service config)
(map specification->package
(list "spotifyd")))
(define (home-spotifyd-shepherd-service config)
;; spotifyd daemon
(list (shepherd-service
(requirement '(pipewire))
(provision '(spotifyd))
(stop #~(make-kill-destructor))
(start #~(make-forkexec-constructor
(list #$(file-append spotifyd "/bin/spotifyd")
"--volume-normalisation"
"-B320"
(format #f "--device-name=~a" (gethostname))
"--device-type=computer"
"--no-daemon")
#:log-file (string-append
(or (getenv "XDG_LOG_HOME")
(format #f "~a/.local/var/log"
(getenv "HOME")))
"/spotifyd.log"))))))
(define-public home-spotifyd-service-type
(service-type (name 'home-spotifyd)
(extensions
(list (service-extension
home-profile-service-type
home-spotifyd-profile-service)
(service-extension
home-shepherd-service-type
home-spotifyd-shepherd-service)))
(default-value #f)
(description "Provides spotifyd daemon in the background")))