MprisCustomHud
(Только для Linux) Дополнение Mpris для отображения информации о музыке для CustomHud и Hudder
- Загрузчики
- Fabric
- Скачиваний на Modrinth
- 2,5 тыс.
- Подписчиков на Modrinth
- 5
- версии
- 53
- Обновлён
- 15 сентября 202615 сент.
- Опубликован
- в 2025
Коротко о моде
Ставится только в игру; на сервер ставить не нужно
MprisCustomHud
Важно
Описание
Переменные для CustomHud и Hudder, показывающие текущую играющую музыку через Mpris DBus Spec.
Доступно для всех версий, для которых есть CustomHud v4!
Работает с Hudder 8.x, 9.x на версии 1.21.9/10 и 10.x для версии 1.21.11/26.1.x
Сильно вдохновлён Hudify, так что спасибо за работу Lightningtow ig :)
Примечание
- Не все переменные обязаны/будут заполнены плеером/музыкальным приложением
Общие переменные
| Имя | Тип | Описание |
|---|---|---|
mpris_busname | String | busname |
mpris_track | String | название трека |
mpris_trackid | String | уникальный mpris id трека (в основном для отладки) |
mpris_album | String | название альбома, из которого трек |
mpris_repeat | String | статус повтора - "None", "Track" или "Playlist" |
mpris_artist | String | имя первого исполнителя, приходящего из mpris |
mpris_name | String | красивое имя плеера из атрибута Identity в org.mpris.MediaPlayer2 |
mpris_lyrics | String | xesam:asText |
mpris_created_at | String | xesam:contentCreated |
mpris_first_played | String | xesam:firstUsed |
mpris_last_played | String | xesam:lastUsed |
mpris_art_url | String | xesam:artUrl |
mpris_url | String | xesam:url |
mpris_shuffle | Boolean | включён ли шаффл |
mpris_playing | Boolean | играет ли песня или она на паузе/остановлена |
mpris_exists | Boolean | настоящий ли текущий трек или это заглушка |
mpris_has_album_art | Boolean | есть ли у трека обложка альбома/загружена ли она |
mpris_data_age | Number | возраст информации о метаданных (трек, trackid, альбом, исполнитель, исполнители, длительность, ...) в миллисекундах |
mpris_progress | Number | прогресс в миллисекундах |
mpris_duration | Number | длительность трека в миллисекундах |
mpris_rate | Number | скорость/темп воспроизведения музыки как число с плавающей точкой |
mpris_volume | Number | громкость воспроизведения музыки как число с плавающей точкой (обычно между 0 и 1) |
mpris_bpm | Number | xesam:audioBPM |
mpris_disc | Number | xesam:discNumber |
mpris_number | Number | xesam:trackNumber |
mpris_times_played | Number | xesam:useCount |
mpris_auto_rating | Number | xesam:autoRating |
mpris_user_rating | Number | xesam:userRating |
mpris_album_width | Number | абсолютная ширина обложки альбома в пикселях |
mpris_album_height | Number | абсолютная высота обложки альбома в пикселях |
mpris_album_color | Number | rgb-значение доминирующего цвета обложки альбома |
mpris_artists | List of String | список исполнителей для текущего плеера |
| mpris_album_artists | List of String | xesam:albumArtist для текущего плеера | | mpris_comments | List of String | xesam:comment для текущего плеера | | mpris_composers | List of String | xesam:composer для текущего плеера | | mpris_genres | List of String | xesam:genre для текущего плеера | | mpris_lyricists | List of String | xesam:lyricist для текущего плеера |
Особенности CustomHud
- Насколько я могу судить, сделать список в виде поля/атрибута не так-то просто, так что здесь есть только списки для текущего плеера
- Все переменные типа String либо не пустые, либо
null - У списков в качестве префикса по умолчанию (для итерации) используются первые четыре буквы имени переменной после
mpris_ - Объекты PlayerInfo имеют в качестве полей все общие переменные +
mpris_album_artс убранным префиксомmpris_
| Имя | Тип/Использование | Описание |
|---|---|---|
mpris_player | `{mpris_player:}или{mpris_player::}` | открывает доступ к полям объекта PlayerInfo; player может быть полным busname или только последней частью |
mpris_players | Список объектов вроде PlayerInfo | просто список активных на данный момент объектов PlayerInfo (те же ``, что и выше) |
mpris_album_art | Icon | рисует на экране изображение обложки альбома текущего плеера |
Подробности о переменных `xesam:иmpris:` смотрите на https://www.freedesktop.org/wiki/Specifications/mpris-spec/metadata.
Особенности Hudder
Переменные
| Имя | Тип | Описание |
|---|---|---|
has_mpris | Boolean | всегда true |
mpris_player | Object/PlayerInfo | объект PlayerInfo выбранного на данный момент плеера или null |
mpris_players | List<PlayerInfo> | список отслеживаемых на данный момент плееров |
Функции/Методы
| Имя | Аргументы | Эффект |
|---|---|---|
mpris_player | String name | возвращает объект PlayerInfo с bus name `org.mpris.MediaPlayer2.илиnull` |
mpris_album_art | String name или AlbumArt albumArt, int x, int y, int width, int height | рисует изображение обложки альбома; если у трека нет обложки, рисует запасную; если width или height равен 0, сохраняется исходное соотношение сторон; если оба равны 0, используются размеры в пикселях (слишком уж большие, лол) |
Объекты
PlayerInfo:
String busname- имя шиныString name- имя игрокаString repeat- статус повтора - см.mpris_repeatboolean shuffle- статус перемешиванияboolean playing- играет ли музыкаdouble rate- скорость воспроизведения музыкиdouble volume- громкость воспроизведения музыки (обычно от 0 до 1)Metadata metadata- метаданныеlong progress()- возвращает текущий прогресс (в мс)
Metadata:
String track- текущий трек -xesam:titleString trackid- id текущего трека -mpris:trackidString album- текущий альбом -xesam:albumString artist- первый исполнительString art_url-mpris:artUrlString lyrics-xesam:asTextString created_at-xesam:contentCreatedString first_played-xesam:firstUsedString last_played-xesam:lastUsedString url-xesam:url- `List artists
- все исполнители -xesam:artist` - `List album_artists
-xesam:albumArtist` - `List comments
-xesam:comment` - `List composers
-xesam:composer` - `List genres
-xesam:genre` - `List lyricists
-xesam:lyricist` int bpm-xesam:audioBPMint disc-xesam:discNumberint number-xesam:trackNumberint times_played-xesam:useCountfloat auto_rating-xesam:autoRatingfloat user_rating-xesam:userRatinglong duration- длительность текущего трека (в мс)AlbumArt album_art- информация об обложке альбомаlong data_age()- возвращает возраст объекта (в мс)
AlbumArt:
int width- ширина в пикселяхint height- высота в пикселяхint color- rgb-значение доминирующего цвета обложки альбомаboolean exists()- существует ли объект для реального изображения или запасного
Управление
Есть привязки клавиш для воспроизведения/паузы, следующего, предыдущего, обновления и переключения между активными плеерами, и у всех есть соответствующие команды.
Настройка
По умолчанию плеер выбирается из активных. Чтобы переключаться между текущими активными, используйте команду mpriscustomhud cycle (работает только если onlyPreferred отключён (по умолчанию)).
Вы можете выбрать плеер, которому отдаёте предпочтение перед другими, с помощью `mpriscustomhud preferred `, чтобы он всегда отображался, если активен.
Если вы не хотите видеть другие плееры (только предпочтительный), используйте mpriscustomhud onlyPreferred true. В результате ни один плеер не будет выбран, если вы не задали предпочтительный.
С mpriscustomhud player вы получаете текущий активный плеер, с mpriscustomhud onlyPreferred и mpriscustomhud preferred — значения для этого, а с mpriscustomhud refresh вы можете обновить переменные.
Примечание о Flatpak
- когда вы запускаете Minecraft в песочнице Flatpak, вам нужно добавить
org.mpris.MediaPlayer2.*в список общеизвестных имён сессионной шины, с которыми может общаться ваш лаунчер, например с помощью Flatseal
Проблемы/Todo
сейчас нет переменной обложки альбома; возможно, я попробую добавить её когда-нибудьсделано
Используемые библиотеки
- Улучшенная версия библиотеки java DBus, предоставленной freedesktop.org https://dbus.freedesktop.org/doc/dbus-java
Лицензия
Этот мод лицензирован под MIT License
Частые вопросы
Как установить MprisCustomHud?
Установите Fabric под свою версию Minecraft, скачайте MprisCustomHud под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть MprisCustomHud?
У MprisCustomHud есть сборки для Minecraft 1.20.4–26.3.
Нужен ли MprisCustomHud на сервере?
Ставится только в игру; на сервер ставить не нужно