Elisa: Difference between revisions

From KDE Community Wiki
(add more runtime dependencies)
(Replace content with link to https://apps.kde.org/elisa, where everything really lives)
Tag: Replaced
 
(23 intermediate revisions by 9 users not shown)
Line 1: Line 1:
=== Elisa ===
See https://apps.kde.org/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 fulfilment 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.
 
== Current Interface ==
 
The following snapshots show the current interface. They are only indicative and everything is open for improvements.
 
[[File:Screenshot_20180128_093724.png|400px|thumb|left|Elisa Albums View]]
 
[[File:Screenshot_20180128_093738.png|400px|thumb|right|Elisa Artists View]]
 
[[File:Screenshot_20180128_094158.png|400px|thumb|left|Elisa Albums from an Artist View]]
 
[[File:Screenshot_20180128_093746.png|400px|thumb|right|Elisa Tracks View]]
 
[[File:Screenshot_20180128_094136.png|400px|thumb|left|Elisa Playlist]]
 
[[File:Screenshot_20180128_095041.png|400px|thumb|right|Search "trip" in Elisa Albums View]]
 
[[File:Screenshot_20180128_094315.png|400px|thumb|left|Elisa One Album View]]
 
[[File:Screenshot_20180128_095730.png|400px|thumb|right|Elisa All Albums View filtered by rating]]
 
Elisa is loosely following design mockups made by the Visual Design Group of KDE. The mockups can be found [https://community.kde.org/KDE_Visual_Design_Group/Music_Player here].
 
== 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/
 
== Get Involved ==
 
The Elisa team is open to any contributions and feedback.
 
Bugs can be reported to [https://bugs.kde.org/ bugs.kde.org].
 
Development can be followed on [https://phabricator.kde.org/project/view/193/ Phabricator].
Code contributions may also be submitted via Phabricator. Please follow the instructions of the [https://community.kde.org/Infrastructure/Phabricator Phabricator User Guide].
 
There is also a [https://mail.kde.org/mailman/listinfo/elisa Elisa mailing list] available for coordination.
 
== Compilation from source ==
=== on Linux ===
The way Elisa application is built is completely standard for an application based on Qt5, KDE Frameworks 5 and cmake:
 
; [[Guidelines and HOWTOs/Build_from_source| Build from source]]
 
Elisa has a few dependencies mainly from Qt5 and KF5. Currently the list is:
 
-- REQUIRED:
 
* Qt5Network
* Qt5Qml
* Qt5Quick
* Qt5Test
* Qt5Sql
* Qt5Multimedia
* Qt5Svg
* Qt5Gui
* Qt5Widgets
* Qt5QuickTest
* 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.
* Qt.labs.platform, Qt.labs module with some qml components wrapping platform APIs
* qml-module-qtqml-models2 (required version >= 5.9.0), qml Qt module
* qml-module-org-kde-kcm (required version >= 5.32.0), qml module from KF5 KDeclarative framework
* qml-module-qtquick-controls (required version >= 5.9.0), qml Qt module
* qml-module-qtquick-dialogs (required version >= 5.9.0), qml Qt module
* qml-module-qtquick-layouts (required version >= 5.9.0), qml Qt module
* qml-module-qtquick2 (required version >= 5.9.0), qml Qt module
 
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 qml-module-qt-labs-platform qml-module-qtqml-models2 qml-module-org-kde-kcm qml-module-qtquick-controls qml-module-qtquick-dialogs qml-module-qtquick-layouts qml-module-qtquick2
 
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, but beware that the following cannot always be undone (read the build instructions for more information). If you wish to do anyway, run
 
sudo make install
 
=== 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 ==
 
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 with a 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.

Latest revision as of 15:32, 23 July 2023