Monday 21 November 2016

USB Remote for iOS v1.10

What's new in USB Remote v1.10 for iOS:


  • separated settings into categories,
  • updated help section in “About & Help“,
  • fixed several bugs.

Remote Tab:

  • added option to auto reset state of modifier keys switches after any non-modifier key is pressed (soft keyboard or FnKeys screen),
  • current state of modifier keys switches is now displayed by Mouse/FnKeys screens,
  • added QucikMacro option (more info in Macros section).

Text Tab:

  • “type in real-time” option was renamed to “auto typing mode” and “manual typing mode”
  • added QR/barcode scanner,
  • application will now use arrow keys to navigate through previously typed text in case corrections are made,
  • added QucikMacro option (more info in Macros section),
  • added option to type text when new line is started for “manual typing mode”,
  • added option to clear text area when new line is started for “auto typing mode”,
  • added option to clear text area when dictation is finished for “auto typing mode”,
  • text can be now typed in real time when voice recognition is used,
  • added option to clear text field when voice recognition is initiated,
  • added option to add additional character(s) (dot, space, enter) after voice recognition is finished. This allows to automatically separate sentences or paragraphs, without having to insert punctuation characters with voice commands.

Media Tab:

  • added more actions (Home, Back, Forward, Refresh, Search, Launch browser, Launch email, Launch calculator),
  • added option to run action with custom usage ID from HID consumer control page,
  • added QucikMacro option (more info in Macros section).

Macros Tab / Macros:

  • new actions: mouse click, mouse move, mouse scroll, media action,
  • added option to hold key(s) for a specified number of milliseconds for Key action (instead of always immediately releasing),
  • fixed issues with dialog screen displayed when macro is being executed,
  • 100ms delay is now added after every keyboard macro action (Text/Key). This short delay should give host PC additional time to process keyboard input, even if user thinks it is not necessary to add delay or forgets to do this. It is no longer necessary to manually add short delays, what makes macros easier to read and edit. This feature can be disabled in settings,
  • added QuickMacros for Text, Remote, Mouse, FnKeys and Media screens. You can assign a macro to one of six available QuickMacros slots. You can quickly execute such macros directly from previously mentioned screens, without having to switch to Macros tab and scroll through list of all macros,
  • added option to duplicate macro and macro action,
  • long pressing a macro or macro action will now open pop-up menu.

Tuesday 11 October 2016

USB Remote v1.60

What's new in latest version:

Macro Panels tab:

Macro Panels allow you to group your macros and easily execute them, with just a single click (or a long click).

Macro Panels tab

Color of text and background can be easily modified.

For each panel consists of rows and columns of buttons. For each button you can assign standard-click and long-click macro, text and background color. You can also show/hide individual buttons.
To add, modify and delete panels, click on "Panel" button. Mark a panel as the default one, to make sure it will be automatically loaded each time the app is started.
To edit properties of a button, click on "Button" button, select which button you want to modify and finally, select one of available actions: edit name and color, assign macro, show or hide.

Panels are stored as .txt files in /USBRemote/Panels directory and can be manually edited. For more info, go to USB Remote web page and select Macro Panels link.

Text tab:

Interface of Text tab was slightly redesigned: there is now a "Auto" and "Manual" typing mode switch. It is no longer necessary to open settings screen to change typing mode.

"Manual typing" mode - use this mode when you want to be 100% sure that the text is correct before it is typed on your PC. When ready, press "Type" button. If you enable "Type on enter" option in settings, instead of pressing "Type" button, it is enough to start a new line: by pressing Enter key on your soft keyboard or starting a new line when using voice input (you can do this by saying "new line" when using Swype+Dragon keyboard).

"Auto typing" mode - text is typed as soon as it appears in the text field. Since this version, application will also apply all corrections and changes to the text that was already typed on the PC. To make this process faster, application navigates through text using arrow keys when necessary. It is assumed that you are using text editor in which pressing arrow key moves cursor by one character left or right. If your text editor behaves differently, this feature will not work correctly and you should use "Manual typing" mode. Application also assumes that text was not modified in any other way: by you or auto-correct/auto complete mechanism. Application only keeps track of text that is currently present in text field, so it is HIGHLY recommended to clear the text field (use clear button on the right side of the text field) frequently (after each sentence), to avoid accidental changes to the text that was already typed. To help you with this, by default "Clear on Enter" option is enabled: text field will be automatically cleared when you start a new line. IMPORTANT: when in "Auto typing" mode, do not use backspace key on your keyboard to clear text as this will also do the same to the text on your PC, use clear button instead.

As a result of the changes, some options were removed from text tab settings and it is no longer necessary to set keyboard compatibility. Also, text can be no longer cleared as as you type, but that only messed up with text prediction anyway. 

There were also some modification made to voice commands. Now it is necessary to say activation keyword (if enabled) directly before each command keyword, for example: "command save command enter" (previously, "command save enter" would also work). Also, text field is now by default cleared each time a voice command is executed.

Added more actions to media tab:

New consumer control actions:

  • home (launches homepage on system-default browser, acts like a home button on Android OS),
  • back (goes back to a previous webpage, acts like a back button on Android OS),
  • forward,
  • refresh,
  • search,
  • launch browser,
  • launch email client,
  • launch calculator
  • custom

Selecting "custom" action allows to manually provide "Usage ID" (in decimal format) from HID consumer page (0x0C). Here is pdf file with list of all Usage IDs. List starts from page 75.
Consumer control actions may have different behavior, or may not be supported at all, depending on USB host, OS and currently running application.

Several minor modifications and bug fixes:

  • fixed bug when macro executed from widget/tasker plugin could get stuck,
  • fixed timing problems with macros,
  • improved execution of macros containing JUMP action: dialog screen will no longer disappear on rotation, added stop button to the dialog,
  • improved support for permission system (Android 6.0 and later),
  • state of "switchable" keys row in custom keyboard tab is now correctly restored after screen rotation,

Sunday 4 September 2016

InputStickUtility v1.48

*** USB Remote is now available also on iOS platform. Download on the AppStore. ***

What's new in the latest InputStickUtility version:

Fixed Android N Bluetooth 4.0 connection problem:

Devices running Android N should now be able to connect to InputStick BT4.0 devices. If the problem still occurs on your device, please let me know in comment or by email (see Contact section on

If your app uses direct Bluetooth connection, get new API here. If it uses InputStickUtility no actions are required.

Firmware 0.98B (optional update):

Allows to change Bluetooth name of InputStick device. More info below. Since vast majority of users most likely won't be interested in this option, this is an optional update and application will not suggest to upgrade your firmware. 

To update to 0.98B:

  • unplug device from USB port (skip this if your device is password protected),
  • My devices -> select device from the list -> more -> Firmware Upgrade -> Yes -> select v0.98B,
  • plug device into USB port, wait few seconds,
  • press Flash button.
Note: application will assume that v0.98B is same as v0.98

Added option to change Bluetooth name of InputStick device:

To change Bluetooth name of the device:
  • *** make sure you have v0.98B firmware flashed on your device ***
  • unplug device from USB port (skip this if your device is password protected),
  • My devices -> select device from the list -> Configuration (padlock icon),
  • plug device into USB port, wait few seconds,
  • press Connect button,
  • Change BT name -> enter new name (only a..z, A..Z and 0..9 characters are allowed) -> OK,
  • keyboard LEDs will be toggled (Windows only). Wait for a few seconds and unplug device. 
Your device may still display old name for some time (cached). Name will be set back to "InputStick" if restore defaults procedure is initiated. 

Added system log:

this option can be useful for troubleshooting problems when the device is not connected to PC and not rooted (Logcat output can't be accessed using other apps). 
To enable system log go to: Settings -> System log
To view system log go to: About & Help -> System log

Note: log is stored in RAM only, it is NOT saved on flash memory. Content of packets is NOT being logged. Logging should be disabled once it is no longer needed. Only last 500 events are kept in log.

Tuesday 9 August 2016

USB Remote keyboard bug

Unfortunately USB Remote release didn't go exactly as planned. Looks like at some point data for keyboard layouts "disappeared" from the app. App build that was submitted for the release worked OK (as can be seen on demo video), however app downloaded from AppStore seems to have no keyboard layout data. As a result anything that is keyboard-layout-dependent (typing text using softkeyboard, typing text in text-area, typing text in macros) does not work (Fn Keys, Enter, Backspace keys work correctly).
This bug will be fixed ASAP with v1.01 update.

Update (10.08.16):
v1.01 update is now waiting for AppStore review:
-fixed keyboard layouts bug
-the most recently used InputStick is now marked when scanning for nearby devices

Update (12.08.16):
v1.01 update is now available on AppStore.

Monday 8 August 2016

Wednesday 3 August 2016

USB Remote for iOS - release date

USB Remote for iOS platform is now ready and will be released next Monday (08.08.16). Application will allow to use your iOS device as a wireless USB keyboard and mouse and use it to control any USB host (provided that it supports generic HID keyboard and mouse). InputStick USB receiver (BT4.0) is required.

Features available in v1.00:
  • intercept keys from soft keyboard,
  • FN keys (all keys available on generic PC keyboard but not included on soft keyboard),
  • mousepad (3 buttons, scroll, arrow keys for controlling presentations),
  • typing from text filed,
  • typing text from system clipboard,
  • multimedia actions (control media playback and system volume),
  • macros (keyboard actions only: type text, press and release key, delay),
  • OS X setup (helps to get through OS X keyboard setup assistant, which will appear when InputStick is plugged in for the very first time).

Supported USB host keyboard layouts:
  • Danish
  • Dutch   
  • English (UK/US/International/Dvorak)       
  • Finnish
  • French (FR/Linux/Canada/Switzerland)
  • German (DE/Switzerland/Mac)
  • Hebrew
  • Hungarian        
  • Italian
  • Norwegian
  • Polish (PL/Linux)        
  • Portuguese (PT/Brazil)
  • Russian
  • Slovak
  • Spanish
  • Swedish

Demo video will be ready in 1-2 days from now. Stay tuned for more updates.

Thursday 14 July 2016

InputStickUtility v1.47

What's new in v1.47:  

  • Added "Auto-recover connection" option - if enabled (see Settings, it is enabled by default), application will try to re-establish Bluetooth connection if it was lost (out of range, device unplugged or your phone simply dropped Bluetooth connection)
  • Added sound notification option for reminders - if "Remind to remove" option is enabled (see Settings) you can now choose following notification methods: Popup message, Popup message + Sound, Popup message + Vibrations, Popup message + Sound + Vibrations.  Note: "Use vibrations" option was removed as a result.
  • Fixed bug in "Select device" dialog - the dialog will no longer disappear when screen is rotated.
  • Fixed bugs in hu-HU, fr-FR keyboard layouts.

Thursday 7 July 2016

USB Remote v1.55

USBRemote v1.55 will be available on Google Play in a few hours. Here's list of changes in this version:

Presentation tab:

  • added mousepad to Presentation tab
  • added timer to Presentation tab
  • setting position of Controls in Presentation tab works only in portrait orientation, when both mousepad and timer are disabled
This update focuses mainly on presentation remote functionality. It is now possible to access mouse functionality directly from presentation tab, no need to switch between tabs anymore. You can also use timers to keep track of time while giving presentations. Main timer counts total time of presentation (can be manually started/paused/resumed/stopped), while slide timer counts time for current slide only and starts over from zero, each time slide is changed (Prev/Next/Jump button is used).
As a result of major layout redesign, setting position of presentation control buttons (Start, Finish, etc.) will now work only if both mousepad and timers are disabled and only when screen is in portrait orientation.

Bug fixes:
  • fixed bug in hu-HU keyboard layout
  • fixed bug when images are not grayed-out

Thursday 26 May 2016

iOS remote app - coming soon

Remote control application for iOS is now almost ready and soon will be submitted for release on AppStore.

  • iPhone 4S or newer (with iOS 8 or newer),
  • InputStick BT4.0.

Here's an overview of available features:

  • USB host keyboard layout (the same set of keyboard layouts as available in Android version),
  • auto-connect (connect with the most recently used InputStick device when application is launched/resumed from background) and auto-disconnect features,
  • adjustable mouse sensitivity.

  • type using system keyboard,
  • move mouse using mousepad. Left and right arrow keys are also included for controlling presentations,
  • FnKeys screen allows to access function keys that are available on standard USB keyboard, but are not included on iOS soft-keyboard.

  • type text from text field (you can also use voice recognition for typing text),
  • type text from clipboard,
  • erase last input (by pressing backspace key the same number of times as there were characters in the most recently typed text).

  • control media playback and system volume.

  • create macros using following actions: type text, press and release key, delay,
  • execute macro with just 2 clicks,
  • macros can be reordered on the list.

Thursday 24 March 2016

KP2A plugin v1.02

Manual for the plugin in .pdf format is now available. Download.

List of changes in v1.02:
  • Warning message will be displayed when CapsLock is on
  • Text length is checked before typing from clipboard (Settings -> Check length) - plugin will prevent from accidentally typing long text, if for example entire SMS message was copied into clipboard instead of just authentication code. You can disable length checking in settings - in such case even long text will be typed.
  • Fixed potential security issue on "Masked Password" screen - it will not longer be possible to see password characters (if they were revealed) in recent apps thumbnail 
  • Save as and Load from buttons are no longer displayed when editing a template - just to avoid confusion between individual macros and templates.
  • New keyboard layouts: pt-PT and fr-CA

Thursday 10 March 2016

KP2A plugin v1.01

Latest version of the plugin allows to execute any previously created macro template for current entry. It is no longer necessary to assign the same macro to several KP2A entries. There is also a new option for managing templates (it is no longer necessary to edit macro for current entry to access templates, although the same screen is re-used for this purpose). New actions can be accessed from "Show all actions" option, but if you are going to use them frequently, you should consider enabling them in Settings -> General Actions / Entry actions.

BTW: if you think that 5 templates limit is not enough, please let me know in comments.

New functions: "Manage templates" and "Execute Template".
Select template for execution or editing.

When typing from clipboard is active, application will display notification, which informs you how much longer the function will remain active. You can use the notification to immediately disable typing from clipboard or extend its duration (max allowed time is 15min).

You can now disable or extend duration of typing from clipboard function.

Saturday 13 February 2016

InputStickUtility 1.44

Added "Cancel"/"Disconnect" notification button - it is now possible to close connection with just a single click from notifications screen (Android 4.1 and later).
New notification icons for Android 5.0 and later.

Bug fixes in background service - solves a problem when some characters are skipped when typing starts right after connection is established (this affected BT4.0 only devices).

Application will check if USBRemote and KP2A plugin apps are up-to-date - you will receive following notification if you are using previous release of KP2A plugin or old version of USBRemote (for example: installed from .apk file).
Use "Do not remind" button to skip this check for current version of the app or go to settings to permanently disable this feature.

Modified widget/Tasker action configuration screen - removed unnecessary buttons.

Thursday 4 February 2016

USB Remote v1.51

Tasker plugin functionality:

It is now possible to enable variable replacement when using "Type text" action (enabled by default) - you can use InputStick to type values of Tasker variables, for example:

Type action, text to type: Today is -%DAYW
Result, "Replace variables" enabled: Today is - Wednesday
Result, "Replace variables" disabled:  Today is -%DAYW
Synchronous execution is now also supported, by default each action has 60 seconds timeout to complete, you can change this value in Tasker after action is added.
It is no longer necessary to add "Connect" action - application will automatically connect if necessary. You should still remember to add "Disconnect" action at the end of the task (unless you want to keep the connection alive after running the task, or just wait for InputStickUtility to close the connection after inactivity timeout).

Note: you should edit your existing actions to enable variable replacement and synchronous execution. 


You can now create a widget for typing text from system clipboard using "type from clipboard action". It is also possible to automatically disconnect after (any) widget action is completed, but only if connection was initiated by the widget. If application was already connected, this option will be ignored.

Note: this option must be checked when widget is being created. It is not possible to enable this option for existing widgets: you must remove them and create new ones.

Full changelog:

  • Widgets/Tasker plugin: will auto-connect if not connected,
  • Widgets/Tasker plugin: added "press key" and "type from clipboard" actions,
  • Widgets/Tasker plugin: fixed background service bugs,
  • Tasker plugin: variable replacement (%CLIP etc.) and synchronous execution are now supported,
  • Tasker plugin: fixed action editing,
  • Widgets: added option to disconnect after completing action       ,
  • System keyboard screen: "keep screen on" fixed for fullscreen mode,
  • System keyboard screen: back key is no longer be ignored,
  • Macros: JUMP action is now skipped if macro is executed in background.

Thursday 28 January 2016

KP2A plugin migration

InputStick Plugin for KP2A is now published on Google Play on "InputStick" developer account. This will allow for more frequent and faster updates. Current release of the plugin (published by "Croco Apps") will no longer be updated and will soon be removed from Google Play store. At this moment both releases offer the same functionality, but it is highly recommended to migrate to the new release as soon as possible.

How to migrate:

  1. Download new release from Google Play store. Alternatively for can download .apk file. Source code is available on GitHub.
  2. Run new app. It will ask you to remove old version of the plugin (to avoid duplicated actions in Keepass2Android).
  3. Remember to configure new app ("Configure as plugin", set keyboard layout, etc.).

More details:

InputStick Plugin for KP2A was initially developed by the author of Keepass2Android application - Philipp Crocoll (Croco Apps). Soon after it was released on Google Play, I took over further development of the plugin. In order to release an update on Google Play, I had to send it first to Philipp, so that he can sign it with his certificate and then publish on Play store. Releasing the plugin on my developers account (InputStick) will allow for more frequent and faster updates. Small changes should no longer pile up for "big" updates.
At this moment migration to the new release should be relatively easy and will take just a few minutes. Now that it is possible to assign a custom macro for each entry in KP2A database, I believe is the last moment when such migration can be done in a way relatively painless for the users.

Philipp will soon release update which will ask users to migrate to a new release. After some time, InputStick plugin will be removed from "Croco Apps" account, just to avoid confusion.

What's new in the latest version:

Clipboard/Google Authenticator support:

It is now possible to type text from system clipboard - once activated, any text that is copied to clipboard will be typed using InputStick. Please note that any text that is already present in the clipboard at the moment of activation will not be typed. Typing from clipboard is auto-disabled after text is typed or after 30 seconds passes since activation. By default Google Authenticator app is launched when this option is selected, but this can be disabled in settings. You can also enable option to automatically add enter key after text is typed. Usage example:
  1. Select Clipboard/Authenticator option.
  2. Google Authenticator is automatically launched (can be disabled)
  3. Select account in the Authenticator app (long press).
  4. Choose '"copy to clipboard" option.
  5. One-time password is not typed using InputStick.
  6. (optionally) Enter key is pressed.
Copy code to clipboard to type it using InputStick.


You can now create a macro for each entry. Macros can be used to automatize login procedures. For example:
  1. Type URL field.
  2. Press Enter key (you should skip this step if Enter key is automatically sent after typing URL).
  3. Type user name field.
  4. Press Tab key.
  5. Type password field. 
  6. Press Enter key.
 There are two execution modes for macros:
  • Manual execution: each step must be manually confirmed (by pressing "Execute" button). You can also skip a step if necessary. It is recommended to use this mode for web accounts.
  • Background execution: all actions will be automatically executed one after another, without displaying any interface. Be EXTREMELY careful when using this mode: after running such macro there is no way to stop the execution, until all steps are completed! Also, when using this mode it will most likely be necessary to add additional delays between actions (for example to make sure that your PC has enough time to load webpage or launch application). This mode can be used when running command line tools.
You can save a macro as template in order to assign it to any other Keepass entry that requires the same order of actions. There are 5 template slots available.

Note: plugin does NOT save any field data. Values of %user, %pass and %url actions are substituted at runtime from currently opened entry.

Macro editor.

Manual macro execution.

Macro templates.

"Show all actions" action:

You can now access any action without having to enable it in settings first. It is no longer necessary to display rarely used actions in "entry" menu.

Now every action can be accessed with just 3 clicks.

Setup Wizard:

When application is launched for the very first time, you must go through setup wizard, which will make sure that the plugin is properly configured. Setup wizard will ask you to:
  • remove previous release (if installed),
  • install InputStickUtility (if not already installed),
  • install Keepass2Android (if not already installed),
  • enable the plugin in Keepass2Android,
  • select keyboard layout (you can also test it at this point),
  • it will also display some basic information showing how to use the plugin.

Setup Wizard will make sure the everything is properly configured.

Select and test keyboard layout.

Other changes:

  • UI options are now grouped into 5 groups (instead of individual checkboxes): "General actions", "Entry actions" and "Field actions" (separately for primary and secondary keyboard layouts). 
  • Added "Connect" and "Disconnect" actions - it is now possible to manually manage InputStick connection if necessary.
  • Masked password - starting index is now 1 instead of 0.
  • Uses updated InputStick API.
  • Fixed Swedish keyboard layout bug.
  • Should now work properly with 10inch and larger devices.