musikcube
musikcube copied to clipboard
playerctl ( mpris ) does not work with musikcube on systemd-free distribution
I tried to use playerctl to control musikcube playback, but on Artix musikcube didn't provide any mpris interface.
Muiskcube mpris plugin supports libelogind
instead of libsystemd
but you need to replace it manually.
Installation of musikcube with mpris support on systemd-free distribution (originals of changed files will be saved as <filename>.<extention>.bak
):
-
Install musikcube from source:
git clone https://github.com/clangen/musikcube.git --recursive cd musikcube
-
Replace
libsystemd
requirement withlibelogind
:sed -i.bak 's/libsystemd/libelogind/g' src/plugins/mpris/CMakeLists.txt
optional:
sed -i.bak 's/libsystemd-dev/libelogind/g' script/install-deps.sh
-
Build according to this instruction: Install dependencies.
cmake -G "Unix Makefiles" . make
Troubleshooting:
3.1
itemListMap
Solution: replace
itemListMap
withitemMap
insrc/plugins/taglib_plugin/TaglibMetadataReader.cpp
:sed -i.bak 's/itemListMap/itemMap/g' src/plugins/taglib_plugin/TaglibMetadataReader.cpp make
3.2
<ncursesw/curses.h> / <ncursesw/panel.h>
Solution: According to the instruction "you should invoke CMake with the
-DNO_NCURSESW
flag as follows:cmake -DNO_NCURSESW .
instead of the more standardcmake .
", but it gives error:CMake Error: Parse error in command line argument: NO_NCURSESW Should be: VAR:type=value
so you should remove
ncursesw/
from#include
:sed -i.bak 's/ncursesw\///g' src/musikcube/cursespp/cursespp/curses_config.h make
After make
completed:
sudo make install
- After installation
libmpris.so
may not appear in/usr/local/share/musikcube/plugins
or/usr/share/musikcube/plugins
. In this case:sudo cp bin/plugins/libmpris.so /usr/local/share/musikcube/plugins sudo cp bin/plugins/libmpris.so /usr/share/musikcube/plugins reboot
You can check if mpris
plugin is running in musikcube
: settings>configure plugins
- it should contain string:
[x] MPRIS interface (libmpris.so) ...
That's it. I hope this helps someone. Also share improvements of my instruction if you faced any other issues.
It works, but you need to compile musikcube with specfic cmake flags. For openrc and other elogind related: -DUSE_ELOGIND=true
.
Some times ago I wrote ebuild for gentoo and it was adapted with another patch to make it link against ncurses better, thanks to some smart guys. You can see some useful stuff there . For example, if you need mpris, it depends on your service-system : if systemd , then don't add anything, because it's default, if elogind, add the mentioned flag, if basu (*BSD OSs), then another flag.
You can see the gentoo's ebuild here, for example: https://gpo.zugaina.org/AJAX/Ebuild/54112928/View