A simple key overlay for osu! streaming.
If you're interested in per-key colouring, or custom width for your keys, please check out Friedchiken-42's version, which is better suited for mania.
Options can be changed in the config.txt file.
Note
If you're having trouble using the program with OBS when osu! is fullscreen, try "Game Capture" instead of "Window Capture" in OBS.
- Unzip
KeyOverlay-macos-latest.zipinto a folder.
- Double-click the
KeyOverlayfile, orcdinside the unzipped folder and run the program in the terminal (./KeyOverlay). - Grant the terminal
Input Monitoringpermission in System Preferences.
cdinto the unzipped folder- make
KeyOverlayexecutable usingchmod - run
KeyOverlayin terminal (KeyOverlay)
Warning
If you get an error similar to System.DllNotFoundException: Unable to load shared library 'csfml-system', install the packages you're
missing using your distribution's package manager. Any issues created related to this issue will be automatically closed.
For example, using Homebrew (on macOS):
brew install csfmlThen, build the project using dotnet build. (This is to create the build directory, which we'll copy the csfml-system files into.)
Copy the csfml-system files installed into the build directory (/bin/Debug/net8.0/).
Warning
This project also uses the BASS audio library. You can download it from here.
| Key | Type | Description |
|---|---|---|
keyAmount |
int |
Total number of keys to use (see the readme.txt for recommended widths for certain keyAmounts). |
key1, key2, ... |
string |
Keycodes the program should use (UPPERCASE). For numbers and symbols, please refer to this table. To use mouse buttons, prefix with " m" (e.g. mLeft, mRight). If you need more keys, add more fields and adjust the keyAmount parameter accordingly. |
displayKey1, displayKey2, ... |
string |
If the name of the key you are using is too large, or you'd like to use a different symbol, you can use this property to override the displayed key name. |
keyCounter |
yes/no |
Adds a keycounter beneath each key that counts total clicks in a session. |
windowHeight, windowWidth |
integer |
Resolution (in px) of the window |
keySize |
integer |
Changes the size of the key (excluding border). |
barSpeed |
integer |
Adjusts how fast the bars travel upwards. |
margin |
integer |
Adjusts the margin of the keys from the sides. |
outlineThickness |
integer |
Changes the thickness of the border around the keys. |
fading |
yes/no |
Adds/removes the fading effect on top |
backgroundColor |
R,G,B,A |
Colour of the background. You can set backgroundColor to 0,0,0,0, and then use "Additive" mode in OBS to achieve a transparency effect. |
keyColor |
R,G,B,A |
Colour of keys that aren't pressed. |
PressFontColor |
R,G,B,A |
Colour of pressed keys. |
borderColor |
R,G,B,A |
Colour of the key border. |
barColor |
R,G,B,A |
Colour of the bars and clicked keys. |
fontColor |
R,G,B,A |
Colour of the text. |
backgroundImage |
path |
Lets you set a background (not recommended). Put the image into the Resources directory and then put the filename into this property e.g. "bg.png" (without the quote symbols). Makes sure the background is the same resolution as your window and if you want transparency on your background you have to put the transparency on the image itself. You should use OBS to do this instead. |
maxFPS |
integer |
Sets the target FPS for the program to run. Doesn't affect poll rate. (Poll rate is set as high as possible). |
Based on a similar app by an unknown author (if you are the author dm the original owner of this repo so we can credit you).
