Elisa: Difference between revisions

From KDE Community Wiki
(add vision, update build instructions)
(Replace content with link to https://apps.kde.org/elisa, where everything really lives)
Tag: Replaced
 
(40 intermediate revisions by 10 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 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:
 
; [[Guidelines and HOWTOs/Build_from_source| Build from source]]
 
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 ==
 
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.
 
[[File:Filter_rating_allalbums_Screenshot_20170326_230514.png|400px|thumb|left|Filter All Albums View by Rating]]
 
[[File:elisa_header_20170221_225733.png|400px|thumb|left|Elisa New Header]]
 
[[File:ElisaPlayListScreenshot_20161209_172455.png|400px|thumb|left|Elisa Playlist]]
 
[[File:ElisaAlbumViewScreenshot_20161209_172517.png|400px|thumb|left|Elisa Albums View Filtered]]
 
[[File:ElisaOneAlbumScreenshot_20161209_172542.png|400px|thumb|left|Elisa One Album View]]
 
[[File:ElisaAllArtistsScreenshot_20161209_172623.png|400px|thumb|left|Elisa Artists View]]
 
[[File:ElisaAlbumsFromArtistScreenshot_20161209_172641.png|400px|thumb|left|Elisa All Albums from an Artist View]]

Latest revision as of 15:32, 23 July 2023