Display the last stroke in Plover, but ✨ fancier ✨
SVG Layout Display is based on the original Layout Display Plugin by @morinted; it was designed to be more customizable than the original plugin, allowing the user to use custom shapes, and to define the behavior of these shapes using a custom script. The widget floats above other windows without a window frame, and can be configured to be translucent, which means that users have full control over how the display looks like.
If the display window looks like a black rectangle to you, you may need to install a compositor such as picom for transparency to work.
To open the settings page, focus on the display window and press Ctrl + S
(or Cmd + S
on mac). System settings are different for each stenographic system and will be recorded independently for each system.
To use the default purple layout, use :/svgld/en_layout.svg
as the layout path and :/svgld/en_convert.py
as the script path.
Layouts are defined by two separate files - the svg file, which defines all the shapes and their respective positions, and the py script, which defines which shapes are drawn based on the latest stroke and translation.
In the svg file, shapes are defined based on top-level <g>
elements, identified by the id
attribute. IDs should be unique between different groups, but there is no limit on the number of groups you can add in the svg file.
The python script should contain a convert_stroke
, which takes a tuple of strokes and a translation, and outputs a list of shape IDs. The order of the IDs in the list matters, as they are drawn from the head of the list to the tail, and later shapes are drawn above earlier ones.
def convert_stroke(stroke: Tuple[str, ...], translation: str) -> List[str]:
return ...
Note that the stroke
parameter is a tuple of individual keys, such as ("K-", "W-", "-U", "-P")