Hi all, This release grew bigger than I intended, full change-log below, with some embedded questions. Next release will have less new features and more clean-up. I need to work on the help as well. # Version 0.9.5 Remodeled the house. Cool new and rewritten features. ## New Features * **Context sensitive help gesture** Hold dot 1 and swipe up with 2 fingers. * If you are in a text buffer, this announces your current filename, if it is open read-only, the word and character count, and if it has been modified. * If you are in command mode, it announces that. *Notes:* I'm planning to improve context-sensitive help in the future, possibly including a verbosity setting so that beginners can get more help (which might affect announcements elsewhere). Are there any announcements you would like to skip or shorten as an experienced user? * **Braille native file selector** The file selector I wrote for opening files initially was very bare-bones—kind of meh—but fully functional under iOS VoiceOver. However, for some reason, TalkBack really struggled with it (at least on my somewhat old Android 13 phone). Only "explore by touch" worked; I could not move the focus with swipes, and there were other glitches. So I thought I could do better. How about braille supremacy? I rewrote the file selector to be MBraille native, using MBraille gestures. **How it works:** When you issue the `open` command, it will list all the files in the MBraille document folder, one per line. The list acts like an MBraille text buffer. You can navigate and search the list like any MBraille text: * Hold dot 3 and swipe left or right to go to the next or previous file. * To select and open a file, swipe down for a newline (like pressing Enter on a PC). * If you want to dismiss the file selector, just swipe up with 4 fingers. The context-sensitive help tells you these basics. * **Close command** This empties the current buffer and renames it to "Unnamed." You would usually use this only if you have finished editing a file and want to start something new. If the current file has a name and is modified, you will be prompted to save your work. * **Keyboard Layout Reset** Sometimes the keyboard layout could get accidentally tangled and become hard to reset. I added a button to the end of settings to force a reset of the keyboard layout. * **Layout Verification** I also added layout verification. If the layout looks unreasonable, it is not accepted, and MBraille asks you to try again. Let me know if it is too strict and you cannot define your favorite layout any longer. *Thanks to Johanna for alerting me to this.* * **Force TTS Engine in Settings** In settings, you can now force VoiceOver or TalkBack to be used even if the braille table changes. I'm not sure how multilingual those voices are, but if I understood correctly, TalkBack and Eloquence should know how to switch readers for different languages. In any case, I think it will get better over time. * **Aliases: Extra Spicy** Aliases have been there for a long time, but now they got extra spicy. A new feature is **command aliases**, which are aliases that only work when they are the first word in the command buffer. Perhaps an example is the best way to explain them. If you put the following line in `alias.mb`: `command ml: mail mbraille-test@lists.mpaja.com` That will create a command alias called `ml`. Now, when you swipe up with 3 fingers, type `ml`, and swipe down, it will launch the mail app, using the current buffer as the mail body and the "To" address pointing to the testers' mailing list. I chose `ml` as shorthand for "Mailing List," but feel free to choose your own aliases. Other examples: ```text command fr: lang fr command en: lang en command w: whatsapp family ``` Now the new commands would be `fr`, `en`, and `w`. These would change the language to French, change the language to English, and open WhatsApp to send a message to your family (assuming you have a group called "family" in WhatsApp). **Gesture Binding:** There is one more new feature with aliases. I've reserved 4 gestures you can bind to an alias. The gestures are: **Hold dot 5 and swipe Up, Down, Left, or Right.** The syntax for these is: ```text bind-5u: existing-alias-name bind-5d: existing-alias-name bind-5l: existing-alias-name bind-5r: existing-alias-name ``` Again, some examples. Let's assume your `alias.mb` has the lines: ```text gbyf: So Long, and Thanks for All the Fish. bind-5u: gbyf ``` Now, when you are writing in MBraille, if you hold dot 5 and swipe up, the phrase "So Long, and Thanks for All the Fish." is inserted at the cursor! You can also bind the gestures to command aliases. So, to switch the braille table to French with a gesture, you could do: ```text command fr: lang fr bind-5r: fr ``` To change aliases, just edit the `alias.mb` file and save it. All aliases are re-read from the file when it is saved or when MBraille starts. Note that when `alias.mb` is the file being edited, all aliases are disabled. ## Fixes * Fixed many hiccups with self-voicing where it would not say everything or would not stop on a long text even if the user tapped a dot. * Polished the accessibility announcements in the Settings screen. * Probably some other fixes I forgot to write down. Best regards, Harri