Since the keyboard mapping for all OMEN Sequencers should be the same, first try running before touching the keyboard_coords.json and keyboard_map_refined.json:
python3 line.py
If you notice any columns that look weird or have missing keys, look below:
python3 calibrate.pyThis is an interactive keyboard mapper which will allow you to map each key to a column, note that this process is very prone to errors which is why you must run:
python3 refine.pyThis will allow you to correct any errors you made while creating the columns. Once you've done that, to use effects like raindrop, you need to convert this into a 2D grid via another helper script add_rows.py
git clone https://github.com/AteebXYZ/omen-sequencer-lighting
cd omen-sequencer-rgb
python -m build --wheel
sudo python -m installer dist/*.whlomen-sequencer-lighting:
HP Omen RGB Modular Controller
options:
-h, --help show this help message and exit
--interface INTERFACE Interface number (usually 2)
--mode {static,scan,rainbow,wave,raindrop,playback}
--color COLOR Single RGB color for static/scan modes (example: 255,0,0)
--colors COLORS [COLORS ...] Gradient colors for gradient mode (example: 255,0,0 0,255,0 0,0,255)
--angle ANGLE Direction of animation in degrees (0-360). 0=Right, 90=Down, 180=Left, 270=Up
--speed SPEED Animation speed (default: 0.01)
--spread SPREAD Color spread between columns (default: 0.08)
--smoothness SMOOTHNESS Wave smoothness: 1.0 is smooth, 0.1 is sharp/scan-like (default: 1.0)
--trail TRAIL Raindrop trail length
--drops DROPS Max simultaneous raindrops
--spawn SPAWN Chance of spawning a new drop each frame (0-1)
--fps FPS Frames per second for raindrop mode
--coords COORDS Optional JSON with full 2D coordinates for raindrop mode
--file FILE Path to a JSON file containing raw HID packets for playback mode
You can use wireshark to capture USB packets for your keyboard while in a VM with Windows running the OMEN Gaming Hub or OMEN Light Studio, export only the RGB data packets, usually in x.y.4 where x is your bus ID and y is your device ID. Then use the setup_to_py.sh script to convert the packets into a python array, use --mode playback and input the new .py file with --file
- This was only tested on Linux
- The script should probably work on Windows or Mac though
Thanks to this repo for the base script that helped me convert Wireshark packets into python arrays