diff --git a/man/waybar-mpd.5.scd b/man/waybar-mpd.5.scd index 5bbc00a7..b8e96648 100644 --- a/man/waybar-mpd.5.scd +++ b/man/waybar-mpd.5.scd @@ -73,6 +73,22 @@ Addressed by *mpd* default: "MPD (disconnected)" ++ Tooltip information displayed when the MPD server can't be reached. +*artist-len*: ++ + typeof: integer ++ + Maximum length of the Artist tag. + +*album-len*: ++ + typeof: integer ++ + Maximum length of the Album tag. + +*album-artist-len*: ++ + typeof: integer ++ + Maximum length of the Album Artist tag. + +*title-len*: ++ + typeof: integer ++ + Maximum length of the Title tag. + *rotate*: ++ typeof: integer ++ Positive value to rotate the text label. diff --git a/src/modules/mpd/mpd.cpp b/src/modules/mpd/mpd.cpp index 98332dc0..6a828c3f 100644 --- a/src/modules/mpd/mpd.cpp +++ b/src/modules/mpd/mpd.cpp @@ -2,7 +2,7 @@ #include #include - +#include #include "modules/mpd/state.hpp" #if defined(MPD_NOINLINE) namespace waybar::modules { @@ -98,8 +98,8 @@ void waybar::modules::MPD::setLabel() { } auto format = format_; - - std::string artist, album_artist, album, title, date; + Glib::ustring artist, album_artist, album, title; + std::string date; int song_pos = 0, queue_length = 0; std::chrono::seconds elapsedTime, totalTime; @@ -143,6 +143,10 @@ void waybar::modules::MPD::setLabel() { std::string repeatIcon = getOptionIcon("repeat", repeatActivated); bool singleActivated = mpd_status_get_single(status_.get()); std::string singleIcon = getOptionIcon("single", singleActivated); + if (config_["artist-len"].isInt()) artist = artist.substr(0, config_["artist-len"].asInt()); + if (config_["album-artist-len"].isInt()) album_artist = album_artist.substr(0, config_["album-artist-len"].asInt()); + if (config_["album-len"].isInt()) album = album.substr(0, config_["album-len"].asInt()); + if (config_["title-len"].isInt()) title = title.substr(0,config_["title-len"].asInt()); try { label_.set_markup( @@ -171,10 +175,10 @@ void waybar::modules::MPD::setLabel() { : "MPD (connected)"; try { auto tooltip_text = fmt::format(tooltip_format, - fmt::arg("artist", artist), - fmt::arg("albumArtist", album_artist), - fmt::arg("album", album), - fmt::arg("title", title), + fmt::arg("artist", artist.raw()), + fmt::arg("albumArtist", album_artist.raw()), + fmt::arg("album", album.raw()), + fmt::arg("title", title.raw()), fmt::arg("date", date), fmt::arg("elapsedTime", elapsedTime), fmt::arg("totalTime", totalTime),