I didn’t know how to title this one, and it is such an esoteric thing but this set of tools I think actually makes a really compelling mobile text editing/task tracking solution allowing full use of org mode in emacs with file syncing capability naturally and easily accessible through termux’s straightforward ability to add the filepath of a syncthing folder share to the termux app and thus for emacs/spacemacs and org mode.
Cursed? I mean yeah… but also consider that you can still mainly use something like orgro or orgzly revived to access your org files and use this crazed method as a backup for edge cases where you are stuck on mobile!
This use of termux gets all the great touchscreen controls for terminal interaction (like swipe to scroll, pinch to “zoom”/change text size, esc ctrl keyboard arrows etc…) AND dodges one of the biggest issues with the way sandboxing is implemented in Android by naturally connecting both your file sharing/syncing app and your text editing/task tracking app in a way that is simple and resilient to the nonsense of Android.
…but the big elephant in the room is that emacs and spacemacs are keyboard driven right… so… how could this not be a nightmare on a smartphone???
That is where 8vim comes in! It is a really fluid and natural touchscreen keyboard that allows precise input of the core keyboard letters in a very easy but precise fashion. Somewhat unexpectedly the modal editing and space leader key command system that Spacemacs is centered around works perfectly with a touchscreen keyboard like 8vim.
https://f-droid.org/packages/inc.flide.vi8
https://lmd-jazzededtech.gitlab.io/fdroid-website/en/packages/inc.flide.vi8/
8vim works this way, there are four lines that intersect a circle. Starting with your finger in the circle you can input a letter by drawing a line out of the circle and then passing through one of the four lines in a loop around the circle, the letter inputted is determined by how many additional lines (if any) you pass through before returning to inside the circle. In the following example to make an “r” is just the same as to make a “c” but in reverse.
Above is an example of inputting a “c”, if you wanted to keep typing “cat” as opposed to "c " instead of lifting your finger after finishing the “c” keep drawing an “a” and then “t” in one continuous motion as below image illustrates.
Other essential Spacemacs keys are accessible in one tap from the main 8vim letter input screen
8vims style of input is decidedly strange at first glance, but once you understand the basic way you input letters, consider a couple of basic spacemacs evil commands like “file save” “quit”, “org-insert-heading”, “org-narrow-to-subtree” and “widen” or any number of routine operations and most of them map out quite naturally to 8vim. Far more than you might expect given neither tool was designed for the other.
spacemacs running in termux
editing spacemacs dotfile “spc f e d”
editing and viewing an org mode file
browsing spacemacs documentation, full terminal height can be given to termux/emacs without sacrificing a big uncramped keyboard
The square shape of 8vim naturally works well in termux in landscape orientation too.
Pinch to zoom in an org mode file works great in termux, a natural view for indepth editing can be quickly transformed into an extremely clear color coded pocket-note style task list to glance at while working.
basic example
ranger file manager inside emacs termux session
This is in conjunction with the spacemacs ranger layer and is opened with…
spc a t r r
…another surprisingly natural and easy to remember input sequence with the 8vim touchscreen keyboard.
Of course, if I am going to type a lot I use a bluetooth keyboard and transition to typing with a hardware keyboard, but for simple todo list and task tracking type uses of org mode (what I almost exclusively use it for) 8vim works great.
The reason I suggest Syncthing is that both Syncthing and Termux can so easily access the same folder locations on Android that it makes file syncing a breeze compared to how much of a silo’d corporate “somebody else’s computer” headache it is for other solutions that work for Android or iOS for that matter.
https://f-droid.org/packages/com.github.catfriend1.syncthingandroid/
Edit I realize I didn’t explicitly explain but you can install git with termux in two seconds…
pkg install git
…and then just install spacemacs with git like normal.
git clone https://github.com/syl20bnr/spacemacs ~/.emacs.d
Edit 2 Note pandoc can be installed with termux so emacs and spacemacs integration also works right out of the box with pandoc which is kind of mindblowing even though I guess it is obvious given both emacs and pandoc can be installed with termux. If you aren’t aware, pandoc integration with emacs lets you export an org mode document to pretty much any format you want… webpage html… word document… slideshow… what would you like? It is a VERY powerful way to take org notes and turn them into things other people can interact with and view in a variety of contexts.
https://www.spacemacs.org/layers/+tools/pandoc/README.html
Pandoc running in emacs in termux with the spacemacs pandoc layer
*Cross-post from !spacemacs@lemmy.ml
Also highly recommend installing fish on termux. A huge timesaver.
Love it. I am currently using Termux + Doom Emacs + syncthing + org-mode + org-roam + heliboard.
I’ll definitely check out 8vim. I trend to use the Emacs on phone more for org-roam than org-mode though (with orgzly more for org task management stuff). Do you find 8vim useful for longer text writing as well?
When I take out my note’s stylus yes, I mean I write longer messages with 8vim without a stylus but usually it makes more sense to slam a thought out with a bluetooth keyboard. I do though, writing becomes a factor of being comfortable swiping fast on the screen for longer periods than any specific UI issue.
please tell me you posted this with something like
mastodon.el
sopuli is a lemmy instance so I would need a lemmy.el!
OK, I’ve been trying plain emacs with termux/8vim the last few days, and I’m hooked. I’ve tried the emacs app from f-droid before, and it seemed impossible to use without a keyboard (I’m sure there’s some emacs wizardry to make it usable, but my skills are not there)
So count me as disciple! The crazy interface feels like a game. I still have to really learn how to use org-mode and syncthing, and see if I like spacemacs better (I’ve only recently started learning emacs). Also, termux feels a lot more usable/fun with 8vim now
I wonder if you can use tesseract to handwrite org-mode documents
I am a weirdo but I really like the keybindings and overall cohesive feel of spacemacs.
Awesome to hear 8vim works well with default emacs bindings!
I feel like we gotta make a hyperniche community for this, it is really fun!
So now I’m learning spacemacs, and the interface is even better. (sidenote - glad I’m started with vanilla emacs to get a feel for it, but spacemacs definitely feels more foolproof). And syncthing was so easy to set up! Saving the org file on my desktop and watching it automagically update on my phone was very satisfying.
I feel like there’s some improvements that could be made to 8vim to make the experience even better: make the keyboard translucent. It would also be nice if they let you shrink the floating keyboard a little more. Maybe integrate 8vim with heliboard so you could switch to swiping whole words if you want to write sentences/paragraphs (and also figure out why heliboard gestures don’t work well with emacs).
Also this is more of a termux thing, but I wish the termux keys (esc, /, arrows, etc) would go to one side of the screen in landscape instead of taking up the whole bottom 1/4 of the screen. Then you could have the termux keys on the left/right, and the 8vim floating keyboard on the opposite side.
I feel like we gotta make a hyperniche community for this, it is really fun!
Let’s just force it on !emacs!emacs@lemmy.ml and post frequently here about it lol
termux’s command keys plus 8vim’s precise control plus spac/emacs’ self-documentation just open up so many possibilities for complex tasks on android
People seem to heavily recommend against starting with/using curated distributions with emacs in general arguing it is antithetical to the idea of emacs.
My opinion? When I read the spacemacs dotfile and documentation I think “damn, this is exactly how I would do it if I understood the shit out of emacs and had laid everything out in a way that structured everything so I could actually keep track of all the fiddly bits I added”.
Different strokes for different folks!
Anyways
I feel like there’s some improvements that could be made to 8vim to make the experience even better: make the keyboard translucent. It would also be nice if they let you shrink the floating keyboard a little more.
There are options to make the keyboard translucent and to change the size of it but I agree with your suggestions otherwise. It definitely could use some polish and extended features.
And syncthing was so easy to set up! Saving the org file on my desktop and watching it automagically update on my phone was very satisfying.
Syncthing is one of the few softwares I can say I genuinely love, it is one of those rare software tools that injects you with excitement about computers again because the software is so wonderously powerful it feels like magic! Bonus points I feel like I can actually share that magic with normies too, Syncthing isn’t that hard to setup I have successfully explained it and setup fileshares with all kinds of people over the years and for a tool that is a free open source alternative to corporate cloud filesharing that is pretty amazing.
When I finally make it big and become a mega-billionaire I am gonna donate so much money to Syncthing developers they can just develop Syncthing fulltime for the rest of their life and will be unbribable by big tech companies trying to smother the project out because I already bribed them way more money to just keep making Syncthing. Now I just gotta figure out what scam I can deploy on the destitute and poor of the US to make my big break…
Ho!! I love how far you went! 🤩🤩 I tried 8vim but it’s hard to master.
Anyway, thank you for write down that. :)
I bounced off it a time or two, it takes patience and we are constantly needing to use mobile devices when we are in a rush.
It isn’t easy making the switch as in a way it is like trying to do roadwork on a very busy highway, there is never enough time and billion necessary things hinge on the highway working so slowing it down with roadwork is always painful.
What I can say is if you do feel like you find the energy to learn in 8vim, it isn’t a gimmick, it works very well as a daily driver keyboard in terms of the input mechanism. You have been trained on very subpar touchscreen text inputs and made to feel like that is the end of the road. Give yourself lots of patience!
@supersquirrel I’ve been thinking about making an emacs “phone config” for some months now, this is really cool.
Although, now that I have a server at my disposal it seems like overkill.The thing about a server for me is that it is a single headache inducing point of failure in a system.
For my ADHD a system that brittle is less practical for me because definitionally the times I need the most help from an organizational system are the times I am most prone to neglecting to maintain and restart these systems if I dropped using them. If the server hosting my tasktracking system goes down, where do I go to problem solve the issue and keep myself on track so I actually get it up and working again? Yes my brain is that silly…
Syncthing is a literal lifesaver to me in that respect as there is no central brittle point of failure. I can keep leapfrogging important files and associated organizational systems to new devices if needed.
Software in this realm is often designed for people to operate using LOTS of spare executive function looking for a fun DIY outlet that can showcase their tech knowledge in an associated blog post, Syncthing is one of the rare ones that is designed for someone who strugglebusses as much as I do and for that I am immensely thankful to the Syncthing community.
Not trying to bash the server approach here, just giving context to why I personally chose this method instead. My fileshare/pseudo file backup “server” is just a raspberry pi I leave on running Syncthing, it isn’t a necessary brittle core like an actual server would be though, it is just another device in my Syncthing folder share.