|
|
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:
| |
| | |
| * Easy to setup (ideally, one would not setup anything before being able to use it);
| |
| * Fully usable offline (or in privacy mode);
| |
| * Open to leverage online services but not a development priority (the experience should not be degraded when you are offline);
| |
| * Focused on satisfying users' goals;
| |
| * 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;
| |
| * As bug-free as possible (meaning stability has higher priority than feature development);
| |
| * Targets Linux Plasma Workspace, other Linux desktop environments, Android and Windows;
| |
| * Able to leverage UPnP DLNA.
| |
| | |
| | |
| == Release Plans ==
| |
| Elisa uses the KDE Applications Release Service. See [[Schedules]] for more information.
| |
| | |
| | |
| == User Interface ==
| |
| | |
| The following snapshots show the current user interface. Elisa is loosely following design mockups made by KDE's Visual Design Group, which can be found [https://community.kde.org/KDE_Visual_Design_Group/Music_Player here].
| |
| | |
| | |
| == Try It ==
| |
| [[File:Elisa_albums_view.png|400px|thumb|right|Albums View]]
| |
| | |
| [[File:Elisa_artists_view.png|400px|thumb|right|Artists View]]
| |
| | |
| <!--[[File:Elisa_artists_view.png|400px|thumb|right|Albums from an Artist View]]-->
| |
| | |
| [[https://community.kde.org/File:Elisa_tracks_view.png|400px|thumb|right|Tracks View]]
| |
| | |
| [[File:Elisa_now_playing_view.png|400px|thumb|right|"Now Playing" view]]
| |
| | |
| [[File:Elisa_search_view.png|400px|thumb|right|Search view]]
| |
| | |
| [[File:Elisa_album_view.png|400px|thumb|right|One Album View]]
| |
| | |
| | |
| Elisa is available on Linux in many different ways, and there's a build for Windows as well!
| |
| It's also possible to compile Elisa from source for Linux, Windows and Android.
| |
| | |
| === Flatpak ===
| |
| Flathub setup:
| |
| | |
| flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
| |
| | |
| Flatpak install:
| |
| | |
| flatpak install flathub org.kde.elisa
| |
| | |
| === Ubuntu 19.10 Eoan Ermine/20.04 Focal Fossa ===
| |
| Elisa is available in the repositories starting from Ubuntu 19.10. You can install it by running:
| |
| | |
| sudo apt install elisa
| |
| | |
| === Debian Bullseye Testing/Sid Unstable ===
| |
| Elisa is available in the repositories starting from current Debian Testing. You can install it by running:
| |
| | |
| sudo apt install elisa
| |
| <!--Extra space for alignment-->
| |
| | |
| | |
| === KDE neon ===
| |
| Elisa is available in the repositories by default. You can install it by running:
| |
| | |
| pkcon install elisa
| |
| | |
| === openSUSE ===
| |
| openSUSE ships Elisa for both Leap and Tumbleweed. You can install it by running:
| |
| | |
| sudo zypper install elisa
| |
| | |
| Elisa is also available through community repositories in differing versions. See https://software.opensuse.org/package/elisa .
| |
| | |
| <!--Fedora
| |
| Gotta verify if it's available through the repos-->
| |
| === Solus ===
| |
| Solus ships Elisa by default in their [https://getsol.us/download Plasma edition].
| |
| | |
| You can install it by running:
| |
| | |
| sudo eopkg install elisa
| |
| | |
| === Arch Linux ===
| |
| Elisa can be found both as a package available through Arch Linux' default repository and through the AUR.
| |
| | |
| You can install it from the repositories by running:
| |
| | |
| sudo pacman -S elisa
| |
| | |
| And for the AUR, with the recommended yay AUR helper:
| |
| | |
| yay -S elisa-git
| |
| | |
| === Windows ===
| |
| Elisa is available for free through the Microsoft Store: https://www.microsoft.com/en-us/p/elisa/9pb5md7zh8tl
| |
| | |
| It's also possible to download an .exe file for Elisa directly from KDE's binary factory: https://binary-factory.kde.org/job/Elisa_Release_win64/
| |
| <!--The following newlines serve to align the text with the images-->
| |
| | |
| == 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.11 and KDE Frameworks 5.60. Currently the list is:
| |
| | |
| -- REQUIRED:
| |
| | |
| * Qt5Network
| |
| * Qt5Qml
| |
| * Qt5Quick
| |
| * Qt5Test
| |
| * Qt5Sql
| |
| * Qt5Multimedia
| |
| * Qt5Svg
| |
| * Qt5Gui
| |
| * Qt5Widgets
| |
| * Qt5QuickTest
| |
| * Qt5Concurrent
| |
| * Qt5 (required version >= 5.11.0)
| |
| * Qt5QuickControls2 (required version >= 5.11.0), Qt5 Quick Controls version 2 is needed at runtime to provide the interface.
| |
| * KF5Kirigami2 (required version >= 5.60.0), KF5 Kirigami 2 is needed to provide the mobile UI components.
| |
| * Gettext
| |
| * KF5I18n (required version >= 5.60.0), KF5 text internationalization library.
| |
| * KF5CoreAddons (required version >= 5.60.0), Qt addon library with a collection of non-GUI utilities.
| |
| * KF5Config (required version >= 5.60.0), Persistent platform-independent application settings.
| |
| * ECM (required version >= 1.6.0)
| |
| * Qt5Core
| |
| | |
| -- RECOMMENDED:
| |
| | |
| * KF5Declarative (required version >= 5.60.0), Integration of QML and KDE work spaces.
| |
| * KF5Baloo (required version >= 5.60.0), Baloo provides file searching and indexing.
| |
| * KF5FileMetaData (required version >= 5.60.0), Provides a simple library for extracting metadata.
| |
| * KF5XmlGui (required version >= 5.60.0), Framework for managing menu and toolbar actions.
| |
| * KF5ConfigWidgets (required version >= 5.60.0), Widgets for configuration dialogs.
| |
| * KF5KCMUtils (required version >= 5.60.0), KF5 Utilities for KDE System Settings modules library.
| |
| * KF5Package (required version >= 5.60.0), KF5 package management library needed to get the configuration dialogs.
| |
| * KF5KIO (required version >= 5.60.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.11.0), Qt5 DBus is needed to provide MPris2 interface to allow remote control by the desktop workspace.
| |
| * KF5DocTools (required version >= 5.60.0), Create documentation from DocBook library.
| |
| * KF5Crash (required version >= 5.60.0), Graceful handling of application crashes.
| |
| * KF5DBusAddons (required version >= 5.60.0), Convenience classes for D-Bus.
| |
| * PkgConfig
| |
| | |
| -- RUNTIME:
| |
| | |
| * Qt5QuickWidgets (required version >= 5.11.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.11.0), qml Qt module
| |
| * qml-module-org-kde-kcm (required version >= 5.60.0), qml module from KF5 KDeclarative framework
| |
| * qml-module-qtquick-controls (required version >= 5.11.0), qml Qt module
| |
| * qml-module-qtquick-dialogs (required version >= 5.11.0), qml Qt module
| |
| * qml-module-qtquick-layouts (required version >= 5.11.0), qml Qt module
| |
| * qml-module-qtquick2 (required version >= 5.11.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.
| |
| | |
| | |
| == 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/multimedia/elisa GitLab]. You can follow [https://community.kde.org/Infrastructure/GitLab generic user instructions for GitLab and a merge request workflow].
| |
| | |
| We are in a transition from Phabricator to GitLab. During this transition, merge requests have to be sent via GitLab while tasks are still handled by Phabricator.
| |
| | |
| There is also an [https://mail.kde.org/mailman/listinfo/elisa Elisa mailing list] available for coordination.
| |
| | |
| | |
| == Open Design 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 ;
| |
| | |
| | |
| == 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 QtQuick Controls 2.
| |
| | |
| UPnP support is broken right now.
| |