{"id":14235519,"url":"https://github.com/lirios/shell","last_synced_at":"2025-08-11T00:31:47.787Z","repository":{"id":38361764,"uuid":"63376422","full_name":"lirios/shell","owner":"lirios","description":":shell: Convergent shell for desktops, phones and tables built with QtQuick, Wayland and Material Design","archived":false,"fork":false,"pushed_at":"2024-02-11T14:16:13.000Z","size":9796,"stargazers_count":239,"open_issues_count":35,"forks_count":14,"subscribers_count":19,"default_branch":"develop","last_synced_at":"2025-06-04T17:11:38.621Z","etag":null,"topics":["compositor","convergence","desktop","hacktoberfest","material-design","mobile","phone","qml","qt","qt-quick","tablet","wayland"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lirios.png","metadata":{"funding":{"custom":["https://www.paypal.me/plfiorini"]},"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.GPLv3","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.md","dei":null}},"created_at":"2016-07-14T23:28:39.000Z","updated_at":"2025-06-03T07:34:06.000Z","dependencies_parsed_at":"2023-12-13T22:37:02.058Z","dependency_job_id":"a8ce13ba-d5f4-4836-b304-57a26bcaebcb","html_url":"https://github.com/lirios/shell","commit_stats":null,"previous_names":[],"tags_count":30,"template":false,"template_full_name":null,"purl":"pkg:github/lirios/shell","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lirios%2Fshell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lirios%2Fshell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lirios%2Fshell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lirios%2Fshell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lirios","download_url":"https://codeload.github.com/lirios/shell/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lirios%2Fshell/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269813555,"owners_count":24479340,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-10T02:00:08.965Z","response_time":71,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["compositor","convergence","desktop","hacktoberfest","material-design","mobile","phone","qml","qt","qt-quick","tablet","wayland"],"created_at":"2024-08-20T21:02:01.503Z","updated_at":"2025-08-11T00:31:47.356Z","avatar_url":"https://github.com/lirios.png","language":"C++","funding_links":["https://www.paypal.me/plfiorini"],"categories":["QML","X11/Wayland"],"sub_categories":[],"readme":"Shell\n=====\n\n[![License](https://img.shields.io/badge/license-GPLv3.0-blue.svg)](https://www.gnu.org/licenses/gpl-3.0.html)\n[![GitHub release](https://img.shields.io/github/release/lirios/shell.svg)](https://github.com/lirios/shell)\n[![GitHub issues](https://img.shields.io/github/issues/lirios/shell.svg)](https://github.com/lirios/shell/issues)\n[![CI](https://github.com/lirios/shell/workflows/CI/badge.svg?branch=develop)](https://github.com/lirios/shell/actions?query=workflow%3ACI)\n\nResponsive shell for the Liri desktop.\n\n![Desktop](.github/desktop.png)\n\n## Dependencies\n\nCompiler requirements:\n\n* [gcc \u003e= 4.8](https://gcc.gnu.org/gcc-4.8/) or\n* [Clang](http://clang.llvm.org/)\n\nQt \u003e= 6.6.0 with at least the following modules is required:\n\n * [qtbase](http://code.qt.io/cgit/qt/qtbase.git)\n * [qtdeclarative](http://code.qt.io/cgit/qt/qtdeclarative.git)\n * [qtwayland](http://code.qt.io/cgit/qt/qtwayland.git)\n * [qtgraphicaleffects](http://code.qt.io/cgit/qt/qtgraphicaleffects.git)\n * [qtquickcontrols2](http://code.qt.io/cgit/qt/qtquickcontrols2.git)\n * [qtsvg](http://code.qt.io/cgit/qt/qtsvg.git)\n\nThe following modules and their dependencies are required:\n\n * [cmake](https://gitlab.kitware.com/cmake/cmake) \u003e= 3.19.0\n * [extra-cmake-modules](https://invent.kde.org/frameworks/extra-cmake-modules) \u003e= 5.245.0\n * [cmake-shared](https://github.com/lirios/cmake-shared.git) \u003e= 2.0.99\n * [fluid](https://github.com/lirios/fluid) \u003e= 2.0.0\n * [qtaccountsservice](https://github.com/lirios/qtaccountsservice) \u003e= 2.0.0\n * [qtgsettings](https://github.com/lirios/qtgsettings) \u003e= 2.0.0\n * [qtshellintegration](https://github.com/lirios/qtshellintegration)\n * [libliri](https://github.com/lirios/libliri)\n * [aurora-scanner](https://github.com/lirios/aurora-scanner)\n * [aurora-compositor](https://github.com/lirios/aurora-compositor)\n * [pam](http://www.linux-pam.org/)\n * [polkit-qt-1](https://invent.kde.org/libraries/polkit-qt-1)\n * [solid](https://invent.kde.org/frameworks/solid)\n\n## Installation\n\n```sh\nmkdir build\ncd build\ncmake -DCMAKE_INSTALL_PREFIX=/path/to/prefix ..\nmake\nmake install # use sudo if necessary\n```\n\nReplace `/path/to/prefix` to your installation prefix.\nDefault is `/usr/local`.\n\nYou can also append the following options to the `cmake` command:\n\n * `-DFEATURE_liri_development_build:BOOL=ON`: Enable feature for development such as the\n   ability to load arbitrary QML files.\n * `-DFEATURE_enable_systemd:BOOL=OFF`: Disable systemd support.\n * `-DFEATURE_shell_enable_qtquick_compiler:BOOL=ON`: Build with QtQuick compiler.\n * `-DINSTALL_SYSTEMDUSERUNITDIR=/path/to/systemd/user`: Path to install systemd user units (default: `/usr/local/lib/systemd/user`).\n\n## Licensing\n\nLicensed under the terms of the GNU General Public License version 3 or,\nat your option, any later version.\n\n## Notes\n\n### Logging categories\n\nQt 5.2 introduced logging categories and Liri Shell takes advantage of\nthem to make debugging easier.\n\nPlease refer to the [Qt](http://doc.qt.io/qt-5/qloggingcategory.html) documentation\nto learn how to enable them.\n\n### Available categories\n\n * Compositor:\n   * **liri.compositor:** Compositor\n   * **liri.screensaver:** Lock, idle and inhibit interface\n   * **liri.session:** Manages the session\n   * **liri.loginmanager:** login manager subsystem\n   * **liri.loginmanager.logind:** login manager subsystem (logind backend)\n   * **liri.shell:** Shell\n   * **liri.gtkshell:** Gtk shell support\n   * **liri.outputmanagement:** Output management\n   * **liri.decoration:** Window decorations\n   * **liri.shell.liricolorpickerv1:** LiriColorPickerV1 Wayland protocol\n   * **liri.shell.lirilockscreenv1:** LiriLockScreenV1 Wayland protocol\n   * **liri.shell.lirimodalv1:** LiriModalV1 Wayland protocol\n   * **liri.shell.lirishellv1:** LiriShellV1 Wayland protocol\n\n * Launcher QML plugin:\n   * **liri.launcher:** Launcher model and items\n   * **liri.launcher.appsmodel:** Applications model\n\n * MPRIS2 QML plugin:\n   * **liri.mpris2:** MPRIS2 engine\n   * **liri.mpris2.player:** MPRIS2 player interface\n\n * PolicyKit QML plugin:\n   * **liri.policykit:** PolicyKit agent\n\n## Fake screen configuration\n\nYou can simulate a fake screen configuration on X11 and Wayland.\n\nRun:\n\n```sh\nliri-session -- -platform xcb --fake-screen screenconfig.json # replace xcb with wayland if you are running on Wayland\n```\n\nHere's the contents of `screenconfig.json`:\n\n```json\n{\n\t\"outputs\": [{\n\t\t\"name\": \"Screen 1\",\n\t\t\"description\": \"Virtual output 1\",\n\t\t\"primary\": false,\n\t\t\"scale\": 1,\n\t\t\"position\": {\n\t\t\t\"x\": 0,\n\t\t\t\"y\": 0\n\t\t},\n\t\t\"mode\": {\n\t\t\t\"size\": {\n\t\t\t\t\"width\": 1024,\n\t\t\t\t\"height\": 768\n\t\t\t},\n\t\t\t\"refreshRate\": 60000\n\t\t},\n\t\t\"physicalSize\": {\n\t\t\t\"width\": 350,\n\t\t\t\"height\": 260\n\t\t}\n\t},\n\t{\n\t\t\"name\": \"Screen 2\",\n\t\t\"description\": \"Virtual output 2\",\n\t\t\"primary\": true,\n\t\t\"scale\": 1,\n\t\t\"position\": {\n\t\t\t\"x\": 1024,\n\t\t\t\"y\": 0\n\t\t},\n\t\t\"mode\": {\n\t\t\t\"size\": {\n\t\t\t\t\"width\": 1024,\n\t\t\t\t\"height\": 768\n\t\t\t},\n\t\t\t\"refreshRate\": 60000\n\t\t},\n\t\t\"physicalSize\": {\n\t\t\t\"width\": 350,\n\t\t\t\"height\": 260\n\t\t}\n\t}]\n}\n```\n\n## QML JavaScript debugger\n\nDevelopers can debug Liri Shell with Qt Creator and the QML JavaScript debugger.\n\nSet the debug port and run the shell:\n\n```sh\nliri-session -- -qmljsdebugger=port:3768\n```\n\nIn the example above we are using the default port which is 3768.\nNow from Qt Creator click on Debug -\u003e Start Debugging -\u003e Attach to QML port and specify\nthe 3768 port.\n\nSee the [Qt Creator manual](http://doc.qt.io/qtcreator/creator-debugging-qml.html) for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flirios%2Fshell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flirios%2Fshell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flirios%2Fshell/lists"}