|
|
(12 intermediate revisions by 8 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.
| |
| | |
| == Release Plans ==
| |
| | |
| [[Elisa/ElisaReleaseSchedule|Release Schedules of Elisa]]
| |
| | |
| == Change Log of Stable Versions ==
| |
| | |
| [[Elisa/ChangeLog.0.2.0|Change Log of version 0.2.0]]
| |
| | |
| == 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 already exist. [https://community.kde.org/Guidelines_and_HOWTOs/Flatpak Flatpaks] for Elisa are available. There is an AUR and it is packaged for KDE neon Developer Unstable. The releases are usually packaged for [https://copr.fedorainfracloud.org/coprs/eclipseo/elisa/ Fedora]
| |
| | |
| 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/tag/elisa/ Elisa tasks board].
| |
| Code contributions have to be submitted via [https://invent.kde.org/kde/elisa Gitlab]. You can follow generic user instruction for Gitlab and a merge request workflow.
| |
| | |
| We are in a transition from Phabricator to Gitlab. During the transitions, merge requests have to be sent via Gitlab when tasks are still handled by Phabricator.
| |
| | |
| 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.
| |
| | |
| ; [[Get Involved/development#Applications]]
| |
| | |
| Elisa has a few dependencies mainly from Qt5 and KF5 with the minimum required versions being Qt 5.10 and KDE Frameworks 5.45. Currently the list is:
| |
| | |
| -- REQUIRED:
| |
| | |
| * Qt5Network
| |
| * Qt5Qml
| |
| * Qt5Quick
| |
| * Qt5Test
| |
| * Qt5Sql
| |
| * Qt5Multimedia
| |
| * Qt5Svg
| |
| * Qt5Gui
| |
| * Qt5Widgets
| |
| * Qt5QuickTest
| |
| * Qt5Concurrent
| |
| * Qt5 (required version >= 5.10.0)
| |
| * Qt5QuickControls2 (required version >= 5.10.0), Qt5 Quick Controls version 2 is needed at runtime to provide the interface.
| |
| * KF5Kirigami2 (required version >= 5.48.0), KF5 Kirigami 2 is needed to provide the mobile UI components.
| |
| * Gettext
| |
| * KF5I18n (required version >= 5.48.0), KF5 text internationalization library.
| |
| * KF5CoreAddons (required version >= 5.48.0), Qt addon library with a collection of non-GUI utilities.
| |
| * KF5Config (required version >= 5.48.0), Persistent platform-independent application settings.
| |
| * ECM (required version >= 1.6.0)
| |
| * Qt5Core
| |
| | |
| -- RECOMMENDED:
| |
| | |
| * KF5Declarative (required version >= 5.48.0), Integration of QML and KDE work spaces.
| |
| * KF5Baloo (required version >= 5.48.0), Baloo provides file searching and indexing.
| |
| * KF5FileMetaData (required version >= 5.48.0), Provides a simple library for extracting metadata.
| |
| * KF5XmlGui (required version >= 5.48.0), Framework for managing menu and toolbar actions.
| |
| * KF5ConfigWidgets (required version >= 5.48.0), Widgets for configuration dialogs.
| |
| * KF5KCMUtils (required version >= 5.48.0), KF5 Utilities for KDE System Settings modules library.
| |
| * KF5Package (required version >= 5.48.0), KF5 package management library needed to get the configuration dialogs.
| |
| * KF5KIO (required version >= 5.48.0), File management libraries used for file browsing.
| |
| * LIBVLC, libvlc allows to play music in Elisa, <https://www.videolan.org/vlc/libvlc.html>
| |
| | |
| -- OPTIONAL:
| |
| | |
| * Qt5DBus (required version >= 5.10.0), Qt5 DBus is needed to provide MPris2 interface to allow remote control by the desktop workspace.
| |
| * KF5DocTools (required version >= 5.48.0), Create documentation from DocBook library.
| |
| * KF5Crash (required version >= 5.48.0), Graceful handling of application crashes.
| |
| * KF5DBusAddons (required version >= 5.48.0), Convenience classes for D-Bus.
| |
| * PkgConfig
| |
| | |
| -- RUNTIME:
| |
| | |
| * Qt5QuickWidgets (required version >= 5.9.0), Qt5 Quick Widgets 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:
| |
| | |
| sudo apt 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/bin/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 Android ===
| |
| | |
| It is now possible to build a very simple application based on Elisa on Android.
| |
| | |
| cmake .. -G Ninja -DCMAKE_SYSTEM_VERSION=19 -DCMAKE_INSTALL_PREFIX=<workspace>/androidRoot -DCMAKE_ANDROID_NDK=<workspace>/Android/Sdk/ndk-bundle -DCMAKE_TOOLCHAIN_FILE=<workspace>/androidRoot/share/ECM/toolchain/Android.cmake -DECM_ADDITIONAL_FIND_ROOT_PATH="<workspace>/Qt/5.11.1/android_armv7;<workspace>/androidRoot;<workspace>/Android/Sdk/ndk-bundle/platforms/android-19/arch-arm/usr/lib" -DKF5_HOST_TOOLING=/usr/lib/x86_64-linux-gnu/cmake -DQTANDROID_EXPORTED_TARGET=elisa -DANDROID_APK_DIR=../data
| |
| | |
| === 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.
| |