nimble0 / dotterel Goto Github PK
View Code? Open in Web Editor NEWDotterel is a free, open source program that provides the ability to use stenographic input on the Android platform.
License: GNU General Public License v2.0
Dotterel is a free, open source program that provides the ability to use stenographic input on the Android platform.
License: GNU General Public License v2.0
In Plover, translation entries like 123
are interpreted as {&123}
, while in Dotterel, it isn't.
This is not really a bug (the user can explicitly glue the numbers), but the difference should be documented somewhere?
I want to use "The Uni v3" on my android phone. Adding support for serial comms could probably support other steno machines that use it as well.
Example in Plover:
https://github.com/openstenoproject/plover/blob/3e7ba1afce0baf8992d43bc411100ca18e8d0d03/plover/machine/geminipr.py
A serial port android library I found googling:
https://github.com/lemoclone/SerialPortComm
If you have an additional dictionary that you added selected and then you press the "reset" button, the additional dictionaries will be cleared from the view but the header will still say that you have one dictionary selected. Selecting the default dictionaries increments the number at this point until you press the back arrow to return things to normal by getting out of the selection "state".
You can add Screenshots for F-Droid, too, if you want.
https://f-droid.org/en/docs/All_About_Descriptions_Graphics_and_Screenshots/
This is for changes to the current touch interfaces or new touch interfaces that might be easier use.
Slider to adjust aspect ratio.
Swiping out of key area applies stroke, swiping between keys only activates the keys.
Reproduce:
Expected: it goes back to the previous page.
Actual: No effect.
The back button does work however.
(title.)
Or at least I can't figure out how it's supposed to work. Normally there's a text box for "stroke" and one for "translation" right?
The is something like content://com.android.externalstorage.documents/document/primary%3A
etc.
Plover on a PC shows a GUI which has buttons "enable" and "disable", and an option to configure it etc. On Dotterel on Samsung Galaxy Tab S4 I have not been able to find any facility to enable or disable the interface. I was able to get the on-screen keyboard to work on one occasion, but I have not been able to get Dotterel to work with a physical keyboard (Ergodox-EZ). I can type QWERTY with the physical keyboard, but not steno. Can anyone advise?
I think 0.3.0 just broke \ with the brackets change
Plover says {^\^}
is a valid stroke, but Dotterel wants you to define it as {^\\\\^}
instead. If you use the former, you get no output. This makes keeping a synced dictionary between mobile and PC pretty hard, because the latter puts two slashes on PC.
For example: when I type U/TAOUB
, on the second stroke (deletion of 3 characters) and(insertion of "YouTube") is executed, sometimes the insertion is done before the deletion, results in "youYouT".
This occasionally happen on termux, and never happens on other applications as far as I can see.
Related: LibreOffice on Linux (Plover) has the same issue. https://github.com/openstenoproject/plover/issues/1059
avoid linking
Plover has a workaround (currently not merged into master, and might not ever be) to delay between the key presses.
I didn't take a look at the code to see if it's really a problem with the input method (and there's a proper way to do it), or termux-specific bug -- in that case the delay would would be a workaround...
I have a hard time finding which chords do system fun c shones so it would be nice if I could sear ch inthe app.
At last i found a plover keyboard i can use and then i find out i can only use it in the mode i almost never use with my tablet. :(
Any idea why?
Other keyboard have a "go" or "submit" button. On Dotterel, R-R does not work (although it does insert a newline for multiline textboxes)
I can possibly help out with setting up the CI pipeline using TravisCI.org or another service to build and push. The Play Store also has a preview release type that has less visibility while still allowing direct linking so you don't get a flood of useless user reviews when they don't understand how awesome this is.
I'm trying to add a translation, but when I bring up the dialog to add it the dictionary field has "n/a" in it and any translation that I enter I cannot then use. It's as if the translation was not stored.
On my S22, when i rotate the screen into landscape mode, dotterel input widget seems to disappear and the phone leaves text entry mode.
Once in landscape mode, attempting to click in a text entry field causes the widget to show up fullscreen briefly before disappearing and leaving text entry mode.
I figured out that it uses the new input method ID, but for a typical user it would be nontrivial to figure out what it is and how to determine the ID.
(I used Automate for that)
Is there any way you’d consider transcribing this to iOS? I’d really love to use this on my iPhone
I know you can write cross platform apps using NativeScript & don’t know if I’d be easy to transcribe or what lol
(title.)
I installed the app, and checked off on-screen keyboard and enabled the 3 dictionaries it came with and still nothing showing up
A scan (see here for details and background) just revealed the APKs at your releases are signed using an expired debug key ("denyAfter 2019-01-01"). As that has security implications, may I ask you to please switch to a proper release key, and provide the corresponding APK signed with it? Thanks in advance!
I think I speak for everyone when I say that the white background is rather unsightly. An option to have it black would be great!
Fantastic work on the app. It's inspired me to learn how to use such an amazing keyboard.
I have entered an issue over at Monkeytype #3690. Then it occurred to me that to solve this the insights of the Dotterel developers would most likely be very helpful: so I'm adding this here.
Hello!
I realized that attempting to use certain programs, such as Discord, results in unexpected behavior when sending Enter. These apps are configured to send SHIFT-ENTER when an on-screen keyboard is used so as to permit a user to enter multi-line text, after which the message is sent via a button on-screen.
Unfortunately, this behaviour is highly disruptive. One can bind R-R to return
and R*R to shift-return
, but as long as Dotterel presents itself as an on-screen input device, these apps will treat return differently.
Is this something that can be changed, possibly as a toggle within the configs?
Pressing * key to undo after pressing R-R, R*R, or SKW-BGS deletes all newlines, punctuation, and the previous word. Changing dictionary definition for R-R to "{^\n^}" functions as normal but has no effect on the undo bug.
@nimble0 Thanks for developing this wonderful stuff. Thumbs up!
However, is there a glue that can help connect 'dotterel' running in a tablet be used as an input device to a PC running in the same network (either wired or wireless)? I prefer to use the tablet as second steno input device with plover to a PC running linux. Any hints?
There are two typical apps I came across 1. Remote Droid (https://github.com/omerjerk/RemoteDroid and unmaintained) 2. Remote Keyboard (https://play.google.com/store/apps/details?id=oldplanets.com.wireboard&hl=en_US) which does not allow to use the third party layouts except it's own.
Cheers, and stay safe
/z
Currently I'm using CX file explorer.
I'm not entirely sure if this is problem on Android side or the application, but it is definitely not trivial for a typical user to see where the issue is.
Reproduce:
Result: Dotterel crashes.
Possibly-relevant logcat section:
AndroidRuntime: FATAL EXCEPTION: main
AndroidRuntime: Process: nimble.dotterel, PID: 6406
AndroidRuntime: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=196610, result=-1, data=Intent { dat=content://com.cxinventor.file.explorer.fileprovider/root/storage/emulated/0/dotterel_dict/user_combined.json flg=0x3 }} to activity {nimble.dotterel/nimble.dotterel.DotterelSettings}: java.lang.SecurityException: No persistable permission grants found for UID 10150 and Uri 0 @ content://com.cxinventor.file.explorer.fileprovider/root/storage/emulated/0/dotterel_dict/user_combined.json
AndroidRuntime: at android.app.ActivityThread.deliverResults(ActivityThread.java:4547)
AndroidRuntime: at android.app.ActivityThread.handleSendResult(ActivityThread.java:4590)
AndroidRuntime: at android.app.ActivityThread.-wrap20(ActivityThread.java)
AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1772)
AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:110)
AndroidRuntime: at android.os.Looper.loop(Looper.java:232)
AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6806)
AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1103)
AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:964)
AndroidRuntime: Caused by: java.lang.SecurityException: No persistable permission grants found for UID 10150 and Uri 0 @ content://com.cxinventor.file.explorer.fileprovider/root/storage/emulated/0/dotterel_dict/user_combined.json
AndroidRuntime: at android.os.Parcel.readException(Parcel.java:1708)
AndroidRuntime: at android.os.Parcel.readException(Parcel.java:1661)
AndroidRuntime: at android.app.ActivityManagerProxy.takePersistableUriPermission(ActivityManagerNative.java:5155)
AndroidRuntime: at android.content.ContentResolver.takePersistableUriPermission(ContentResolver.java:2006)
AndroidRuntime: at nimble.dotterel.DictionariesPreferenceFragment.onActivityResult(DictionariesPreference.kt:305)
AndroidRuntime: at androidx.fragment.app.FragmentActivity.onActivityResult(FragmentActivity.java:170)
AndroidRuntime: at android.app.Activity.dispatchActivityResult(Activity.java:7234)
AndroidRuntime: at android.app.ActivityThread.deliverResults(ActivityThread.java:4543)
AndroidRuntime: ... 9 more
While using Dotterel, I notice a discrepancy with Plover -- that is, in Plover R-R
carries capitalization, while in Dotterel it forces uppercase.
Key combinations:
{#Shift_L(Left)}
(considered a {#Left}
, should select the character on the left) -- in most applications.{#Control_L(u)}
(considered a {#u}
) -- only in TeamViewer in remote computer mode.Hacker's keyboard can send all of these combinations without any problem (and have the expected effect).
Perhaps this is caused by something that the application cannot handle too fast keys sent properly?
Version: 0.3.0-dev.
Reproduce:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.