plover 5.0.0.dev2__tar.gz → 5.0.0.dev3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/MANIFEST.in +1 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/NEWS.md +30 -0
- {plover-5.0.0.dev2/plover.egg-info → plover-5.0.0.dev3}/PKG-INFO +1 -1
- plover-5.0.0.dev3/doc/conf.py +100 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/developer_guide.md +29 -2
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/plugin-dev/setup.md +2 -2
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/linux/appimage/blacklist.txt +27 -21
- plover-5.0.0.dev3/linux/appimage/pyinfo.py +21 -0
- plover-5.0.0.dev3/osx/app_resources/dist_blacklist.txt +101 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/osx/dmg_resources/settings.py +15 -17
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/__init__.py +8 -7
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/__main__.py +1 -1
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/command/set_config.py +7 -4
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/config.py +177 -74
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/dictionary/base.py +21 -9
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/dictionary/helpers.py +6 -4
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/dictionary/json_dict.py +10 -12
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/dictionary/loading_manager.py +8 -10
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/dictionary/rtfcre_dict.py +46 -43
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/dictionary/rtfcre_parse.py +116 -100
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/engine.py +112 -96
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/exception.py +4 -1
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/formatting.py +198 -140
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_none/add_translation.py +17 -16
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_none/engine.py +1 -3
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_none/main.py +2 -2
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/about_dialog.py +17 -17
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/add_translation_dialog.py +8 -9
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/add_translation_widget.py +66 -63
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/config_window.py +274 -154
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/console_widget.py +9 -13
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/dictionaries_widget.py +140 -119
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/dictionary_editor.py +60 -61
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/engine.py +3 -3
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/info_browser.py +50 -4
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/log_qt.py +3 -2
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/lookup_dialog.py +9 -9
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/machine_options.py +38 -37
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/main.py +19 -19
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/main_window.py +88 -71
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/paper_tape.py +69 -52
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/paper_tape.ui +0 -5
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/plugins_manager.py +47 -43
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/run_dialog.py +7 -6
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/steno_validator.py +2 -3
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/suggestions_dialog.py +34 -38
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/suggestions_widget.py +22 -16
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/tool.py +1 -3
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/trayicon.py +19 -19
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/utils.py +19 -9
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/i18n.py +9 -8
- plover-5.0.0.dev3/plover/key_combo.py +221 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/log.py +26 -26
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/machine/base.py +40 -35
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/machine/geminipr.py +7 -7
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/machine/keyboard.py +16 -14
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/machine/keyboard_capture/__init__.py +0 -1
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/machine/keymap.py +24 -20
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/machine/passport.py +6 -5
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/machine/procat.py +12 -16
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/machine/stentura.py +45 -29
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/machine/txbolt.py +5 -3
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/macro/repeat.py +0 -1
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/macro/retro.py +9 -9
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/macro/undo.py +4 -3
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/meta/attach.py +12 -10
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/meta/case.py +2 -1
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/meta/conditional.py +3 -3
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/meta/currency.py +4 -4
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/meta/mode.py +15 -15
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/meta/punctuation.py +1 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/misc.py +21 -17
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/orthography.py +12 -10
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/__init__.py +7 -5
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/config.py +16 -15
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/controller.py +13 -13
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/linux/i18n.py +2 -1
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/linux/keyboardcontrol.py +2 -2
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/linux/keyboardcontrol_uinput.py +48 -3
- plover-5.0.0.dev3/plover/oslayer/linux/keyboardcontrol_x11.py +1353 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/linux/log.py +1 -1
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/linux/log_dbus.py +97 -65
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/linux/serial.py +2 -2
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/linux/wmctrl_x11.py +11 -15
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/osx/keyboardcontrol.py +194 -99
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/osx/keyboardlayout.py +138 -119
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/osx/log.py +14 -8
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/osx/serial.py +1 -1
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/osx/wmctrl.py +6 -1
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/windows/keyboardcontrol.py +195 -89
- plover-5.0.0.dev3/plover/oslayer/windows/keyboardlayout.py +529 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/windows/log.py +5 -3
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/windows/serial.py +4 -5
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/windows/wmctrl.py +1 -1
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/output/__init__.py +1 -2
- plover-5.0.0.dev3/plover/output/keyboard.py +25 -0
- plover-5.0.0.dev3/plover/plugins_manager/__main__.py +98 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/plugins_manager/global_registry.py +2 -5
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/plugins_manager/local_registry.py +11 -13
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/plugins_manager/package_index.py +12 -18
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/plugins_manager/pip_wrapper.py +5 -5
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/plugins_manager/plugin_metadata.py +17 -9
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/plugins_manager/registry.py +39 -28
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/plugins_manager/requests.py +2 -4
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/plugins_manager/utils.py +9 -7
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/registry.py +28 -26
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/resource.py +13 -10
- plover-5.0.0.dev3/plover/scripts/dist_main.py +23 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/scripts/main.py +57 -34
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/scripts/send_command.py +13 -7
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/steno.py +16 -9
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/steno_dictionary.py +47 -21
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/suggestions.py +11 -11
- plover-5.0.0.dev3/plover/system/__init__.py +90 -0
- plover-5.0.0.dev3/plover/system/english_stenotype.py +321 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/translation.py +67 -51
- {plover-5.0.0.dev2 → plover-5.0.0.dev3/plover.egg-info}/PKG-INFO +1 -1
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover.egg-info/SOURCES.txt +2 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover_build_utils/check_requirements.py +5 -6
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover_build_utils/download.py +10 -8
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover_build_utils/get_pip.py +10 -5
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover_build_utils/install_wheels.py +33 -31
- plover-5.0.0.dev3/plover_build_utils/pyqt.py +43 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover_build_utils/setup.py +64 -54
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover_build_utils/source_less.py +6 -6
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover_build_utils/testing/blackbox.py +31 -31
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover_build_utils/testing/dict.py +3 -3
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover_build_utils/testing/output.py +5 -6
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover_build_utils/testing/parametrize.py +5 -3
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover_build_utils/testing/steno_dictionary.py +145 -124
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover_build_utils/tree.py +21 -19
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover_build_utils/trim.py +5 -5
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover_build_utils/zipdir.py +3 -3
- plover-5.0.0.dev3/reqs/code_quality.txt +1 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/reqs/constraints.txt +4 -1
- plover-5.0.0.dev3/reqs/dev.txt +4 -0
- plover-5.0.0.dev3/setup.py +318 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/test/conftest.py +6 -4
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/test/gui_qt/test_dictionaries_widget.py +445 -301
- plover-5.0.0.dev3/test/gui_qt/test_steno_validator.py +31 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/test/test_blackbox.py +404 -389
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/test/test_command.py +33 -18
- plover-5.0.0.dev3/test/test_config.py +776 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/test/test_default_dict.py +9 -11
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/test/test_engine.py +94 -70
- plover-5.0.0.dev3/test/test_formatting.py +1596 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/test/test_json_dict.py +26 -23
- plover-5.0.0.dev3/test/test_key_combo.py +160 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/test/test_keyboard.py +36 -25
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/test/test_keymap.py +32 -27
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/test/test_loading_manager.py +28 -30
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/test/test_log.py +28 -27
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/test/test_machine.py +3 -1
- plover-5.0.0.dev3/test/test_misc.py +110 -0
- plover-5.0.0.dev3/test/test_orthography.py +151 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/test/test_passport.py +28 -8
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/test/test_resource.py +37 -36
- plover-5.0.0.dev3/test/test_rtfcre_dict.py +550 -0
- plover-5.0.0.dev3/test/test_steno.py +105 -0
- plover-5.0.0.dev3/test/test_steno_dictionary.py +250 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/test/test_stentura.py +139 -82
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/test/test_translation.py +398 -390
- plover-5.0.0.dev3/windows/dist_blacklist.txt +74 -0
- plover-5.0.0.dev2/doc/conf.py +0 -100
- plover-5.0.0.dev2/linux/appimage/pyinfo.py +0 -14
- plover-5.0.0.dev2/osx/app_resources/dist_blacklist.txt +0 -67
- plover-5.0.0.dev2/plover/key_combo.py +0 -221
- plover-5.0.0.dev2/plover/oslayer/linux/keyboardcontrol_x11.py +0 -1344
- plover-5.0.0.dev2/plover/oslayer/windows/keyboardlayout.py +0 -496
- plover-5.0.0.dev2/plover/output/keyboard.py +0 -25
- plover-5.0.0.dev2/plover/plugins_manager/__main__.py +0 -95
- plover-5.0.0.dev2/plover/scripts/dist_main.py +0 -23
- plover-5.0.0.dev2/plover/system/__init__.py +0 -74
- plover-5.0.0.dev2/plover/system/english_stenotype.py +0 -319
- plover-5.0.0.dev2/plover_build_utils/pyqt.py +0 -41
- plover-5.0.0.dev2/setup.py +0 -297
- plover-5.0.0.dev2/test/gui_qt/test_steno_validator.py +0 -28
- plover-5.0.0.dev2/test/test_config.py +0 -667
- plover-5.0.0.dev2/test/test_formatting.py +0 -1222
- plover-5.0.0.dev2/test/test_key_combo.py +0 -153
- plover-5.0.0.dev2/test/test_misc.py +0 -104
- plover-5.0.0.dev2/test/test_orthography.py +0 -146
- plover-5.0.0.dev2/test/test_rtfcre_dict.py +0 -531
- plover-5.0.0.dev2/test/test_steno.py +0 -103
- plover-5.0.0.dev2/test/test_steno_dictionary.py +0 -238
- plover-5.0.0.dev2/windows/dist_blacklist.txt +0 -27
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/CONTRIBUTING.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/LICENSE.txt +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/README.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/SCOWL_README.txt +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/_static/board-layout.png +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/_static/custom.css +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/_static/de-speech.png +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/_static/dolores.svg +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/_static/engine-flow.png +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/_static/favicon.ico +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/_static/jp-speech.png +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/_static/keys-layout.png +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/_static/uncomfortable.png +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/_templates/breadcrumbs.html +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/_templates/layout.html +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/add_translation.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/config.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/dictionary.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/dictionary_lib.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/engine.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/exception.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/formatting.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/i18n.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/key_combo.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/log.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/machine.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/machine_keyboard_capture.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/machine_keymap.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/misc.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/orthography.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/oslayer.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/oslayer_config.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/oslayer_controller.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/oslayer_i18n.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/oslayer_keyboardcontrol.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/oslayer_log.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/oslayer_wmctrl.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/output.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/plover.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/plover_stroke.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/qt.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/registry.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/resource.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/steno.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/steno_dictionary.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/suggestions.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/system.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api/translation.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/api_reference.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/basic_usage.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/ci.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/cli_reference.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/configuration.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/contributing.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/design.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/dict_editor.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/dict_formats.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/dictionaries.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/hardware_communication.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/hardware_setup.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/i18n.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/index.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/installation.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/internals.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/platform_layer.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/plugin-dev/commands.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/plugin-dev/dictionaries.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/plugin-dev/extensions.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/plugin-dev/gui_tools.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/plugin-dev/machines.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/plugin-dev/macros.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/plugin-dev/metas.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/plugin-dev/publishing.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/plugin-dev/systems.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/plugin_dev.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/plugins.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/releases.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/requirements.txt +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/system-dev/board-layout.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/system-dev/key-arrangement.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/system-dev/layout-test.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/system-dev/steno-system.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/system-dev/system.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/system_dev.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/doc/translation_language.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/linux/README.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/linux/appimage/Dockerfile +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/linux/appimage/apprun.sh +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/linux/appimage/build.sh +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/linux/appimage/deps.sh +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/linux/plover.desktop +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/news.d/api/.gitignore +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/news.d/bugfix/.gitignore +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/news.d/feature/.gitignore +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/news.d/template.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/osx/README.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/osx/app_resources/Info.plist +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/osx/app_resources/plover.icns +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/osx/app_resources/plover_launcher.c +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/osx/deps.sh +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/osx/dmg_resources/background.png +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/osx/dmg_resources/background.psd +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/osx/dmg_resources/background@2x.png +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/osx/make_app.sh +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/assets/american_english_words.txt +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/assets/commands.json +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/assets/main.json +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/assets/plover-icon.svg +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/assets/plover.ico +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/assets/plover.png +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/assets/user.json +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/command/__init__.py +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/dictionary/__init__.py +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_none/__init__.py +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/__init__.py +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/about_dialog.ui +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/add_translation_dialog.ui +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/add_translation_widget.ui +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/config_file_widget.ui +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/config_keyboard_widget.ui +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/config_serial_widget.ui +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/config_window.ui +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/console_widget.ui +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/dictionaries_widget.ui +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/dictionary_editor.ui +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/lookup_dialog.ui +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/main_window.ui +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/plugins_manager.ui +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/__init__.py +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/add.svg +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/dictionary_error.svg +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/dictionary_favorite.svg +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/dictionary_loading.svg +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/dictionary_normal.svg +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/dictionary_readonly.svg +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/down.svg +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/folder.svg +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/font_selector.svg +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/git.png +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/lightbulb.svg +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/lookup.svg +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/pencil.svg +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/pin.svg +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/plover.png +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/plugins_manager.svg +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/reconnect.svg +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/remove.svg +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/save.svg +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/settings.svg +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/state-disabled.svg +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/state-disconnected.svg +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/state-enabled.svg +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/tape.svg +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/translation_add.svg +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/trash.svg +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/undo.svg +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources/up.svg +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/resources.qrc +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/run_dialog.ui +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/gui_qt/suggestions_dialog.ui +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/machine/__init__.py +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/macro/__init__.py +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/messages/es/LC_MESSAGES/plover.po +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/messages/fr/LC_MESSAGES/plover.po +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/messages/it/LC_MESSAGES/plover.po +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/messages/nl/LC_MESSAGES/plover.po +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/messages/plover.pot +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/messages/zh_tw/LC_MESSAGES/plover.po +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/meta/__init__.py +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/meta/command.py +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/meta/glue.py +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/meta/key_combo.py +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/meta/word_end.py +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/linux/__init__.py +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/linux/display_server.py +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/linux/wmctrl.py +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/osx/__init__.py +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/osx/i18n.py +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/windows/__init__.py +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/oslayer/windows/i18n.py +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/plugins_manager/__init__.py +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover/scripts/__init__.py +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover.egg-info/dependency_links.txt +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover.egg-info/entry_points.txt +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover.egg-info/requires.txt +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover.egg-info/top_level.txt +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover.egg-info/zip-safe +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover_build_utils/__init__.py +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover_build_utils/functions.sh +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover_build_utils/testing/__init__.py +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/plover_build_utils/testing/steno.py +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/pyproject.toml +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/pytest.ini +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/reqs/bootstrap.txt +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/reqs/build.txt +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/reqs/ci.txt +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/reqs/dist.txt +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/reqs/dist_extra_gui_qt.txt +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/reqs/dist_extra_log.txt +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/reqs/packaging.txt +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/reqs/release.txt +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/reqs/setup.txt +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/reqs/test.txt +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/setup.cfg +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/test/__init__.py +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/test/gui_qt/__init__.py +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/test/py37compat.py +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/tox.ini +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/windows/README.md +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/windows/dist_build.sh +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/windows/dist_deps.sh +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/windows/installer.bmp +0 -0
- {plover-5.0.0.dev2 → plover-5.0.0.dev3}/windows/installer.nsi +0 -0
|
@@ -33,6 +33,7 @@ include test/*.py
|
|
|
33
33
|
include test/gui_qt/*.py
|
|
34
34
|
include tox.ini
|
|
35
35
|
include windows/*
|
|
36
|
+
exclude .pre-commit-config.yaml
|
|
36
37
|
# without first including it, exluding .readthedocs.yml results in a warning when running locally
|
|
37
38
|
include .readthedocs.yml
|
|
38
39
|
exclude .readthedocs.yml
|
|
@@ -1,3 +1,33 @@
|
|
|
1
|
+
# v5.0.0.dev3 (2025-07-14)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
## Features
|
|
5
|
+
|
|
6
|
+
### Core
|
|
7
|
+
|
|
8
|
+
- Allow higher priority dictionaries to delete entries from others. (#1160)
|
|
9
|
+
- Improve orthography rules for `^ify` suffixes. (#1680)
|
|
10
|
+
- Reduce installer file size. (#1741)
|
|
11
|
+
|
|
12
|
+
### Linux
|
|
13
|
+
|
|
14
|
+
- Add dvorak keymap support for uinput users. (#1746)
|
|
15
|
+
|
|
16
|
+
## Bugfixes
|
|
17
|
+
|
|
18
|
+
### Core
|
|
19
|
+
|
|
20
|
+
- Allow uninstall of installed unsupported plugins. (#1739)
|
|
21
|
+
- Fix missing font family warnings. (#1740)
|
|
22
|
+
|
|
23
|
+
### Windows
|
|
24
|
+
|
|
25
|
+
- Do not consider extended scan codes in Windows keyboard capture. (#1357)
|
|
26
|
+
|
|
27
|
+
## API
|
|
28
|
+
|
|
29
|
+
No significant changes.
|
|
30
|
+
|
|
1
31
|
# v5.0.0.dev2 (2025-06-14)
|
|
2
32
|
|
|
3
33
|
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# Configuration file for the Sphinx documentation builder.
|
|
2
|
+
|
|
3
|
+
# -- Project information -----------------------------------------------------
|
|
4
|
+
|
|
5
|
+
project = "Plover"
|
|
6
|
+
copyright = "Open Steno Project"
|
|
7
|
+
author = copyright
|
|
8
|
+
|
|
9
|
+
release = "5.0.0.dev3"
|
|
10
|
+
version = release
|
|
11
|
+
|
|
12
|
+
# -- General configuration ---------------------------------------------------
|
|
13
|
+
|
|
14
|
+
extensions = [
|
|
15
|
+
"sphinx_plover",
|
|
16
|
+
"myst_parser",
|
|
17
|
+
"sphinx.ext.todo",
|
|
18
|
+
]
|
|
19
|
+
|
|
20
|
+
myst_enable_extensions = ["colon_fence"]
|
|
21
|
+
|
|
22
|
+
templates_path = ["_templates"]
|
|
23
|
+
|
|
24
|
+
exclude_patterns = []
|
|
25
|
+
|
|
26
|
+
pygments_style = "manni"
|
|
27
|
+
pygments_dark_style = "monokai"
|
|
28
|
+
|
|
29
|
+
source_suffix = [".rst", ".md"]
|
|
30
|
+
|
|
31
|
+
todo_include_todos = True
|
|
32
|
+
|
|
33
|
+
# -- Options for HTML output -------------------------------------------------
|
|
34
|
+
|
|
35
|
+
html_theme = "furo"
|
|
36
|
+
|
|
37
|
+
html_static_path = ["_static"]
|
|
38
|
+
|
|
39
|
+
html_title = f"{project} {version}"
|
|
40
|
+
|
|
41
|
+
html_favicon = "_static/favicon.ico"
|
|
42
|
+
|
|
43
|
+
html_css_files = [
|
|
44
|
+
"custom.css",
|
|
45
|
+
]
|
|
46
|
+
|
|
47
|
+
html_theme_options = {
|
|
48
|
+
"navigation_with_keys": True,
|
|
49
|
+
"light_css_variables": {
|
|
50
|
+
"color-brand-primary": "#3d6961",
|
|
51
|
+
"color-brand-content": "#3d6961",
|
|
52
|
+
"color-sidebar-background": "#3d6961",
|
|
53
|
+
"color-sidebar-brand-text": "white",
|
|
54
|
+
"color-sidebar-brand-text--hover": "white",
|
|
55
|
+
"color-sidebar-caption-text": "white",
|
|
56
|
+
"color-sidebar-link-text": "white",
|
|
57
|
+
"color-sidebar-link-text--top-level": "white",
|
|
58
|
+
"color-sidebar-item-background--hover": "#71a89f",
|
|
59
|
+
"color-sidebar-item-expander-background--hover": "#71a89f",
|
|
60
|
+
"color-inline-code-background": "transparent",
|
|
61
|
+
"font-stack--header": "'Patua One', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji'",
|
|
62
|
+
"font-stack--monospace": "'JetBrains Mono', SFMono-Regular, Menlo, Consolas, Monaco, Liberation Mono, Lucida Console, monospace",
|
|
63
|
+
},
|
|
64
|
+
"dark_css_variables": {
|
|
65
|
+
"color-link": "#68a69b",
|
|
66
|
+
"color-link--hover": "#68a69b",
|
|
67
|
+
},
|
|
68
|
+
"light_logo": "dolores.svg",
|
|
69
|
+
"dark_logo": "dolores.svg",
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
from pygments.lexer import RegexLexer, bygroups
|
|
73
|
+
from pygments import token as t
|
|
74
|
+
from sphinx.highlighting import lexers
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
class RTFLexer(RegexLexer):
|
|
78
|
+
name = "rtf"
|
|
79
|
+
|
|
80
|
+
tokens = {
|
|
81
|
+
"root": [
|
|
82
|
+
(r"(\\[a-z*\\_~\{\}]+)(-?\d+)?", bygroups(t.Keyword, t.Number.Integer)),
|
|
83
|
+
(r"{\\\*\\cxcomment\s+", t.Comment.Multiline, "comment"),
|
|
84
|
+
(
|
|
85
|
+
r"({)(\\\*\\cxs)(\s+)([A-Z#0-9\-/#!,]+)(})",
|
|
86
|
+
bygroups(t.Operator, t.Keyword, t.Text, t.String, t.Operator),
|
|
87
|
+
),
|
|
88
|
+
(r"{", t.Operator),
|
|
89
|
+
(r"}", t.Operator),
|
|
90
|
+
(r".+?", t.Text),
|
|
91
|
+
],
|
|
92
|
+
"comment": [
|
|
93
|
+
(r"{", t.Comment.Multiline, "#push"),
|
|
94
|
+
(r"}", t.Comment.Multiline, "#pop"),
|
|
95
|
+
(r".+", t.Comment.Multiline),
|
|
96
|
+
],
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
lexers["rtf"] = RTFLexer(startinline=True)
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Environment setup
|
|
2
2
|
|
|
3
|
-
You need Python
|
|
3
|
+
You need Python installed.
|
|
4
4
|
It is recommended to install the same Python version that is packaged in the official installer files.
|
|
5
|
-
You can look up this version in the file `.github/workflows/ci/workflow_context.yml` in the vars section.
|
|
5
|
+
You can look up this version in the file `.github/workflows/ci/workflow_context.yml` in the vars section (`default_python`).
|
|
6
6
|
|
|
7
7
|
Tox simplifies the process of creating and managing isolated virtual environments,
|
|
8
8
|
handling dependency installation, and running the test suite in isolation. This
|
|
@@ -13,6 +13,33 @@ environment created using tools like [venv](https://docs.python.org/3/library/ve
|
|
|
13
13
|
This helps keep your global Python environment clean, avoids project conflicts, and
|
|
14
14
|
isolates tox and its dependencies.
|
|
15
15
|
|
|
16
|
+
A typical setup looks like this:
|
|
17
|
+
|
|
18
|
+
### Linux/macOS (Bash):
|
|
19
|
+
```bash
|
|
20
|
+
cd path/to/plover
|
|
21
|
+
python -m venv .venv
|
|
22
|
+
source .venv/bin/activate
|
|
23
|
+
pip install -r reqs/dev.txt
|
|
24
|
+
pre-commit install
|
|
25
|
+
pre-commit run --all-files
|
|
26
|
+
tox
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Windows (PowerShell):
|
|
30
|
+
```powershell
|
|
31
|
+
cd path\to\plover
|
|
32
|
+
python -m venv .venv
|
|
33
|
+
.venv\Scripts\Activate.ps1
|
|
34
|
+
pip install -r reqs\dev.txt
|
|
35
|
+
pre-commit install
|
|
36
|
+
pre-commit run --all-files
|
|
37
|
+
tox
|
|
38
|
+
```
|
|
39
|
+
Some features require a Bash shell, so on Windows you may need to use Git Bash or WSL instead of PowerShell.
|
|
40
|
+
|
|
41
|
+
## Tox
|
|
42
|
+
|
|
16
43
|
The command for using tox is: `tox {-e envlist} {-- arguments}`. Use `tox -a
|
|
17
44
|
-v` to get a list of available environments.
|
|
18
45
|
|
|
@@ -27,9 +27,9 @@ keywords = plover plover_plugin
|
|
|
27
27
|
[options]
|
|
28
28
|
zip_safe = True
|
|
29
29
|
setup_requires =
|
|
30
|
-
setuptools>=
|
|
30
|
+
setuptools>=79.0.0 # just an example, might need to be higher
|
|
31
31
|
install_requires =
|
|
32
|
-
plover>=4.0.0.dev10
|
|
32
|
+
plover>=4.0.0.dev10 # or higher, especially for GUI plugins
|
|
33
33
|
packages =
|
|
34
34
|
... # Your packages go here
|
|
35
35
|
py_modules =
|
|
@@ -28,36 +28,42 @@
|
|
|
28
28
|
pip/_vendor/distlib/*.exe
|
|
29
29
|
setuptools/*.exe
|
|
30
30
|
|
|
31
|
-
#
|
|
32
|
-
:usr/lib/python${pyversion}/site-packages/plover
|
|
33
|
-
gui_qt/*.ui
|
|
34
|
-
messages/**/*.po
|
|
35
|
-
messages/plover.pot
|
|
36
|
-
|
|
37
|
-
# PySide6.
|
|
31
|
+
# PySide6.
|
|
38
32
|
:usr/bin
|
|
39
33
|
pylupdate6
|
|
40
34
|
pyuic6
|
|
41
35
|
:usr/lib/python${pyversion}/site-packages/PySide6
|
|
42
|
-
**/*
|
|
36
|
+
**/*[Aa]ssistant*
|
|
37
|
+
**/*[Dd]esigner*
|
|
43
38
|
**/*[Hh]elp*
|
|
39
|
+
**/*[Ll]inguist*
|
|
40
|
+
**/*[Oo]pen[Gg][Ll]*
|
|
44
41
|
**/*[Qq]ml*
|
|
45
42
|
**/*[Qq]uick*
|
|
46
|
-
**/*
|
|
43
|
+
**/*[Ss]ql*
|
|
44
|
+
**/*[Tt]est*
|
|
47
45
|
**/*[Ww]eb[Ee]ngine*
|
|
46
|
+
**/*.tmpl.py
|
|
48
47
|
bindings
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
48
|
+
lupdate
|
|
49
|
+
lrelease
|
|
50
|
+
Qt/plugins/egldeviceintegrations
|
|
51
|
+
Qt/plugins/geoservices
|
|
52
|
+
Qt/plugins/platforms/libqeglfs.so
|
|
53
|
+
Qt/plugins/platforms/libqlinuxfb.so
|
|
54
|
+
Qt/plugins/platforms/libqminimal.so
|
|
55
|
+
Qt/plugins/platforms/libqminimalegl.so
|
|
56
|
+
Qt/plugins/platforms/libqoffscreen.so
|
|
57
|
+
Qt/plugins/platforms/libqvnc.so
|
|
58
|
+
Qt/plugins/platforms/libqwebgl.so
|
|
59
|
+
Qt/plugins/sceneparsers
|
|
60
|
+
Qt/plugins/webview
|
|
61
|
+
Qt/translations/qtdeclarative_*
|
|
60
62
|
pylupdate*
|
|
61
63
|
uic
|
|
62
64
|
|
|
63
|
-
#
|
|
65
|
+
# Plover.
|
|
66
|
+
:usr/lib/python${pyversion}/site-packages/plover
|
|
67
|
+
gui_qt/*.ui
|
|
68
|
+
messages/**/*.po
|
|
69
|
+
messages/plover.pot
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
from distutils import sysconfig
|
|
2
|
+
import sys
|
|
3
|
+
|
|
4
|
+
print(
|
|
5
|
+
"; ".join(
|
|
6
|
+
"py%s=%r" % (k, v)
|
|
7
|
+
for k, v in sorted(
|
|
8
|
+
{
|
|
9
|
+
"exe": sys.executable,
|
|
10
|
+
"prefix": getattr(sys, "base_prefix", sys.prefix),
|
|
11
|
+
"version": sysconfig.get_python_version(),
|
|
12
|
+
"include": sysconfig.get_python_inc(prefix=""),
|
|
13
|
+
"ldlib": sysconfig.get_config_var("LDLIBRARY"),
|
|
14
|
+
"py3lib": sysconfig.get_config_var("PY3LIBRARY"),
|
|
15
|
+
"stdlib": sysconfig.get_python_lib(standard_lib=1, prefix=""),
|
|
16
|
+
"purelib": sysconfig.get_python_lib(plat_specific=0, prefix=""),
|
|
17
|
+
"platlib": sysconfig.get_python_lib(plat_specific=1, prefix=""),
|
|
18
|
+
}.items()
|
|
19
|
+
)
|
|
20
|
+
)
|
|
21
|
+
)
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# Python.
|
|
2
|
+
:
|
|
3
|
+
_CodeSignature
|
|
4
|
+
share
|
|
5
|
+
Resources/Python.app
|
|
6
|
+
:bin
|
|
7
|
+
!python
|
|
8
|
+
!python3*
|
|
9
|
+
!Info.plist
|
|
10
|
+
*
|
|
11
|
+
:lib
|
|
12
|
+
**/*.tcl
|
|
13
|
+
itcl*
|
|
14
|
+
pkgconfig
|
|
15
|
+
tcl*
|
|
16
|
+
[Tt]k*
|
|
17
|
+
:lib/python$python_base_version
|
|
18
|
+
pkgconfig
|
|
19
|
+
tkinter
|
|
20
|
+
idlelib
|
|
21
|
+
ensurepip
|
|
22
|
+
test
|
|
23
|
+
turtle*
|
|
24
|
+
**/*.exe
|
|
25
|
+
*/test*
|
|
26
|
+
# PySide6.
|
|
27
|
+
:lib/python$python_base_version/site-packages/PySide6
|
|
28
|
+
**/*3D*
|
|
29
|
+
**/*AxContainer*
|
|
30
|
+
**/*Bluetooth*
|
|
31
|
+
**/*CLucene*
|
|
32
|
+
**/*Concurrent*
|
|
33
|
+
**/*DataVisualization*
|
|
34
|
+
**/*Designer*
|
|
35
|
+
**/*Graphs*
|
|
36
|
+
**/*Network*
|
|
37
|
+
**/*PrintSupport*
|
|
38
|
+
**/*Location*
|
|
39
|
+
**/*Nfc*
|
|
40
|
+
**/*Sensors*
|
|
41
|
+
**/*Serial*
|
|
42
|
+
**/*QtExampleIcons*
|
|
43
|
+
**/*QtHelp*
|
|
44
|
+
**/*QtLabs*
|
|
45
|
+
**/*QtOpenGL*
|
|
46
|
+
**/*QtQuick*
|
|
47
|
+
**/*QtQml*
|
|
48
|
+
**/*QtUiTools*
|
|
49
|
+
**/*QtXml*
|
|
50
|
+
**/*SpacialAudio*
|
|
51
|
+
**/*TextToSpeech*
|
|
52
|
+
**/*WebChannel*
|
|
53
|
+
**/*WebEngine*
|
|
54
|
+
**/*Sql*
|
|
55
|
+
**/*Pdf*
|
|
56
|
+
**/*Test*
|
|
57
|
+
**/*.app
|
|
58
|
+
**/*.tmpl.py
|
|
59
|
+
Qt/plugins/audio
|
|
60
|
+
Qt/plugins/bearer
|
|
61
|
+
Qt/plugins/designer
|
|
62
|
+
Qt/plugins/generic
|
|
63
|
+
Qt/plugins/geoservices
|
|
64
|
+
Qt/plugins/imageformats/libqtiff*.dylib
|
|
65
|
+
Qt/plugins/mediaservice
|
|
66
|
+
Qt/plugins/platforms/libqminimal*.dylib
|
|
67
|
+
Qt/plugins/platforms/libqoffscreen*.dylib
|
|
68
|
+
Qt/plugins/playlistformats
|
|
69
|
+
Qt/plugins/position
|
|
70
|
+
Qt/plugins/printsupport
|
|
71
|
+
Qt/plugins/qml*
|
|
72
|
+
Qt/plugins/sceneparsers
|
|
73
|
+
Qt/plugins/sensor*
|
|
74
|
+
Qt/plugins/sqldrivers
|
|
75
|
+
Qt/plugins/tls
|
|
76
|
+
Qt/qml
|
|
77
|
+
Qt/resources
|
|
78
|
+
Qt/translations/assistant_*
|
|
79
|
+
Qt/translations/designer_*
|
|
80
|
+
Qt/translations/linguist_*
|
|
81
|
+
Qt/translations/qt_help_*
|
|
82
|
+
Qt/translations/qtconnectivity_*
|
|
83
|
+
Qt/translations/qtdeclarative_*
|
|
84
|
+
Qt/translations/qtlocation_*
|
|
85
|
+
Qt/translations/qtmultimedia_*
|
|
86
|
+
Qt/translations/qtquick*
|
|
87
|
+
Qt/translations/qtserialport_*
|
|
88
|
+
Qt/translations/qtwebsockets_*
|
|
89
|
+
lupdate
|
|
90
|
+
pylupdate*
|
|
91
|
+
qmlls
|
|
92
|
+
qmlformat
|
|
93
|
+
scripts
|
|
94
|
+
uic
|
|
95
|
+
# Plover.
|
|
96
|
+
:lib/python$python_base_version/site-packages/plover
|
|
97
|
+
gui_qt/*.ui
|
|
98
|
+
messages/**/*.po
|
|
99
|
+
messages/plover.pot
|
|
100
|
+
|
|
101
|
+
# vim: ft=config
|
|
@@ -3,39 +3,37 @@
|
|
|
3
3
|
import plistlib
|
|
4
4
|
import os.path
|
|
5
5
|
|
|
6
|
-
application = defines.get(
|
|
6
|
+
application = defines.get("app", "./dist/Plover.app")
|
|
7
7
|
appname = os.path.basename(application)
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
def icon_from_app(app_path):
|
|
11
|
-
plist_path = os.path.join(app_path,
|
|
12
|
-
with open(plist_path,
|
|
11
|
+
plist_path = os.path.join(app_path, "Contents", "Info.plist")
|
|
12
|
+
with open(plist_path, "rb") as plist_file:
|
|
13
13
|
plist = plistlib.load(plist_file)
|
|
14
|
-
icon_name = plist[
|
|
14
|
+
icon_name = plist["CFBundleIconFile"]
|
|
15
15
|
icon_root, icon_ext = os.path.splitext(icon_name)
|
|
16
16
|
if not icon_ext:
|
|
17
|
-
icon_ext =
|
|
17
|
+
icon_ext = ".icns"
|
|
18
18
|
icon_name = icon_root + icon_ext
|
|
19
|
-
return os.path.join(app_path,
|
|
19
|
+
return os.path.join(app_path, "Contents", "Resources", icon_name)
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
|
|
22
|
+
format = defines.get("format", "UDBZ")
|
|
22
23
|
|
|
23
24
|
# Files to include
|
|
24
25
|
files = [application]
|
|
25
26
|
|
|
26
27
|
# Symlinks to create
|
|
27
|
-
symlinks = {
|
|
28
|
+
symlinks = {"Applications": "/Applications"}
|
|
28
29
|
|
|
29
30
|
# Volume icon
|
|
30
31
|
badge_icon = icon_from_app(application)
|
|
31
32
|
|
|
32
33
|
# Where to put the icons
|
|
33
|
-
icon_locations = {
|
|
34
|
-
appname: (114, 244),
|
|
35
|
-
'Applications': (527, 236)
|
|
36
|
-
}
|
|
34
|
+
icon_locations = {appname: (114, 244), "Applications": (527, 236)}
|
|
37
35
|
|
|
38
|
-
background =
|
|
36
|
+
background = "osx/dmg_resources/background.png"
|
|
39
37
|
|
|
40
38
|
show_status_bar = False
|
|
41
39
|
show_tab_view = False
|
|
@@ -46,15 +44,15 @@ show_sidebar = False
|
|
|
46
44
|
# Window position in ((x, y), (w, h)) format
|
|
47
45
|
window_rect = ((100, 100), (640, 380))
|
|
48
46
|
|
|
49
|
-
default_view =
|
|
47
|
+
default_view = "icon-view"
|
|
50
48
|
show_icon_preview = False
|
|
51
|
-
include_icon_view_settings =
|
|
52
|
-
include_list_view_settings =
|
|
49
|
+
include_icon_view_settings = "auto"
|
|
50
|
+
include_list_view_settings = "auto"
|
|
53
51
|
|
|
54
52
|
arrange_by = None
|
|
55
53
|
grid_offset = (0, 0)
|
|
56
54
|
grid_spacing = 50
|
|
57
55
|
scroll_position = (0, 0)
|
|
58
|
-
label_pos =
|
|
56
|
+
label_pos = "bottom"
|
|
59
57
|
text_size = 16
|
|
60
58
|
icon_size = 86
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
|
|
4
4
|
"""Plover: Open Source Stenography Software"""
|
|
5
5
|
|
|
6
|
-
if __name__ ==
|
|
6
|
+
if __name__ == "plover":
|
|
7
7
|
from plover.i18n import Translator
|
|
8
|
+
|
|
8
9
|
_ = Translator(__package__)
|
|
9
10
|
else:
|
|
10
11
|
# exec from `setup.py`, package data
|
|
@@ -12,10 +13,10 @@ else:
|
|
|
12
13
|
# want to translate anyway.
|
|
13
14
|
_ = lambda s: s
|
|
14
15
|
|
|
15
|
-
__version__ =
|
|
16
|
-
__copyright__ =
|
|
17
|
-
__url__ =
|
|
18
|
-
__download_url__ =
|
|
16
|
+
__version__ = "5.0.0.dev3"
|
|
17
|
+
__copyright__ = "(C) Open Steno Project"
|
|
18
|
+
__url__ = "http://www.openstenoproject.org/"
|
|
19
|
+
__download_url__ = "http://www.openstenoproject.org/plover"
|
|
19
20
|
__credits__ = _("""\
|
|
20
21
|
Founded by stenographer Mirabai Knight.
|
|
21
22
|
|
|
@@ -30,9 +31,9 @@ Martin Koerner
|
|
|
30
31
|
|
|
31
32
|
and many more on GitHub:
|
|
32
33
|
<https://github.com/openstenoproject/plover>""")
|
|
33
|
-
__license__ =
|
|
34
|
+
__license__ = "GNU General Public License v2 or later (GPLv2+)"
|
|
34
35
|
# i18n: Short description for Plover, currently not used in the interface.
|
|
35
|
-
__description__ = _(
|
|
36
|
+
__description__ = _("Open Source Stenography Software")
|
|
36
37
|
__long_description__ = _("""\
|
|
37
38
|
Plover is a free open source program intended to bring realtime
|
|
38
39
|
stenographic technology not just to stenographers, but also to
|
|
@@ -22,11 +22,14 @@ def set_config(engine, cmdline):
|
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
def _cmdline_to_dict(cmdline):
|
|
25
|
-
"""
|
|
25
|
+
"""Add braces and parse the entire command line as a Python dict literal."""
|
|
26
26
|
try:
|
|
27
|
-
opt_dict = ast.literal_eval(
|
|
27
|
+
opt_dict = ast.literal_eval("{" + cmdline + "}")
|
|
28
28
|
assert isinstance(opt_dict, dict)
|
|
29
29
|
return opt_dict
|
|
30
30
|
except (AssertionError, SyntaxError, ValueError) as e:
|
|
31
|
-
raise ValueError(
|
|
32
|
-
|
|
31
|
+
raise ValueError(
|
|
32
|
+
'Bad command string "%s" for PLOVER:SET_CONFIG.\n' % cmdline
|
|
33
|
+
+ "See for reference:\n\n"
|
|
34
|
+
+ set_config.__doc__
|
|
35
|
+
) from e
|