All Projects → leinardi → gkraken

leinardi / gkraken

Licence: GPL-3.0 license
WARNING: This is a mirror of the GitLab repository. Please go there to open new issues or Pull Requests.

Programming Languages

python
139335 projects - #7 most used programming language
Meson
512 projects
shell
77523 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to gkraken

NZXTSharp
The one-stop C# SDK for NZXT devices.
Stars: ✭ 48 (+9.09%)
Mutual labels:  kraken, nzxt
hyper-gtk
HyperScript/Jsx syntax for Gjs
Stars: ✭ 13 (-70.45%)
Mutual labels:  gtk
wingpanel-indicator-notifications
Wingpanel Notifications Indicator
Stars: ✭ 22 (-50%)
Mutual labels:  gtk
dark-toggle
A small POSIX compliant shell script that toggles between the dark and light variants of a GTK theme.
Stars: ✭ 18 (-59.09%)
Mutual labels:  gtk
usbip-service-discovery
USB/IP Service Discovery - Provide GUI and some enhancement for USB/IP userspace
Stars: ✭ 25 (-43.18%)
Mutual labels:  gtk
postcss-gtk
Processes GTK+ CSS into browser CSS
Stars: ✭ 23 (-47.73%)
Mutual labels:  gtk
algo-coin
Python library for algorithmic trading cryptocurrencies across multiple exchanges
Stars: ✭ 386 (+777.27%)
Mutual labels:  kraken
CoinTaxman
Calculate your taxes from cryptocurrency gains
Stars: ✭ 110 (+150%)
Mutual labels:  kraken
AbsTK
The Abstract Toolkit – a widget toolkit for GUI and text-mode applications.
Stars: ✭ 67 (+52.27%)
Mutual labels:  gtk
abaddon
An alternative Discord client made with C++/gtkmm
Stars: ✭ 333 (+656.82%)
Mutual labels:  gtk
wingpanel-indicator-datetime
Wingpanel Date & Time Indicator
Stars: ✭ 28 (-36.36%)
Mutual labels:  gtk
stashed
Stash and collect files to copy it later
Stars: ✭ 22 (-50%)
Mutual labels:  gtk
gnome-keysign
An easier way to sign OpenPGP keys over the local network. A GTK/GNOME application to use GnuPG for signing other peoples' keys. Quickly, easily, and securely.
Stars: ✭ 42 (-4.55%)
Mutual labels:  gtk
photos
Photo viewer and organizer designed for elementary OS
Stars: ✭ 101 (+129.55%)
Mutual labels:  gtk
darkbar
Darken window titlebars based on your preference. Made for elementary OS and GNOME.
Stars: ✭ 39 (-11.36%)
Mutual labels:  gtk
dippi
Calculate display info like DPI and aspect ratio
Stars: ✭ 57 (+29.55%)
Mutual labels:  gtk
kraken-biom
Create BIOM-format tables (http://biom-format.org) from Kraken output (http://ccb.jhu.edu/software/kraken/, https://github.com/DerrickWood/kraken).
Stars: ✭ 35 (-20.45%)
Mutual labels:  kraken
ESOLinuxAddonManager
[MIRROR] Elder Scrolls Online addon downloader, for Linux! Check the link below for the development repo which has the releases and issuetracker.
Stars: ✭ 25 (-43.18%)
Mutual labels:  gtk
gsmartcontrol
GSmartControl - Hard disk drive and SSD health inspection tool
Stars: ✭ 183 (+315.91%)
Mutual labels:  gtk
switchboard-plug-applications
Switchboard Applications Plug
Stars: ✭ 14 (-68.18%)
Mutual labels:  gtk

Project deprecated

This project is now deprecated in favor of Coolero. If you are still using GKraken, you are strongly advised to migrate to Coolero.
No new development is planned for GKraken and I do not own a Kraken device anymore, so I won't be able to provide even bug fixes.

GKraken

GKraken is a GTK application that allows you to control the following AIO liquid coolers:

Device Pump Fan Lighting
NZXT Kraken X40, X60, X31, X41, X51, X61 ✔️L ✔️L ✔️L
NZXT Kraken X42, X52, X62, X72
NZXT Kraken X53, X63, X73
NZXT Kraken Z53, Z63, Z73

L Limited functionality offered by legacy Kraken models

Table of contents

Screenshots

Video

Click here to see a short video of the application.

📦 How to get GKraken

Install from Flathub

This is the preferred way to get GKraken on any major distribution (Arch, Fedora, Linux Mint, openSUSE, Ubuntu, etc).

If you don't have Flatpak installed you can find step by step instructions here.

Make sure to have the Flathub remote added to the current user:

flatpak --user remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

Install

flatpak --user install flathub com.leinardi.gkraken

Run

flatpak run com.leinardi.gkraken

Install from source code

Build time dependencies

Distro pkg-config Python 3.6+ gobject-introspection meson ninja-build appstream-util libusb-1.0-0 libudev
Arch Linux pkg-config python gobject-introspection meson ninja appstream-glib libusb libudev0
Fedora pkgconf-pkg-config python3 gobject-introspection-devel meson ninja-build appstream-util libusbx-devel libudev-devel
Ubuntu pkg-config python3 libgirepository1.0-dev meson ninja-build appstream-util libusb-1.0-0-dev libudev-dev

Run time dependencies

Distro Python 3.6+ pip gobject-introspection libappindicator gnome-shell-extension-appindicator
Arch Linux python python-pip gobject-introspection libappindicator3 gnome-shell-extension-appindicator
Fedora python3 python3-pip gobject-introspection-devel libappindicator-gtk3 gnome-shell-extension-appindicator
Ubuntu python3 python3-pip libgirepository1.0-dev gir1.2-appindicator3-0.1 gnome-shell-extension-appindicator

plus all the Python dependencies listed in requirements.txt

Clone project and install

If you have not installed GKraken yet:

git clone --recurse-submodules -j4 https://gitlab.com/leinardi/gkraken.git
cd gkraken
git checkout release
sudo -H pip3 install -r requirements.txt
meson . build --prefix /usr
ninja -v -C build
sudo ninja -v -C build install

Update old installation

If you installed GKraken from source code previously and you want to update it:

cd gkraken
git fetch
git checkout release
git reset --hard origin/release
git submodule init
git submodule update
sudo -H pip3 install -r requirements.txt
meson . build --prefix /usr
ninja -v -C build
sudo ninja -v -C build install

Run

Once installed, to start it you can simply execute on a terminal:

gkraken

Running the app

You can run the app from the desktop launcher or use the terminal:
Run the command gkraken if installed from source, or if installed with flatpak flatpak run com.leinardi.gkraken.

The app needs to access the USB interface of the Kraken that, normally, is not available to unprivileged users.

To allow normal users to access the Kraken's USB interface you can create a custom udev rule

Adding Udev rule

Using GKraken

Simply run:

gkraken --add-udev-rule

or with flatpak:

flatpak run com.leinardi.gkraken --add-udev-rule

It will automatically refresh also the udev rules. In some cases though, you may need to restart for the changes to take effect

Manually

Create a new file in /lib/udev/rules.d/60-gkraken.rules containing this text:

SUBSYSTEMS=="usb", ATTRS{idVendor}=="1e71", ATTRS{idProduct}=="170e", MODE="0666"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1e71", ATTRS{idProduct}=="2007", MODE="0666"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1e71", ATTRS{idProduct}=="3008", MODE="0666"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2433", ATTRS{idProduct}=="b200", MODE="0666"

After that, run the following commands

sudo udevadm control --reload-rules
sudo udevadm trigger --subsystem-match=usb --attr-match=idVendor=1e71 --action=add
sudo udevadm trigger --subsystem-match=usb --attr-match=idVendor=2433 --action=add

Command line options

Parameter Description Source Flatpak
-v, --version Show the app version x x
--debug Show debug messages x x
--hide-window Start with the main window hidden x x
--add-udev-rule Add udev rule to allow execution without root permission x x
--remove-udev-rule Remove udev rule that allow execution without root permission x x
--autostart-on Enable automatic start of the app on login x
--autostart-off Disable automatic start of the app on login x

🖥 Building Flatpak

If you don't have Flatpak installed you can find step by step instructions here.

Make sure to have the Flathub remote added to the current user:

flatpak --user remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

Clone the repo

git clone --recurse-submodules -j4 https://gitlab.com/leinardi/gkraken.git

It is possible to build the local source or the remote one (the same that Flathub uses)

Local repository

./build.sh --flatpak-local --flatpak-install

Remote repository

./build.sh --flatpak-remote --flatpak-install

Run

flatpak run com.leinardi.gkraken --debug

Testing

To run the tests install the test dependencies:

pip install -r test-requirements.txt

and run from the project directory:

pytest

To check the Linters run from the project directory:

mypy gkraken
pylint gkraken

FAQ

The Flatpak version of GKraken is not using my theme, how can I fix it?

To fix this issue install a Gtk theme from Flathub. This way, Flatpak applications will automatically pick the installed Gtk theme and use that instead of Adwaita.

Use this command to get a list of all the available Gtk themes on Flathub:

flatpak --user remote-ls flathub | grep org.gtk.Gtk3theme

And then just install your preferred theme. For example, to install Yaru:

flatpak install flathub org.gtk.Gtk3theme.Yaru

Where are the settings and profiles stored on the filesystem?

Installation type Location
Flatpak $HOME/.var/app/com.leinardi.gkraken/
Source code $XDG_CONFIG_HOME (usually $HOME/.config/gkraken)

Dropped PyPI support

Production builds were previously distributed using PyPI. This way of distributing the software is simple but requires the user to manually install all the non Python dependencies like cairo, glib, appindicator3, etc.
A solution for all this problems is distributing the app via Flatpak, since with it all the dependencies will be bundled and provided automatically, making possible to use new GTK features also on distributions using an older version of Gnome.

No new build will be published on PyPI.

Uninstall pip version

If you have already installed GKraken via pip, please make sure to uninstall it completely before moving to a newer version:

pip3 uninstall gkraken
rm -rf ~/.config/gkraken

💚 How to help the project

Discord server

If you want to help testing or developing it would be easier to get in touch using the Discord server of the project: https://discord.gg/Q33n3UC
Just write a message on the general channel saying how you want to help (test, dev, etc) and quoting @leinardi. If you don't use discor but still want to help just open a new issue here.

Can I support this project some other way?

Something simple that everyone can do is to star it on both GitLab and GitHub. Feedback is always welcome: if you found a bug or would like to suggest a feature, feel free to open an issue on the issue tracker.

ℹ️ Acknowledgements

Thanks to:

  • Jonas Malaco for the liquidctl CLI library
  • @codifryed for adding support of many new Kraken devices!

License

This file is part of gkraken.

Copyright (c) 2021 Roberto Leinardi and Guy Boldon

gkraken is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

gkraken is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with gkraken.  If not, see <http://www.gnu.org/licenses/>.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].