Javelin: Difference between revisions

From Plover Wiki
(Add web tools section and error for connecting to Linux)
(Add video demos of the embedded steno engine and add section on compatible steno protocols)
Line 8: Line 8:
==== Compatible host devices ====
==== Compatible host devices ====
Javelin can translate steno strokes to text in exactly the same way that Plover does. However, as Javelin's steno engine is embedded in the keyboard firmware itself, no extra software is required on the host device. Javelin simply sends the translations as if they were coming from a regular keyboard. Therefore, Javelin is compatible with any device that accepts regular USB keyboard input.
Javelin can translate steno strokes to text in exactly the same way that Plover does. However, as Javelin's steno engine is embedded in the keyboard firmware itself, no extra software is required on the host device. Javelin simply sends the translations as if they were coming from a regular keyboard. Therefore, Javelin is compatible with any device that accepts regular USB keyboard input.
[[File:Javelin embedded steno engine on Pixel 4.mp4|center|thumb|508x508px|Demo of Javelin's embedded steno engine on an Android phone.]]


==== Dictionary management ====
==== Dictionary management ====
Line 27: Line 28:
==== Adding translations ====
==== Adding translations ====
Using the web tools or a defined outline, it is possible to add translations to a user dictionary just like in Plover.
Using the web tools or a defined outline, it is possible to add translations to a user dictionary just like in Plover.
[[File:Adding translation with Javelin's TUI.mp4|center|thumb|562x562px|On-the-fly translations can be added with Javelin. In this case, <nowiki><code>POEUT</code></nowiki> is a free outline, and "potato" is being fingerspelled for the translation.]]


==== First-up and chord repeat ====
==== First-up and chord repeat ====
Line 42: Line 44:
<pre>SUBSYSTEM=="hidraw", ATTRS{idVendor}=="9000", ATTRS{idProduct}=="400d", MODE="0666"</pre>After creating the file, reload the rule with the following commands:<pre>sudo udevadm control --reload-rules
<pre>SUBSYSTEM=="hidraw", ATTRS{idVendor}=="9000", ATTRS{idProduct}=="400d", MODE="0666"</pre>After creating the file, reload the rule with the following commands:<pre>sudo udevadm control --reload-rules
sudo udevadm trigger</pre>{{Info|text=If this does not work, try replacing <code>9000</code> with <code>feed</code>.}}
sudo udevadm trigger</pre>{{Info|text=If this does not work, try replacing <code>9000</code> with <code>feed</code>.}}
=== Compatibility with existing steno protocols ===
Instead of outputting regular text, Javelin is also capable of outputting steno protocols such as Gemini PR or Plover HID. The Default Plover and Default Lapwing firmware files already have such layers configured. This is useful if you plan to still use Plover.

Revision as of 03:19, 13 July 2024

Javelin is a keyboard firmware that features a steno engine. This allows Javelin compatible devices to translate directly from the keys pressed to textual output. This bypasses the need to install Plover (or anything) on the host machine. All the translations are contained within the keyboard itself ("plug and play stenography"). It is compatible with several commercially available hobbyist writers.

Features

This section covers some noteworthy features of Javelin. If you wish to view all of the available settings and features, have a look through the Javelin firmware builder. You may have to select Show expert options to find the option you are looking for.

Embedded steno engine

Compatible host devices

Javelin can translate steno strokes to text in exactly the same way that Plover does. However, as Javelin's steno engine is embedded in the keyboard firmware itself, no extra software is required on the host device. Javelin simply sends the translations as if they were coming from a regular keyboard. Therefore, Javelin is compatible with any device that accepts regular USB keyboard input.

Demo of Javelin's embedded steno engine on an Android phone.

Dictionary management

Adding your own arbitrary JSON dictionaries is fully supported. Using the web tools or custom defined outlines, it is possible to temporarily disable dictionaries.

Several programmatic dictionaries are implemented in Javelin, and arbitrary JSON dictionaries can be added.

Compared to Plover, however, it is not possible to add your own programmatic dictionaries (such as python dictionaries) using the firmware builder. Some popular python dictionaries have been implemented in Javelin, such as Emily's symbols and Jeff's phrasing. However, there is no officially documented way to write a programmatic dictionary for Javelin (though it is technically possible).

Non-WSI layouts

It is not currently possible to use a non-WSI layout with Javelin (this may change in the future).

Unicode characters

Javelin supports several methods to write Unicode characters, which are all dependent on the host device. Using the settings in the web tools, the Unicode mode can be set to allow writing such characters on Linux, macOS, and Windows. Using the firmware builder, the default Unicode mode can be specified.

All the methods that Javelin supports to write Unicode characters.

Key map customization

Like with Plover, the key map can be set in Javelin to allow for tweaks such as top `S` number key, or changing the placement of the thumber keys on various boards.

Javelin supports setting an arbitrary key map.

Adding translations

Using the web tools or a defined outline, it is possible to add translations to a user dictionary just like in Plover.

On-the-fly translations can be added with Javelin. In this case, <code>POEUT</code> is a free outline, and "potato" is being fingerspelled for the translation.

First-up and chord repeat

Using the firmware builder, it is trivial to add first-up chord send or chord repeat functionality to your board.

Javelin makes it very easy to add first-up/chord repeat compared to other keyboard firmwares.

Layout editor

Javelin has a GUI for editing the layout of your keyboard. It is a very powerful tool, allowing you to customize any aspect of the layout.

Web tools

Javelin provides a set of web tools for learning aids, and tweaking settings.

Cannot connect to device on Linux

If you see Error connecting while trying to connect to your device with the web tools, you need to add a udev rule. Create a file at /etc/udev/rules.d/99-keyboard-javelin.rules with the following content:

SUBSYSTEM=="hidraw", ATTRS{idVendor}=="9000", ATTRS{idProduct}=="400d", MODE="0666"

After creating the file, reload the rule with the following commands:

sudo udevadm control --reload-rules
sudo udevadm trigger
format=frameless
format=frameless

If this does not work, try replacing 9000 with feed.

Compatibility with existing steno protocols

Instead of outputting regular text, Javelin is also capable of outputting steno protocols such as Gemini PR or Plover HID. The Default Plover and Default Lapwing firmware files already have such layers configured. This is useful if you plan to still use Plover.