{"id":15294083,"url":"https://gitlab.com/leinardi/gkraken","last_synced_at":"2025-10-07T06:31:17.814Z","repository":{"id":57434917,"uuid":"8706246","full_name":"leinardi/gkraken","owner":"leinardi","description":"GUI that allows to control the cooling (fan and/or pump profiles) of NZXT Kraken X (X42, X52, X62, X72, X53, X63, X73, Z63 or Z73) devices from Linux.","archived":true,"fork":false,"pushed_at":null,"size":null,"stargazers_count":135,"open_issues_count":11,"forks_count":18,"subscribers_count":null,"default_branch":"release","last_synced_at":"2024-08-17T23:46:59.877Z","etag":null,"topics":["gkraken","gtk","kraken","linux","nzxt"],"latest_commit_sha":null,"homepage":null,"language":null,"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://gitlab.com/uploads/-/system/project/avatar/8706246/gkraken.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"COPYING.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-10-04T21:00:36.469Z","updated_at":"2023-03-27T15:50:01.522Z","dependencies_parsed_at":"2022-09-04T15:25:06.001Z","dependency_job_id":null,"html_url":"https://gitlab.com/leinardi/gkraken","commit_stats":{"total_commits":341,"total_committers":6,"mean_commits":"56.833333333333336","dds":0.3870967741935484,"last_synced_commit":"115bcc5a674c3d1c68ea0fca58b9a6bbf2d2c236"},"previous_names":[],"tags_count":28,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/leinardi%2Fgkraken","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/leinardi%2Fgkraken/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/leinardi%2Fgkraken/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/leinardi%2Fgkraken/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/owners/leinardi","download_url":"https://gitlab.com/leinardi/gkraken/-/archive/release/gkraken-release.zip","host":{"name":"gitlab.com","url":"https://gitlab.com","kind":"gitlab","repositories_count":4515345,"owners_count":6463,"icon_url":"https://github.com/gitlab.png","version":null,"created_at":"2022-05-30T11:31:42.605Z","updated_at":"2024-07-18T11:24:13.055Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/owners"}},"keywords":["gkraken","gtk","kraken","linux","nzxt"],"created_at":"2024-09-30T16:57:24.140Z","updated_at":"2025-10-07T06:31:11.468Z","avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/8706246/gkraken.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# ⚠ Project deprecated\nThis project is now deprecated in favor of [Coolero](https://gitlab.com/codifryed/coolero). If you are still using\nGKraken, you are strongly advised to migrate to [Coolero](https://gitlab.com/codifryed/coolero).  \nNo new development is planned for GKraken and I do not own a Kraken device anymore, so I won't be able to provide \neven bug fixes.\n\n# GKraken\n\n\u003cimg src=\"/art/gkraken.png\" width=\"128\" align=\"right\" hspace=\"0\" /\u003e\n\nGKraken is a GTK application that allows you to control the following AIO liquid coolers:\n\n| Device | Pump | Fan | Lighting |\n|:---|:---:|:---:|:---:|\n| NZXT Kraken X40, X60, X31, X41, X51, X61 | :heavy_check_mark:\u003csup\u003e_L_\u003c/sup\u003e | :heavy_check_mark:\u003csup\u003e_L_\u003c/sup\u003e| :heavy_check_mark:\u003csup\u003e_L_\u003c/sup\u003e |\n| NZXT Kraken X42, X52, X62, X72 | :white_check_mark: | :white_check_mark: | :white_check_mark: |\n| NZXT Kraken X53, X63, X73 | :white_check_mark: | :x: | :white_check_mark: |\n| NZXT Kraken Z53, Z63, Z73 | :white_check_mark: | :white_check_mark: | :x: |\n\n\u003csup\u003e_L_\u003c/sup\u003e _Limited functionality offered by legacy Kraken models_\n\n## Table of contents\n\n- [How to get GKraken](#-how-to-get-gkraken)\n    - [Flathub](#install-from-flathub)\n    - [Source](#install-from-source-code)\n- [Running the App](#running-the-app)\n    - [Adding Udev rule](#adding-udev-rule)\n    - [Command line options](#command-line-options)\n- [Building Flatpak](#-building-flatpak)\n- [Running tests](#testing)\n- [FAQ](#-faq)\n- [How to help the project](#-how-to-help-the-project)\n- [Acknowledgements](#-acknowledgements)\n- [License](#license)\n\n## Screenshots\n\n\u003cimg src=\"/art/screenshot-09.png\" width=\"844\"/\u003e\n\n\u003cimg src=\"/art/screenshot-08.png\" width=\"844\"/\u003e\n\n\u003cimg src=\"/art/screenshot-05.png\" width=\"844\"/\u003e\n\n## Video\n\nClick [here](https://gitlab.com/leinardi/gkraken/blob/master/art/video.mp4) to see a short video of the application.\n\n## 📦 How to get GKraken\n\n### Install from Flathub\n\nThis is the preferred way to get GKraken on any major distribution (Arch, Fedora, Linux Mint, openSUSE, Ubuntu, etc).\n\nIf you don't have Flatpak installed you can find step by step instructions [here](https://flatpak.org/setup/).\n\nMake sure to have the Flathub remote added to the current user:\n\n```bash\nflatpak --user remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo\n```\n\n#### Install\n\n```bash\nflatpak --user install flathub com.leinardi.gkraken\n```\n\n#### Run\n\n```bash\nflatpak run com.leinardi.gkraken\n```\n\n### Install from source code\n\n#### Build time dependencies\n\n| Distro                | pkg-config         | Python 3.6+ | gobject-introspection       | meson | ninja-build | appstream-util | libusb-1.0-0     | libudev       |\n| --------------------- | ------------------ | ----------- | --------------------------- | ----- | ----------- | -------------- | ---------------- | ------------- |\n| Arch Linux            | pkg-config         | python      | gobject-introspection       | meson | ninja       | appstream-glib | libusb           | libudev0      |\n| Fedora                | pkgconf-pkg-config | python3     | gobject-introspection-devel | meson | ninja-build | appstream-util | libusbx-devel    | libudev-devel |\n| Ubuntu                | pkg-config         | python3     | libgirepository1.0-dev      | meson | ninja-build | appstream-util | libusb-1.0-0-dev | libudev-dev   |\n\n#### Run time dependencies\n\n| Distro                | Python 3.6+ | pip         | gobject-introspection       | libappindicator          | gnome-shell-extension-appindicator |\n| --------------------- | ----------- | ----------- | --------------------------- | ------------------------ | ---------------------------------- |\n| Arch Linux            | python      | python-pip  | gobject-introspection       | libappindicator3         | gnome-shell-extension-appindicator |\n| Fedora                | python3     | python3-pip | gobject-introspection-devel | libappindicator-gtk3     | gnome-shell-extension-appindicator |\n| Ubuntu                | python3     | python3-pip | libgirepository1.0-dev      | gir1.2-appindicator3-0.1 | gnome-shell-extension-appindicator |\n\nplus all the Python dependencies listed in [requirements.txt](requirements.txt)\n\n#### Clone project and install\n\nIf you have not installed GKraken yet:\n\n```bash\ngit clone --recurse-submodules -j4 https://gitlab.com/leinardi/gkraken.git\ncd gkraken\ngit checkout release\nsudo -H pip3 install -r requirements.txt\nmeson . build --prefix /usr\nninja -v -C build\nsudo ninja -v -C build install\n```\n\n#### Update old installation\n\nIf you installed GKraken from source code previously and you want to update it:\n\n```bash\ncd gkraken\ngit fetch\ngit checkout release\ngit reset --hard origin/release\ngit submodule init\ngit submodule update\nsudo -H pip3 install -r requirements.txt\nmeson . build --prefix /usr\nninja -v -C build\nsudo ninja -v -C build install\n```\n\n#### Run\n\nOnce installed, to start it you can simply execute on a terminal:\n\n```bash\ngkraken\n```\n\n## Running the app\n\nYou can run the app from the desktop launcher or use the terminal:  \nRun the command `gkraken` if installed from source, or if installed with flatpak `flatpak run com.leinardi.gkraken`.\n\nThe app needs to access the USB interface of the Kraken that, normally, is not available to unprivileged users.\n\nTo allow normal users to access the Kraken's USB interface you can create a custom udev rule\n\n### Adding Udev rule\n\n#### Using GKraken\n\nSimply run:\n\n```bash\ngkraken --add-udev-rule\n```\n\nor with flatpak:\n\n```bash\nflatpak run com.leinardi.gkraken --add-udev-rule\n```\n\nIt will automatically refresh also the udev rules. In some cases though, you may need to restart for the changes to take\neffect\n\n#### Manually\n\nCreate a new file in `/lib/udev/rules.d/60-gkraken.rules` containing this text:\n\n```bash\nSUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"1e71\", ATTRS{idProduct}==\"170e\", MODE=\"0666\"\nSUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"1e71\", ATTRS{idProduct}==\"2007\", MODE=\"0666\"\nSUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"1e71\", ATTRS{idProduct}==\"3008\", MODE=\"0666\"\nSUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"2433\", ATTRS{idProduct}==\"b200\", MODE=\"0666\"\n```\n\nAfter that, run the following commands\n\n```bash\nsudo udevadm control --reload-rules\nsudo udevadm trigger --subsystem-match=usb --attr-match=idVendor=1e71 --action=add\nsudo udevadm trigger --subsystem-match=usb --attr-match=idVendor=2433 --action=add\n```\n\n## Command line options\n\n| Parameter                 | Description                                                 | Source | Flatpak |\n  |---------------------------|-------------------------------------------------------------|:------:|:-------:|\n|-v, --version              |Show the app version                                         |    x   |    x    |\n|--debug                    |Show debug messages                                          |    x   |    x    |\n|--hide-window              |Start with the main window hidden                            |    x   |    x    |\n|--add-udev-rule            |Add udev rule to allow execution without root permission     |    x   |    x    |\n|--remove-udev-rule         |Remove udev rule that allow execution without root permission|    x   |    x    |\n|--autostart-on             |Enable automatic start of the app on login                   |    x   |         |\n|--autostart-off            |Disable automatic start of the app on login                  |    x   |         |\n\n## 🖥 Building Flatpak\n\nIf you don't have Flatpak installed you can find step by step instructions [here](https://flatpak.org/setup/).\n\nMake sure to have the Flathub remote added to the current user:\n\n```bash\nflatpak --user remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo\n```\n\n### Clone the repo\n\n```bash\ngit clone --recurse-submodules -j4 https://gitlab.com/leinardi/gkraken.git\n```\n\nIt is possible to build the local source or the remote one (the same that Flathub uses)\n\n### Local repository\n\n```bash\n./build.sh --flatpak-local --flatpak-install\n```\n\n### Remote repository\n\n```bash\n./build.sh --flatpak-remote --flatpak-install\n```\n\n### Run\n\n```bash\nflatpak run com.leinardi.gkraken --debug\n```\n\n## Testing\n\nTo run the tests install the test dependencies:\n\n```bash\npip install -r test-requirements.txt\n```\n\nand run from the project directory:\n\n```bash\npytest\n```\n\nTo check the Linters run from the project directory:\n\n```bash\nmypy gkraken\npylint gkraken\n```\n\n## ❓ FAQ\n\n### The Flatpak version of GKraken is not using my theme, how can I fix it?\n\nTo fix this issue install a Gtk theme from Flathub. This way, Flatpak applications will automatically pick the installed\nGtk theme and use that instead of Adwaita.\n\nUse this command to get a list of all the available Gtk themes on Flathub:\n\n```bash\nflatpak --user remote-ls flathub | grep org.gtk.Gtk3theme\n```\n\nAnd then just install your preferred theme. For example, to install Yaru:\n\n```\nflatpak install flathub org.gtk.Gtk3theme.Yaru\n``````\n\n### Where are the settings and profiles stored on the filesystem?\n\n| Installation type |                     Location                     |\n|-------------------|:------------------------------------------------:|\n| Flatpak           |        `$HOME/.var/app/com.leinardi.gkraken/`        |\n| Source code       | `$XDG_CONFIG_HOME` (usually `$HOME/.config/gkraken`) |\n\n### ⚠ Dropped PyPI support\n\nProduction builds were previously distributed using PyPI. This way of distributing the software is simple but requires\nthe user to manually install all the non Python dependencies like cairo, glib, appindicator3, etc.  \nA solution for all this problems is distributing the app via Flatpak, since with it all the dependencies will be bundled\nand provided automatically, making possible to use new GTK features also on distributions using an older version of\nGnome.\n\n**No new build will be published on PyPI**.\n\n### Uninstall pip version\n\nIf you have already installed GKraken via `pip`, please make sure to uninstall it completely before moving to a newer\nversion:\n\n```bash\npip3 uninstall gkraken\nrm -rf ~/.config/gkraken\n```\n\n## 💚 How to help the project\n\n### Discord server\n\nIf you want to help testing or developing it would be easier to get in touch using the Discord server of the\nproject: https://discord.gg/Q33n3UC  \nJust write a message on the general channel saying how you want to help (test, dev, etc) and quoting @leinardi. If you\ndon't use discor but still want to help just open a new issue here.\n\n### Can I support this project some other way?\n\nSomething simple that everyone can do is to star it on both [GitLab](https://gitlab.com/leinardi/gkraken)\nand [GitHub](https://github.com/leinardi/gkraken). Feedback is always welcome: if you found a bug or would like to\nsuggest a feature, feel free to open an issue on the [issue tracker](https://gitlab.com/leinardi/gkraken/issues).\n\n## ℹ️ Acknowledgements\n\nThanks to:\n\n- Jonas Malaco for the [`liquidctl`](https://github.com/jonasmalacofilho/liquidctl) CLI library\n- @codifryed for adding support of many new Kraken devices!\n\n## License\n\n```\nThis file is part of gkraken.\n\nCopyright (c) 2021 Roberto Leinardi and Guy Boldon\n\ngkraken is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\ngkraken is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with gkraken.  If not, see \u003chttp://www.gnu.org/licenses/\u003e.\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/gitlab.com%2Fleinardi%2Fgkraken","html_url":"https://awesome.ecosyste.ms/projects/gitlab.com%2Fleinardi%2Fgkraken","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/gitlab.com%2Fleinardi%2Fgkraken/lists"}