{"id":16164112,"url":"https://github.com/rodlie/draco","last_synced_at":"2025-08-01T15:43:09.191Z","repository":{"id":96765494,"uuid":"169217822","full_name":"rodlie/draco","owner":"rodlie","description":"Draco Desktop Environment","archived":false,"fork":false,"pushed_at":"2020-05-14T02:40:56.000Z","size":5662,"stargazers_count":28,"open_issues_count":20,"forks_count":8,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-02T19:51:41.690Z","etag":null,"topics":["cmake","desktop","desktop-environment","draco","freedesktop","linux","lumina","openbox","panel","qt5","slackware","x11","xdg"],"latest_commit_sha":null,"homepage":"https://dracolinux.org","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rodlie.png","metadata":{"files":{"readme":"docs/README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-02-05T09:42:27.000Z","updated_at":"2025-02-03T20:18:58.000Z","dependencies_parsed_at":"2023-03-16T18:00:31.932Z","dependency_job_id":null,"html_url":"https://github.com/rodlie/draco","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/rodlie/draco","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodlie%2Fdraco","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodlie%2Fdraco/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodlie%2Fdraco/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodlie%2Fdraco/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rodlie","download_url":"https://codeload.github.com/rodlie/draco/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodlie%2Fdraco/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260483495,"owners_count":23016081,"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","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":["cmake","desktop","desktop-environment","draco","freedesktop","linux","lumina","openbox","panel","qt5","slackware","x11","xdg"],"created_at":"2024-10-10T02:45:22.137Z","updated_at":"2025-06-18T03:36:29.644Z","avatar_url":"https://github.com/rodlie.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"![screenshot](images/screenshot-01.jpg)\n\n[![GitHub release (latest by date)](https://img.shields.io/github/v/release/rodlie/draco)](https://github.com/rodlie/draco/releases/latest)\n[![Packages from master branch](https://img.shields.io/badge/Packages-master-blue)](https://software.opensuse.org//download.html?project=home%3Arodlie%3Adraco-master\u0026package=draco)\n[![Build Status](https://travis-ci.com/rodlie/draco.svg?branch=master)](https://travis-ci.com/rodlie/draco)\n\n# Draco Desktop Environment\n\nDraco is a simple and lightweight desktop environment. While small still features XDG integration, freedesktop services and integration, power and storage management, desktop, panels, multi-monitor support and much more. Draco does not include any user applications.\n\nDraco is developed for and on [Slackware Linux](http://www.slackware.com), but is also compatible with RHEL/CentOS/Fedora and others. Draco is a fork of [Lumina](https://github.com/lumina-desktop/lumina).\n\n## Features\n\nTODO...\n\n### Desktop\n\nTODO...\n\n### Panel\n\nTODO...\n\n### Storage management\n\n  * Show available storage/optical devices in system tray\n  * Auto mount (and open) storage/optical devices when added *(not default)*\n  * Auto play CD/DVD *(not default)*\n\n### Power management\n\n  * Implements [org.freedesktop.ScreenSaver](https://people.freedesktop.org/~hadess/idle-inhibition-spec/re01.html) service\n  * Implements [org.freedesktop.PowerManagement](https://www.freedesktop.org/wiki/Specifications/power-management-spec/) service\n  * Automatically suspend on idle\n  * Automatically lock screen on idle\n  * Automatically hibernate or shutdown on critical battery\n  * Inhibit actions if external monitor(s) is connected\n  * Enables applications to inhibit display and suspend\n  * Display backlight support\n  * Display hotplug support\n  * RTC wake support\n  * Intel ``pstate`` (Sandy Bridge+) support\n\n## Usage\n\nTODO...\n\n### Default shortcuts\n\n| Shortcut | Action |\n| -------- | ------ |\n| ``Alt+F1`` | Default terminal |\n| ``Alt+F2`` | Application launcher |\n| ``Ctrl+Alt+Left`` | Switch desktop/workspace |\n| ``Ctrl+Alt+Right`` | Switch desktop/workspace |\n| ``Ctrl+Alt+Up`` | Switch desktop/workspace |\n| ``Ctrl+Alt+Down`` | Switch desktop/workspace |\n| ``Shift+Alt+Left`` | Move window to desktop/workspace |\n| ``Shift+Alt+Right`` | Move window to desktop/workspace |\n| ``Shift+Alt+Up`` | Move window to desktop/workspace |\n| ``Shift+Alt+Down`` | Move window to desktop/workspace |\n| ``Win+F1`` | Switch to desktop/workspace 1 |\n| ``Win+F2`` | Switch to desktop/workspace 2 |\n| ``Win+F3`` | Switch to desktop/workspace 3 |\n| ``Win+F4`` | Switch to desktop/workspace 4 |\n| ``Win+D`` | Toggle show desktop |\n| ``Alt+Tab`` | Next window |\n| ``Alt+Shift+Tab`` | Previous window |\n| ``wheel/touchpad up/down on desktop`` | Switch desktop/workspace |\n\n### Screen saver\n\nDraco depends on [XScreenSaver](https://www.jwz.org/xscreensaver/) to handle the screen session, the default settings may need to be adjusted. You can launch the (XScreenSaver) configuration GUI with the ``xscreensaver-demo`` command or from settings.\n\nRecommended settings are:\n\n* Mode: ``Blank Screen Only``\n* Blank After: ``5 minutes``\n* Lock Screen After: ``enabled + 0 minutes``\n* Display Power Management: ``enabled``\n  * Standby After: ``0 minutes``\n  * Suspend After: ``0 minutes``\n  * Off After: ``0 minutes``\n  * Quick Power-off in Blank Only Mode: ``enabled``\n\nA custom configuration tool will be added in the future.\n\n### Hibernate\n\nA swap partition (or file) is needed by the kernel to support hibernate/hybrid sleep. Edit the boot loader configuration and add the kernel option ``resume=\u003cswap_partition/swap_file\u003e``, then save and restart.\n\n**Note that some distributions don't require ``resume=``, and some have hibernation disabled. Consult your distribution documentation regarding hibernation.**\n\n## Components\n\nDraco is divided into the following components:\n\n * **libDraco**\n   * Common functions.\n * **start-draco**\n   * Takes care of starting and running the desktop environment.\n * **draco-settings**\n   * Manage settings.\n * **draco-settings-x11**\n   * Manage monitors. *You can use this component outside of Draco.*\n * **org.dracolinux.Desktop**\n   * The desktop session. Takes care of anything related to desktop, panels, clipboard and auto started applications/services. *You can use this component outside of Draco.*\n * **org.dracolinux.Power**\n   * Takes care of anything related to power. This includes, but not limited to screensaver, freedesktop services, suspend, hibernate, monitors, backlight, keyboard, CPU. *You can use this component outside of Draco.*\n * **org.dracolinux.Powerd**\n   * D-Bus system service for Draco. Used to modify backlight, cpufreq/pstate and RTC wake alarm.\n * **org.dracolinux.Storage**\n   * Takes care of removable storage devices. *You can use this component outside of Draco.*\n * **org.dracolinux.XDG**\n   * ``xdg-open`` replacement. Takes care of anything XDG related when running Draco. *You can use this component outside of Draco.*\n\n## Screenshots\n\n### Settings\n\nMain settings:\n\n![screenshot](images/screenshot-02.jpg)\n\n\nDraco XDG/mime settings:\n\n![screenshot](images/screenshot-03.jpg)\n\nApplications and services that are launched during desktop startup:\n\n![screenshot](images/screenshot-04.jpg)\n\nBasic keyboard configuration:\n\n![screenshot](images/screenshot-05.jpg)\n\nPanels configuration:\n\n![screenshot](images/screenshot-06.jpg)\n\nPower configuration:\n\n![screenshot](images/screenshot-07.jpg)\n\nWallpaper configuration:\n\n![screenshot](images/screenshot-08.jpg)\n\nGeneral desktop configuration:\n\n![screenshot](images/screenshot-09.jpg)\n\nMonitor configuration:\n\n![screenshot](images/screenshot-10.jpg)\n\n## Requirements\n\nBuild and runtime requirements.\n  * **``cmake``** *(\u003e= 3.0)*\n  * **``pkg-config``**\n  * **``Qt``** *(5.5+, latest LTS recommended)*\n    * ``QtCore``\n    * ``QtDBus``\n    * ``QtGui``\n    * ``QtWidgets``\n    * ``QtConcurrent``\n    * ``QtX11Extras``\n  * **``X11``**\n    * ``libX11``\n    * ``libXss``\n    * ``libXdamage``\n    * ``libXrandr``\n    * ``libXfixes``\n    * ``xrandr``\n    * ``setxkbmap``\n    * ``xinit``\n    * ``xcb``\n      * ``xcb-randr``\n      * ``xcb-ewmh``\n      * ``xcb-icccm``\n      * ``xcb-image``\n      * ``xcb-composite``\n      * ``xcb-damage``\n      * ``xcb-util``\n      * ``xcb-shm``\n  * **``xscreensaver``**\n  * **``qt5ct``**\n  * **``xdg-utils``**\n  * **``shared-mime-info``**\n  * **``hicolor-icon-theme``**\n  * **``adwaita-icon-theme``** *(3.18 recommended)*\n  * **``openbox``**\n  * **``UDisks2``** *(or compatible service)*\n  * **``UPower``** *(\u003e= 0.9.23 or compatible service)*\n  * **``ConsoleKit``**/**``logind``** *(or compatible service)*\n\n## Recommended\n\nOptional recommended applications.\n  * **``qterminal``** *(terminal emulator)*\n  * **``qtfm``** *(file manager)*\n  * **``pnmixer``** *(audio system tray)*\n  * **``obconf``** *(window manager config)*\n  * **``nm-applet``** *(network manager)*\n\n## Build\n\n### Daemon notice\n\nDraco includes a power daemon (to be able to adjust screen and cpu) this daemon must run as ``root`` (or a user with write access to ``/sys``), this service run through D-Bus and can only be accessed by a predefined system group, this should be a common desktop user group like ``power`` or something similar. The default when building Draco is ``root`` as user and ``power`` as group. If you want something else you can change this during build.\n\nAdd the following during ``cmake`` configure:\n\n```\n-DPOWERD_SERVICE_USER=\u003crun service as this user\u003e\n```\n```\n-DPOWERD_SERVICE_GROUP=\u003cuser group that have access to service\u003e\n```\n\nYou can also change the ``/etc/dbus-1/system.d/org.dracolinux.Powerd.conf`` file manually if you want.\n\n### Slackware Linux (14.2+)\n\nInstall the following packages from [SlackBuilds.org](http://slackbuilds.org) or [slackware.com/~alien](http://www.slackware.com/~alien/slackbuilds/):\n * qt5 *(5.9.7+/5.12.x recommended)*\n * qt5ct\n * openbox\n\n The rest should be available in a standard installation.\n\nA [draco.SlackBuild](https://github.com/rodlie/draco/blob/master/share/slackware/draco.SlackBuild) is available.\n\nYou can of course build it manually:\n\n```\nmkdir build \u0026\u0026 cd build\ncmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=lib64 -DCMAKE_INSTALL_MANDIR=/usr/man -DCMAKE_INSTALL_DOCDIR=/usr/doc -DCMAKE_BUILD_TYPE=Release ..\nmake\nsudo make install\n```\n\n**Note that the install prefix should be the same folder as D-Bus (usually in ``/usr``), else you will need to copy the Draco service files to the proper location manually.**\n\n### Ubuntu (Xenial+)\n\nMinimal testing is done on Ubuntu, some features may not work.\n\nKnown issues:\n\n * Add your user to the ``power`` group before running Draco (add group if not exists).\n * Hibernate does not work, will add instructions on fixing this\n\nDependencies (based on a miminal install of Xenial):\n\n```\nsudo apt-get install build-essential cmake pkg-config openbox adwaita-icon-theme-full xscreensaver xdg-utils qt5ct qtbase5-dev libqt5x11extras5-dev libx11-dev libxss-dev libxdamage-dev libxrandr-dev libxfixes-dev libxcb1-dev libx11-xcb-dev libxcb-randr0-dev libxcb-ewmh-dev libxcb-icccm4-dev libxcb-image0-dev libxcb-composite0-dev libxcb-damage0-dev libxcb-util0-dev libxcb-shm0-dev\n```\n\nBuild and install:\n\n```\nmkdir build \u0026\u0026 cd build\ncmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=lib64 -DCMAKE_INSTALL_LIBEXECDIR=bin -DCMAKE_BUILD_TYPE=Release ..\nmake\nsudo make install\n```\n\n**Note that the install prefix should be the same folder as D-Bus (usually in ``/usr``), else you will need to copy the Draco service files to the proper location manually.**\n\n### RHEL/CentOS/Fedora\n\nMinimal testing is done, some features may not work.\n\nKnown issues:\n\n * Same as Ubuntu\n * Adwaita icons are broken, expect missing icons\n\n\nSee RPM [spec](../share/obs/draco.spec) file for build instructions.\n\n## License\n\nThis project has source files licensed under ``BSD-3``, ``LGPL-2.1`` and ``GPL-2``.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frodlie%2Fdraco","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frodlie%2Fdraco","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frodlie%2Fdraco/lists"}