Open source stenotype engine

Overview

Plover

Bringing stenography to everyone.

CI badge

Homepage Releases Wiki Blog Google Group Discord Chat

About

Plover (rhymes with "lover") is a desktop application that allows anyone to use stenography to write on their computer, up to speeds of 200WPM and beyond.

Plover is part of the Open Steno Project. The Open Steno Project's goal is to provide everything you need to learn machine shorthand on your own, from free software, to cheap hardware, to learning resources.

Plover is GPLv2+ as of version 3.1.0. See the license for details.

Installation

Plover runs on Windows, Linux, and Mac.

View the installation guide which covers downloading, installation, and initial configuration.

Getting help

Having trouble with Plover?

The Wiki has several pages to help you:

If you are still having trouble, have found a bug, or would like to request a new feature, please search for or create an issue. When making a new issue, fill out the form as best you can so that we can help you quickly.

If you are looking for more general support (i.e. you don't have a specific issue), consider joining the community. We are active on the Discord Chat, a live chatroom service; and on the Google Group, a more traditional mailing list.

Contributing

The Open Steno Project is always growing, and could use your help!

Donations

Plover is developed by volunteers. Donations to Open Steno help fund new projects as well as any maintenance costs with publishing Plover.

Donate here, donations of any size are very appreciated!

Programming

Plover is a cross-platform desktop application written in Python. To contribute to Plover, see contributing.

If Python isn't your thing, there are other steno-related projects, including StenoJig (JavaScript) and StenoTray (Java).

Writing, Art, UX, and Web Design

  • The Plover Wiki discusses Plover and Open Steno in general. Edits to the Wiki and new page ideas are welcome.
  • Graphic art for Plover and stenography in general is always appreciated. The app's icons are worked on at morinted/plover_icons. You may consider reimagining or reposing Plover's mascot, Dolores.
  • UX improvement suggestions are welcome. Plover runs on Windows, Mac, and Linux, and should be powerful but out of the way, which poses some interesting challenges. Please drop in to the Discord server to brainstorm with users and the developers.
  • Open Steno has websites that accept contributions, including the Open Steno Project Homepage (source) and Plover's Homepage (source).

Development Environment and Building

Plover is cross-platform and has separate build instructions for each platform.

Please follow through for your system:

Comments
  • Improve paper tape and suggestions

    Improve paper tape and suggestions

    paper tape:

    • switch to a fixed width font
    • rework controls: change strokes list and header controls to text entries, and align them
    • improve width/height calculations
    • fix flickering when toggling "on top"
    • do not mess with background color

    suggestions:

    • switch to a fixed width font
    • fix flickering when toggling "on top"
    • do not mess with background color
    • get rid of MyStaticText hack
    opened by benoit-pierre 66
  • Add Translation Transparency

    Add Translation Transparency

    This is a continuation of #252, rebased against master.

    It has been reworked to set alpha/opacity rather than transparency, so that 100% means fully opaque not fully invisible.

    captura de pantalla 2016-02-19 a las 08 37 49 ## TODO - [x] Label both ends, so we have a fixed Invisible label at the left edge and a dynamic Opaque: N% on the right edge of the slider. - Done. captura de pantalla 2016-02-24 a las 16 52 23 - [x] Figure out how to stop the main window from activating alongside the dictionary update window. Only the update window should come to fore when invoked by `{PLOVER:ADD_TRANSLATION}`. - User-fixable: Minimize the window. - [ ] Address [ragged left alignment.](https://github.com/openstenoproject/plover/pull/364#issuecomment-189733306) raggedleft needs-testing 
    opened by jeremy-w 49
  • [RFC] new UI

    [RFC] new UI

    The goal of this PR is get feedback on the new UI rewrite.

    Test builds

    Note: the new UI is available for the Python 3 builds on Windows and OS X. ~~For Linux, the Debian package still uses Python 2, and provide both the (old) WX UI and the new PyQt5 based UI, launch Plover with plover -g qt to select the new UI (and of course Python 3 is supported if you run from source).~~ The Debian package now uses Python 3 too, and the new UI is automatically selected.

    Major differences

    • The engine uses a dedicated thread.
    • The UI is localized: for now only full localization for French is available. For testing purpose, the LANGUAGE environment variable can be set to override the locale detection. Note that part of some dialogs will already be automatically localized thanks to Qt own localizations (e.g. standard OK/Cancel buttons labels), or by the OS (e.g. on Windows a native file browser is used).
    • window states (size and position, fonts used) are saved using Qt settings' API (instead of Plover's configuration); rational: make it easier to use the same configuration on different devices (using different fonts for different display DPI..., window sizes, etc...).

    Known issues

    • ~~[OS X] there's no differentiation between a right and left click on the tray icon.~~
    • ~~[OS X] on quitting with Ctrl+Q, the warning about closing the main window is shown.~~
    • [OS X] the default font in the paper tape is not monospaced (not a major issue as it's now user configurable).
    • [Windows] one report of various crashes when using the 64bits build on Windows 7 (e.g. when re-ordering in the dictionaries manager).
    • [Linux] the tray icon does not work right on Ubuntu 14.04 Trusty (the PyQt5 version available is really old).
    • [Linux] minimize on start does not work when tray icon support is not available

    Main window

    main_window

    Menu layout:

    File
      Toggle output
      Reconnect machine
      -----------------
      Configure
      -----------------
      Show/Hide
      Quit Plover
    Tools
      New translation
      Lookup
      Manage dictionaries
      -------------------
      Paper tape
      Suggestions
    Help
      About
    

    Tray icon

    The tray icon is automatically enabled when supported.

    3 different state icons (reused from #263, as I'm not much of an artist, I hope it's all right @gcr) are used:

    • machine disconnected:

    state-disconnected

    • machine connected, output disabled:

    state-disabled

    • machine connected, output enabled:

    state-enabled

    Context menu layout:

    Toggle output
    Reconnect machine
    -----------------
    Tools
      New translation
      Lookup
      Manage dictionaries
      -------------------
      Paper tape
      Suggestions
    -----------------
    Configure
    -----------------
    Help
      About
    -----------------
    Show/Hide
    Quit Plover
    

    Configuration

    configuration

    Dictionaries Manager

    dictionaries_manager

    Note:

    • I kept the original ordering, about flipping it: highest priority (user) dictionary on top? This way the top (visible on open) of the list will contain the dictionaries the user is more likely to interact with, and the list will match the order the dictionaries are searched.
    • Drag & dropping a dictionary file from an external file manager on to the list should add it to Plover.

    Dictionary Editor

    dictionary_editor

    Add Translation

    add_translation

    Lookup

    lookup

    Paper Tape

    paper_tape

    Suggestions

    suggestions

    About

    about

    in-progress needs-dicussion needs-testing 
    opened by benoit-pierre 46
  • Redesign main frame

    Redesign main frame

    • Remove bitmaps for status indicator, as part of the effort for #263.
    • Windows has a grey color for the main frame because that is Windows' default color. To fix this, you place a top-level panel in the frame.
    • Add a disabled state for output status when a machine is disconnected.
    • Remove status from title-bar.
    • Section off the user interface for clarity, needed especially because of the status indicator.
    • Show status with radio buttons.

    Here is the redesign:

    screen shot 2016-02-20 at 6 08 22 pm screen shot 2016-02-20 at 6 08 25 pm screen shot 2016-02-20 at 6 08 30 pm ready-to-submit 
    opened by morinted 45
  • Lengthy Pause During Use

    Lengthy Pause During Use

    Classification: Bug

    Reproducibility: Sometimes

    Summary

    What has been going on of late with build 4.0.0.dev1+20.g60a373f is I will be writing along, and then everything stops for about a minute, then the translations fills in what I had written before and continues on as if nothing has happened.

    So far I have not noticed any particular pattern to this behavior; it seems to be totally random.

    Steps to Reproduce

    1. I write stuff, and sometimes Plover just stops sending what I've written to the document I'm working on.

    Expected Results

    1. Plover should send what I wrote to the document I'm writing in.

    Actual Results

    3. Instead, this happens :(

    As I was writing the contents of number three up there, Plover stopped after "should" for about two minutes, and then started back up again. Unfortunately, I don't see anything that explains what was going on during those two minutes.

    I guess I could have taken a screenshot of the window I was writing in and the clock, but I didn't think about that at the time!

    Version

    Plover version 4.0.0.dev1+20.g60a373f

    If the problem is known to be present in more than one version, please list all of those.

    NA

    Installed via: Downloaded from openstenoproject.org

    Notes

    Describe any debugging steps you've taken yourself.

    I checked a few of the files in the Plover folder (plover.cfg and plover.log -- after making copies of them, of course) but neither of those had any data ... but I just now took a look in the Mac's Console program, and found these:

    6/10/17 8:46:51.576 PM WindowServer[207]: disable_update_timeout: UI updates were forcibly disabled by application "Plover" for over 1.00 seconds. Server has re-enabled them.

    6/10/17 8:46:58.760 PM WindowServer[207]: common_reenable_update: UI updates were finally reenabled by application "Plover" after 8.18 seconds (server forcibly re-enabled them after 1.00 seconds)

    If you've found a workaround, provide it here.

    Ha ha ha! That's why I'm here!

    Configuration

    OS:

    Mac OS X 10.10.5

    bug medium-priority waiting-on-author 
    opened by gdwaynewarner 43
  • Clarify license: strictly the GPLv2; or, GPLv2 or any later version?

    Clarify license: strictly the GPLv2; or, GPLv2 or any later version?

    Is Plover licensed under just the GPLv2, or "the GPLv2, or (at your option) any later version of the GPL"? The default GPLv2 license text includes both flavors, and that's what's in the current LICENSE.txt. All the in-source references I found seemed to just say, "See LICENSE.txt", which doesn't clear that up.

    high-priority task 
    opened by jeremy-w 41
  • A number of improvements to the dev environment

    A number of improvements to the dev environment

    • fix python versions in scripts (-> python2)
    • switch setup.py to setuptools: so it's possible to create a binary wheel/egg distribution (together with the next change, Plover can even be run directly from the egg file on Linux)
    • use pkg_resources for accessing assets when available
    • rename application/plover to launch.py: because I'm lazy and don't like having to set PYTHONPATH every time I want to work on the Plover source code (this also make it possible to just create a symlink to launch.py in one of PATH directories, and run from source)
    opened by benoit-pierre 37
  • Keyboard handling rework

    Keyboard handling rework

    • cleanup/simplify handling of keyboard events
    • cleanup keyboard test code
    • make keymap handling a little more robust (particularly: add missing entries, so they show up and can be configured in the GUI)
    • add support for using the function keys F1-F12
    • add support for configuring the list of additional keys to be suppressed (keys that are not mapped to steno keys): add an extra 'no-op' entry to the keymap
    • add support for configuring the arpeggiate key: add an extra 'arpeggiate' entry to the keymap

    Note:

    • I tested the Linux version, as well as the Windows version with Wine
    • I think it would be pretty easy to add support for configuring a global shortcut for toggling Plover on/off with the oslayer/keyboardcontrol code, since we can suppress and listen to all key events
    opened by benoit-pierre 30
  • Fix Mac OS X keyboard layout

    Fix Mac OS X keyboard layout

    Fix #533

    • osxkeyboardlayout is now a class
    • Useful main method that debugs the parsed layout
    • Favor key combos with less modifiers
    • Detect key layouts changing
    ready-to-submit 
    opened by morinted 29
  • Add different output modes: Caps, Title, Lowercase, Snake, Camel

    Add different output modes: Caps, Title, Lowercase, Snake, Camel

    This pull adds several different cases. Namely:

    • CAPITAL CASE
    • Title Case
    • lower case
    • snake_case
    • CamelCase

    They are controlled by "MODE" commands, similar to "PLOVER" commands. They can be toggled with CAPS, TITLE, LOWER, SNAKE, and CAMEL. They can all be turned off with CLEAR.

    CAPS, Title case, and lower case are mutually exclusive, so turning on one will turn off the others. CamelCase is mutually exclusive to all other cases. Snake case is only exclusive with camel case.

    This means CAPS, title, and lower case can be used with snake case. This functionality is useful for programmers and regular stenographers alike. The cases are useful for programmers while coding, such as in variable names. For regular stenographers, CAPS can represent yelling, or scene cues, for example. Title case is useful for journalism.

    I've tried to keep some sanity while coding these. The initial implementation used global variables, but this wasn't testable. Now, a dict of the cases has been added as a variable to the Action class. Since the cases are persistent, the case is passed along on each stroke. The MODE command directly modifies the mode of the action.

    Some sample strokes for testing:

    "KA*PS": "{MODE:CAPS}",
    "K-BGS": "{MODE:CAMEL}",
    "TAO*EULT": "{MODE:TITLE}",
    "STPHA*EUBG": "{MODE:SNAKE}",
    "HRO*ER": "{MODE:LOWER}",
    "KHRAO*ER": "{MODE:CLEAR}",
    

    Hope the code is up to standard -- if not, I'd be happy to make it so.

    Ted

    opened by morinted 29
  • Improve accessibility

    Improve accessibility

    Summary of changes

    Partially address:

    • better keyboard navigation: #1291
    • tables have names: https://github.com/openstenoproject/plover/pull/1293#issuecomment-826066655

    Supersede #1293.

    For now, it's only a partial pass on the main windows, and parts of the configuration dialog:

    • Disable tag-key navigation in tables, so focusing a table does not lock global tab-key navigation to it.
    • Remove some container widget, tweak focus rules to avoid extra unnecessary steps when using tab-key navigation (like selecting the dictionaries widget outer frame).
    • In the configuration dialog, automatically set the accessible name / description of each option widget to the option name / description (same as the label / tooltip).
    • Manually set the accessible name / description of some widgets (e.g. the widgets of the machine panel in the main window).

    @nvdaes: is this a step in the right direction? Please provide feedback (focusing on those 2 dialogs), and we'll iterate until its satisfactory before doing a full pass on the rest of the application.

    Some potential issues I've already identified:

    • The main window output panel is problematic: instead of using a single check box for the output state (the logical and simpler choice), we went with 2 mutually exclusive radio buttons (enabled / disabled), for the sake of appearances. There's no clue when using Orca that you can use the up/down arrow key to switch the output state.
    • Taking the machine serial options widget as an example:
      • we need to link each setting widget to its label, e.g. "Port -> the combo box", so the screen reader automatically read the associated label when focusing the setting widget (using the "Edit Buddies" option in Qt Designer).
      • Avoid unnecessary outer frames and/or using tweak focus settings (proxy / policy) to avoid unnecessary steps during keyboard navigation.
      • Avoid using something like "[timeout combo box] [seconds label]", stick to [label]: [setting].
      • Make liberal use of the accessible name / description settings.

    Pull Request Checklist

    • [x] Changes have tests (partial: the dictionaries widget is tested)
    • [x] News fragment added in news.d. See documentation for details
    ui 
    opened by benoit-pierre 28
  • Disconnecting and reconnecting the machine causes some diacritic entries to stop working.

    Disconnecting and reconnecting the machine causes some diacritic entries to stop working.

    Describe the bug

    Disconnecting the steno machine (tested on Gemini PR and keyboard with a Multisteno) will cause letters with diacritics to not be outputted by Plover.

    To Reproduce

    Steps to reproduce the behaviour:

    1. Add the following entry:
    "A": "người",
    
    1. Writing A will output the translation as expected (người)
    2. Unplug the steno machine
    3. Plug the steno machine back in
    4. Press the "reconnect machine button"
    5. Writing A will output ngi

    Additionally, trying to undo this stroke with * will still result in 6 characters being deleted.

    It appears that this bug only affects previously written translation. For example, skipping step 2 in the above process won't result in the malformed translation in step 6. I'm using a Vietnamese dictionary and this also shows up there: writing words with diacritics will result in the above behaviour only if they had been written before the machine was reconnected.

    Restarting Plover will fix this issue temporarily.

    Operating system

    • Fedora 37 running GNOME 43.2 on x.org
    • Plover v4.0.0.dev12
    bug 
    opened by aerickt 1
  • Add Option for Inserting Delay between Key Press Events

    Add Option for Inserting Delay between Key Press Events

    Summary of changes

    On Pop_OS! 22.04, typing in Firefox often drops backspaces when undoing words (likely due to #1030). While it doesn't fix that issue, this is a suitable workaround in the mean time (there are also other input issues for other users on other OSes that are fixed by adding a delay between key presses).

    Supersedes #1132 (see this comment).

    Also keeps the same option name as the original PR so that anyone using the old PR can use this one without having to change anything.

    Notable changes from the original PR

    • Also includes this change to delay when changing keymaps in Linux.

    • Adds set_key_press_delay to Output. When not implemented it currently raises a NotImplementedError, although for some output interfaces it may be okay to just leave it as a stub.

    Tested on:

    • [x] Linux
    • [ ] macOS
    • [ ] Windows

    Pull Request Checklist

    • [x] Changes have tests
      • Note: only for if an int option is missing, not for validating if the delay option is not negative
    • [ ] News fragment added in news.d. See documentation for details
    opened by DropDemBits 0
  • Do nothing meta {#} breaks multi-stroke words

    Do nothing meta {#} breaks multi-stroke words

    Describe the bug

    Sending a stroke defined as {#} (do nothing) between two strokes of a multi-stroke word will break the word.

    To Reproduce

    1. Define a multi-stroke word (such as TPAOEUR/PHRAEUS = fireplace)
    2. Define another stroke as {#} (for example KHR = {#})
    3. Send the {#} stroke between two strokes of the multi-stroke word (in this example,TPAOEUR/KHR/PHRAEUS)
    4. Observe that the two strokes do not combine into a single word as expected (in this case, the above sequence produces fire place instead of fireplace as expected).

    Operating system

    • Windows 10 with Plover 4.0.0-dev12
    bug 
    opened by Abkwreu 2
  • Error disabling timeout

    Error disabling timeout

    Describe the bug When I try to disable the timeout for the connection to my keyboard, I get an error and the timeout remains enabled. The following is logged to plover.log

    2022-12-05 16:17:33,746 [Dummy-1] ERROR: engine update failed
    Traceback (most recent call last):
      File "/Users/runner/work/plover/plover/build/osxapp/Plover.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.9/site-packages/plover/engine.py", line 147, in run
      File "/Users/runner/work/plover/plover/build/osxapp/Plover.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.9/site-packages/plover/engine.py", line 189, in _update
      File "/Users/runner/work/plover/plover/build/osxapp/Plover.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.9/site-packages/plover/config.py", line 396, in update
      File "/Users/runner/work/plover/plover/build/osxapp/Plover.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python3.9/site-packages/plover/config.py", line 202, in validate
    TypeError: float() argument must be a string or a number, not 'NoneType'
    

    To Reproduce

    1. From the Plover UI go to Configure -> Machine
    2. Select GeminiPR for the machine
    3. In options, scroll to timeout and disable the "Use timeout" field
    4. Select Ok to apply the change

    This gives a error message, and reopening that setting page shows the timeout is still enabled.

    Expected behavior The timeout should be disabled.

    The reason I want to do this is so that I won't need to manually reconnect my machine every time I log into my computer. But I had trouble finding documentation on this Timeout setting, so if this doesn't do what I suspect, I'm open to alternatives.

    Operating system MacOS 13.0 Plover 4.0.0dev12

    Keyboard Moonlander Mark 1 from ZSA

    bug 
    opened by AndrewHess 0
  • Increase maintainability

    Increase maintainability

    Is your feature request related to a problem? Please describe. I have recently started to use Plover and like it quite a lot. But it has a few problems, thus I wanted to contribute to fixing them. But I ran into the problem that the design seems unclear to me. Maybe it's just a skill issue though.

    A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

    Describe the solution you'd like

    • A short paragraph in the "Contributing" section that explains the structure of the project would probably be beneficial.
    • Type annotations help a lot in understanding code that you don't know.
    • Maybe someone has another idea...

    Describe alternatives you've considered Not contributing at all... though I really don't wanna do that :)

    feature-request 
    opened by halbGefressen 2
  • Title case misses words in some situations

    Title case misses words in some situations

    Describe the bug

    {MODE:TITLE} has some logic to avoid capitalizing output for strokes that are attached to the previous stroke with ^, since you don't want capitalization in the middle of words that use suffix or prefix strokes. The problem is that it doesn't consider that a stroke could contain multiple words, or that two attached strokes aren't necessarily part of the same word.

    To Reproduce

    Each line is a stroke:

    {MODE:TITLE}
    one
    two
    {^ ^}
    three four
    five six
    

    This produces the following output:

    One Two three four Five Six

    "three" is not capitalized because it is attached to the previous stroke, even though the previous stroke was an explicit space. "four" is not capitalized because it's part of the same attached stroke, even though it's a different word.

    Expected behavior

    With {MODE:TITLE} set, all of the words should be capitalized. Output would look like:

    One Two Three Four Five Six

    It should have a more complex heuristic for determining word boundaries, that takes into account space characters from the current and previous strokes.

    Screenshots

    If applicable, add screenshots to help explain your problem.

    Operating system

    • MacOS Monterey
    • 4.0.0.dev12
    bug 
    opened by Benjamin-L 1
Releases(v4.0.0.dev12)
  • v4.0.0.dev12(Aug 8, 2022)

    Plover 4.0.0.dev12

    Plover is going through a huge overhaul to make for a better experience for our users, and developers, too.

    Warning: Version 4 is a major change and the configuration file it creates is not compatible with Plover 3 or earlier. Please backup your plover.cfg

    Installation Guide

    Read the Installation Guide to see which file you need to download.

    Features

    User Interface

    • Show detailed information about each available serial port in the machine configuration dialog. (#1510)
    • Add support for styling the Qt GUI: automatically load and apply a custom stylesheet from plover.qss (in the configuration directory) when present. (#1514)
    • Capture and log Qt messages. (#1534)
    • Change the paper tape / suggestions widget selection mode to "extended" (allow selecting multiple items, support shift/control), and allow copying the current selection to clipboard using the standard copy shortcut. (#1539)

    Linux

    • Use /dev/serial/by-id/xxxx links for each available serial port in the machine configuration dialog. (#1510)

    Bugfixes

    Core

    • Fix possible exception when calling Engine.clear_translator_state(undo=True). (#1547)

    User Interface

    • Fix "add translation" dialog "Ok" button not being enabled when the strokes field is automatically populated from the latest untranslate. (#1527)
    • Fix {PLOVER:ADD_TRANSLATION} implementation when using the headless GUI (-g none). (#1546)

    Linux

    • Fix fallback to Qt if the D-Bus log handler cannot be initialized. (#1545)

    Windows

    • Fix some key combinations being sent incorrectly. (#1274)

    API

    Breaking Changes

    • Drop support for Python 3.6. (#1538)
    Source code(tar.gz)
    Source code(zip)
    plover-4.0.0.dev12-macosx_10_13_x86_64.dmg(42.96 MB)
    plover-4.0.0.dev12-messages.zip(31.11 KB)
    plover-4.0.0.dev12-py3-none-any.whl(2.17 MB)
    plover-4.0.0.dev12-win64.setup.exe(51.77 MB)
    plover-4.0.0.dev12-win64.zip(52.28 MB)
    plover-4.0.0.dev12-x86_64.AppImage(62.62 MB)
    plover-4.0.0.dev12.tar.gz(3.31 MB)
  • continuous(Aug 8, 2022)

    Plover 4.0.0.dev12

    Plover is going through a huge overhaul to make for a better experience for our users, and developers, too.

    Warning: Version 4 is a major change and the configuration file it creates is not compatible with Plover 3 or earlier. Please backup your plover.cfg

    Installation Guide

    Read the Installation Guide to see which file you need to download.

    Features

    No significant changes.

    Bugfixes

    No significant changes.

    API

    No significant changes.

    Source code(tar.gz)
    Source code(zip)
    plover-4.0.0.dev12-macosx_10_13_x86_64.dmg(42.96 MB)
    plover-4.0.0.dev12-messages.zip(31.11 KB)
    plover-4.0.0.dev12-py3-none-any.whl(2.17 MB)
    plover-4.0.0.dev12-win64.setup.exe(51.77 MB)
    plover-4.0.0.dev12-win64.zip(52.28 MB)
    plover-4.0.0.dev12-x86_64.AppImage(62.62 MB)
    plover-4.0.0.dev12.tar.gz(3.31 MB)
  • v4.0.0.dev11(May 14, 2022)

    Plover 4.0.0.dev11

    Plover is going through a huge overhaul to make for a better experience for our users, and developers, too.

    Warning: Version 4 is a major change and the configuration file it creates is not compatible with Plover 3 or earlier. Please backup your plover.cfg

    Installation Guide

    Read the Installation Guide to see which file you need to download.

    Features

    Core

    • Switch to plover_stroke for better steno handling: faster and stricter. (#1362, #1417, #1452)
    • New faster and improved RTF/CRE parser. (#1364, #1365)
    • Correctly handle formatting currency with thousands separator(s): 23,000.15{:retro_currency:$c} => $23,000.15. (#1391)
    • Improve “English stenotype” system compatibility with RTF/CRE spec: support arbitrary placement of the number sign when parsing steno (e.g. 18#, #18, and 1#8 are all valid and equivalent). (#1491)
    • Improve translation stage: cut down on unnecessary / duplicate dictionary lookups. (#1513)

    User Interface

    • Improve accessibility:
      • Disable tab-key navigation in tables, so focusing a table does not lock global tab-key navigation to it.
      • Remove some container widgets, tweak focus rules to avoid extra unnecessary steps when using tab-key navigation (like selecting the dictionaries widget outer frame).
      • In form layouts, link each widget to its label (like each option in the configuration dialog).
      • Set the accessible name / description of focusable widgets.
      • Use lists for the dictionaries widget, suggestions widget, and the paper tape. (#1308, #1332, #1434, #1451)
    • Show a message when hiding to tray. (#1333)
    • Improved steno handling:
      • validate inputs in the "add translation" dialog and dictionary editor
      • sort on steno order in the dictionary editor, and signal invalid steno entries (#1362, #1501)

    Linux

    • Improve D-Bus logger implementation. (#1496)
    • Add WM_CLASS property to windows (WM_CLASS(STRING) = "plover", "Plover"). (#1498)

    Bugfixes

    Core

    • New reworked RTF/CRE support:
      • correctly handle multi-lines mappings
      • detect syntax errors (with recovery)
      • use \n\n for new paragraphs (instead of non-undoable {#Return}{#Returns})
      • similarly, use \t and \n for \tab and \line
      • correctly escape {}\ on save
      • use custom ignored groups for Plover macros and metas
      • use groups to improve round-tripping affixes (so there's no ambiguity when parsing back, e.g. {^in^}fix -> {\cxds in \cxds}fix instead of \cxds in\cxds fix) (#1364, #1365)
    • Fixed a memory leak on reloading externally modified dictionaries. (#1375)
    • Do not discard existing filters on dictionaries reload. (#1388)
    • Fix engine's running state: make sure the translator' state is empty when enabling output for the first time. (#1504)
    • Fix exit handlers not getting always executed. (#1507)
    • Fix StenoDictionaryCollection.longest_key implementation: ignore disabled dictionaries! (#1512)

    Dictionaries

    • Fix KHR*PB stroke to not be misinterpreted as a command. (#1463)

    User Interface

    • Speedup dictionary editor startup (avoid duplicate sort). (#1351)
    • Updated Spanish translation. (#1420)
    • Updated French translation. (#1422)
    • Speedup suggestions widget implementation: should noticeably improve performance when there's a large scrollback. (#1481)

    Windows

    • Drop launch option from installer's final page: avoid possible issues (e.g. permission errors with the controller's pipe) because Plover was run as admin. (#1495)
    • Fix notifications behavior: no persistent duplicated icons (one for each notification). (#1507, #1508)

    API

    Breaking Changes

    • The custom test command implementation provided by plover_build_utils.setup.Test has been removed:
      • support for it on setuptools' side has been deprecated since version 41.5.0
      • the custom handling of arguments conflicts with the use of some pytest options (e.g. -m MARKEXPR)
      • the workaround for pytest cache handling is not necessary anymore (#1332)
    • The steno helpers (Stroke class, normalize_stroke, …) now raise a ValueError exception in case of invalid steno. (#1362, #1501)
    • The support for StenoDictionary and StenoDictionaryCollection longest key callbacks is gone, use the longest_key properties instead. (#1375)
    Source code(tar.gz)
    Source code(zip)
    plover-4.0.0.dev11-macosx_10_13_x86_64.dmg(42.96 MB)
    plover-4.0.0.dev11-messages.zip(31.05 KB)
    plover-4.0.0.dev11-py3-none-any.whl(2.16 MB)
    plover-4.0.0.dev11-win64.setup.exe(51.76 MB)
    plover-4.0.0.dev11-win64.zip(52.27 MB)
    plover-4.0.0.dev11-x86_64.AppImage(62.62 MB)
    plover-4.0.0.dev11.tar.gz(3.30 MB)
  • v4.0.0.dev10(Jul 2, 2021)

    Plover 4.0.0.dev10

    Plover is going through a huge overhaul to make for a better experience for our users, and developers, too.

    Warning: Version 4 is a major change and the configuration file it creates is not compatible with Plover 3 or earlier. Please backup your plover.cfg

    Installation Guide

    Read the Installation Guide to see which file you need to download.

    Features

    Core

    • Change behavior when launching Plover and an existing instance is already running: send a focus command to the existing instance (to show, raise, and focus the main window). Additionally, a new plover_send_command executable/script can be used to send other commands. (#1284)
    • Add FreeBSD/OpenBSD support. (#1306)

    Linux

    • The oldest Ubuntu LTS release supported by the AppImage is now Ubuntu Bionic (18.04). (#1329)

    Bugfixes

    Core

    • Fix 2 corner cases when handling dictionaries:
      • If the class implementation is marked as read-only, then loading from a writable file should still result in a read-only dictionary.
      • Don't allow clear on a read-only dictionary. (#1302)
    • Don't try to start missing extensions. (#1313)

    User Interface

    • Correctly restore a window if it was minimized: fix the focus command, and activating a tool window. (#1314)

    API

    Breaking Changes

    • The Engine constructor now takes an additional parameter: the controller. (#1284)

    New

    • Add some new helpers to plover_build_utils.testing:
      • dictionary_test: torture tests for dictionary implementations.
      • make_dict: create a temporary dictionary.
      • parametrize: parametrize helper for tracking test data source line numbers. (#1302)
    Source code(tar.gz)
    Source code(zip)
    plover-4.0.0.dev10-macosx_10_13_x86_64.dmg(42.71 MB)
    plover-4.0.0.dev10-messages.zip(29.17 KB)
    plover-4.0.0.dev10-py3-none-any.whl(2.27 MB)
    plover-4.0.0.dev10-win64.setup.exe(51.26 MB)
    plover-4.0.0.dev10-win64.zip(51.79 MB)
    plover-4.0.0.dev10-x86_64.AppImage(53.99 MB)
    plover-4.0.0.dev10.tar.gz(3.30 MB)
  • v4.0.0.dev9(Apr 22, 2021)

    Plover 4.0.0.dev9

    Plover is going through a huge overhaul to make for a better experience for our users, and developers, too.

    Warning: Version 4 is a major change and the configuration file it creates is not compatible with Plover 3 or earlier. Please backup your plover.cfg

    Installation Guide

    Read the Installation Guide to see which file you need to download.

    Features

    Core

    • A new SET_CONFIG command can be used to change the configuration with a stroke, e.g.:
      "O*EP": "{PLOVER:SET_CONFIG:'translation_frame_opacity':100}",
      "TR*PB": "{PLOVER:SET_CONFIG:'translation_frame_opacity':0}",
      

      to change the opacity of the "Add Translation" dialog on the fly. (#989)

    • Speed up loading dictionaries. (#1022)
    • Be more restrictive with macro names: only accept valid identifier, so for example == is not handled like a macro anymore. (#1025)
    • Ignore case when processing builtin commands / metas. (#1069)
    • Add user friendly names for built-in metas, e.g.: {:retro_case:cap_first_word}, {:retro_currency:$c}, {:attach:attach^}, etc... (#1069)
    • Improve orthography rules. (#1092, #1212)
    • The configuration is now automatically saved on change, rather than on exit. (#1123)
    • Add prefix strokes (syntax /STROKE) that will only translate if they are at the beginning of a word. Word endings can be specified with {:word_end} or {$}. (#1157)
    • Add support for conditional formatting (based on the text following a translation): {=REGEXP/TRANSLATION_IF_FOLLOWING_TEXT_MATCH/TRANSLATION_IF_NOT} or {:if_next_matches:REGEXP/TRANSLATION_IF_FOLLOWING_TEXT_MATCH/TRANSLATION_IF_NOT}. (#1158)

    User Interface

    • Add menu entry for opening the configuration directory ("File" => "Open config folder"). (#981)
    • Automatically focus the input field and pre-select the previous input when the lookup window is activated. (#1009)
    • Improve the configuration dialog for serial machines: automatically scan available ports and default to the first one. (#1036)
    • The "Add translation" stroke lookup now returns entries for all enabled dictionaries and is debounced to improve performance. (#1084)
    • Added translation into Spanish. (#1165)
    • A new command, {PLOVER:SUGGESTIONS}, is available to open the suggestions window with a steno stroke. (#1184)
    • Add support for saving dictionaries:
      • save a copy of each selected dictionary
      • merge the selected dictionaries into a new one
      • both operations support converting to another format (#1244)
    • Added translation into Dutch. (#1264)
    • Added Italian translation. (#1268)

    Linux

    • The distribution Python is now built with optimization. (#1068)
    • Expand the list of supported key names in key combos to include non-US specific keys (like ISO_Level3_Shift). (#1082)
    • The default configuration directory on Linux is now ~/.config/plover (~/.local/share/plover is still supported for backward compatibility). (#1123)

    macOS

    • The minimum version supported by the macOS bundle is now 10.13 (High Sierra). (#1156)

    Windows

    • The distribution is now 64bits. (#1023)

    Bugfixes

    Core

    • Fix retrospective insert space macro when the previous translation involved suffix keys. (#995)
    • Fix updating a dictionary mapping: ensure reverse lookups data stays consistent. (#1022)
    • Fix keymap validation: properly fallback to default keymap when invalid. (#1065)
    • Fix lookups by translation: do not ignore lower priority dictionaries when a match is found in a higher priority one. (#1066)
    • Fix wordlist support for system plugins: try loading from the system dictionaries root (and not Plover assets directory). (#1116)
    • Configuration save operations are now atomic. (#1123)
    • Fix forced lowercasing of all engine command arguments. (#1139)
    • Fix implicit hyphen handling with numbers only strokes on some theories (e.g. Melani). (#1159)
    • Fix unbounded memory use in the lookup functions used by the Suggestions window. (#1188)

    Dictionaries

    • Fix a number of invalid entries in the main dictionary. (#1038)
    • Tweak orthographic rules so "reduce/{^ability}" result in "reducibility" instead of "reducability". (#1096)

    User Interface

    • Fix a possible crash on close when opening a read-only dictionary in the editor. (#897)
    • Fix possible crash when changing machine parameters in the configuration dialog. (#1041)
    • Fix internationalization of machine types in the configuration dialog. (#1061)
    • Fix tools shortcuts. (#1062)
    • Fix crashes due to GUI exceptions reaching the event loop. (#1135)
    • Fix an exception caused by an incorrect assertion that would prevent enabling and disabling extension plugins if they weren't on the first row. (#1171)
    • Fix changes to the list of enabled extension plugins not being saved to the configuration file. (#1230)
    • Fix missing translations. (#1248)

    Linux

    • Fix output capitalization issue. (#1153)
    • Fix a race condition that may freeze Plover while toggling with keyboard input machine. (#1163)

    macOS

    • Fix an issue where permissions had to be granted to "env" on macOS Catalina 10.15. (#1152)
    • Mac notifications no longer have "Plover" as their title. (#1271)

    Windows

    • Fix Unicode characters output. (#991)
    • Fix installer's icon. (#1027)

    API

    Breaking Changes

    • StenoDictionaryCollection.casereverse_lookup now returns a set (instead of a list). (#1066)
    • The API for providing i18n support as been changed: see doc/i18n.md for more information. (#1258)

    New

    • plover_build_utils.setup now provides a new babel_options helper for configuring Babel for i18n support. (#1258)
    Source code(tar.gz)
    Source code(zip)
    plover-4.0.0.dev9-macosx_10_13_x86_64.dmg(52.14 MB)
    plover-4.0.0.dev9-messages.zip(29.17 KB)
    plover-4.0.0.dev9-py3-none-any.whl(2.27 MB)
    plover-4.0.0.dev9-win64.setup.exe(53.40 MB)
    plover-4.0.0.dev9-win64.zip(53.92 MB)
    plover-4.0.0.dev9-x86_64.AppImage(57.29 MB)
    plover-4.0.0.dev9.tar.gz(3.30 MB)
  • weekly-v4.0.0.dev8+66.g685bd33(Jul 2, 2018)

    Installation Guide

    Read the Installation Guide to see which file you need to download.

    Plover weekly-v4.0.0.dev8+66.g685bd33

    Plover is going through a huge overhaul to make for a better experience for our users, and developers, too.

    Warning: Version 4 is a major change and the configuration file it creates is not compatible with Plover 3 or earlier. Please backup your plover.cfg

    Changes

    • Windows: fix C++ Redistributable DLL error (#957)
    • Windows: fix emoji output (#942)
    • Mac: fix portable mode (#932)
    • Main Dictionary updates:
      1. use AOE instead of E for prefix "e" (#951)
      2. update from issue 400 (#960)
    • Fix issues when output is set to "Spaces After" (#965)
    • Tooltips added for dictionary status icons (#962)
    Source code(tar.gz)
    Source code(zip)
    plover-4.0.0.dev8.66.g685bd33-py3-none-any.whl(2.20 MB)
    plover-4.0.0.dev8.66.g685bd33-win32.setup.exe(65.17 MB)
    plover-4.0.0.dev8.66.g685bd33-win32.zip(65.52 MB)
    plover-4.0.0.dev8.66.g685bd33-x86_64.AppImage(108.50 MB)
    plover-4.0.0.dev8.66.g685bd33.dmg(73.28 MB)
    plover-4.0.0.dev8.66.g685bd33.tar.gz(3.25 MB)
  • weekly-v4.0.0.dev8+8.ge062cda6(Apr 1, 2018)

    Plover v4.0.0.dev8+8.ge062cda6

    Plover is going through a huge overhaul to make for a better experience for our users, and developers, too.

    Warning: Version 4 is a major change and the configuration file it creates is not compatible with Plover 3 or earlier. Please backup your plover.cfg

    Changes

    • disable serial flow control settings when not applicable (this was known to cause weird issues when changed from default)
    • the paper tape now has improved support for non-Latin keys
    • the log files encoding is now always set to UTF-8 (so Unicode in translations is properly handled)
    • configuration changes by plugins are now fully validated before being applied
    • improve support for installing plugins from source
    • when running from a distribution, Plover can be started with --no-user-plugins to disable user plugins: the distribution default embedded plugins will still be available, so the plugins manager can be used to update/remove a problematic plugin
    • [Linux] fix crash when using a Microsoft keyboard
    • [Linux] fix crash when the window manager does not support the NETWM protocol (with commands like {PLOVER:ADD_TRANSLATION})

    Installation Guide

    Download below this post.

    Source code(tar.gz)
    Source code(zip)
    plover-4.0.0.dev8.8.ge062cda-py3-none-any.whl(2.20 MB)
    plover-4.0.0.dev8.8.ge062cda-win32.setup.exe(65.13 MB)
    plover-4.0.0.dev8.8.ge062cda-win32.zip(65.52 MB)
    plover-4.0.0.dev8.8.ge062cda-x86_64.AppImage(108.32 MB)
    plover-4.0.0.dev8.8.ge062cda.dmg(73.25 MB)
    plover-4.0.0.dev8.8.ge062cda.tar.gz(3.25 MB)
  • weekly-v4.0.0.dev6+5.ga5641165(Dec 4, 2017)

    Plover v4.0.0.dev6+5.ga5641165

    This is a patch-fix for weekly-v4.0.0.dev6, as that release's Suggestions tool caused Plover to crash

    Plover is going through a huge overhaul to make for a better experience for our users, and developers, too.

    Warning: Version 4 is a major change and the configuration file it creates is not compatible with Plover 3 or earlier. Please backup your plover.cfg


    Features

    • New plugin types:
      • Macros

        Macros will allow for custom functionality at the stroke level. Existing features such as repeat last stroke, toggle asterisk, and asterisk (undo) have been reimplemented as macros.

        With this release, you can map other chords to "undo" by using the translation =undo.

        You can still use the old syntax for macros, but there are new, easier-to-recall versions available:

        • {*}: =retrospective_toggle_asterisk
        • {*!}: =retrospective_delete_space
        • {*?}: =retrospective_insert_space
        • {*+}: =repeat_last_stroke
      • Metas

        Metas are plugins that affect output -- you've used them in the form of delete space, capitalize next word, etc.

        With custom metas we could potentially introduce plugins for audio-file timestamp output, asterisk-undoable pasting, spelling-correction, text case transformation, and so much more.

    Fixes

    • Fix trailing space issue in spaces-after; #851
    • Fix display of \n and \t in the Add Translation dialog; #854
    • Improve stability of Gemini PR protocol; #846
    • Improve stability of ProCAT protocol; #601
    • Reduce CPU usage of Passport protocol
    • Fix several formatting issues especially related to retrospective uppercasing and capitalization; #836, #837

    Installation Guide

    Download below this post.

    Source code(tar.gz)
    Source code(zip)
    plover-4.0.0.dev6.5.ga564116-mac.dmg(72.86 MB)
    plover-4.0.0.dev6.5.ga564116-py3-none-any.whl(2.20 MB)
    plover-4.0.0.dev6.5.ga564116-win32.setup.exe(65.28 MB)
    plover-4.0.0.dev6.5.ga564116-win32.zip(65.67 MB)
    plover-4.0.0.dev6.5.ga564116-x86_64.AppImage(108.15 MB)
    plover-4.0.0.dev6.5.ga564116.tar.gz(3.25 MB)
  • weekly-v4.0.0.dev5+23.g773ba288(Nov 20, 2017)

    Plover v4.0.0.dev5+23.g773ba288

    Plover is going through a huge overhaul to make for a better experience for our users, and developers, too.

    Warning: Version 4 is a major change and the configuration file it creates is not compatible with Plover 3 or earlier. Please backup your plover.cfg


    Last week we introduced the first weekly with the plugins manager, a tool built into Plover that lets you get new features and widgets for Plover.

    Thanks to our users, we were able to find and fix a bunch of bugs.

    Fixes

    • fix crash when Add Translation dialog would try to write to an errored dictionary
    • automatically set QT tool window names
    • fix a crash when the plugins manager was opened without an internet connection
    • Windows: fix possible crash caused by a dll
    • Mac: prevent Plover from hanging when quitting

    Installation Guide

    Download below this post.

    Source code(tar.gz)
    Source code(zip)
    plover-4.0.0.dev5.23.g773ba28-py3-none-any.whl(2.20 MB)
    plover-4.0.0.dev5.23.g773ba28-win32.setup.exe(65.18 MB)
    plover-4.0.0.dev5.23.g773ba28-win32.zip(65.57 MB)
    plover-4.0.0.dev5.23.g773ba28-x86_64.AppImage(107.56 MB)
    plover-4.0.0.dev5.23.g773ba28.dmg(73.49 MB)
    plover-4.0.0.dev5.23.g773ba28.tar.gz(3.25 MB)
  • weekly-v4.0.0.dev5+9.gba958374(Nov 12, 2017)

    Plover v4.0.0.dev5+9.gba958374

    Plover is going through a huge overhaul to make for a better experience for our users, and developers, too.

    Warning: Version 4 is a major change and the configuration file it creates is not compatible with Plover 3 or earlier. Please backup your plover.cfg

    Changes

    Plugins

    Plugins manager showing a list of plugins that are installed and can be installed

    Screenshot of the new plugins manager (background image source)

    • with a new plugins manager, install, list, update, and remove plugins from within Plover!
    • new supported plugins:
      • Dict Commands

        Enable, disable, and reorder your dictionaries using strokes.

      • Dictionary Builder

        Interactive wizard to build up your dictionaries from a text article or list of words.

      • Italian Stentura

        Use an Italian Stentura machine with Plover.

      • MIDI

        Use a MIDI piano or a dedicated MIDI machine like Michela with Plover. For keyboard makers: MIDI is a great protocol option with lots of keys and is easier to implement than some serial protocols.

      • Plugins Manager (installed by default)

        Find, install, update, and remove plugins for Plover.

      • Python Dictionary

        .py dictionaries are pure functions that map a set of chords to a translation. A better alternative to scripting the creation of dictionaries for anyone who knows Python.

      • Treal (installed by default)

        Use the Treal steno machine (the code was moved out of Plover and into a plugin).

      • VLC Commands

        Control VLC media player playback using strokes.

      • Windows Brightness

        Control monitor brightness on Windows.

      • WPM Meter

        Speedometer widgets that show your typing speed and strokes-per-second.

    • support for custom machine configuration widgets

    User Interface

    • new icon for read-only dictionaries
    • show a "reload" icon while dictionaries are being loaded
    • outdated dictionaries are automatically reloaded on configuration change (e.g. when clicking the machine reconnect button)
    • improve lookup: strip spaces from lookup, improve and fix display (correctly show translations containing HTML markup)
    • improve suggestions: only suggest on new/modified text, rework word splitting (e.g. if "full-release" is entered, suggestions for "release" will be shown too)
    • improve keymap configuration widget to be easier to use
    • add support for creating new dictionaries

    Main Dictionary

    • cleanup main dictionary: remove legacy Eclipse TPHR-BG entries, remove redundant entries
    • dictionary has some additions and changes thanks to community feedback from issue 400, significant changes are outlined here.

    Linux

    • the AppImage can now be installed/uninstalled
    • drop the need for wmctrl

    Mac

    • don't suppress keyup events created by Plover, which improves compatibility with some applications when using a Keyboard as a steno machine.

    Other

    • keyboard: fix a number of edge cases / bugs
    • rework keymap configuration widget
    • formatting rework: consistent output with both space placement settings, better handling retro-case commands

    Development

    • drop Python 2 support
    • update Python version to 3.6
    • update PyQt5 version to latest LTS: 5.9
    • export utils as plover_build_utils so it's available for plugins development

    Installation Guide

    Download below this post.

    Source code(tar.gz)
    Source code(zip)
    plover-4.0.0.dev5.9.gba95837-py3-none-any.whl(2.20 MB)
    plover-4.0.0.dev5.9.gba95837-win32.setup.exe(65.22 MB)
    plover-4.0.0.dev5.9.gba95837-win32.zip(65.56 MB)
    plover-4.0.0.dev5.9.gba95837-x86_64.AppImage(107.56 MB)
    plover-4.0.0.dev5.9.gba95837.dmg(73.49 MB)
    plover-4.0.0.dev5.9.gba95837.tar.gz(3.25 MB)
  • weekly-v4.0.0.dev1+20.g60a373f(May 6, 2017)

    Plover v4.0.0.dev1+20.g60a373f

    Plover is going through a huge overhaul to make for a better experience for our users, and developers, too.

    Warning: Version 4 is a major change and the configuration file it creates is not compatible with Plover 3 or earlier. Please backup your plover.cfg

    Changes

    Plover 4.x looks different and is a little more developer friendly, too.

    • New UI (PyQT instead of wx).
      • Plover closes to tray, so you don't need to have a window in your taskbar.
    • Dictionary Revamp
      • Enable / disable dictionaries
      • Dictionary display order is now higher priority first (configurable)
      • External dictionary changes trigger a reload on configuration change (e.g. reconnecting the machine)
    • Windows now has an installer version available.
    • Older Mac versions should be supported again. (The lower bound is untested)
    • We now create a Linux AppImage.
    • Plugin support (not yet documented).
      • Will allow for custom machines, layouts, utilities, commands, and more, in time.

    Screenshots

    Plover running on a Mac:

    Plover v4.0.0 weekly on Mac

    Plover with the Italian Melani theory plugin, running on Windows Plover v4.0.0 weekly on Windows

    Plover now closes to the system tray, next to the clock. The tray icon indicates the output state, and the right-click menu allows you to control Plover without the need to have its main window open. tasktray

    Installation Guide

    Download below this post.

    Source code(tar.gz)
    Source code(zip)
    plover-4.0.0.dev1.20.g60a373f-py2.py3-none-any.whl(2.18 MB)
    plover-4.0.0.dev1.20.g60a373f-py3-win32.setup.exe(21.13 MB)
    plover-4.0.0.dev1.20.g60a373f-py3-win32.zip(21.35 MB)
    plover-4.0.0.dev1.20.g60a373f-py3.dmg(22.11 MB)
    plover-4.0.0.dev1.20.g60a373f-x86_64.AppImage(37.90 MB)
    plover-4.0.0.dev1.20.g60a373f.tar.gz(3.87 MB)
  • v3.1.1(Mar 7, 2017)

    This is a bug fix release affecting Linux and Mac users.

    • Fix a certain type of NKRO on Linux (#644)
    • Fix control key on macOS Sierra not working with global shortcuts
    • Fix an edge case of output for Mac, where certain keys wouldn't be shifted

    Please see the installation guide for instructions on downloading and installing for your system.

    Source code(tar.gz)
    Source code(zip)
    plover-3.1.1-py2-mac.dmg(13.46 MB)
    plover-3.1.1-py2-windows.exe(16.17 MB)
    plover-3.1.1-py2.7.egg(2.25 MB)
    plover-3.1.1-py2.py3-none-any.whl(2.07 MB)
    plover-3.1.1-py3.4.egg(2.25 MB)
    plover-3.1.1.tar.gz(3.02 MB)
    plover_3.1.1_all.deb(1.74 MB)
  • v3.1.0(Nov 9, 2016)

    Installation

    To install Plover, please follow the Installation Guide. The downloads for each operating system are at the bottom of this post.

    Changelog

    This is a minor release, meaning that we try to be backwards-compatible with v3.0.0 while introducing new features. The only gray area is the new keyboard shortcut syntax, which will not always work on older versions of Plover.

    Features

    • New configuration option to start Plover minimized

    • Added line breaks and tabs that work properly with the asterisk key (see documentation page)

    • Windows and Mac: handle keyboard layout switching

      This allows you to switch between layouts, like QWERTY and Dvorak, without having to restart Plover

    • Add ProCAT machine protocol

    Enhancements

    • Stroke and translation logging is now turned off by default

      While logging can be useful, it requires I/O from your machine and presents a privacy risk if your files are compromised

    • Keyboard shortcut changes

      Keyboard shortcuts (the {#key} notation) have been unified across all operating systems. Additionally, the keys are no longer case-sensitive, and there are aliases for modifiers to allow users to feel more at home while writing keyboard shortcuts. For example, {#Super_L(r)} can now be written as {#command(r)} (comfortable for Mac users) and {#windows(r)} (comfortable for Windows users). Check out the documentation in the Plover GitHub Wiki for more information

    • Unicode characters in JSON dictionaries are no longer escaped

    • The "Lookup" and "Suggestions" windows now return more results! We accomplished this by looking for different casing; prefixes and suffixes; and across all dictionaries

    • Paths and filenames are displayed relative to your home directory, when applicable

    Fixes

    • Many dictionary updates and fixes
    • Faster dictionary loading, which means faster Plover start up
    • Fix TX Bolt lag on macOS
    • Linux output is now more compatible and no longer has in/out focus events while writing

    Legal

    • License changed from "GPLv2" to "GPLv2, or any later version"

      This makes us more open by allowing users of later versions of the GPL to use our code, and in turn allows us to use GPLv3 software without licensing conflicts.

    Source code(tar.gz)
    Source code(zip)
    plover-3.1.0-macOS.dmg(15.13 MB)
    plover-3.1.0-py2.7.egg(2.24 MB)
    plover-3.1.0-py2.py3-none-any.whl(2.07 MB)
    plover-3.1.0-py3.4.egg(2.25 MB)
    plover-3.1.0-Windows.exe(19.00 MB)
    plover-3.1.0.tar.gz(3.02 MB)
    plover_3.1.0_all.deb(1.74 MB)
  • weekly-v3.0.0+264.g5b0d859(Sep 25, 2016)

    Benoit Pierre has been working on improving Python 3 support, and so hopefully no one will notice any bugs with this update. There are loads of under-the-hood changes and any unexpected bugs would be great to hear about.

    Since our last weekly, Plover's license was updated from GPLv2 to GPLv2+, thank you to all our contributors for your help in this change.

    Features

    • New protocol: ProCAT. Now ProCAT users can connect to Plover without needing to put their machine in emulation mode. This protocol should work with the Flash, Blaze, Impression, and Xpression.
    • There is now a shorter path string when showing dictionaries that are in your home directory.

    Dictionary Updates

    • Thanks to @Slotkenov for putting in huge effort to improve the main dictionary. This includes fixes, removal of bad entries, and new words, and briefs. Also to @davidkitfriedman and others on issue #400 for their contributions as well. More to come in future updates.

    Download & Install

    Windows

    Download and run the .exe below. Alternatively, if you're suffering from the 'executable not working after reboot' issue on Windows, download the win32 zip instead.

    Mac

    Download the .dmg file, drag Plover to your Applications folder, then go to System Preferences > Security & Privacy > Privacy > Accessibility > "+" Button > Select Applications/Plover. Now, run Plover.

    Linux

    Arch

    Use AUR package plover-git

    Other

    You can pip install the wheel file. You can chmod +x the egg if you have all dependencies installed. Additional instructions for various repos can be found in the Linux README

    Source code(tar.gz)
    Source code(zip)
    plover-3.0.0.264.g5b0d859-py2-none-any.whl(2.07 MB)
    plover-3.0.0.264.g5b0d859-py2.7.egg(2.24 MB)
    plover-3.0.0.264.g5b0d859.dmg(14.91 MB)
    plover-3.0.0.264.g5b0d859.exe(19.00 MB)
  • weekly-v3.0.0+199.g2396c74(Aug 1, 2016)

    Features

    • {PLOVER:LOOKUP} window has been rehauled, with a simpler UI that can resize. It also gets suggestions-esque results to be more useful.
    Plover lookup window - Improved reverse-lookup. Now the suggestions and lookup window find strokes across dictionaries that you can use, instead of just the first dictionary with a result.

    Fixes

    • Escape characters when logging
    • Main dictionary fixes thanks to @percidae, removing a lot of improperly formatted or garbage strokes.
    • Linux key presses in combos e.g. {#a b c} are working again, and we should now support capital letters in KDE and QT 5 applications.
    • Linux no longer has in/out focus events while writing

    Download & Install

    Windows

    Download and run the .exe below. Alternatively, if you're suffering from the 'executable not working after reboot' issue on Windows, download the win32 zip instead.

    Mac

    Download the .dmg file, drag Plover to your Applications folder, then go to System Preferences > Security & Privacy > Privacy > Accessibility > "+" Button > Select Applications/Plover. Now, run Plover.

    Linux

    Arch

    Use AUR package plover-git

    Other

    You can pip install the wheel file. You can chmod +x the egg if you have all dependencies installed. Additional instructions for various repos can be found in the Linux README

    Source code(tar.gz)
    Source code(zip)
    plover-3.0.0.199.g2396c74-py2-none-any.whl(2.07 MB)
    plover-3.0.0.199.g2396c74-py2.7.egg(2.24 MB)
    plover-3.0.0.199.g2396c74.dmg(14.91 MB)
    plover-3.0.0.199.g2396c74.exe(18.95 MB)
  • weekly-v3.0.0+110.gc240d71(Jun 14, 2016)

    Features

    • Mac: Plover now adjusts and continues working while you change your system keyboard layout.

    Fixes

    • Mac: Prevent a crash when changing from the keyboard machine or editing the key map.
    • Mac: Fix layout detection, should be better at outputting accented keys on various layouts (thanks @Achim63)
    • Linux: Use correct backspace keycode

    Download & Install

    Windows

    Download and run the .exe below. Alternatively, if you're suffering from the 'executable not working after reboot' issue on Windows, download the win32 zip instead.

    Mac

    Download the .dmg file, drag Plover to your Applications folder, then go to System Preferences > Security & Privacy > Privacy > Accessibility > "+" Button > Select Applications/Plover. Now, run Plover.

    Linux

    Arch

    Use AUR package plover-git

    Other

    You can pip install the wheel file. You can chmod +x the egg if you have all dependencies installed. Additional instructions for various repos can be found in the Linux README

    Source code(tar.gz)
    Source code(zip)
    plover-3.0.0.110.gc240d71-py2-none-any.whl(2.07 MB)
    plover-3.0.0.110.gc240d71-py2.7.egg(2.25 MB)
    plover-3.0.0.110.gc240d71.dmg(14.90 MB)
    plover-3.0.0.110.gc240d71.exe(18.94 MB)
  • weekly-v3.0.0+93.gb7a630a(Jun 2, 2016)

    Enhancements

    • More detailed runtime logging, more detailed machine traces

    Fixes

    • Fix TX Bolt slowdown on Mac OS X (thanks @stanographer for lending me his LightSpeed)
    • OSX key combos now use the cross-platform list
    • Fix retro currency formatting with decimal (e.g. formatting 1.20 to $1.20)

    Download & Install

    Windows

    Download and run the .exe below. Alternatively, if you're suffering from the 'executable not working after reboot' issue on Windows, download the win32 zip instead.

    Mac OS X

    Download the .dmg file, drag Plover to your Applications folder, then go to System Preferences > Security & Privacy > Privacy > Accessibility > "+" Button > Select Applications/Plover. Now, run Plover.

    Linux

    Arch

    Use AUR package plover-git

    Other

    You can pip install the wheel file. You can chmod +x the egg if you have all dependencies installed. Additional instructions for various repos can be found in the Linux README

    Source code(tar.gz)
    Source code(zip)
    plover-3.0.0.93.gb7a630a-py2-none-any.whl(2.07 MB)
    plover-3.0.0.93.gb7a630a-py2.7.egg(2.24 MB)
    plover-3.0.0.93.gb7a630a-win32.zip(13.25 MB)
    plover-3.0.0.93.gb7a630a.dmg(14.89 MB)
    plover-3.0.0.93.gb7a630a.exe(18.94 MB)
  • weekly-v3.0.0+80.gdc7ccc3(May 26, 2016)

    Hi all,

    I've been taking things slow lately to get rested up, but in my absence @Benoit-Pierre has been active as ever, making some great changes to Plover.

    Features

    • Key combos have been reworked! It should be easier to make key combos now, especially for beginners.
      • Warnings are shown when you try to use keys that don't exist, like {#inventedkey}.
      • Keys are case-insensitive, meaning {#up} and {#Up} both hit your up arrow key.
      • Modifiers will implicitely use the left modifier, e.g. {#control(c)} is equivalent to {#Control_L(c)} from previous versions.
      • A common confusion for users of different platforms is our Linux-centric key names. Now you can use {#Windows} or {#Command} instead of {#Super} and {#Option} instead of {#Alt} if you are more comfortable with those key names.

    Enhancements

    • Plover log is more verbose to make debugging easier.
    • Stroke normalization has been optimized, which should speed up dictionary loading and reduce startup time.
    • The configuration file should no longer change section orders on save.
    • Unicode characters are no longer escaped while saving JSON dictionaries.

    Fixes

    • Mac OS X output should no longer occasionally stop when using the keyboard as your machine (thank you @jeremy-w)

    Download & Install

    Windows

    Download and run the .exe below.

    Mac OS X

    Download the .dmg file, drag Plover to your Applications folder, then go to System Preferences > Security & Privacy > Privacy > Accessibility > "+" Button > Select Applications/Plover. Now, run Plover.

    Linux

    Arch

    Use AUR package plover-git

    Other

    You can pip install the wheel file. You can chmod +x the egg if you have all dependencies installed. Additional instructions for various repos can be found in the Linux README

    Source code(tar.gz)
    Source code(zip)
    plover-3.0.0.80.gdc7ccc3-py2-none-any.whl(2.07 MB)
    plover-3.0.0.80.gdc7ccc3-py2.7.egg(2.24 MB)
    plover-3.0.0.80.gdc7ccc3.dmg(14.88 MB)
    plover-3.0.0.80.gdc7ccc3.exe(18.94 MB)
  • weekly-v3.0.0+31.g703baba(May 7, 2016)

    Features

    • Plover now supports \n (or \r) and \t as alternatives to {#Return} and {#Tab}, which can be "undone" with the asterisk key
      • E.g. "R-R": "{^\n^}{-|}"
    • Plover can now start with its main window minimized (Configuration... > Display > Start Plover minimized)

    Enhancements

    • Stroke logging is now turned off by default

    Fixes

    • Fix entries starting with 6, 7, 8, or 9 without explicit hyphen not working
    • Fix edge-case crashes from retro delete space
    • On Windows, Alt-codes now work while Plover is running

    Download & Install

    Windows

    Download and run the .exe below.

    Mac OS X

    Download the .dmg file, drag Plover to your Applications folder, then go to System Preferences > Security & Privacy > Privacy > Accessibility > "+" Button > Select Applications/Plover. Now, run Plover.

    Linux

    Arch

    Use AUR package plover-git

    Other

    You can pip install the wheel file. You can chmod +x the egg if you have all dependencies installed. Additional instructions for various repos can be found in the Linux README

    Source code(tar.gz)
    Source code(zip)
    plover-3.0.0.31.g703baba-py2-none-any.whl(2.07 MB)
    plover-3.0.0.31.g703baba-py2.7.egg(2.24 MB)
    plover-3.0.0.31.g703baba.dmg(14.89 MB)
    plover-3.0.0.31.g703baba.exe(18.95 MB)
  • v3.0.0(Apr 30, 2016)

    Plover has its first stable release in over 2 years today.

    So much work and love went into this, and we're looking forward to much more frequent releases in the future. Read on below for changes, fun facts, install instructions, and download links.

    Plover version 3.0.0

    • New icon
    • Full unicode support across Windows, Linux, and Mac OS X
    • Updated homepage

    Tools

    • Suggestions window training tool, shows alternate ways to write a word or phrase
    • Lookup window, invoke with {PLOVER:LOOKUP}
    • Dictionary Editor
    • Translation window has a configurable transparency
    • In Stroke Display, user can save and clear strokes

    Configuration

    Layout

    • Remap keyboard keys that correspond to steno, also add to list of suppressed keys to prevent accidental key presses

    Output

    • Space placement before or after written words
    • First stroke after startup can be capitalized and without space
    • Configure Plover's buffer "memory"

    Translation Control

    Text formatting:

    • Capitalize next letter {-|}
    • Capitalize first letter of last word: {*-|}
    • Attach / delete space {^}, {^word}, {word^}
    • Carry capitalization {~|x}, where x is a character or symbol, with attach: {^~|x}, {~|x^}, {^~|x^}
      • {-|}{~|'^}em'Em
      • {-|}'em'em
    • Force lowercase next letter {>}
    • Lowercase first letter of last word: {*>}
    • Repeat last stroke {*+}
    • CAPS next word {<}
    • CAPS last word {*<}
    • Toggle asterisk in last stroke {*}
    • Separate last two strokes {*?}
      • KAT/HROGKAT and HROG
    • Remove space between last two strokes {*!}
    • Format currency on number {*($c)}, {*(€c)}, {*(£c)}, {*(c USD)}
      • 1234{*($c)}$1,234

    Output Modes

    • Reset to default: {MODE:RESET}
    • CAPS: {MODE:CAPS}
    • Title Case: {MODE:TITLE}
    • lower case: {MODE:LOWER}
    • Snake_case: {MODE:SNAKE}
    • camelCase: {MODE:CAMEL}
    • Custom modes:
      • Change-space-character: {MODE:SET_SPACE:-}
      • Or eliminate spaces: {MODE:SET_SPACE:}
      • You can logically combine the above: {MODE:SNAKE}{MODE:CAPS}

    Sample dictionary:

    {
     "KA*PS": "{MODE:CAPS}",
     "T-LT": "{MODE:TITLE}",
     "HR*R": "{MODE:LOWER}",
     "STPH-BG": "{MODE:SNAKE}",
     "R-FT": "{MODE:RESET}",
     "KHRAO*ER": "{MODE:RESET}",
     "TK-RBS": "{MODE:SET_SPACE:-}",
     "K-BGS": "{MODE:CAMEL}",
     "TPH-FPS": "{MODE:SET_SPACE:}"
    }
    

    Media Key Support

    Control volume and media playback

    • Windows
      • AudioRaiseVolume
      • AudioLowerVolume
      • AudioMute
      • AudioNext
      • AudioPrev
      • AudioStop
      • AudioPlay / AudioPause (Toggles)
      • Standby
      • Browser commands:
        • Back
        • Forward
        • Refresh
        • Stop
        • Search
        • Favorites
        • HomePage / WWW
      • MyComputer*
      • Calculator*
      • Mail*
      • *Sometimes won't work
    • Mac OS X
      • AudioRaiseVolume
      • AudioLowerVolume
      • AudioMute
      • AudioNext
      • AudioPrev
      • AudioStop
      • AudioPlay / AudioPause (Toggles)
      • Eject
      • MonBrightnessUp
      • MonBrightnessDown
      • KbdBrightnessUp
      • KbdBrightnessDown
    • Linux
      • All of the above, plus whatever is in your XF86keysym.h You can optionally include the XF86_ prefix

    Sample strokes:

    {
    "SR*UP": "{#AudioRaiseVolume}",
    "SR*D": "{#AudioLowerVolume}",
    "PHAO*UT": "{#AudioMute}",
    "TPH*EGT": "{#AudioNext}",
    "PR*EF": "{#AudioPrev}"
    }
    

    Dictionary Updates

    • Plover ships with 3 default dictionaries:
      • main.json: Plover's StenEd-Mirabai-extended modern dictionary
      • commands.json: Commands, like arrow keys, copy & paste, and line returns
      • user.json: Blank dictionary that newly entered strokes will be added to
    • Many new strokes were added to main.json to since v2.5.8, medical terms, modern words, tech words, animals, and misstrokes. Many invalid entries were also pruned.

    Fixes

    • All platforms suppress keyboard input when using it as a steno machine
    • Plover doesn't get lost off screen on startup
    • Mac OS X runs with retina support
    • Windows and Mac OS X compatibility across programs and websites was increased

    Special Thanks

    • Thanks to our developer emeritus, @balshetzer
    • @mighele for the dictionary editor, retrospective strokes, spaces-after output
    • @balthamos for the suggestions window
    • @rbrewer123 for fixes
    • @jeremy-w for translation transparency, documentation, contributing.md, PR & issue templates
    • @avalai for the new Plover icon and help with the homepage layout
    • @Benoit-Pierre for doing so much work to make Plover better at its core, countless bug fixes, internal refactoring, new features, and great code reviews, literally hundreds of commits!
    • ...and all the other developers and users who submitted PRs and took part in issue discussion
    • @stenoknight for making steno free for everyone

    Fun Facts

    The last release, Plover v2.5.8:

    • Was released over 840 days ago
    • Was downloaded over 23,000 times

    This release:

    • Adds 578 commits
    • Has received help from over 20 contributors

    Download & Install

    Windows

    Download and run the .exe below.

    Mac OS X

    Download the .dmg file, drag Plover to your Applications folder, then go to System Preferences > Security & Privacy > Privacy > Accessibility > "+" Button > Select Applications/Plover. Now, run Plover.

    Linux

    Ubuntu

    See Benoit Pierre's Plover PPA

    Arch

    Use AUR packages plover and plover-git

    Other

    You can pip install the wheel file. You can chmod +x the egg if you have all dependencies installed. Additional instructions for various repos can be found in the Linux README

    Source code(tar.gz)
    Source code(zip)
    Plover-3.0.0-py2-none-any.whl(2.07 MB)
    Plover-3.0.0-py2.7.egg(2.23 MB)
    Plover-3.0.0.dmg(14.89 MB)
    Plover-3.0.0.exe(18.97 MB)
  • weekly-v2.5.8+576.ga90528e(Apr 23, 2016)

    This release features fixes:

    • Fix edge cases in formatting where you could lose letters, e.g. when set spaces after and setting the space character to nothing.
    • Fix lost child process error which could suppress keyboard output on Windows, even after Plover was quit.

    Windows

    Download and run the .exe below.

    OS X

    Download the .dmg file, drag Plover to your Applications folder, then go to System Preferences > Security & Privacy > Privacy > Accessibility > "+" Button > Select Applications/Plover. Now, run Plover.

    Linux

    You can pip install the wheel file. You can chmod +x the egg if you have all dependencies installed. Additional instructions for various repos can be found in the Linux README

    Source code(tar.gz)
    Source code(zip)
    Plover-2.5.8.576.ga90528e-py2-none-any.whl(2.07 MB)
    Plover-2.5.8.576.ga90528e-py2.7.egg(2.23 MB)
    Plover-2.5.8.576.ga90528e.dmg(14.89 MB)
    Plover-2.5.8.576.ga90528e.exe(18.97 MB)
  • weekly-v2.5.8+567.g52ebe0b(Apr 3, 2016)

    Fixes

    • Keyboard mode on Windows: should no longer occasionally stop working, where Plover would seem functional but typing yielded no stenography.
    • Remove many invalid entries from main.json with feedback from #400
    • Revert change that made long strings on OSX cause slowdowns
    • Improve handling of TX Bolt protocol on a particular edge case
    • Use English Stenography system for orthography

    Development

    • Tests are now run with ./setup.py test and tests have their own directory

    Windows

    Download and run the .exe below.

    OS X

    Download the .dmg file, drag Plover to your Applications folder, then go to System Preferences > Security & Privacy > Privacy > Accessibility > "+" Button > Select Applications/Plover. Now, run Plover.

    Linux

    You can pip install the wheel file. You can chmod +x the egg if you have all dependencies installed. Additional instructions for various repos can be found in the Linux README

    Source code(tar.gz)
    Source code(zip)
    Plover-2.5.8.567.g52ebe0b-py2-none-any.whl(2.07 MB)
    Plover-2.5.8.567.g52ebe0b-py2.7.egg(2.23 MB)
    Plover-2.5.8.567.g52ebe0b.dmg(14.88 MB)
    Plover-2.5.8.567.g52ebe0b.exe(18.97 MB)
  • weekly-v2.5.8+529.gfbbc1f7(Mar 23, 2016)

    Weekly Pre-release

    Features

    Media keys have been added! For Linux, this means hundreds of new keys with an optional XF86_ prefix. All the keys below should function, though you may have to hook up global handlers depending on your distribution. See a list of XF86_ keys taken from XF86keysym.h

    As for OSX and Windows, these are the possible media keys, which you can use such as:

    {
    "SR*UP": "{#AudioRaiseVolume}",
    "SR*D": "{#AudioLowerVolume}",
    "PHAO*UT": "{#AudioMute}"
    }
    

    | Name | OSX | Windows | | --- | --- | --- | | AudioRaiseVolume | ✅ | ✅ | | AudioLowerVolume | ✅ | ✅ | | MonBrightnessUp | ✅ | | | MonBrightnessDown | ✅ | | | AudioMute | ✅ | ✅ | | Eject | ✅ | | | AudioPause­ | Play/Pause | Play/Pause | | AudioPlay | Play/Pause | Play/Pause | | AudioNext | ✅ | ✅ | | AudioPrev | ✅ | ✅ | | AudioRewind | ✅ | | | AudioStop | | ✅ | | KbdBrightnessUp | ✅ | | | KbdBrightnessDown | ✅ | | | Standby | | ✅ | | MyComputer* | | ✅ | | Calculator* | | ✅ | | Mail* | | ✅ |

    *Depending on your version of Windows and your keyboard driver, the application launching keys may not work.

    | Browser Action | OSX | Windows | | --- | --- | --- | | Back | | ✅ | | Forward | | ✅ | | Refresh | | ✅ | | Stop | | ✅ | | Search | | ✅ | | Favorites | | ✅ | | HomePage | | ✅ | | WWW | | ✅ |

    Fixes

    • Only save changed dictionaries with dictionary editor, add translation dialog
    • Internally handle read-only dictionaries
    • Use pkg_resources on Windows and OS X (previously only Linux)
    • Fix crash when opening Plover using some OS X key layouts
    • Catch exceptions on reconnect

    Download & Install

    Windows

    Download and run the .exe below.

    OS X

    Download the .dmg file, drag Plover to your Applications folder, then go to System Preferences > Security & Privacy > Privacy > Accessibility > "+" Button > Select Applications/Plover. Now, run Plover.

    Linux

    You can pip install the wheel file. You can chmod +x the egg if you have all dependencies installed. Ubuntu users may need to use a backport to get the latest version of wxPython:

    sudo apt-add-repository -y ppa:adamwolf/kicad-trusty-backports
    sudo apt-get update
    sudo apt-get install python-wxgtk3.0
    
    Source code(tar.gz)
    Source code(zip)
    Plover-2.5.8.529.gfbbc1f7-py2-none-any.whl(2.09 MB)
    Plover-2.5.8.529.gfbbc1f7-py2.7.egg(2.30 MB)
    Plover-2.5.8.529.gfbbc1f7.dmg(14.79 MB)
    Plover-2.5.8.529.gfbbc1f7.exe(18.87 MB)
  • weekly-v2.5.8+487.g9d3cd22(Mar 19, 2016)

    Weekly Pre-release

    Features

    • Stroke Display / Paper Tape now has a clear button, a save button to export to a text file, and scrolls forever. Thanks to @timthelion
    • Treal TR now automatically reconnects if the machine is disconnected during use
    • Running Plover from the command-line now supports --help, --version, --log-level

    Fixes

    • Optimize Mac dmg size
    • Fix a doubled-notification when using native wx notifier
    • Windows output now sends the correct symbols even as the user changes keyboard layout (e.g. Qwerty, Azerty, Qwertz, Dvorak, Colemak, etc.)
    • "Add dictionary" file dialog can now be controlled by the steno machine

    Download & Install

    Windows

    Download and run the .exe below.

    OS X

    Download the .dmg file, drag Plover to your Applications folder, then go to System Preferences > Security & Privacy > Privacy > Accessibility > "+" Button > Select Applications/Plover. Now, run Plover.

    Linux

    You can pip install the wheel file. You can chmod +x the egg if you have all dependencies installed. Ubuntu users may need to use a backport to get the latest version of wxPython:

    sudo apt-add-repository -y ppa:adamwolf/kicad-trusty-backports
    sudo apt-get update
    sudo apt-get install python-wxgtk3.0
    
    Source code(tar.gz)
    Source code(zip)
    Plover-2.5.8.487.g9d3cd22-py2-none-any.whl(2.09 MB)
    Plover-2.5.8.487.g9d3cd22-py2.7.egg(2.29 MB)
    Plover-2.5.8.487.g9d3cd22.dmg(14.73 MB)
    Plover-2.5.8.487.g9d3cd22.exe(18.81 MB)
  • weekly-v2.5.8+456.g56f1410(Mar 12, 2016)

    Weekly Pre-release

    Fixes

    • Fix bug where retro delete space wouldn't work for punctuation and numbers
    • Fix "space-after" fingerspelling problem that caused spacing
    • Attempt to fix transposition errors on OS X, also improve reliability of extended characters
    • Add missing import; last week's builds didn't work on Linux

    Documentation

    There's now a Linux readme for users looking to get set up for development

    Download & Install

    Windows

    Download and run the .exe below.

    OS X

    Download the .dmg file, drag Plover to your Applications folder, then go to System Preferences > Security & Privacy > Privacy > Accessibility > "+" Button > Select Applications/Plover. Now, run Plover.

    Linux

    You can pip install the wheel file. You can chmod +x the egg if you have all dependencies installed. Ubuntu users may need to use a backport to get the latest version of wxPython:

    sudo apt-add-repository -y ppa:adamwolf/kicad-trusty-backports
    sudo apt-get update
    sudo apt-get install python-wxgtk3.0
    
    Source code(tar.gz)
    Source code(zip)
    Plover-2.5.8.399.g56f1410-py2-none-any.whl(2.09 MB)
    Plover-2.5.8.399.g56f1410-py2.7.egg(2.29 MB)
    Plover-2.5.8.456.g56f1410.exe(18.84 MB)
    Plover.dmg(16.65 MB)
  • weekly-v137(Mar 5, 2016)

    With this new "weekly" build of Plover, we hope to start a trend of rapid releases. We'll try to push a new weekly every time there's a new feature, so you might see weekly builds on a daily or biweekly basis, depending on how much actual development gets done. One thing is for sure, though, we won't wait another 2 years (!!!) before getting improvements into your hands.

    This is a "pre-release", not quite a version 3.0.0 just yet, we want to have the brave among you try it out and let us know if anything broke in a major way.

    Special Thanks

    This release has been a huge team effort, and I'd like to thank many people and give some credit, where due. Firstly, thanks to @balshetzer for bringing Plover to its current state, and leaving a wonderful project with consistent style to take over. It's been a joy following in your footsteps. Thanks also to @mighele for work on many features, including the dictionary editor, the retrospective commands, and the lookup window. Another huge thanks is due for @balthamos, who created the suggestions window in this release. @rbrewer123 also submitted some useful pull requests to improve the Stentura machine. @jeremy-w revived the translation transparency issue and got us set up with awesome contributing guidelines to help curious developers get started.

    And in the last few months, since October, I've been hard at work with @benoit-pierre, who has been wonderful to work with. Benoit has done so much work on Plover, attacking core problems and making sweeping internal changes. He kept making pull requests and pushing for a release, he helped set up continuous integration, performed many code reviews, refactored the development environment on all systems, changed the core of Plover's steno engine, and made countless bug fixes. I can't summarize just how much he has done, you'll just have to review the commit history to see all the incredible work.

    Finally, I'd like to thank @stenoknight. Without her, we wouldn't be all be stenoing together on the Discord chat, I wouldn't be stenoing my code, life would be very different. I've been overjoyed to be put in the position as lead dev for Plover, even though I'm not a Python expert like some of our other developers. I've really enjoyed getting things organized and I'm immensely proud of where the Open Steno community has managed to get Plover for this release; it's amazing to use and I hope that everyone enjoys all the new stuff! Speaking of new stuff, here's the changelog:

    Features

    • New icon Plover icon 128x128 2x
    • Full Unicode support on Windows, OS X, and Linux. Now you can use a non-Latin alphabet, including extended symbols such as emoji 💥
    • New lookup window to look up strokes for a word. Use {PLOVER:LOOKUP} Lookup window
    • Configure whether space is outputted at the beginning or end of the current stroke (default/current is " add", new option outputs "add ")
    • New option to configure whether Plover's first stroke after being turned on is capitalized and has a space.
    • New option to change the number of undos that Plover remembers. The default is 100 up from 10.
    • New Dictionary Editor that lets you view and edit strokes in your dictionaries. You can filter by stroke or definition, and add, edit, and delete entries in your JSON and RTF dictionaries. Dictionary editor
    • New Suggestions window, a training tool that watches what you are writing, and gives other strokes that have the same output. It's great for discovering briefs, suffixes, prefixes, and alternative strokes. Suggestions Window
    • "Add Translation" Transparency option to make your dictionary updates more subtle in case you have clients who get distracted by it.
    • New commands:
      • Repeat last stroke: repeats the last stroke exactly, useful for things like arrow keys to avoid having to do a complex stroke multiple times: {*+}
      • Uppercase next word, turns "word" into "WORD": {<}
    • New retrospective commands:
      • Retrospective capitalize

        Capitalize last word: {*-|}

      • Retrospective uppercase

        Uppercase last word: {*<}

      • Retrospective lowercase last word

        Lower the first letter of the last word: {*>}

      • Retrospective toggle asterisk

        Change whether the last stroke did or didn't have an asterisk: {*}.

      • Retrospective insert space

        "Split" the last two strokes, turning KAT/LOG, "catalogue", into "cat log": {*?}

      • Retrospective delete space

        Remove a space between the last two words, turning "break off" into "breakoff": {*!}

      • Retrospective currency formatting

        Using a stroke of the form {*($c)}, where you can replace "$" with your own currency symbol, Plover will adjust your last stroke, if it's a number, optionally with two decimal places, (e.g. 123412.34) into currency format (in this case, $123,412.34)

    • Delete words on empty buffer. When Plover runs out of asterisk-undos, it will start to try to delete a word at a time instead of doing nothing.
    • Add remapping of the keyboard's layout through the configuration dialog, so that users can change which keys are suppressed and which suppressed keys correspond to steno keys. For example, you can suppress the spacebar, or set "Tab" to act as S-.
    Keyboard config - **Notifications!** Information and errors are now displayed in your system's notifications system. - **New error log**. `strokes.log` now shows strokes and translation output, `plover.log` shows errors and logged information. - **Better portable mode**. Configuration file (`plover.cfg`) and dictionaries can be stored relatively, so Plover should work portably. - **Carry capitalization across characters** with a new command: `~|`. Useful for quotations, like an opening quote: `{~|\"^}` - **Radio buttons instead of red/green P for output enabled/disabled**. Tweak main user interface window to be a little more accessible for users who may have difficult distinguishing between red and green. Plover main interface - **Add multiple dictionaries at once**. You can now add multiple dictionaries at once instead of one at a time in the "Add Dictionary" file selector. - **Add output modes** (manage case and space character)

    Introduce a new breed of meta command, "MODE". Now Plover has persistent "modes" that affect the output of the text. The core of the functionality comes from controlling just:

    • The text case
    • The space character

    For the text case, users can use "CAPS", "TITLE", "LOWER". This lets the text come out IN ALL CAPS, In Title Case, and, in all lowercase.

    For the space character, using "SET_STRING", users can effectively replace Plover's built in "space" character with any of their choosing. For example, youcouldsetthecharacter to nothing, or-to-the-dash, or-ow-to-ow-any-ow-arbitrary-ow-string.

    Then, to disable the functionality, users can use "MODE:RESET_SPACE" to reset to the default space, "MODE:RESET_CASE" to reset to the default case, and "MODE:RESET" to clear the space character and the case.

    Finally, Plover ships with some special mode names to help out programmers: "SNAKE" and "CAMEL". Snake just sets the space character to underscores,_like_this_if_you_will, and Camel sets the next character to lowercase (using "{>}"), sets the case to Title case, and sets the space character to none, thus resulting inThisOutputStyle.

    Example dictionary for most of the strokes (reset space and case aren't useful to me personally):

    {
     "KA*PS": "{MODE:CAPS}",
     "T-LT": "{MODE:TITLE}",
     "HR*R": "{MODE:LOWER}",
     "STPH-BG": "{MODE:SNAKE}",
     "R-FT": "{MODE:RESET}",
     "KHRAO*ER": "{MODE:RESET}",
     "TK-RBS": "{MODE:SET_SPACE:-}",
     "K-BGS": "{MODE:CAMEL}",
     "TPH-FPS": "{MODE:SET_SPACE:}"
    }
    

    Dictionary

    • Split default dictionary into 3 default dictionaries. New Plover users (or users without any dictionaries configured) will find 3 dictionaries set up in their dictionary list by default: main.json, commands.json, and user.json. "Main" contains all the words, numbers, prefixes, and suffixes from the default dictionary, whereas "commands" is just the commands, such as copy, paste, add dictionary translation, toggle Plover, et cetera. The "user" dictionary is a blank dictionary that new strokes will automatically be added to, alleviating one of the struggles of starting out learning steno and not realizing that it's important to separate your own strokes from the default strokes.
    • Add more time increments (1:05 through to 1:55) to the default dictionary, using the K- and -BG strokes.
    • Add symbols to the dictionary to match Learn Plover!
    • Roughly 20,000 entries added to the main dictionary, mainly from Mirabai's and Ted's personal dictionaries. Includes some fixes, lots of new words, and steno-specific terminology.
    • New strokes using the carry capitalize meta: update quotation strokes to better handle words starting with apostrophes, like 'cause or 'em. The default quotation mark and parentheses strokes (KW-GS, KR-GS; PREPB and PR*EPB) also should no longer force lowercase, making them better for use in your text.

    Fixes

    • The Linux keyboard is now suppressed while Plover is outputting (instead of sending backspace events to suppress key presses).
    • Plover windows should no longer get stuck off screen on start up, an issue that Windows users were prone to.
    • Reduce Stentura CPU usage.
    • Reduce Tréal CPU usage on Linux and Mac.
    • Mac OS X build is now 64-bit, and has retina display support.
    • Mac OS X now sends key codes instead of just strings, meaning that it has better compatibility with international layouts and legacy applications.
    • Windows now has support for all the special keys, including using the Windows key ({#Super_L() grave space})
    • "NKRO Keyboard" has been renamed to "Keyboard".
    • Command-C now copies in Mac dialogs, instead of closing them.

    Development / Internal

    • Replace hard-coded key layout with customizable list.
    • Plover can be launched in development now with python2 launch.py
    • Add CONTRIBUTING.md for guidelines on submitting issues and pull requests for the repository.
    • Core stenography logic has been rewritten and reorganized, in order to make remapping of the physical layouts easier, as well as have all the stenography logic much more modularized, in preparation for multilingual configurations.
    • Continuous Integration has been set up to build on Windows, Mac, and Linux with AppVeyor and Travis CI.
    • Windows development environment setup is fully automated with a setup and build script.

    Download & Install

    Windows

    Download and run the .exe below.

    OS X

    Download the .dmg file, drag Plover to your Applications folder, then go to System Preferences > Security & Privacy > Privacy > Accessibility > "+" Button > Select Applications/Plover. Now, run Plover.

    Linux

    You can pip install the wheel file. You can chmod +x the egg if you have all dependencies installed. Ubuntu users may need to use a backport to get the latest version of wxPython:

    sudo apt-add-repository -y ppa:adamwolf/kicad-trusty-backports
    sudo apt-get update
    sudo apt-get install python-wxgtk3.0
    
    Source code(tar.gz)
    Source code(zip)
    Plover-2.5.8.317.gced379f-py2-none-any.whl(2.09 MB)
    Plover-2.5.8.317.gced379f-py2.7.egg(2.29 MB)
    Plover-2.5.8.440.gced379f.exe(18.84 MB)
    Plover.dmg(16.65 MB)
  • v2.5.8(Jan 8, 2014)

  • v2.5.7(Nov 30, 2013)

    Changes in this release:

    • New feature (on Windows and OS X): Portable mode allows putting Plover on a removable drive. To use, put an empty file named plover.cfg in the same directory as the Plover.exe (on windows) or Plover.app (on OS X) and Plover will use the local directory for all its files.
    • RTF/CRE dict parser is more forgiving and recognizes unix style newlines. This allows users to edit RTF/CRE dictionaries in regular text editors more easily

    Bugs Fixed:

    • Adding a dictionary with the wrong extension crashed Plover.
    • Arpeggiate was broken (thanks rbrewer123).
    • Plover crashed if the serial port in the config doesn't exist.
    • Plover stopped working on resume when using a machine other than the NKRO keyboard.

    Changes to default dictionary:

    • Fixed several entries (thanks Simon Melhart)
    • Default dictionary is now sorted by translation (thanks Zack Brown)
    • Removed all conflicts
    • converted to UTF-8.
    Source code(tar.gz)
    Source code(zip)
    Plover.dmg(15.70 MB)
    plover.exe(12.69 MB)
Owner
Open Steno Project
Open Steno Project
A free and open-source chess improvement app that combines the power of Lichess and Anki.

A free and open-source chess improvement app that combines the power of Lichess and Anki. Chessli Project Activity & Issue Tracking PyPI Build & Healt

null 93 Nov 23, 2022
🏆 A ranked list of awesome Python open-source libraries and tools. Updated weekly.

Best-of Python ?? A ranked list of awesome Python open-source libraries & tools. Updated weekly. This curated list contains 230 awesome open-source pr

Machine Learning Tooling 2.7k Jan 3, 2023
TickerRain is an open-source web app that stores and analysis Reddit posts in a transparent and semi-interactive manner.

TickerRain is an open-source web app that stores and analysis Reddit posts in a transparent and semi-interactive manner

GonVas 180 Oct 8, 2022
Open source home automation that puts local control and privacy first

Home Assistant Open source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiast

Home Assistant 57k Jan 2, 2023
Nimbus - Open Source Cloud Computing Software - 100% Apache2 licensed

⚠️ The Nimbus infrastructure project is no longer under development. ⚠️ For more information, please read the news announcement. If you are interested

Nimbus 194 Jun 30, 2022
World's best free and open source ERP.

World's best free and open source ERP.

Frappe 12.5k Jan 7, 2023
An open source server for Super Mario Bros. 35

SMB35 A custom server for Super Mario Bros. 35 This server is highly experimental. Do not expect it to work without flaws.

Yannik Marchand 162 Dec 7, 2022
Backend/API for the Mumble.dev, an open source social media application.

Welcome to the Mumble Api Repository Getting Started If you are trying to use this project for the first time, you can get up and running by following

Dennis Ivy 189 Dec 27, 2022
A deployer and package manager for OceanBase open-source software.

OceanBase Deploy OceanBase Deploy (简称 OBD)是 OceanBase 开源软件的安装部署工具。OBD 同时也是包管理器,可以用来管理 OceanBase 所有的开源软件。本文介绍如何安装 OBD、使用 OBD 和 OBD 的命令。 安装 OBD 您可以使用以下方

OceanBase 59 Dec 27, 2022
sawa (ꦱꦮ) is an open source programming language, an interpreter to be precise, where you can write python code using javanese character.

ꦱꦮ sawa (ꦱꦮ) is an open source programming language, an interpreter to be precise, where you can write python code using javanese character. sawa iku

Rony Lantip 307 Jan 7, 2023
Open source tools to allow working with ESP devices in the browser

ESP Web Tools Allow flashing ESPHome or other ESP-based firmwares via the browser. Will automatically detect the board type and select a supported fir

ESPHome 195 Dec 31, 2022
PyMedPhys is an open-source Medical Physics python library

PyMedPhys is an open-source Medical Physics python library built by an open community that values and prioritises code sharing, review, improvement, and learning from each other. I

PyMedPhys 238 Dec 27, 2022
La version open source du bot Discord Sblerboy

Sblerboy-Open-Source La version open source du bot Discord Sblerboy Sblerboy est un bot Discord permettant de jouer à des jeux de Gameboy directement

null 15 Nov 19, 2022
An open-source Python project series where beginners can contribute and practice coding.

Python Mini Projects A collection of easy Python small projects to help you improve your programming skills. Table Of Contents Aim Of The Project Cont

Leah Nguyen 491 Jan 4, 2023
🍬️🦇️ Open source Trick or Treat! 🦇️🍬️

Open Source Halloween! What's an easy way to have fun, and celebrate an open source Halloween? Open source trick or treating, of course! The repositor

Research Software Engineers 3 Oct 18, 2021
Open source style Deep Dream project

DeepDream ⚠️ If you don't have a gpu with cuda, the style transfer execution time will be much longer Prerequisites Python >=3.8.10 How to Install sud

Patrick martins de lima 7 May 17, 2022
Zeus is an open source flight intellingence tool which supports more than 13,000+ airlines and 250+ countries.

Zeus Zeus is an open source flight intellingence tool which supports more than 13,000+ airlines and 250+ countries. Any flight worldwide, at your fing

DeVickey 1 Oct 22, 2021
null 1 May 12, 2022
Graveyard is an attempt at open-source reimplementation of DraciDoupe.cz

Graveyard: Place for Dead (and Undead) Graveyard is an attempt at open-source reimplementation of DraciDoupe.cz (referred to as DDCZ in this text). De

DraciDoupe.cz 5 Mar 17, 2022