Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dmitryboiadji/gigamate
Tray utility designed to control capable Gigabyte monitors
https://github.com/dmitryboiadji/gigamate
Last synced: about 17 hours ago
JSON representation
Tray utility designed to control capable Gigabyte monitors
- Host: GitHub
- URL: https://github.com/dmitryboiadji/gigamate
- Owner: DmitryBoiadji
- Created: 2024-04-20T16:29:54.000Z (7 months ago)
- Default Branch: develop
- Last Pushed: 2024-07-28T16:05:52.000Z (3 months ago)
- Last Synced: 2024-07-29T15:32:13.456Z (3 months ago)
- Language: JavaScript
- Homepage:
- Size: 608 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# GigaMate
This pet project is a tray utility for macOS built with [Electron](https://www.electronjs.org/), designed to control a capable Gigabyte monitors.
The application provides a simple interface to adjust brightness.![ProjectImage](images/readme_icon.png)
## Features
![Brightness](images/brightness.gif)
- **Tray Icon**: Access the utility from the macOS tray.
- **Monitor Control**: Adjust brightness.
- **Global Shortcuts**: Use keyboard shortcuts to adjust brightness.
- **Startup**: Runs app login.
- **Express Server**: Control the monitor settings via HTTP requests, for example from [HomeAssistant](https://www.home-assistant.io/).## Capable models*
* Gigabyte M32Q
* Gigabyte M32U _(not confirmed)_
* Gigabyte M28U _(not confirmed)__* Probably all Gigabyte monitors that uses a Realtek HID device to control it over OSD sidekick should have the same protocol_
## Installation
1. **Clone the repository**:
```bash
git clone https://github.com/DmitryBoiadji/GigaMate
cd GigaMate
```2. **Install dependencies**:
```bash
npm install
```3. **Run the application**:
```bash
npm start
```## Usage
### Global Shortcuts
- **Increase Brightness**: `Alt+CommandOrControl+Shift+=`
- **Decrease Brightness**: `Alt+CommandOrControl+Shift+-`
-
### Tray Menu- **Quit**: Exit the application.
### HTTP API
The application runs an Express server on port `3000` to accept HTTP requests for monitor settings.
- **Set Brightness**:
```http
POST /monitor-settings
Content-Type: application/x-www-form-urlencodedbrightness=
```
HomeAssistant rest example can be found [here](hass/rest.yaml).![Brightness](images/hass.png)
## TO-DO
Add issues with links
## Contributing
Feel free to fork the repository and submit pull requests. For major changes, please open an issue first to discuss what you would like to change.
## License
## Special thanks
A huge thanks to @kelvie and his [gbmonctl](https://github.com/kelvie/gbmonctl) CLI tool written in Go, which heavily inspired me to start this pet project.
I used it for a while with QMK keyboard macros.Initially, I decided to write a simple wrapper around it but ended up rewriting it using the node-hid library.
Big thanks to @kelvie for reverse engineering the OSD Sidekick protocol!## Acknowledgements
- [Electron](https://www.electronjs.org/)
- [Node-HID](https://github.com/node-hid/node-hid)
- [Express](https://expressjs.com/)---