Thursday, September 11, 2014

Metakey Kludge

I'll let Ted from the Google Group describe his ingenious new solution for Plover's lack of arbitrarily stackable metakeys. (You can explicitly define a metakey+key combination in the dictionary, but you can't map a stroke to, say, Control and then be able to simulate holding it down while choosing another key in realtime to be activated along with it.)

Hello PloverSteno!


I've seen complaints in the past about the lack of a "sticky modifier" function in Plover. The idea being that you could define a stroke for Shift, one for Control, then using these strokes write something like "Control/Shift/p" or any other stroke.

Well, today I'd like to announce my workaround!

It's a Python script that takes a list of modifiers (Control, Super, Alt, Shift, by default) and a list of hotkeys (alphanumeric, enter, backspace, delete, and arrow keys, by default) and then generates every *possible* combination in order to give you one-off hotkeys. The output is a dictionary that you load into Plover and you're ready to go.

Of course, I recommend a single stroke for something common like "Ctrl-v" for paste, but sometimes you just need a one-off "Control-alt-shift-Left arrow" and that's what this script aims to let you do.

As a little bonus, there's a definition in there that has 100 strokes in order to increase Plover's buffer length.


If you don't like my default strokes, you can go into the script and change the "modifiers" or "hotkeys" lists in the main method. But these are the defaults, as per the script:

- Alt/Option: TLA* (THRA*)
- Command: KM* (KPL*)
- Control: KL* (KHR*)
- Shift: SF* (STP*)

Otherwise all the letters, numbers, return, and backspace are all Plover default.

Of note, if you want to just "press" the combination without a key, for example in Windows you can use "Ctrl+Shift" to change keyboard layouts, use the blank stroke:

- "SP*S"

I also had to add an entry for the delete key, which is just:



Download it from the GitHub repo. "modifiers.json" is the dictionary with all my defaults, "" is the Python script to run to make the dictionary.

Please, feedback is welcome. Also think of this as a workaround, not a permanent solution to the problem.

Many thanks to Ted for this! I have a feeling it'll come in extremely handy.

Sunday, September 7, 2014

Plover Learn Integrated Into Learn Plover!

Erika has just finished adding all the drills in Learn Plover! to Plover Learn, her interactive training site, and Zack in turn has linked to each lesson within the corresponding chapter of his book. Between the two of them, the steno learning curve just got a whole lot flatter.

Wednesday, September 3, 2014

Giant Monster Catch-Up Post

Manual steno machine, Sidewinders, and Infinity Ergonomic laid out at PyGotham 2014

Gah! It's been absolute ages! Amazing things have been happening in the Plover world, but I've been too wrapped up in my day job to document them all as they've occurred. I'm going to try to get back on top of blogging everything that's going on, starting now, but as ever if you want the latest breaking Plover news, you should probably join the Google Group, which is always the most direct source of information from Plover's developers, users, and contributors.

Speaking of which, Plover is no longer just its own thing. Hesky, Josh, and I have decided to fold it into a more general overarching organization, The Open Steno Project. Plover will continue to be the name of the software, but in addition to Plover itself, The Open Steno Project will serve as a catchall for various efforts to produce open source steno hardware and steno learning systems. The URL that used to go to the Plover Wiki,, now links directly to the Open Steno Project's website, (designed by longtime Plover supporter, captioning user, and user experience designer Sveta Kouznetsova of, but you can also link to, which will send you to the same place, and which has a link to the Plover Wiki (still a great resource for all sorts of information on Plover) prominently displayed at the top left of the page.

Okay, on with all that's been springing up these many months since I last blogged:

Most importantly for me (if not for anyone else), I've been using Plover exclusively in my captioning work since January! I'll probably make a post (possibly here, possibly on my StenoKnight blog, which has also been lying shamefully fallow for far too long) dedicated to all the various Vim settings and handy command strokes I've been using, but just briefly, I have to say it's been an absolute dream. I'm able to accommodate a client who uses a webinar system that forces captioners to type into a tiny text entry box and manually press return every 50 characters. With my old steno system, (the $4,000 proprietary court reporting software, Eclipse), the delay between when I pressed enter and when I saw the command go through in the text box would have been extremely frustrating. With Plover, it's as easy as anything. I'm also able to help out a client who wants me to caption directly into Google Docs, which might also merit a blog post of its own, since it's a fascinating project. In my daily work, I'm able to use the power and simplicity of Vim to edit my captions in realtime, just like I dreamed of back in 2008. Plus Plover's dictionary definition window is so much simpler and more efficient than the convoluted technique I had to use with Eclipse. I've got the Eclipse installation file in my new computer's downloads folder just in case I ever have to install it, and I've paid the annual $600 support and upgrade fee for 2014, but if I'm really able to go another year using Plover for absolutely all my CART and captioning work, I think I'll finally be confident enough to cast Eclipse completely loose, which will feel wonderful.

But I'm not the only one who's been living and breathing open source steno!

New low-cost key interface for Stenosaurus

The Stenosaurus is well on its way to production. Josh is aiming for October to open the crowdfunding campaign on Crowd Supply, and has been doing all sorts of fantastic work, from being interviewed on Slashdot (though please don't read the comments unless you urgently need to raise your blood pressure), to giving an Ignite talk at a tech conference (link to captioned video coming soon), to negotiating with illustrious keyboard manufacturers to produce a Stenosaurus-specific key switch!

StenoBoard, Printed and Assembled

In other steno hardware news, The Stenoboard is now in its second iteration. Emanuele Caruso, a new member of the Open Steno Project, has released OpenSCAD plans for his 3D-printed steno keyboard, so if you have access to a 3D printer and don't mind purchasing and assembling the electronics, you can download and print one yourself. If you'd rather buy the parts for the StenoBoard pre-printed but unsoldered, you can buy all the components for about $197 (plus shipping from Italy), or if you'd like to buy everything put together except for a few boards you need to screw in and wires you need to slot into place, you can get the easy-assemble kit for $263. I ordered one of those when the StenoBoard was still 1.0 (it's now 1.1) and somehow messed up the assembly so that it would occasionally block a stroke when too many keys were pressed at a time, but I tried out the one Hesky bought and assembled himself, and it worked perfectly. I've ordered a 1.1 kit and will be extremely punctilious while following the assembly instructions, so stay tuned for for my review! Meanwhile, if you don't mind putting together a fairly simple kit yourself, I think the StenoBoard is probably the best medium-priced steno solution for amateurs and hobbyists -- at least 'til the Stenosaurus comes along. The Stenosaurus will probably be a bit more expensive, but it'll be made out of bamboo and aluminum rather than 3D-printed resin, and won't require any assembly. On the other hand, the StenoBoard is lightweight, has a very small footprint, and is more ergonomically designed, so there's definitely a place for both within the Open Steno hardware ecosystem.

Also momentous is Brent's StenoKeyboard app for Android. It's more of a clone than a port of Plover, and a really fine piece of work. This too probably deserves its own post, and I'll do my damnedest to make one fairly soon, but I strongly encourage anyone with an Android phone or tablet to try it out. A huge number of bugfixes and UI improvements have been made on it since its first release, and I've been using it myself on a regular basis. You can equip it to write steno with your finger on your phone, Swype-style, as shown in the picture above, or you can use an USB-OTG adapter to write into your phone or tablet with a Sidewinder or StenoBoard. I bought one for a few bucks off Amazon, and so far it's been working brilliantly!

A few other quick links:

Me and Plover at !!Con

I captioned !!Con using Plover and got a whole bunch of programmers excited about steno when they came over to play with my machine during breaks. Woohoo! Hesky and I also got to give a talk at the Google Developer Group Meetup and I got to caption for him when he did a lecture on steno for Nerd Nite, but sadly neither of those were recorded.

Our presentation at the Accessibility NYC Meetup was, though, and I finally (finally!) finished captioning it last week:

If you'd like an accessibility-focused presentation on what Plover can do (including the opportunities for stenographic employment among blind and low vision screen reader users, a theme I intend to develop in my CSUN 2015 talk proposal), feel free to check it out. Or if you don't have the time to watch a 36-minute video, just glance through the transcript. One big error I should correct, though: In the talk, I say that Stan Sakai, CCP, of Superlative Realtime, dropped out of college when he discovered steno. That's not true at all! He finished up his BA in Linguistics, but decided not to pursue a Pharmacy degree, as he'd previously planned, and became a professional CART provider instead. He captioned for a few years in Seattle, then moved out here to NYC and has been an indescribable asset to the captioning scene here ever since. He's the one using Text on Top to caption me and Hesky at the Meetup. He also gave a live demo of Plover for PyGotham 2014 a few weeks ago (that's his Infinity Ergonomic in the picture at the top of the post), though we're not yet sure whether it was caught on video.

For those who like to live on the cutting edge, the inimitable Mike Neale of has released an experimental version of Plover (currently for Windows only) that incorporates a dictionary manager, retroactive formatting commands, and two realtime training tools called Stroke Helper and Brief Helper. Use at your own risk, but feel free to offer feedback at the Google Group if you do! Hopefully a stable release incorporating these features will be coming along fairly soon.

Learn Plover! has been fairly stable since my last update here, though we're still making minor adjustments and revisions as we get more input on it. Longtime friend and recent Plover fledgling Erika has put together an interactive browser-based drilling trainer using the one-syllable words found in the early lessons. She's working on expanding it, but it's already pretty useful even just in its early form.

Phew. Like I said, a ton of stuff has been going on, all of it pretty dang exciting. I pledge to do my absolute best to keep up with it from now on. In the mean time, check out all the stuff I've linked to in this enormous unwieldy behemoth of a post, and stay tuned for more news coming soon! I feel like Open Steno as a movement is poised on the edge of something big, and I can't wait to see what happens next.