lektor mk7
A Karaoke player made to replace the old bash scripts on Sakura.
Table of content
- Building instructions
- Preparing karaokes for lektor
- How to use lektor
- Contributing
- MPD compatibility
Building the player
Prerequisites
- autotools, libtool, autoconf, automake, etc
- a C compiler with C11 support
- the sqlite3 development library, version 3.31.0 or newer for generated columns support
- a POSIX.1-2008 compatible system (i.e. not MS Windows)
For the module sdl2, you will need the folowing prerequisites:
For the module repo, you will need the folowing prerequisites:
- the libcurl developmemt library
To build Klkt, you will need:
- libnotify, the developement package
- glib-2.0, the developpement package
- qmake and Qt5 developpement libraries (Qt5Core Qt5Gui Qt5Network Qt5Widgets)
- don't forget the qt5dxcb-plugin (xcb plugin for qt5) when compiling
You will also need the following executables, with their path setted in the configuration file:
- mkvpropedit from mkvtoolnix
- the bourn shell again: bash
- the command line tool xxd, is distributed in the vim and gvim packages on archlinux, seems to be distributed in its own package on debian: xxd
If you use the configure with the --with-depends
option (needed on debian 10), you will need the
following dependencies:
- the curl command line utility. It can be replaced by the wget command line utility.
- the wget command line utility. Can be replaced by curl command line utility.
- the git command line utility
Note that because of the use of curl
and get
, building behind a proxy may be challenging.
If you are developping for lektor, you will need:
- the astyle command line utility, for a beautifull and uniform coding style.
If you are having problems build lektor (AC macros not defined), try copy the
.m4
files from/usr/share/aclocal
toconfig/m4
.
Building instructions
The manual way of installing and setting up lektor:
# Setup files, you can also change the default kara folder and database path
# in the config file.
sudo mkdir /home/kara && sudo chown USER:USER /home/kara
# Install, typical with libtool.
mkdir build && cd build && ../configure
make
sudo make install
# Config and run.
lektord
The recommended configure
command is the following:
../configure --prefix=$HOME/.local \ # To not need to sudo to install
--with-liblektor=static \ # One big executable
--enable-klkt \ # For desktop notifications
CC=clang CXX=clang++ # I prefer clang over gcc
The sqlite database and the config file will be created automatically if needed, i.e. on the first
run. If you are upgrading lektor, the config might not be correct. You can delete the config file
or use the lkt admin config
to generate the config file again.
Important note: Upgrading the config or the database scheme automatically is not supported yet. If you are experiencing weird things with lektord, please try first to delete the database and config and regenerate them. There are currently no way of doing a backup of playlists and stickers with lektor, this is WIP.
If you are using special modules or are compiling lektor without static modules, you may set their absolute path inside the lektor's config file.
To generate AppImages, add --enable-appimage
to the configure
line. Note
that the only supported distribution methode is AppImage.
Important note: if you are building using WSL,
lektord
will likely not launch, becauseXDG_RUNTIME_DIR
is not defined here. This folder is important, this is where most of your deamons are puttings theirs sockets and so. Blame Microsoft for that. A workaround is to export one:export XDG_RUNTIME_DIR=$(mktemp -d)
before launching lektord. Be aware that you will have issues with sound and videos becouse you will need to set up a X server...
Currently, supported compilers are:
icc
19.1.2.254 and above,gcc
8.3.0 and above,clang
7.0.1 and above. It compiles on debian, thus it must compiles on your system (apport from CentOS, because I never tested on it, and it no longer exists...).
Preparing a kara for lektor
The ideal way of populating lektor is using Kurisu. The update
and rescan
commands are here
for that. To import the favorites and playlists from Kurisu, use the import
command.
How to use lektor
Launch instructions
To run lektor, you can simply run the binary like: ./lektord
. If lektord did not exited normally
(i.e. without the lkt adm kill
command), the database will still store the fact that lektord is
running. To by-pass it, you will need to launch lektord with the -F
(forced) option, like lektord -F
.
It is not recommended to launch always lektord with the -F
option, because that way you could launch
multiple instances of the lektod daemon, which could results in undefined behaviours.
Lektor will use specialized software (hwdec set to yes), if you have an nvidia card with optimus (in
almose every laptop), please use optirun
or primusrun
: optirun ./lektord
How to send commands to lektor
Lektor is compatible with mpd, which means that you can use any client (only mpc is tested) to interact
with lektor. Some functions are not really compatible (somme work to be done) because mpc really
makes some assumptions. The ideal way is to use lkt
.
How to configure lektor
Lektor configuration is done with an INI file. Modules' configuration is also done by the same INI file using diferent sections. Lektor searches for the configuration file in that order:
$PWD/lektor.ini
- if
XDG_CONFIG_HOME
defined?$XDG_CONFIG_HOME/lektor/lektor.ini
:$HOME/.config/lektor/lektor.ini
/opt/lektor/lektor.ini
/usr/local/etc/lektor.ini
/etc/lektor.ini
To get the default config file, you can use the lkt adm conf
command. If no config file is found,
lektord will try to create the $HOME/.config/lektor/lektor.ini
config file with the default content.
Be aware that if the home directory or the XDG_CONFIG_HOME
are too long they will be ignored and
truncated. You may then get uncomprehensible errors.
Contributing
Please, refer to the CONTRIBUTING file.
MPD
Lektor is almost MPD compatible, at least it uses the same protocol, which can be gotten here. The full support for MPD clients (like mpc and ncmpc) is still WIP. For the MPD compatibility list, see the CONTRIBUTING file.