Skip to content
Benjamin Loison edited this page May 19, 2024 · 31 revisions

The Magikeyboard is an Android keyboard specially designed to fill in forms securely with the elements of a database entry.

This automatic fill mode does not depend on the auto-fill services of the device, and does not share its info with other apps. This is the safest way to fill a form with an entry.

Activation

  1. Activate "Magikeyboard" in the settings:
  • In the KeePassDX app settings Settings → Form filling → Device Keyboard Settings
  • Or directly from the device settings, usually Settings → Language & Input → Current Keyboard

Check that the setting Settings → Form filling → Magikeyboard settings → Select shared info is enabled in version 3.4.2 and below, otherwise the information will be searched but not returned to the Magikeyboard. This parameter has been removed as of version 3.4.3.

Database learning : If the Settings → Form filling → Magikeyboard settings → Save search info option is enabled, the app will try to save the information in the entry selected so that the next search will propose this entry.

  1. Activate special OS settings:

Activating settings in your system may be necessary to use Magikeyboard, otherwise you will not be able to open the app from the key button.

Some systems require the activation of special permissions (Xiaomi - MIUI):

  • In Settings → Manage Apps → KeePassDX → Other permissions, turn on Display pop-up windows while running in the background permissions.

Alternatively, you can disable MIUI optimizations which block a lot of elements in an unjustified way on the device:

  • Activate the developer mode in Settings → About Phone by tapping Build number seven times.
  • In Settings → Additional Settings → Developer Options, turn off MIUI optimization and restart the device.

Important note: It seems that some Xiaomi devices has changed the MIUI system to block the display of an application from a keyboard. Some users have used App Ops and turn on a closed "Unknown Ops" to bypass this behaviour.

Battery saver:

  • Some systems restrict applications to save battery. This may affect the opening of the Magikeyboard. In this case, set the parameter Battery Saver to No restriction. (Note that the app does not use the battery unnecessarily)

Usage

Entry selection from Magikeyboard

  1. In your form, change the default keyboard with MagiKeyboard
  • By clicking on the keyboard button on the bottom right of your screen
  • By long-pressing the space bar (if your default keyboard permits it)
  • Or in another way: (Keyboard switcher on F-Droid or Play Store)

  1. Select your entry with :
  • A. The key button if the displayed application package name matches the one you want in your database, typically in a dedicated app.

Warning: if you use the button in a web browser, it will be the name of the browser package that will be used and not the URL of the page. For the URL, use method B.

  • B. The sharing button in the web browser to automatically search for the web domain (URL) of the form page.

If a database is open, it will be used to select the entry to integrate into the Magikeyboard, otherwise you will have to open a database. Note that a bookmarked database with a star will be automatically proposed to you, if you don't want this behavior, just delete the bookmark.

  • If you have configured one entry with a compatible URL or package name linked to the search, KeePassDX will directly propose the entry in the Magikeyboard.
  • If no entry matches this information, an entry selection will be requested.
  • If there are multiple entries that match, an entry selection will be requested after a search to filter the results.

It is possible to select an existing entry or to create a new one.

  1. Fill in your fields using the entry elements buttons.

With the Settings → Form filling → Magikeyboard settings → Auto key action option enabled, the virtual tab key will be sent to automatically position the cursor on the next form field.

  1. Lock the database and remove the entry in Magikeyboard with the lock button.

At this stage, the keyboard will be replaced by your previous keyboard if the setting Settings → Form filling → Magikeyboard settings → (Switch Keyboard) Lock Database is activated.

Entry selection from database

With this method it is possible to automatically populate the keyboard when you manually select an entry while browsing a database.

  1. Activate the setting Settings → Form filling → Magikeyboard settings → Entry selection.

  2. Open the desired entry, a notification appears indicating that the entry is available in the Magikeyboard.

  3. Open the page of the application or browser containing the form to be filled in.

  4. If your keyboard is the default one, change it to the Magikeyboard (with the keyboard button at bottom right off the screen, with a long press on the space bar or another method depending on your keyboard).

  5. Use the entry elements buttons to fill out the form

Entry elements buttons

Tips

Switch

You can return to your previous keyboard at any time by pressing the "keyboard" button. A long click on this button allows to select a keyboard.

Entry selection

A click on the "key" icon will automatically search for the package name. A long click on this button will do a free entry selection.

Timeout

It is possible to activate a specific timeout for the Magikeyboard in Settings → Form filling → Magikeyboard settings → Timeout, so if you go back to your standard keyboard, a short timeout will lock your database automatically.

Subdomains

If you are experiencing search result problems with URL domains containing a TLD country code (ie www.example.com.au), or that you have different entries for different subdomains of the same domain, you can activate the search by subdomain in : Settings → App settings → Subdomain search

OTP filling

With a simple click on the OTP button, the OTP is sent to the form as normal text. But by doing a long click, you will send the digits one by one to the form with tabs between each. This allows you to fill out OTP forms that have multiple fields (ie: Epic Games TOTP login)