Git Product home page Git Product logo

jkps's Introduction

JKPS

JKPS is a program that shows keystates, keys per second, total keys and current beats per minute. The program is intended to be used in rhythm games such as osu!, Etterna, Stepmania etc.

Preview

The program when active looks like that:

Usage

To add a keyboard key press Ctrl + +, to add mouse button press Ctrl + >, and to remove press Ctrl + -.

To rebind a key click with right mouse button on the button and then click the desired key on the keyboard. If you want to change key label, then write it in the second text box.

These actions look like:

To change how the program looks press Ctrl + A to open menu. If you want to change texture or font, then you have to provide it in the same directory where the program is located and then write the whole asset name (extension included) in corresponding text box and then press Enter or Refresh button.

Hotkeys

Click with right mouse button on the button to edit it

Ctrl + +/- - Add/remove keyboard keys

Ctrl + < - Add mouse buttons

Ctrl + W - Close the program

Ctrl + X - Reset all the statistics

Ctrl + A - Open menu

Ctrl + K - Open an extra window with KPS

Alt (hold) - Show opposite button values

Menu hotkeys

Up arrow (while a value is selected) - Increment a numeric value by 1

Down arrow (while a value is selected) - Decrement a numeric value by 1

Tab - Change cursor on next value (if there is any)

Shift + Tab - Change cursor on previous value (if there is any)

Ctrl + Tab - Forward tabulation

Ctrl + Shift + Tab - Backward tabulation

Key press visualization

Notes

  • Capture the program as a game in OBS, not as a window.
  • To make the program work with greenscreen write "GreenscreenBG.png" in "Main window" -> "Background texture filepath" and press Enter or Refresh button.
  • If the program lags only in OBS then close its menu.
  • For Linux users: SFML 2.5.1 must be installed.

Links

Download

Themes

License

Licensed under the MIT License.

jkps's People

Contributors

matveiqaaa avatar tonetfal avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

jkps's Issues

OEM keys shown as "Unknown" for any layout other than the classic US layout

I'm a french player, and I natively use ISO-FR which has a bunch of useful and very much used extra keys (which I use to play), but they all get recognized as "Unknown", will stay pressed and just won't register anything.
Is there a way to change the code to work based on received keycode (if not recognized by the program)?

Weird CPU Usage

image
its always running in the background unless i use task manager, eating up constant 25% cpu
i dont think its a bitcoin miner or anything like that because no network is being used
do you think you could try and fix this? because this is so much better than osu kps except for this

Wrong key visualization on very fast inputs

If user triggers a specific input more than once in a frame, it won't visualize it correctly.

Fix: make the visualizer be event driven to allow to somehow manually separate the rectangles.

Some direct references: void GfxButton::update(bool keyState)
That's what creates the rectangles. Move the creation from there to something that gets called on input events. When that happens, if the last rectangle is not distant enough (the distance from the origin is less than rect.height + 1) then move it at rect.height + 1 (also shift all the existing ones). That's the only way to make it separate the rectangles correctly, even though it will break a little bit the "rectangles history", as the ones pushed upwards will appear to be pressed in the past. Update still has to make the last rectangle to grow (if the input is still held).

Another way of doing that is just increasing the tick-rate the program is run at (or even make it customizable)

The key reading is not event based, hence the only way is to increase the FPS.

Overlay Problem

So I downloaded this since it is cleaner and better then osukps but it isn't like a overlay it shrinks :(
๐Ÿ˜ข

A couple Suggestions

  1. Keys and counts hide if set keys weren't pressed for X seconds. When you're in the menu or something ;3
  2. Text outline.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.