Skip to content

V1.0.3. crosshair option + bugfix hold keys

Compare
Choose a tag to compare
@wasiejen wasiejen released this 02 Oct 16:52
· 54 commits to main since this release

V1.0.3

New:

  • <arg>-crosshair (to be used together with the <arg>-status_indicator)
    • shows a simple crosshair as an overlay in the middle of the main screen
    • can be used for for each <focus> group separately or will be always active if used before the first <focus> as a default start arg
    • only works if the status indicator is active, because it is controlled by the same GUI loop
    • status indicator now has in the context menu the option to toggle the indicator - but a change of the active window will reset the setting due to application of the start arguments of the default group or a focus group.
  • <arg>-crosshair=x,y sets a delta to the window middle (same constraints as above argument apply)
    • e.g. <arg>-crosshair=-20,-20 sets the middle of the crosshair 20 pixel left and above the center point of the window
    • I use this for third person games where sometimes the middle target point for aiming is not in the middle point of the window
crosshair

Bug fix:

  • while holding a key that is a trigger of a rebind or macro, I could happen that on repeating the keys the original key was not intercepted
    • for all key_events that are triggers of rebinds and macros the repeat on holding the key is deactivated. The key will only be send once.

V1.0.2.1:

New:

  • listening now also for vertical and horizontal mouse scroll wheel input (vk_code 6 and 7); only listening, no sending of scroll events.

Bug fix:

  • key event filter was active at start even without hitting enter to start. if you used -nomenu there was nothing different

V1.0.2:

  • Option for a small graphical Indicator that simply shows if the program is active or not. It changes color to red if key listener is inactive and green if active.
    • use <arg>-status_indicator=size in pixel in config before the first <focus>
    • e.g. <arg>-status_indicator=20 # indicator circle with 20 pixel diameter
    • control it via:
      • left click to drag indicator to new position
      • right click opens a context menu
        • controls like on alt+* key combination: Toggle Pause, Return to Menu, Exit Program
        • to separately close the overlay use: Close Indicator; the program will continue like normal without the indicator
    • the indicator always stays on top, even in full screen apps
    • atm it only works at the start, if you close it you have to restart FST to get it back
    • it starts in the upper left corner of your main screen, so if you have your taskbar on the left side of the screen and clicked on the task bar after starting FST it can be obstructed by the task bar
green scli red cli green context
  • When holding a key, now it will again send repeated keys like one would expect. Before the repeated keys on hold were intercepted to prevent multiple executions of a macro by holding the trigger key.

    • Now every key hold should send repeated keys and only the first press or release will be able to trigger a macro
    • Rebinds work for each key event on hold - so keys will be always replaced not only on first press or release
    • Tap Groups only allow the repeating of keys if they are not contrary to the actual tap group state which decides which key should be send as idealized input
  • active window names should now be shortened to the actual program name

    • so instead of "free_snap_tap.py - Untitled (Workspace) - Visual Studio Code" it should now only show "Visual Studio Code" and comparable

Bug fix:

  • Toggle Pause control on ALT+DELETE that was unreliable in combination with the new <focus> groups

If you find any bugs or have ideas or request for features - just open an issue or discussion.

V1.0.1:

  • all settings in one file (except start arg: -file=... to define from which file to load at start)
    • all start arguments supported via <arg>*startargument*
    • multi focus apps with own groups via <focus>*name of focus app*
      • all start arguments and groups before first <focus>... will be interpreted as default and applied to all focus app settings
      • every start argument and groups until the next <focus> will be added to the current focus name and applied AFTER the default start arguments and groups
      • e.g. tap group a, d before first <focus> will be applied to all focus groups
  • adapted cli output of groups to always show the currently active groups
  • if a ke/key had more then one suffix, following suffixes of a ke or a trigger_group were not checked/executed as soon as one suffix evaluated to False (was a measure to prevent unnecessary checks) - fixed, now all will be checked
  • starting times for keys was set to start time - now will be set 1000 seconds in the past, to guarantee first time execution of macros/rebinds with boolean time evaluations
    • my cause problems in delay times if the key was not pressed before a time evaluation for a delay of this key
  • reset_repeat() and repeat_stop() now evaluates to True
  • file now supports multi line macro sequences, when new lines starts with : it will be added to the line above

V1.0.0:

  • macro playback interruption and replaying by retriggering the same macro
  • macro sequences and reset functionality
  • macro notation now with :: instead of :
  • mouse buttons now also tracked,
    • right_mouse, left_mouse, middle_mouse, mouse_x1, mouse_x2 now usable as constraints, and in suffixes
  • repeating keys at set interval and management of the repeating function
    • function invocation (similar to evaluations but will always return False, but execute the function to manage the repetition of the suffixed key_event or Key)
      • toggle_repeat()
      • stop_repeat()
      • reset_repeat()
  • added evaluations:
    • last(): returns time since last press or release
    • dc(): "double click": on press returns time since last press, on release returns time since last release
  • many other smaller improvements :-)

Function documentation (Version 1.0.1) see ReadMe