A CLI tool to change monitor settings over USB to the Gigabyte M32U

Gigabyte Monitor control

Introduction

A CLI tool to change monitor settings over USB to the Gigabyte M32U

Supported monitors

  • Gigabyte M32U

In theory any Gigabyte Monitor that uses a Realtek HID device (presumably the M28U also uses this) to control it over OSD sidekick should have the same protocol, but this is the only one I own.

To install:

You’ll need libhidapi and libudev – on Debians that’s apt install libhidapi-dev libudev-dev, and on darwin you can use brew install hidapi

go install github.com/kelvie/gbmonctl@latest

To use:

~ ~/go/bin/gbmonctl
ERROR: -prop or -propNum is required

Usage of gbmonctl:
  -n    Dry run: test commands and print instead
  -prop string
        Property to set. Available properties:
                brightness (0-100)
                contrast (0-100)
                sharpness (0-10)
                low-blue-light (0-10)
                        Blue light reduction. 0 means no reduction.
                kvm-switch (0-1)
                        Switch KVM to device 0 or 1
                colour-mode (0-3)
                        0 is cool, 1 is normal, 2 is warm, 3 is user-defined.
                rgb-red (0-255)
                        Red value -- only works if colour-mode is set to 3
                rgb-green (0-255)
                        Green value -- only works if colour-mode is set to 3
                rgb-blue (0-255)
                        Blue value -- only works if colour-mode is set to 3
  -propNum uint
        Property number to set instead of -prop
  -val int
        Value to set property to (default -1)

Examples:

# Set brightness to 50
gbmonctl -prop brightness -val 50

# Set contrast to 50
gbmonctl -prop contrast -v 50

# Set sharpness to 5
gbmonctl -prop sharpness -v 5

# Set colour temperature to 2700K for nighttime
gbmonctl -prop colour-mode -val 3
gbmonctl -prop rgb-red -val 100
gbmonctl -prop rgb-green -val 66
gbmonctl -prop rgb-blue -val 35

When using propNum, I don’t recommend using values that are out of the ranges listed, and this program doesn’t check, so I’m not liable for monitor damage that occurs from this.

Other notes

fwupd seems to delete the hidraw device that this uses, so you will have to disable fwupd and re-plug in your monitor (hit the KVM switch on the side), see https://github.com/kelvie/gbmonctl/issues/1

TO-DO

  • Get the rest of the commands
  • Make more user friendly
Similar Resources

TUI process monitor written in Go

TUI process monitor written in Go

pst This is TUI process monitor written in Go. Features Monitor process's list, info, tree, open files, Kill process Support OS Mac Linux Requirements

Nov 25, 2022

A set of Go scripts to monitor YAGPDB status via the command-line.

A set of Go scripts to monitor YAGPDB status via the command-line.

A set of Go scripts to monitor YAGPDB status by making GET requests to the YAGPDB status endpoint.

Apr 20, 2022

Symfony-cli - The Symfony CLI tool For Golang

Symfony CLI Install To install Symfony CLI, please download the appropriate vers

Dec 28, 2022

bcrypt-cli is the CLI tool for hashing passwords with bcrypt.

bcrypt-cli bcrypt-cli is the CLI tool for hashing passwords with bcrypt. Install go install github.com/ryicoh/bcrypt-cli Usage It can be used like bas

Jan 9, 2023

GTDF-CLI - The official CLI tool to operate with Getting Things Done Framework

GTDF-CLI - The official CLI tool to operate with Getting Things Done Framework

This is the official CLI tool to operate with Getting Things Done Framework. How

Feb 14, 2022

This tool is a CLI-interactive tool for TA who use eeclass platform

NTHU eeclass TA helper. This tool is a CLI-interactive tool for TA who use eeclass platform. It helps TA to download all the submitted homework, and use CSV to record the score and comment, and upload CSV score directly to the eeclass platform with just 2 Enter key!

Dec 11, 2021

Go Library to Execute Commands Over SSH at Scale

Go Library to Execute Commands Over SSH at Scale

Go library to handle tens of thousands SSH connections and execute the command(s) with higher-level API for building network device / server automation.

Dec 9, 2022

Upterm is an open-source solution for sharing terminal sessions instantly over the public internet via secure tunnels.

Upterm is an open-source solution for sharing terminal sessions instantly over the public internet via secure tunnels.

Upterm is an open-source solution for sharing terminal sessions instantly over the public internet via secure tunnels.

Jan 8, 2023

Terminal chat with multiroom support over custom protocol.

Terminal Chat Content Content Overview Download Commands Protocol Room URL Platforms Examples Overview It is a multiroom terminal chat. It allows comm

Sep 3, 2022
Comments
  • fwupd deletes hidraw device when the monitor is plugged in

    fwupd deletes hidraw device when the monitor is plugged in

    This program uses the hidraw device in /dev/hidrawX to control it, but it looks like fwupd causes it to be deleted shortly after it's added if it's running.

    The solution I've found is to uninstall fwupd.

    See: https://github.com/fwupd/fwupd/issues/3835

  • Improve README regarding installation with hidapi on Mac

    Improve README regarding installation with hidapi on Mac

    When trying to install with the existing instructions, I ran into some issues with hidapi. This PR adds instructions for dealing with these issues to the README.

  • Add instructions for hidapi for Windows

    Add instructions for hidapi for Windows

    Hey, I'm trying to install this on Windows, but I can't get it to work. It seems like this tool doesn't work on WSL (I figure the necessary sys calls aren't passed properly) and I can't figure out how to install it on native Windows.

    I've tried various permutations of this (back slash, forward slash, trailing slash, moving its location, quotes, etc. but it hasn't worked:

    PS C:\Users\myuser> set CGO_CFLAGS=-IC:\Users\myuser\.hidapi\include
    PS C:\Users\myuser> set CGO_LDFLAGS=-LC:\Users\myuser\.hidapi\x64
    PS C:\Users\myuser> go install github.com/kelvie/gbmonctl@latest
    # github.com/sstallion/go-hid
    go\pkg\mod\github.com\sstallion\[email protected]\hid.go:38:10: fatal error: hidapi/hidapi.h: No such file or directory
       38 | #include <hidapi/hidapi.h>
          |          ^~~~~~~~~~~~~~~~~
    compilation terminated.
    
Scrappy is a cli tool that allows multiple web scrappers to monitor periodically for a basic ruleset coverage and inform users when the criteria have been met.

Scrappy - A multi-type web scrapper with alerting Scrappy is a cli tool that allows multiple web scrappers to monitor periodically for a basic ruleset

Nov 7, 2021
Splasher is a tool to change desktop wallpaper random every 2 minutes from unsplash.

Splasher Splasher is a tool to change desktop wallpaper random every 2 minutes from unsplash. Download Latest Release: GitHub Release Installation & S

Jan 7, 2022
Run commands when files change.
Run commands when files change.

Crow crow is a simple command-line utility that lets you run arbitrary commands when certain files change. Demo A demonstration of crow being used to

Nov 22, 2022
Watcher - A simple command line app to watch files in a directory for changes and run a command when files change!

Watcher - Develop your programs easily Watcher watches all the files present in the directory it is run from of the directory that is specified while

Mar 27, 2022
Git-reviewers - Find out who are the best reviewers for a given change.

git-reviewers Figure out who would be a good reviewer for a change. There are two places checked when determining reviewers: The results of git blame

Jan 10, 2022
Nebula Diagnosis CLI Tool is an information diagnosis cli tool for the nebula service and the node to which the service belongs.

Nebula Diagnosis CLI Tool is an information diagnosis cli tool for the nebula service and the node to which the service belongs.

Jan 12, 2022
CLI-programma dat je kennis over elektriciteit ondervraagt

ElekTrain Dependencies (gebruikte libraries) downloaden: go get Bouwen: go build Nadien uitvoeren: ./elektrain Of zonder een executable te bouwen:

Dec 11, 2021
Raspberry Pi terminal based activity monitor
Raspberry Pi terminal based activity monitor

pitop Raspberry Pi terminal based activity monitor Yes I know there are plenty of solutions already available, but I wanted to build my own terminal b

Dec 11, 2022
A goroutine monitor to keep track of active routines from within your favorite shell.
A goroutine monitor to keep track of active routines from within your favorite shell.

roumon A goroutine monitor to keep track of active routines from within your favorite shell. Features Track live state of all active goroutines Termin

Jan 3, 2023
A terminal based graphical activity monitor inspired by gtop and vtop
A terminal based graphical activity monitor inspired by gtop and vtop

NO LONGER MAINTAINED. A maintained fork of gotop exists at https://github.com/xxxserxxx/gotop. Another terminal based graphical activity monitor, insp

Jan 1, 2023