{"id":25197498,"url":"https://github.com/sidevesh/luminance","last_synced_at":"2026-02-15T23:18:17.455Z","repository":{"id":176206153,"uuid":"613245823","full_name":"sidevesh/Luminance","owner":"sidevesh","description":"A simple GTK application to control brightness of displays including external displays supporting DDC/CI","archived":false,"fork":false,"pushed_at":"2024-07-04T10:30:05.000Z","size":689,"stargazers_count":112,"open_issues_count":10,"forks_count":5,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-08T20:54:43.928Z","etag":null,"topics":[],"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/sidevesh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2023-03-13T07:40:24.000Z","updated_at":"2025-05-06T03:07:08.000Z","dependencies_parsed_at":"2024-01-15T22:42:06.690Z","dependency_job_id":"7033d4a4-88ad-4a01-b936-8a598605d52f","html_url":"https://github.com/sidevesh/Luminance","commit_stats":null,"previous_names":["sidevesh/luminance"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/sidevesh/Luminance","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sidevesh%2FLuminance","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sidevesh%2FLuminance/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sidevesh%2FLuminance/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sidevesh%2FLuminance/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sidevesh","download_url":"https://codeload.github.com/sidevesh/Luminance/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sidevesh%2FLuminance/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265891245,"owners_count":23844808,"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":[],"created_at":"2025-02-10T01:52:48.743Z","updated_at":"2026-02-15T23:18:17.448Z","avatar_url":"https://github.com/sidevesh.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca name=\"readme-top\"\u003e\u003c/a\u003e\n\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/sidevesh/Luminance\"\u003e\n    \u003cimg src=\"icons/hicolor/scalable/apps/com.sidevesh.Luminance.svg\" alt=\"Logo\" width=\"120\" height=\"120\"\u003e\n  \u003c/a\u003e\n\n\u003ch3 align=\"center\"\u003eLuminance\u003c/h3\u003e\n\n  \u003cp align=\"center\"\u003e\n    A simple GTK application to control brightness of displays including external displays supporting DDC/CI\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"screenshots/screenshot-faded.png\" alt=\"Screenshot\"\u003e\n\u003c/div\u003e\n\n## Install from AUR (Arch Linux):\n  \n  ```\n  yay -S luminance\n  ```\n\n## Install deb package (Debian and Ubuntu based distros):\nLatest deb release is available on the releases page https://github.com/sidevesh/Luminance/releases\n\n* Version 1.0.4 is the last supported version for Ubuntu before 24.04, Debian or any other Debian based distro that does not have atleast libadwaita 1.5 version\n\n## Install rpm package (Fedora, OpenSUSE and other rpm based distros):\nLatest rpm release is available on the releases page https://github.com/sidevesh/Luminance/releases\n\n## Install from source\n\n### Dependencies\n- GTK 4.0\n- Libadwaita\n- ddcutil library package (typically libddcutil or libddcutil-dev if not already installed with ddcutil)\n- Make (Build tool)\n- Meson (Build tool)\n- Ninja (Build tool)\n- GCC (Compiler)\n\n### Steps\n1. Firstly, ensure that all the dependencies are installed:\n\n    ##### Arch Linux:\n    ```\n    pacman -S --needed make meson glib2-devel glib2 gtk4 libadwaita ddcutil\n    ```\n    \n    ##### Ubuntu-based distros (credit @aidengilmartin):\n    ```\n    sudo apt install make gcc meson libglib2.0-dev libgtk-4-dev libadwaita-1-dev libddcutil-dev\n    ```\n    ##### Fedora:\n    ```\n    sudo dnf install make gcc meson glib2-devel gtk4-devel libadwaita-devel libddcutil-devel\n    ```\n\n2. Ensure that your user has access to the i2c devices:\nhttps://www.ddcutil.com/i2c_permissions/\n\n3. Clone this repo:\n    ```\n    git clone --recurse-submodules https://github.com/sidevesh/Luminance.git\n    ```\n\n4. Change into the `Luminance` directory and build the application:\n    ```\n    cd Luminance\n    make\n    ```\n\n5. To install this binary for all users execute install command:\n    ```\n    make install\n    ```\n\n    You should now be able to find Luminance in your list of apps.\n    * Installing the application is necessary for it to work because it uses gsettings to store preferences and will need the schema files to be installed.\n    * Note: You might need to reload udev rules or reboot for brightness control permissions to take effect.\n\n\n### Development Build\nTo build a development version (which installs as `com.sidevesh.Luminance.Devel` and allows side-by-side installation with the release version):\n\n```\nmake install-debug\n```\n\n### Flatpak\n\nTo build the application as a Flatpak:\n\n```\nmake flatpak\n```\n\nTo install the locally built Flatpak:\n\n```\nmake install-flatpak\n```\n\nTo uninstall the locally built Flatpak:\n\n```\nmake uninstall-flatpak\n```\n\nTo run the installed Flatpak with GDB for debugging:\n\n```\nmake run-flatpak\n```\n\nTo create a standalone Flatpak bundle:\n\n```\nmake flatpak-bundle\n```\n\n### Uninstall\n\nTo uninstall the application, run the following from the build directory:\n\n```bash\nmake uninstall\n```\n\nOr for the debug build:\n\n```bash\nmake uninstall-debug\n```\n\n## Usage\n\nStart the application normally or you can also use the app via cli interface:\n```\nUsage: com.sidevesh.Luminance [OPTIONS]\nAn application to control brightness of displays including external displays supporting DDC/CI\n\nOptions:\n  -l, --list-displays                         List displays and their brightness\n  -g, --get-percentage [DISPLAY NUMBER]       Get the brightness percentage of a display\n  -s, --set-brightness [DISPLAY NUMBER]       Set the brightness of a display to a percentage value\n  -i, --increase-brightness [DISPLAY NUMBER]  Increase the brightness of a display by a percentage value\n  -d, --decrease-brightness [DISPLAY NUMBER]  Decrease the brightness of a display by a percentage value\n                                              If DISPLAY NUMBER is not provided, for --set-brightness, --increase-brightness and --decrease-brightness options, the brightness of all displays will be changed\n  -p  --percentage [PERCENTAGE]               Percentage value to set the brightness to in case of --set-brightness option or to increase or decrease the brightness by in case of --increase-brightness or --decrease-brightness option\n  -h, --help                                  Show help information\n\nWhen no arguments are provided, the application starts in GUI mode.\n```\n\n## GNOME Extension\n\nA companion GNOME Shell extension is available for Luminance. This extension displays the native GNOME brightness OSD (On-Screen Display) when brightness is adjusted outside of the main GUI application window (e.g. via command line interface or D-Bus calls).\n\n### Install from Release\nLatest extension release is available on the releases page https://github.com/sidevesh/Luminance/releases\nDownload the zip file and install it using `gnome-extensions install [ZIP_FILE]`.\n\n### Install from Source\nTo build and install the extension from source:\n```bash\nmake install-gnome-extension\n```\n\nAfter installation, you may need to restart GNOME Shell (Alt+F2, type `r`, enter on X11, or log out/in on Wayland) and enable the extension:\n```bash\ngnome-extensions enable luminance-extension@sidevesh\n```\n\n## Note for Maintainers\n\n### Release Workflow\n\nThe release process involves updating the version, tagging/pushing the main application, and then updating downstream packagers (Arch/Flathub).\n\n1.  **Update Version \u0026 Changelog**:\n    *   Update `version.txt` with the new version number.\n    *   Update `releases.xml` using the script:\n        ```bash\n        ./scripts/generate-releases.sh\n        ```\n    *   **Commit these changes** to the main repository.\n\n2.  **Tag and Push Main Repo**:\n    *   **Important**: Flathub and Arch builds rely on the tag existing on GitHub.\n    *   **Sync Tags**: First, ensure you have all tags from GitHub (in case releases were created there).\n        ```bash\n        git pull --tags\n        ```\n    *   **Create Tag**: You can create the release tag (e.g., `1.4.4`) either locally or by drafting a release on GitHub.\n        *   **Locally**:\n            ```bash\n            git tag 1.4.4\n            git push origin main --tags\n            ```\n        *   **GitHub**: Go to Releases -\u003e Draft a new release -\u003e Create new tag -\u003e Publish.\n\n3.  **Update Arch (Direct Push)**:\n    *   Run packaging script: `make package-arch`\n    *   Go into `arch/`, commit changes, and push to AUR (master branch is allowed).\n    *   Go back to root, commit the `arch` submodule change, and push.\n\n4.  **Update Flathub (PR Workflow)**:\n    **Note**: Direct push to Flathub `master` is **not allowed**. You must use a Pull Request.\n    \n    *   **Preparation**:\n        ```bash\n        cd flathub\n        git checkout master\n        git pull\n        git checkout -b update-to-1.4.4  # Create a new branch\n        cd ..\n        ```\n    *   **Generate Manifest**:\n        ```bash\n        make package-flatpak-flathub\n        ```\n    *   **Commit and Push Branch**:\n        ```bash\n        cd flathub\n        git add .\n        git commit -m \"Update to 1.4.4\"\n        git push -u origin update-to-1.4.4\n        ```\n    *   **Open PR**: Go to the Flathub repository URL and open a Pull Request from `update-to-1.4.4` to `master`.\n    *   **Cleanup**: Once the PR is merged, you can pull the latest `master` in the `flathub` directory and commit that pointer to the main repo if you wish to keep it in sync.\n\n## Note for AUR publishers\n\nSwitch the arch submodule push url to the ssh url before pushing to AUR for the first time:\n```bash\ncd arch\ngit remote set-url --push origin ssh://aur@aur.archlinux.org/luminance.git\n```\n\n### Packaging for Arch\n1.  Ensure step 1 from \"Release Workflow\" is done and `version.txt` is committed.\n2.  Run the packaging command:\n    ```bash\n    make package-arch\n    ```\n    This updates `PKGBUILD` and `.SRCINFO` in the `arch/` directory.\n3.  Go into `arch/` and commit the changes.\n4.  **Wait** until you have pushed the tag to the main repository (Step 5 of Release Workflow) before pushing this submodule to AUR.\n\n## Note for Flatpak Packaging\n\n### Prerequisites\n1.  Install `flatpak`.\n2.  Install `flatpak-builder` (It is recommended to use the flatpak version of the builder):\n    ```bash\n    flatpak install -y flathub org.flatpak.Builder\n    ```\n3.  Install the required GNOME Runtime and SDK:\n    ```bash\n    flatpak install org.gnome.Platform//49 org.gnome.Sdk//49\n    ```\n\n### Packaging for Flathub\n1.  Ensure step 1 from \"Release Workflow\" is done and `version.txt` is committed.\n2.  Run the packaging command:\n    ```bash\n    make package-flatpak-flathub\n    ```\n    This updates `flathub/com.sidevesh.Luminance.yml` with the URL, the new tag (which doesn't exist yet), and the commit hash of `version.txt`.\n3.  Go into `flathub/` and commit the changes.\n4.  **Wait** until you have pushed the tag to the main repository (Step 5 of Release Workflow) before pushing this submodule to Flathub.\n\n### Build and Install Locally\nTo build and install the Flatpak locally for testing:\n```bash\nmake install-flatpak\n```\n\n### Validate (Lint)\nTo validate the manifest and repository against Flathub requirements:\n```bash\nmake lint-flatpak-flathub\n```\n\n### Run the Application (with Debugging)\n```bash\nmake run-flatpak\n```\n\n### Creating a Bundle\nTo create a binary bundle `.flatpak` for distribution:\n```bash\nmake flatpak-bundle\n```\n\n\n## License\n\nDistributed under the GNU General Public License v3.0. See `LICENSE.txt` for more information.\n\n\n\n## Contact\n\nSwapnil Devesh - [@sid_devesh](https://twitter.com/sid_devesh) - me@sidevesh.com\n\nProject Link: [https://github.com/sidevesh/Luminance](https://github.com/sidevesh/Luminance)\n\n\n\n## Acknowledgments\n\n- @ahshabbir : for ddcbc-api and ddcbc-gtk: https://github.com/ahshabbir/ddcbc-api\n- @rockowitz : for ddcutil c api: https://github.com/rockowitz/ddcutil\n- @jimmac : for the awesome icon: https://github.com/jimmac\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsidevesh%2Fluminance","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsidevesh%2Fluminance","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsidevesh%2Fluminance/lists"}