Keys Per Second Changelog

What's new in Keys Per Second 8.8

Jan 17, 2024
  • Input handling was completely rewritten:
  • The key/button add dialog now shows in real time which key you're about to add.
  • Similarly, the command keys dialog now also shows which key combination you're setting.
  • Fixed that commands were active before the main window was visible (#66).
  • The configuration system was completely rewritten:
  • New (backwards compatible) configuration format primarily intended to supposed for planned features.
  • You can now have multiple statistic panels and multiple graph (more panel specific settings are planned).
  • Support for a detached graph was removed.
  • The show keys setting was removed (though you can still hide individual keys).
  • You can now change the display name of any panel (including special panels like AVG, MAX, etc) (#32).
  • The default update rate was changed from 1000ms to 100ms.
  • File paths used for automatic stats saving are now validated.
  • General interface changes:
  • Most dialogs were redesigned to support the more powerful configuration format.
  • Panels now have a set of panel specific settings that can be edited.
  • The right click menu now directly allows you to edit the settings of the panel that was right clicked.
  • When using the right click menu all settings now show their changes to the live GUI in real time.
  • The hide command key is now also available from the right click menu.
  • Thanks to @DeSu0556 the hide command key now adds the program to the system tray if supported (#89 and #91).
  • It is now possible to set a default configuration that will be loaded automatically when starting KeysPerSecond (#20 and #89)
  • Implement a new last panel type that shows the elapsed time since the last input.
  • Make it possible to run the program in windowed mode (#77)
  • The default display name of the CUR (current) panel was changed to KPS.
  • A warning is now shown when the initial configuration contains no panels to display.
  • Fix that the total panel was showing up as AVG in the layout settings (#87)
  • Fixed a bug that caused the program to freeze at extremely small GUI sizes.
  • Improved graph rendering and resolved a graph flickering issue at extremely high update rates.
  • Fixed that newly added panels sometimes get added behind existing panels in complex layouts.
  • Fixed a bug with the track all keys setting if key-modifier tracking is enabled.
  • Fixed that the layout dialog crashes under Linux (#59 and #88)
  • Fixed a critical rendering failure under Linux (#76)
  • Major code quality improvements.
  • Update dependencies.
  • Add some limited (unit) testing.

New in Keys Per Second 8.6 (Jun 9, 2022)

  • Fix statistics saving and loading being being broken (#51 and #57).
  • Implement a new text based statistics saving format (meaning you can manually edit key counts if you want).
  • Implement a text only rendering mode.
  • Implement a value only rendering mode.
  • Make it possible to unbind command keys, effectively disabling them (#45).
  • Dependency updates & internal improvements.

New in Keys Per Second 8.5 (Jan 8, 2022)

  • Remove support for legacy configuration file formats.
  • This concerns the kpsconf format which was lasts used in v4.5 (replaced April 8th, 2017).
  • And the kpsconf2 format which was last used in v7.4 (replaced September 12th, 2018).
  • You can convert configuration files in this format using v8.4.
  • The current kpsconf3 format will still load, but newly saved configuration files will use the kps extension.
  • Support running on M1 Mac's (#39).
  • Fix being able to move any UI component with the arrow keys (#31).
  • Fix the comma (,) key not being loaded properly from the configuration file (#34).
  • Fix resetting statistics (Ctrl+P) not resetting the total number of key presses (#42).
  • Make the Java check more flexible by reading JAVA_HOME meaning more runtimes are detected (#49).
  • Fix overlay option and stats saving not properly loading from the config when passed via the command line (#41).
  • Fix the reset totals command key not being properly read from the config (#40 and #47).
  • Make it possible to edit the values in the layout configuration screen with the keyboard.
  • Add an about dialog to the right click menu with general information and links.
  • Fix some dialog typos.
  • Fix cancelling adding a key still reserving a layout slot for that key.
  • Update dependencies.

New in Keys Per Second 8.4 (May 24, 2021)

  • Implement sub-pixel rendering (if your system supports it this will improve the quality of text rendering)
  • Implement support for saving/loading statistics on exit/launch (#25)
  • Update global keyboard/mouse listener library
  • Fixes character combinations not working (e.g. e + " = ë)
  • Resolves some rare freezes on OSX
  • Fix the program not working under Java 16 (#30)
  • Fix the border offset not properly applying to the fill color
  • Fix not being able to add the ESC key due to it closing the dialog
  • Enable the 'save config' button by default

New in Keys Per Second 8.3 (Aug 27, 2020)

  • If you're on Windows with the correct VC++ runtime installed you'll now see the new style Windows file chooser.
  • Prevent loading of non existent configuration files via the command line and user interface.
  • You now have to properly quote the file path of a configuration file passed via the command line if it has spaces (this used to work without quotes)
  • Fix the text add description saying to press the OK button while the button is named Save.
  • Fix background transparency not properly being applied to areas where no key panel is displayed.
  • Improve how dialogs look.
  • Build process improvements.
  • Small internal improvements.

New in Keys Per Second 8.2 (Feb 6, 2019)

  • Make the display name of keys editable (can be changed in the key add screen)
  • Implement an option to periodically save the statistics to a file (#18)
  • Make it so dummy keys created by the track all keys function are read back from statistics files
  • Split the track all keys option in a track all keys and track all mouse buttons function (#17)
  • Fix the right mouse button being listed as the left mouse button in the mouse button add screen

New in Keys Per Second 8.1 (Dec 27, 2018)

  • Add support for changing the layout cell size (basically means pretty much all sizes are now supported again)
  • Add support for changing the panel border offset (basically means you can control the space between panels)
  • Tried to improve the quality of the readme file a bit >_>
  • Make the main configuration screen an actual frame so you can actually find it on the taskbar.
  • Make the add key dialog and the layout dialog resizable.
  • Fix a typo on the add key dialog.
  • Restyle all the dialogs.
  • Actually make the cancel button on the add key dialog revert the visible state of keys.
  • Fix a rather severe bug that caused issues for some keys (though the keys that were affected by this bug aren't even on my own keyboard so I'm not actually sure how much of an impact this bug actually had).
  • Proper support for the right shift key.
  • Fix adding duplicate keys still making the layout longer.
  • Actually reset the total number of hits when loading a new configuration.
  • Fix loading several configurations in a row and then adding a key creating a lot of empty layout space.

New in Keys Per Second 8.0 (Sep 12, 2018)

  • Grid based layout editor that shows layout changes in real time (if opened from the right click menu) and that allows custom panel sizes
  • Rendering modes can now be set on a per key basis
  • Overall improved performance
  • Removed the size setting

New in Keys Per Second 7.4 (Jun 4, 2018)

  • Add the GitHub link to the initialisation dialog.
  • Fix the configuration file not supporting UTF-8 characters.
  • Fix position saving only working when the graph is displayed in its own window.
  • Change the arrow key symbols to unicode symbols with better availability.

New in Keys Per Second 7.3 (Jun 2, 2018)

  • The arrow keys displayed a bit weird...
  • Fixed by changing to a new set of arrow symbols: ⯅⯆⯇⯈

New in Keys Per Second 7.2 (Dec 27, 2017)

  • Fix modifier keys not being highlighted when key-modifier tracking is on.
  • Fix modifier keys releasing every other key when key-modifier tracking is on.
  • Fix the key-modifier check box not being toggled when loading a config.
  • Fix all known cases of key-modifier tracking weirdness.
  • Rework key-modifier tracking internally to be more efficient.
  • Lots of internal optimizations.
  • Better color support for unfilled grids (empty tiles are now either the background color or transparent depending on whether transparency is enabled).
  • Fix several minor bugs in the right click menu.

New in Keys Per Second 7.1 (Dec 19, 2017)

  • Fix command keys with modifiers not working
  • Repaint the frame when resetting statistics or totals for an immediate display update

New in Keys Per Second 7.0 (Dec 19, 2017)

  • Implement a feature where you can save the statistics to a file
  • Fix key capacity checks being incorrect
  • Improve overall performance
  • Fix changing the update rate messing up the average
  • Fix a multithreading issues (as kindly pointed out by freakode)
  • Lots of internal refactoring & optimizations
  • Improve startup times
  • Fix a bug with the rendering mode loading (bea5316) (#12)

New in Keys Per Second 6.6 (Dec 19, 2017)

  • Fix a bug where key-modifier versions of the original key don't show
  • Add support for disabling key-modifier combinations (allows for modifier keys to work as normal keys)
  • Fix adding a mouse button displaying a weird name

New in Keys Per Second 6.5 (Dec 19, 2017)

  • Added warning dialog to prevent more keys being added then there are rows & columns.
  • Added an extra render mode for rendering horizontal keys in the value-text format.
  • Add specific reset commands to the reset menu.

New in Keys Per Second 6.4 (Dec 19, 2017)

  • Fix the position feature for keys not working.

New in Keys Per Second 6.3 (Dec 19, 2017)

  • Add a lot of layout related options:
  • All text can now be rendered either horizontal or vertical (default)
  • Panels can now be organized in a grid instead of just a single row. The number of rows and columns is custom.
  • Positions can now also be assigned to the max, avg, cur & tot panels. Meaning they can now also be placed at a custom place instead of at the end of the row.
  • 4 new modes of the graph are implemented. Under the other components (default), on top of them, on the right of them, on the left of them and detached. When the graph is detached it gets it's own window that can be given a custom size.
  • The graph dimensions are no longer fixed and can be changed (as long as the side isn't shared).
  • Support to save & load all of the above to a configuration file.

New in Keys Per Second 6.2 (Dec 19, 2017)

  • Fixed a bug where localized key names would not be converted to their short form (eg. )
  • You can now track key-modifier combinations (eg. Alt+Q or Shift+5 or Ctrl+H, or Alt+Shift+Ctrl+R)

New in Keys Per Second 6.1 (Dec 19, 2017)

  • Fix the background opacity controlling the global opacity (for example a background opacity of 0% will make the window invisible even if the foreground opacity isn't 0%).

New in Keys Per Second 6.0 (Dec 19, 2017)

  • Minor internal optimizations.
  • Context menu GUI improvements / changes & custom colours compatibility.
  • Fix context menu arrow not being colored.
  • Fix a bug where the general menu section wasn't saved properly.
  • Add a panel that shows the total amount of hits accros all keys.
  • Fix the context menu highlighting disappearing when changing the background opacity to 100%.
  • Fix not all context menu items being colored correctly when using custom colors & having them disabled.
  • Fix context menu selection not being reset properly.
  • Implement the option to change the command keys and save them to the configuration file.

New in Keys Per Second 5.5 (Dec 19, 2017)

  • Added a cancel option for the graph, size, precision & update rate configuration dialog.
  • Fix a weird rendering bug that happens on Windows 10.
  • Fix loading a new config file not resetting stats.
  • Fix removing keys not actually removing keys.
  • Fix old keys not being removed when a new config is loaded.
  • Fix arrow keys moving both the program & the context menu at the same time.

New in Keys Per Second 5.4 (Dec 19, 2017)

  • Fix the backgroud opacity being used as the graph foreground opacity.
  • Fix the key color not being inverted when the background opacity is 0%.
  • Fixed some rendering issues when only displaying a single panel.
  • Fix changing the colors resetting the key counters.
  • Fix the pause check mark in the right click menu not being toggled by Ctrl + T.
  • Change overlay osu! to overlay mode since it doesn't always overlay osu! properly.

New in Keys Per Second 5.3 (Dec 19, 2017)

  • Added the option the track mouse buttons.
  • Added the option to save the onscreen position of the program to the config.

New in Keys Per Second 5.2 (Dec 19, 2017)

  • Add a checkmark to the pause menu item
  • Fix the overlay option not working immediately
  • Implement a config reload command key Ctrl + R
  • Fix visual glitches when there are no components added
  • Fix disabling track all disabling permanent keys
  • Implement work around for a weird config menu NPE
  • Fix double click working as Ctrl
  • Improve the functionality to pass config files via the command line
  • Fix track all disabling key counters

New in Keys Per Second 5.1 (Dec 19, 2017)

  • Fix the checkmark icon in the right click menu not being colored correctly
  • Fix custom colors being reset instead of disabled
  • Implement default config values
  • Implement config value caps
  • Fix an issue when loading a config with a custom size
  • Add an cancel button to the add key dialog

New in Keys Per Second 5.0 (Dec 19, 2017)

  • Fix an issue where the arrows keys move the window by more then 1 pixel.
  • The window can now be moved at different speeds with the arrow keys 2 pixels with Ctrl and 3 pixels with Shift.
  • Implemented a new configuration format that is text based and can be edited with a text editor (old format still supported).
  • Made it possible to configure the program when it's running though the right click menu.
  • Added the option to save the config when the program is running.
  • Added the option to load a config when the program is running.

New in Keys Per Second 4.5 (Dec 19, 2017)

  • Implement 5ms & 1ms update rate
  • Prevent infinite program instances being created when your username ends with a !
  • Fix incorrect rendering bug with bg = 1.0F and transparency enabled
  • Filter config selection screen to only show config files

New in Keys Per Second 4.4 (Dec 19, 2017)

  • Fix a bug when the program doesn't launch when its path contains an !
  • Implement pixel perfect moving of the window using the arrow keys
  • Improve window dragging
  • Fix the graph not being reset properly on a stats reset
  • Fix the menu not showing when right clicking the graph

New in Keys Per Second 4.3 (Dec 19, 2017)

  • Implemented a right click menu for various commands
  • Implemented a pause function (Ctrl + T)
  • Implemented a snap to screen edge function (works for multi-monitor setups)

New in Keys Per Second 4.2 (Dec 19, 2017)

  • Added the option to pass a config file via the command line.
  • Fix a bug where the overlay option isn't saved to the config.
  • Fix the constant flashing of the window icon when the overlay option is enabled.

New in Keys Per Second 4.1 (Dec 19, 2017)

  • Add a separate dialog for adding keys, adding keys should feel more intuitive now.

New in Keys Per Second 4.0 (Dec 19, 2017)

  • Major performance improvements
  • Change opacity settings to use a percentage

New in Keys Per Second 3.12 (Dec 19, 2017)

  • Added support for a variable size.
  • Added an icon to the frame.
  • Improved icon.

New in Keys Per Second 3.11 (Dec 19, 2017)

  • Remove decimal point for cur since cur is an integer
  • Add automatic version checking

New in Keys Per Second 3.10 (Dec 19, 2017)

  • Added the ability to use transparent colours.
  • Fixed a bug when trying to load a 3.9 config using version 3.8 (no one probably even noticed this xD).

New in Keys Per Second 3.9 (Dec 19, 2017)

  • Added the option to display decimal avg & cur values (0-3 digits beyond the decimal point supported).
  • Added a key to show / hide the GUI (Ctrl + Y).

New in Keys Per Second 3.8 (Dec 19, 2017)

  • Added the option to remove added keys.

New in Keys Per Second 3.7 (Dec 19, 2017)

  • Added support for more then 10k hits on a single key.
  • Added support for hiding individual tracked keys.

New in Keys Per Second 3.6 (Dec 19, 2017)

  • Added the option to show / hide tracked keys
  • Added the option to track all keys
  • Fix some edge case bugs
  • Minor optimizations
  • Made sure the native library is always unloaded even when the program is suddenly terminated
  • Added an 'Exit' option to the config screen

New in Keys Per Second 3.5 (Dec 19, 2017)

  • Added the option to customize the GUI foreground & background colour.

New in Keys Per Second 3.4 (Dec 19, 2017)

  • Invert the key text color when a key is pressed.

New in Keys Per Second 3.3 (Dec 19, 2017)

  • Added the ability to configure the order in which the keys are displayed & some minor bug fixes.

New in Keys Per Second 3.2 (Dec 19, 2017)

  • Added support for a variable update rate & changed exit key to Ctrl + U

New in Keys Per Second 3.1 (Dec 19, 2017)

  • Added the option to force the program to be the top window.
  • This does however require osu! to not be run in fullscreen mode.