File: NEWS.md

package info (click to toggle)
plover 5.0.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 14,356 kB
  • sloc: python: 21,589; sh: 682; ansic: 25; makefile: 11
file content (539 lines) | stat: -rw-r--r-- 17,159 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
# v5.0.0 (2025-09-10)


## Features

No significant changes.

## Bugfixes

No significant changes.

## API

No significant changes.

# v5.0.0rc1 (2025-09-02)


## Features

### Linux

- Refactor Uinput to use pipe instead of select with timeout. (#1760)
- Passthrough keyboard shortcuts. (#1761)
- Uinput: refactor initialization and cleanup. (#1765)

## Bugfixes

No significant changes.

## API

No significant changes.

# v5.0.0.dev3 (2025-07-14)


## Features

### Core

- Allow higher priority dictionaries to delete entries from others. (#1160)
- Improve orthography rules for `^ify` suffixes. (#1680)
- Reduce installer file size. (#1741)

### Linux

- Add dvorak keymap support for uinput users. (#1746)

## Bugfixes

### Core

- Allow uninstall of installed unsupported plugins. (#1739)
- Fix missing font family warnings. (#1740)

### Windows

- Do not consider extended scan codes in Windows keyboard capture. (#1357)

## API

No significant changes.

# v5.0.0.dev2 (2025-06-14)


## Features

### Core

- Integrate BuildResources into BuildUi to simplify UI plugin migration to Plover v5. (#1735)

## Bugfixes

### Core

- Fix installation of plugins via git URL. (#1733)

### Linux

- When inputting Unicode with uinput the code now uses space to finalize the Unicode character instead of enter. (#1731)

## API

No significant changes.

# v5.0.0.dev1 (2025-06-03)


## Features

### Core

- Integrate Plugins Manager and remove distribution plugins to simplify distribution of Plover. (#1601)
- Update integrated Python version to 3.13. (#1720)

### User Interface

- Support dark mode that follows the system settings. (#1601)

### Linux

- On linux wayland, warn if ibus or fcitx5 isn't running. (#1711)

### macOS

- Add universal installer for macOS on Intel and Apple silicon. (#1720)

## Bugfixes

### Linux

- Downgrade CI for building Linux AppImage to Ubuntu 22.04 to build against GLIBC 2.35. (#1718)
- Fixed keyboards with mouse control functionality not able to be detected in the uinput module. (#1724)
- Fix keys getting stuck if keys held when starting Plover and emulating keyboard with Uinput. (#1728)
- When using Uinput, fix devices being disabled upon exceptions. (#1729)

### macOS

- Fix notifications for newer macOS versions. (#1601)

## API

### Breaking Changes

- Update UI from PyQt5 to PySide6. (#1601)

# v4.0.0 (2025-02-18)


## Features

- Same as `v4.0.0rc5`
- See [NEWS.md](https://github.com/openstenoproject/plover/blob/main/NEWS.md) for the features included in the `v4.0.0.dev` and `v4.0.0rc` versions.

# v4.0.0rc5 (2025-02-10)


## Features

### User Interface

- Renamed the 'Scan' button in the serial port configuration window to 'Refresh', to (hopefully) more accurately convey that it simply lists all available serial ports. (#1640)
- Added a button to the Plugins Manager for installing plugins via Git URL. (#1700)

### Linux

- Added keyboard emulation and capture using uinput, compatible with X11, Wayland and anything else on linux and bsd. (#1679)

## Bugfixes

### Windows

- Fixed backspace scancode and swapped page up/down. (#1697)

## API

### New

- Renamed the `=retrospective_*` macros to simply `=retro_*`. The previous names are retained for backwards compatibility, but are now deprecated. (#1639)

# v4.0.0rc4 (2025-02-09)


- *Skipped for technical reasons.*


# v4.0.0rc3 (2025-02-09)


- *Skipped for technical reasons.*


# v4.0.0rc2 (2023-09-28)



## Features

### Core

- Added a configurable delay between key presses, to accommodate applications that can't handle fast keyboard emulation. (#1633)

## Bugfixes

### Core

- Closes serial ports upon disconnection to ensure clean reconnections. (#1636)

### User Interface

- Update the tray icon to "disconnected" when a serial-over-USB machine is unplugged. (#1560)

## API

### Breaking Changes

- Dropped support for Python 3.7. (#1634)

### New

- Introduces the `GenericKeyboardEmulation` interface which automatically handles output delay. (#1633)


# v4.0.0rc1 (2023-09-26)



## Features

### Core

- updated config to use tox4 (#1592)
- Implement first-up chord send for keyboard machine. (#1611)

### User Interface

- Added Traditional Chinese (zh-TW) translation. (#1404)

### Linux

- Update GitHub Actions from Ubuntu 18.04 to 22.04. (#1597)

### macOS

- Update GitHub Actions from macOS 10.15 to 12. (#1598)
- Changes the Plover icon on macOS to match Big Sur-style icons. (#1632)

### Windows

- Update GitHub Actions from Windows 2019 to 2022. (#1598)

## Bugfixes

### User Interface

- Fix "add translation" dialog ignoring the stylesheet's background color for the translation and stroke text. (#1571)

### Windows

- Fixed an issue which caused tests to fail on windows due to case sensitive filepaths. (#1599)

## API

No significant changes.


# v4.0.0.dev12 (2022-08-09)

## 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)


# v4.0.0.dev11 (2022-05-15)

## 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)


# v4.0.0.dev10 (2021-06-19)

## 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)


# v4.0.0.dev9 (2021-04-22)

## Features

### Core

- A new `SET_CONFIG` command can be used to change the configuration with a stroke, e.g.:
  ``` json
  "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)


# v4.0.0.dev8+66.g685bd33 (2018-07-02)

## Features

### Dictionaries

- Use `AOE` instead of `E` for prefix "e". (#951)
- Quality of Life changes/additions to the dictionaries. (#959, #960)

### User Interface

- Add tooltips to dictionary status icons. (#962)

## Bugfixes

### Core

- Fix issues when output is set to "Spaces After". (#965)

### macOS

- Fix portable mode. (#932)

### Windows

- Add missing C++ redistributable DLL to the installer. (#957)
- Fix emoji output. (#942)