Elisa: Difference between revisions
m (typo) |
(add vision, update build instructions) |
||
Line 1: | Line 1: | ||
=== Elisa === | === Elisa === | ||
Elisa is a | Elisa is a music player developed by the KDE community that strives to be | ||
simple and nice to use. We also recognize that we need a flexible product to | |||
account for the different workflows and use-cases of our users. | |||
We focus on a very good integration with the Plasma desktop of the KDE | |||
community without compromising the support for other platforms (other Linux | |||
desktop environments, Windows and Android). | |||
We are creating a reliable product that is a joy to use and respects our users | |||
privacy. As such, we will prefer to support online services where users are in | |||
control of their data. | |||
== Goals == | |||
Elisa is still in heavy development and aims to implement the following goals: | |||
* being easy to setup (ideally, one would not setup anything before being able to use it) ; | |||
* being fully usable offline (or in privacy mode) ; | |||
* being open to leverage online services but not a development priority (the experience should not be degraded when you are offline) ; | |||
* being focused on satisfying users' goals ; | |||
* being focused on music player (managing your music collection is not a development priority). This means that it is not a direct fulfillment for people needing that. This seems that a dedicated application would be more appropriate ; | |||
* being as much as possible bug free (meaning stability has higher priority than feature development) ; | |||
* targets Linux Plasma Workspace, other Linux desktop environments, Android and Windows ; | |||
* being able to leverage UPnP DLNA. | |||
== Try It == | == Try It == | ||
Some packages | Some packages are already available. There is an AUR for Elisa and it is packaged for KDE neon Developer Unstable. | ||
You can obtain Windows builds from https://binary-factory.kde.org/job/elisa-master-win32/ | |||
== Compilation from source == | == Compilation from source on Linux == | ||
Elisa has a few dependencies mainly from Qt5 and KF5. Currently the list is: | Elisa has a few dependencies mainly from Qt5 and KF5. Currently the list is: | ||
* | -- REQUIRED: | ||
* | |||
* | * Qt5Network | ||
* | * Qt5Qml | ||
* | * Qt5Quick | ||
* | * Qt5Test | ||
* | * Qt5Sql | ||
* | * Qt5Multimedia | ||
* Qt5 | * Qt5Svg | ||
* | * Qt5Gui | ||
* KF5 | * Qt5Widgets | ||
* | * Qt5 (required version >= 5.9.0) | ||
* | * ECM (required version >= 5.32.0) | ||
* | * Qt5Core | ||
* | * Gettext | ||
* KF5: | * PythonInterp | ||
* | * KF5I18n (required version >= 5.32.0), KF5 text internationalization library. | ||
* | * KF5CoreAddons (required version >= 5.32.0), Qt addon library with a collection of non-GUI utilities. | ||
* | * KF5FileMetaData (required version >= 5.32.0), Provides a simple library for extracting metadata. | ||
* | * KF5Config (required version >= 5.32.0), Persistent platform-independent application settings. | ||
* | |||
-- RECOMMENDED: | |||
* KF5Declarative (required version >= 5.32.0), Integration of QML and KDE work spaces. | |||
* KF5Baloo (required version >= 5.32.0), Baloo provides file searching and indexing. | |||
* KF5XmlGui (required version >= 5.32.0), Framework for managing menu and toolbar actions. | |||
* KF5ConfigWidgets (required version >= 5.32.0), Widgets for configuration dialogs. | |||
* KF5KCMUtils (required version >= 5.32.0), KF5 Utilities for KDE System Settings modules library. | |||
* KF5Package (required version >= 5.32.0), KF5 package management library needed to get the configuration dialogs. | |||
-- OPTIONAL: | |||
* Qt5DBus (required version >= 5.9.0), Qt5 DBus is needed to provide MPris2 interface to allow remote control by the desktop workspace. | |||
* KF5DocTools (required version >= 5.39.0), Create documentation from DocBook library. | |||
* KF5Crash (required version >= 5.32.0), Graceful handling of application crashes. | |||
* KF5DBusAddons (required version >= 5.32.0), Convenience classes for D-Bus. | |||
* UPNPQT, UPNP layer build with Qt 5., <https://gitlab.com/homeautomationqt/upnp-player-qt> | |||
-- RUNTIME: | |||
* Qt5QuickWidgets (required version >= 5.9.0), Qt5 Quick Widgets is needed at runtime to provide the interface. | |||
* Qt5QuickControls2 (required version >= 5.9.0), Qt5 Quick Controls version 2 is needed at runtime to provide the interface. | |||
For example on Debian and derivatives you may use: | For example on Debian and derivatives you may use: | ||
apt-get install qtbase5-dev qtmultimedia5-dev qtdeclarative5-dev libqt5svg5-dev libkf5i18n-dev libkf5filemetadata-dev baloo-kf5-dev libkf5config-dev libkf5kcmutils-dev libkf5declarative-dev libkf5coreaddons-dev libkf5doctools-dev libkf5xmlgui-dev libkf5crash-dev libkf5dbusaddons-dev | apt-get install qtbase5-dev qtmultimedia5-dev qtdeclarative5-dev libqt5svg5-dev libkf5i18n-dev libkf5filemetadata-dev baloo-kf5-dev libkf5config-dev libkf5kcmutils-dev libkf5declarative-dev libkf5coreaddons-dev libkf5doctools-dev libkf5xmlgui-dev libkf5crash-dev libkf5dbusaddons-dev extra-cmake-modules gettext | ||
The way Elisa application is built is completely standard for an application based on Qt5, KDE Frameworks 5 and cmake: | The way Elisa application is built is completely standard for an application based on Qt5, KDE Frameworks 5 and cmake: | ||
Line 41: | Line 82: | ||
The next state is to get Elisa sources and build them: | The next state is to get Elisa sources and build them: | ||
git clone https://anongit.kde.org/elisa.git | |||
cd elisa | |||
mkdir build | |||
cd build | |||
cmake .. | |||
make | |||
You can execute it with the following command: | |||
./elisa/build/src/elisa | |||
You may also now install Elisa system wide by running | |||
sudo make install | |||
== Compilation from source on Windows == | |||
Windows is built using the Craft build system. Please follow instruction | |||
; [[Craft#Setting_up_Craft| Setting up of Craft]] | |||
and enter | |||
craft elisa | |||
in the Windows PowerShell to download and compile all required dependencies and Elisa itself. | |||
== Design Open Questions == | == Design Open Questions == | ||
Line 79: | Line 119: | ||
== Description of the Application Architecture == | == Description of the Application Architecture == | ||
Currently music is retrieved from Baloo and put in an SQLite memory database. | Currently music is retrieved from Baloo and put in an SQLite memory database. A local file indexer can be used in addition or when Baloo is not available | ||
The user interface is done in qml with Qt | The user interface is done in qml with Qt Quick Controls 1 and 2. A port to Qt Quick Controls 2 only is slated for the future. | ||
The UPnP support is probably broken right now. | The UPnP support is probably broken right now. |
Revision as of 19:52, 17 January 2018
Elisa
Elisa is a music player developed by the KDE community that strives to be simple and nice to use. We also recognize that we need a flexible product to account for the different workflows and use-cases of our users. We focus on a very good integration with the Plasma desktop of the KDE community without compromising the support for other platforms (other Linux desktop environments, Windows and Android). We are creating a reliable product that is a joy to use and respects our users privacy. As such, we will prefer to support online services where users are in control of their data.
Goals
Elisa is still in heavy development and aims to implement the following goals:
- being easy to setup (ideally, one would not setup anything before being able to use it) ;
- being fully usable offline (or in privacy mode) ;
- being open to leverage online services but not a development priority (the experience should not be degraded when you are offline) ;
- being focused on satisfying users' goals ;
- being focused on music player (managing your music collection is not a development priority). This means that it is not a direct fulfillment for people needing that. This seems that a dedicated application would be more appropriate ;
- being as much as possible bug free (meaning stability has higher priority than feature development) ;
- targets Linux Plasma Workspace, other Linux desktop environments, Android and Windows ;
- being able to leverage UPnP DLNA.
Try It
Some packages are already available. There is an AUR for Elisa and it is packaged for KDE neon Developer Unstable. You can obtain Windows builds from https://binary-factory.kde.org/job/elisa-master-win32/
Compilation from source on Linux
Elisa has a few dependencies mainly from Qt5 and KF5. Currently the list is: -- REQUIRED:
* Qt5Network * Qt5Qml * Qt5Quick * Qt5Test * Qt5Sql * Qt5Multimedia * Qt5Svg * Qt5Gui * Qt5Widgets * Qt5 (required version >= 5.9.0) * ECM (required version >= 5.32.0) * Qt5Core * Gettext * PythonInterp * KF5I18n (required version >= 5.32.0), KF5 text internationalization library. * KF5CoreAddons (required version >= 5.32.0), Qt addon library with a collection of non-GUI utilities. * KF5FileMetaData (required version >= 5.32.0), Provides a simple library for extracting metadata. * KF5Config (required version >= 5.32.0), Persistent platform-independent application settings.
-- RECOMMENDED:
* KF5Declarative (required version >= 5.32.0), Integration of QML and KDE work spaces. * KF5Baloo (required version >= 5.32.0), Baloo provides file searching and indexing. * KF5XmlGui (required version >= 5.32.0), Framework for managing menu and toolbar actions. * KF5ConfigWidgets (required version >= 5.32.0), Widgets for configuration dialogs. * KF5KCMUtils (required version >= 5.32.0), KF5 Utilities for KDE System Settings modules library. * KF5Package (required version >= 5.32.0), KF5 package management library needed to get the configuration dialogs.
-- OPTIONAL:
* Qt5DBus (required version >= 5.9.0), Qt5 DBus is needed to provide MPris2 interface to allow remote control by the desktop workspace. * KF5DocTools (required version >= 5.39.0), Create documentation from DocBook library. * KF5Crash (required version >= 5.32.0), Graceful handling of application crashes. * KF5DBusAddons (required version >= 5.32.0), Convenience classes for D-Bus. * UPNPQT, UPNP layer build with Qt 5., <https://gitlab.com/homeautomationqt/upnp-player-qt>
-- RUNTIME:
* Qt5QuickWidgets (required version >= 5.9.0), Qt5 Quick Widgets is needed at runtime to provide the interface. * Qt5QuickControls2 (required version >= 5.9.0), Qt5 Quick Controls version 2 is needed at runtime to provide the interface.
For example on Debian and derivatives you may use:
apt-get install qtbase5-dev qtmultimedia5-dev qtdeclarative5-dev libqt5svg5-dev libkf5i18n-dev libkf5filemetadata-dev baloo-kf5-dev libkf5config-dev libkf5kcmutils-dev libkf5declarative-dev libkf5coreaddons-dev libkf5doctools-dev libkf5xmlgui-dev libkf5crash-dev libkf5dbusaddons-dev extra-cmake-modules gettext
The way Elisa application is built is completely standard for an application based on Qt5, KDE Frameworks 5 and cmake:
The next state is to get Elisa sources and build them:
git clone https://anongit.kde.org/elisa.git cd elisa mkdir build cd build cmake .. make
You can execute it with the following command:
./elisa/build/src/elisa
You may also now install Elisa system wide by running
sudo make install
Compilation from source on Windows
Windows is built using the Craft build system. Please follow instruction
and enter
craft elisa
in the Windows PowerShell to download and compile all required dependencies and Elisa itself.
Design Open Questions
The design of Elisa currently leaves open questions about the direction. At least the following points need an identified solution that could be implemented:
- Implement User Centered Design to help guide the development (definition of persona, ...) ;
- trying to combine an interface to be used with the mouse and with the touchscreen commonly found on laptops ;
- how to decide what is done by single click, double click or single long click.
Description of the Application Architecture
Currently music is retrieved from Baloo and put in an SQLite memory database. A local file indexer can be used in addition or when Baloo is not available
The user interface is done in qml with Qt Quick Controls 1 and 2. A port to Qt Quick Controls 2 only is slated for the future.
The UPnP support is probably broken right now.
Current Interface
The following snapshots show the current interface. They are only indicative and everything is open for improvements.