-
Notifications
You must be signed in to change notification settings - Fork 23
Configuration File
Until a user interface is added, config.ini
is where all the options are edited.
Type: str
Set which language files to use. It uses locales, so for example, en_GB
is for England, and en_US
is for America. Each file can have its own content or contain a link to another file.
The locale of your region will be chosen upon creation of the config, but if the file doesn't exist, the default option of en_GB
will be used instead.
Any environment variables may be used in paths, such as the Windows ones of %APPDATA%
and %PROGRAMDATA%
. For convenience, %DOCUMENTS%
has been added as a custom option and is used by default, as the script may otherwise fail if put in an unwritable location.
Type: str
Set where AppList.txt is stored. This is best left as default as it will be with the config and you may wish to add custom options.
Please get in touch if it is missing something, as it can be added to the master list for everyone to use.
Type: str
Set where the data files are stored. Again, best left as default, though if there is a lack of space, it can be moved to another drive.
Type: bool
Set if the application is allowed to access the internet.
Only a very small amount of data is used, so it shouldn't affect anyone on a metered connection. It is currently limited to updating AppList.txt from the master file, and periodically sending an update to analytics.
Type: int
Choose the minimum amount of time in minutes before AppList.txt
will update from the internet.
Setting the value to 0 will disable it.
Type: int
Set how often the script should attempt to save the data. It is quite a processing heavy operation, so setting it too often will cause unnecessary CPU usage. This doesn't affect saving when switching profiles.
Type: int
Sometimes the save may fail if the file has been locked by something, so this determines how many times to retry before giving up and continuing.
Type: int
Failing a save normally isn't a huge problem, but when switching profiles, all the recorded data since the last save will be lost if it isn't saved. This option can give a much larger time frame for the file to complete the save process before the new profile is loaded.
Type: int
If the file is locked, trying to save 5 times at once won't do much. This puts a wait between each attempt.
Type: str
Set which image format is used when saving. For the highest quality use png
, or for smaller files use jpg
.
Type: bool
Enabling this will result in more detailed images at the cost of processing time.
To generate the images, all the maps at different resolutions need to be merged together. This can be done quite easily once the maps have been scaled to a constant size. Upscaling a resolution by an unusual amount can introduce jagged edges, so this option doubles the upscale amount to minimise the issue.
For the keyboard, it simply sets the multiplier to minimum of 4, which does actually result in a larger image.
Type: int
Set what resolution to save the final image as.
Type: str
Set how the output files should be named. This can be used to avoid conflicts without having to manually name everything.
See here for information on possible options.
Type: str
Set the colours that should be used. Either a preset map or your own can be used.
See here for information on how to use it.
Type: float
Set how much to multiply the blur amount by. If the heatmap is too blurred for your liking, try reduce this value.
Type: str (time/press)
Choose what the colours should relate to. The options are the amount of time you have held keys down for, which is generally more accurate of your usage, or just key presses.
For example, in a FPS game, w
is used most of the time, but it's generally held down, so a
and s
get a higher press count if time is ignored.
The original idea had a separate colour map for both time and presses that would be merged together, but it didn't end up looking any good so was removed.
Type: bool
Set if the entire keyboard or just the main section should be shown. Enabling this option will remove the arrow keys and numpad from the output image.
Type: bool
Set if the colours should be applied in a linear way or not. It is disabled by default as it generally looks less interesting (instead of the full colour range, most values would be at the low end), but this should be enabled to get an accurate representation of the data.
Type: float
If one or two keys are skewing the linear data so nothing else can be seen, an exponential value can be applied to bring the colours out.
Type: float
Multiply the size of everything at once for the keyboard. The individual options are provided in [Advanced]
, this is just a quick way to upscale it all.
Ignore any maps when generating a CSV that contain less than this amount of points.
Type: int
Set how often in ticks to check the current resolution in ticks.
Type: int
Set how often in ticks to check the current application in ticks.
Type: int
Set how often in ticks to reload the application list. This may trigger the download if it is due.
Type: int
Set how often in ticks to show the number of commands that are queued. It's mostly to check it is all running correctly, as if python itself crashes, the background thread silently ends and the queue just keeps getting larger as there is nothing reading the other end.
Type: int
Set the maximum number of ticks before compression activates.
Track compression is used so that new data is always able to be added, instead of slowly becoming more and more dense. The tracks work by incrementing a value by 1 and writing that into an array, and compression works by dividing every pixel to lower that value again.
Too much compression will result in a lack of background data as it'll fade out too fast. Setting it too low will result in a large mash of recent tracks. Testing values generally requires a few hours of usage to see the result, so it is recommended not to change this by much.
Type: float
Set the divide amount when the compression activates.
Type: float
Set the percentage of heatmap to ignore.
If the heatmap is a constant range, then only a single point will be maxed out, whereas a lot of values will be low. This value reduces the maximum value by a tiny amount, but enough so that more points are maxed out.
Type: float
How many pixels the shadow should be.
Type: float
How many pixels gap to add between the key edge and font.
Type: float
Size of the font that is used for the key names.
Type: float
Size of the font that is used for stats.
Type: float
How many pixels are between the key name and key stats.
Type: float
How many pixels are around the image.
Type: float
How many pixels the outline is.
Type: float
The radius of the rounded key edges.
Type: float
Number of pixels between each key.
Type: float
How many pixels the dimensions of the key is.
Type: int
Set how much information should be displayed in the console. It is best left at 1 or 2 unless debugging something.
0: Everything (mouse movement)
1: Default (mouse clicks, key presses, resolution, etc)
2: Important (save, compress, application, etc)
3+: Nothing
Type: float
Set how many seconds to wait when holding down the mouse button before a new click is recorded.
Disable by setting to 0.
Type: float
Set how many seconds to wait when holding down a key before a new press is recorded.
Disable by setting to 0. With the time also being tracked for key presses, this is probably best left disabled.