Specifically for org, and specifically for org-roam, it's pretty good, but not good enough. It's not as good as desktop emacs, and it's also somehow not as good as a 1st class android app.
the fdroid build of emacs doesn't really work very well with my org-roam, so i use a termux build,,, well nix-on-droid+emacs-overlay... and it's fine, for capture and recall. but i'm not authoring a lot of text with it. a custom extra-keys in the termux config so that your common emacs keybindings are on screen in a tool bar can get you close to a point-and-click interface... but you don't really have a good "swipe" input or voice input to input text efficiently, it's a character interface, a TUI, which is actually not what you want on a phone, you want a word-based interface. so when i want to do org-mode right now, i pull a unihertz titan 2 out of my pocket. without a sim card, the titan battery lasts for about three days unless i fire up an nix devShell & lsp server on it.
calc-mode is my default android calculator tho.
tbh don't listen to me, though: i've been teaching myself 8vim[1] and building a markdown document graph database in my free time. don't listen to ~any emacs user's opinion with any authority, we all have found our own local minima, our opinions and advice usually aren't so useful to each other
I didn't know about modified-bar-mode, though, that's neat.
> don't listen to ~any emacs user's opinion with any authority
As a vim user, I suppose it’s proper to say “I don’t” :p
Also as a vim user, no one should listen to mine with any authority
—
Jokes aside, 8vim looks pretty slick! I don’t have an android to play around with at the moment but if I remember this I’ll check it out when I do.
Text input on phones for anything beyond prose seems to be a space ripe for innovation - although, as an iPhone user, the amount of anything technical I want to do from my phone approaches zero quickly.
If you swipe left on the shortcut bar ("esc" "/" etc) in the termux keyboard, it switches to a word oriented text input area where you can use predictive text and swipe text. Swipe that area right when done to get back to the modifiers
The intersection between (the set of people who care about good UX) and (the set of people who would try to use emacs on android) is the empty set. Emacs users' self-flagellation is pretty legendary, and I say this as an emacs user (though I've mostly given up on how janky and slow it is compared to modern editors and only use it for magit these days)
Are Emacs users really known for "self-flagellation"? I would have thought that was more vi users. Even if modern vis like vim try to make it slightly less painful, the fact is modal editing is really nonintutive. Certainly the reason why I became an Emacs user nearly 40 years ago when I was using UNIX for the first time, was that the only two real options were vi and Emacs and after playing with vi for a bit I was pretty much "nope, not doing that". Emacs may have a reputation as being arcane, but ultimately it is a modeless editor (yes, you can make it emulate vi and its modes if you really want it to) which means it basically works like any other editor or word processor you'd find on mainstream OSes.
Plain Emacs certainly felt more intuitive at first contact, but Vim felt more intuitive to me once I approached it as a language. What can I say, I’m the target audience of evil mode.
I agree with you on UX but disagree with everything else. If you use native elisp compilation, I find its speed to rival an average editor. Completions can be slow in lsp-mode but still faster than VSCode (and emacs itself ships with eglot, a less full featured alternative to lsp-mode, but may be faster. I haven't used it enough to judge.) This is due to shelling out to LSPs and the fact that not all LSPs are particularly well built.
If you find your emacs to feel jank I highly recommend declaring "emacs bankruptcy" and starting anew with a fresh config. Defaults emacs ships with today are really good.
That said I haven't used emacs on Android yet so I don't know how well, if it all, it works. I also think the UX of emacs tends to bend toward the user's own preferences rather than good UX, and the default UX of emacs is a bit bad.
I've been using emacs for 15 years as my daily editor. One thing that never fails is that when I share the fact that I've switched away, emacs users fall over themselves to tell me I'm wrong.
I assure you that my emacs setup is as optimized as it can be. Native compilation, all that jazz. I've compiled my own. But emacs is ultimately a lost cause unless something drastic changes. The single threaded nature of it means that you need to just live with your editor regularly freezing for a whole second while working in bigger projects using modern tooling. The only way to remedy this is to turn off as many features as possible and accept a worse tooling experience. Shifting the blame for emacs poor internal architecture over on the poor LSPs is silly. Every other editor handles this better than emacs.
For now, I'm using zed and it was really an eye-opener to how fast an editor can be and feel. I replicated a large part of my workflow, basically all the keybindings, and while there are things I miss (projectile and some other things), I can live without them in exchange for not having my editor choke constantly when working on big projects while emacs chugs through json from lsp or something like that.
You may have a very justified reason to switch, including nnot liking one aspect of emacs. But you are presenting it as a general flaw. Which people cannot obviously accept as it’s fine for them and they are not experiencing your issue (and as you know, everyone’s setup and workflow are different)
As for the single threaded nature of it, it doesn’t bother me. Because what should be async already is. The only thing left that is synchronous follows closely the repl model of the terminal. I issue a command and I wait for the result. If the result doesn’t matter or I want part of it as soon as possible, then it can be async and there’s plenty of way you can make it so.
Right, so what you're really saying is that you are totally fine with your editor being unresponsive and janky during regular editing workflow, working with modern tooling, and that everyone else is just wrong for not feeling the same way.
You do you. I lived with the same copium excuse for years, obviously, but I've moved past that now and into the year 20xx.
I love emacs and truly wish that I felt like I could seriously use it, and in many ways, I feel like it's the ultimate expression of what an editor could be. But it's just suffering from being 40 year old software that hasn't seen significant modernization to meet the demands of today's development workflows.
I’m an Emacs enthusiast and also build iOS apps powered by org markup.
The more I used my apps, the more I wanted their UX optimised for mobile. This often means completely rethinking the Emacs experience when bringing to mobile.
This is most obvious in my latest app [1]. Org markup fully fades as implementation details. Of all my apps, this is the one I personally use the most. Proudly, I also started getting non-Emacs users interested in org [2].
Anyway, that’s all to say that as an Emacs fan, I want the full Emacs experience on desktop, but when on iPhone, I want fully optimised mobile UX. No meta anything there ;)
Emacs is ultimately an REPL environment, but ones where you can bind commands to bindings. And there’s a lot of bindings possible in a keyboard.
A mobile experience can be fine if you want a restricted subset of commands. You can then map them to buttons. But the core emacs experience is the ability to create your own commands and have different bindings.
The closest implementation, IMO, would be a streamdeck like UI, but with a transient or hydra like UX.
What's the experience like pressing Ctrl+Shift+Meta+key shortcuts with those virtual keyboard apps? I assume they turn Ctrl, Shift, etc. into toggles so that you tap Ctrl, tap Shift, tap Meta, tap the shortcut key. But that's still four taps. (I know many of Emacs's commands have fewer modifiers than that, but I don't know which ones since even on a full keyboard I prefer the Vim control scheme so I never learned Emacs in much depth at all). Is that annoying, or is it easy enough to do that the annoyance fades into the background?
Also, is there a preconfigured config for Android that can be downloaded so that you don't have to spend too much time in the Customize mode to get started? (I'm assuming, though the article didn't go into detail, that much of the reason for spending time in Customize would be to remap some of those shortcuts to be easier to type on a virtual keyboard, e.g. fewer modifiers).
You can connect a bluetooth keyboard and mouse to an Android device -- somehow everybody thinks you have to buy some special $300 keyboard to attach one to a tablet but the basic keyboard from Amazon Basics does just ifne.
Good point, though I don't always have my Bluetooth keyboard available so I'm still interested in hearing people's experiences with those virtual keyboard apps.
You can use a pretty standard config. You are likely not going to be writing pages of code and for prose there are better things on a phone than the keyboard. You can get pretty far though github searching Emacs lisp files with android in the text.
Its slow there are some keyboard like unexpected keyboard that make it easier. There's also modifier-bar-mode which displays a little bar you can click to get modifier keys.
# Full brightness on entry
termux-brightness 255
# Auto-brightness based on light sensor on exit
LIGHT_VALUE=$(termux-sensor -s stk3a5x_als -n 1 | jq '.. | .values? | select(. != null) | .[0]')
if [ -n "$LIGHT_VALUE" ]; then
if (( $(echo "$LIGHT_VALUE > 1000" | bc -l) )); then
trap 'termux-brightness auto' exit
else
trap 'termux-brightness 50' exit
fi
fi
> Moments like these are truly a testament to Emacs' dedication to an accessible editor.
Ah, accessible. Word with a different meanings, and for me, in this sense, it's not helpful at all. Fortunately I managed to get Emacs talking with Speechd-el in Termux. Speechd-el is a poor man's Emacspeak. But it does seem to work. Well besides pressing SPC doesn't read the new text that scrolled onscreen, but if I have to, I can hook it.
There is a third option (in addition to the native app and Termux) to get emacs running. The recently added (to at least Pixel phones) "Terminal" app runs a standard Debian distribution inside a VM. emacs can be installed there in exactly the same way it would be on any other Debian machine.
I'm sure grateful that you did that. I've been surprised by how little online discussion of this app I've seen. It's just extremely cool to be walking around with a real gnu/linux computer in my pocket, which cost nothing to add to the phone, and has no ads or in app purchases.
The only reason I want emacs on my phone is the one thing I don’t have: I want my org notes to be on both desktop and mobile. But syncing files across both has been dreadful, even in paid apps: duplicates everywhere and I constantly have to rechoose the files in a file finder UI. So my reminders are not just ever present for the time when they’re relevant, they’re just “not there” unless I take a lot of manual steps (if I’m lucky only) once a day.
I've been thinking about this a lot recently, although I'm a vim user (please don't hate me), visiting this thread to see if the emacs community has solved this.
My use case is I want the vim analog to some emacs tooling like org-mode, everywhere. I want open formats, I want vimwiki-style linking, I want taskwarrior integration, and I also want it to synch on all my devices.
There are some proprietary tools like NotePlan that use iCloud as backhaul (very well, actually), and it's open format, but it has an opinionated UX that isn't quite me, and I think I just want to stay in vim as much as possible that I can do what I want with. I suspect most people here interested in emacs would have a similar take on it.
If you're on iOS, and your laptop/desktop is macOS, you have a cloud drive that is (IMHO), better than Dropbox right there, baked in, so what would it look like to use that file system? Not awful actually. I've found device synch across that file system to be transparent and high quality, as long as I remember to save things regularly.
The problem for me when it comes to the mobile experience is that I think - no matter whether you're an emacs or vim user - you probably don't want that mode-based editing on your phone.
The best notes app on iOS is Apple Notes because it does a lot of things incredibly well for the context of writing notes one-handed while stood on a bus, or while sat in a coffee shop with a small touch-screen keyboard.
Where I'm at right now is I want to build something that can read and interact with my files on my phone, but is not mode-based - it just uses Apple text editing like Apple Notes, and saves everything in iCloud files (or Dropbox as a backup to get out of the apple ecosystem), and on my local machine I just get that live synched experience with the editor that makes sense.
So the format I'm mostly interested in (vimwiki), has formatting that would be understandable as styles in Apple Notes, so I'm trying to work out whether to a) write something to import/export to notes from vimwiki, or b) provide a vimwiki-aware editing tool with the ergonomics of Apple Notes for my phone. I suspect doing the same but for emacs and org-mode would do the job well for those who want that experience too.
Also thinking about this. Requirements I've identified:
1. Able to natively edit and view same file type on both devices, be it .md or .org or whatever you choose (there are more apps supporting .md, if you can stomach that)
2. Links must work on both devices! That alone means it's not trivial, even if you have a lightbulb moment and use .md files for access to more apps, together with one of Emacs' filetype-independent links like Hyperbole or Denote, because no .md app will support those links. Conversely in .org, not all apps even support Org-ID links... especially when you throw in encryption or any such complication.
3. App must have satisfactory editing facilities. I know at least one app that doesn't even let you indent/dedent list bullets...
4. Editing and viewing should be native, not rely on some import/export step
5. If you use TODO tasks, the app needs to make it convenient to see them at a glance across all files. Many Org apps fail here and either basically assume you have like one "todo.org" file and need no hand-holding, or even if they list all TODOs, there's no way to sort or filter, or it only lets you see them but not toggle them to DONE!
6. If you use a wiki-style workflow (like org-roam) so that you have far too many small files to keep track of, the app needs to make it easy to browse. Many apps fail here, just showing you a file list on the assumption that you even know what your files are named or what's in them. Nothing like grep, either.
7. Instantaneous sync. Things like syncthing just aren't good enough if you don't also host an always-on server. If sync conflicts are frequent, I'll be so wary of editing that I stop altogether.
I tried installing Emacs on Android and then realized: How on earth am I even gonna input all the special key combos that I use for things in Emacs?
I figure it is impossible, without a special keyboard installed and even then it gets cumbersome to quickly input something like C-x C-s for saving a file. I am not motivated enough, to come up with a whole different shortcut system, just for rare if ever Emacs on phone use.
You're looking for tramp-mode. I used tramp-mode for years when working in a lab in grad school where is write code in emacs, have it save via SSH, then build and run the code on the remote. It allows you to use emacs just to author text and to use the remote for everything else.
A/B: Any reason not to do emacs or neovim everywhere? You can copy your dotfiles to the server if needed?
C: I wouldn't/don't use Dropbox either. If bash+scp works then great, but have you considered keeping your files in git? Still easy to sync over ssh from one machine to another, but natively handles things like sync conflicts.
I just haven't found Emacs to be particularly productive over SSH. IMO it works best on a local machine, there's just too much in the GUI which isn't as workable over terminal. Font rendering, images, clickable text links all take a hit. None are really deal breakers, but Emacs TUI just kind of feels like an afterthought. X11 over SSH doesn't feel responsive to me.
Its almost more of an aesthetic choice really, its just that Emacs feels comfier to me on a local machine. You otherwise lose too much of that feeling of customizing everything to your own taste, which is to me the nicest part of Emacs. It's kind of what I imagine a well tuned Forth to feel like.
Neovim is great over SSH, and I kind of prefer it as an editor - but Org support is too compelling. I've tried Neovim Org configs but they just can't compete with the legacy of Emacs Org. Org roam is unbeatable even with the preponderance of wiki style knowledge base apps. Org publish is just too good, as well. I've played with Neorg, and I really like it as a project, but it does feel like it is about 20 years behind.
I use git a lot but it runs into the large binary problem. I know git-annex is supposed to be good, but I haven't used it much. Syncthing is good but a lot of UI. I like unison but it isn't super well suited to the 'background sync' workflow.
My laptop is also a modified chromebook with a 50 GB HDD. I could get a real computer and solve a lot of my sync issues tomorrow, but then what would I have to complain about?
I see people with surface pros running VB studio, drinking Folger's with no discernable side effects and they are probably happier and more productive than I am.
> I just haven't found Emacs to be particularly productive over SSH. IMO it works best on a local machine, there's just too much in the GUI which isn't as workable over terminal. Font rendering, images, clickable text links all take a hit. None are really deal breakers, but Emacs TUI just kind of feels like an afterthought. X11 over SSH doesn't feel responsive to me.
But that's what tramp is for, it works nicely and is surprisingly well integrated into the rest of Emacs. The only obvious downside is initial performance, but that can be worked around by tweaking SSH settings to keep connections open.
Another hack I use is to initiate a connection from remote to my local Emacs instance. The use case is ssh'ing into a remote shell, typing "remote-emacs <file-xyz>" and having that open the file on my local machine.
I did that by creating a script that gets my local IP from $SSH_CONNECTION, uses that to ssh into my local machine and executes "emacsclient -n /ssh:$HOSTNAME:$FILEPATH" which then in turn opens the remote file using tramp. Pretty useful.
Hi OP, just chiming in here because you mentioned us at Hetzner and I saw your post. I also wasn't sure if the comment from nurettin below was meant to be "NextCloud" instead of "owncloud"...? NextCloud and Dropbox have some very similar use cases. We have a line of NextCloud-based products (Storage Shares). Maybe it would be worth trying out. --Katie
The nice thing is that Emacs 30.1 now has much better support for touchscreen events. It will take some time for packages to make use of that, but at least it is now possible. For instance, you should now be able to increase/decrease text size by pinching.
I've been using Emacs 30 on my android tablet for a few months now with a bluetooth keyboard. Needless to say, you can't really leverage eglot so it's basically a no-go for any meaningful software development. I've been using it for org-mode and it is fantastic for that.
Not to criticize you - I also use eglot and it's great - but let me mention that people have been doing pretty meaningful software development for several decades now, and LSPs are, I don't know, 5 years old?
There's a saying in my language, "the appetite grows while you eat"...
I think it's a fair complaint. You're on a setup with bad ergonomics as it is (tablet + Bluetooth keyboard.) Dealing with that and no LSP is rough. I'd be happy writing code on a desktop without an LSP, though I'd be happiest with both.
I did my share of coding on a Commodore 64 (have you seen that keyboard?) with a cassette tape as the only external storage, no debugger (just a very poor BASIC variant) and (of course) a mono CRT tv set as a monitor. No internet, of course, just a few books/magazines.
the fdroid build of android doesn't have a real linux environment that you can install arbitrary binaries on to. you can switch to a termux-ish proot environment and do x-forwarding or TUI emacs but those are shenanigans
There is a catch though, you need to download and install Termux & Emacs from this project as per the instructions. It took me a while to get it working, but after that it worked like a charm.
I think you're kind of right. I was surprised that that's two clicks away from the front page, under docs. That's where I'd look but it probably should have a nice visible link that's the first thing you see. There is a picture of the program running on an android device and a QR code.
Perfectly adequate for people who know how it all works or people who look for software install instructions on the regular, but not the best first contact for people who don't.
Edit: Actually, even the instructions page doesn't tell you to download and run the package on the device's browser. A user visiting on a laptop or something will just have a weird useless file in the downloads dir (unless they go the adb route or otherwise figure out it needs to go on the device first).
My computer died a few months ago and Emacs on Android has carried me through well. Still able to do development on the go. Amazing, amazing work by the Emacs dev!
The Unexpected Keyboard is a great addition, but even with the stock Android keyboard, it's totally usable. Of course, it helps to add things to menus and remap the volume keys.
You can add buttons to the toolbar with something like:
Specifically for org, and specifically for org-roam, it's pretty good, but not good enough. It's not as good as desktop emacs, and it's also somehow not as good as a 1st class android app.
the fdroid build of emacs doesn't really work very well with my org-roam, so i use a termux build,,, well nix-on-droid+emacs-overlay... and it's fine, for capture and recall. but i'm not authoring a lot of text with it. a custom extra-keys in the termux config so that your common emacs keybindings are on screen in a tool bar can get you close to a point-and-click interface... but you don't really have a good "swipe" input or voice input to input text efficiently, it's a character interface, a TUI, which is actually not what you want on a phone, you want a word-based interface. so when i want to do org-mode right now, i pull a unihertz titan 2 out of my pocket. without a sim card, the titan battery lasts for about three days unless i fire up an nix devShell & lsp server on it.
calc-mode is my default android calculator tho.
tbh don't listen to me, though: i've been teaching myself 8vim[1] and building a markdown document graph database in my free time. don't listen to ~any emacs user's opinion with any authority, we all have found our own local minima, our opinions and advice usually aren't so useful to each other
I didn't know about modified-bar-mode, though, that's neat.
[1] https://f-droid.org/packages/inc.flide.vi8/
> don't listen to ~any emacs user's opinion with any authority
As a vim user, I suppose it’s proper to say “I don’t” :p
Also as a vim user, no one should listen to mine with any authority
—
Jokes aside, 8vim looks pretty slick! I don’t have an android to play around with at the moment but if I remember this I’ll check it out when I do.
Text input on phones for anything beyond prose seems to be a space ripe for innovation - although, as an iPhone user, the amount of anything technical I want to do from my phone approaches zero quickly.
If you swipe left on the shortcut bar ("esc" "/" etc) in the termux keyboard, it switches to a word oriented text input area where you can use predictive text and swipe text. Swipe that area right when done to get back to the modifiers
have you also used thumbkey (or messagease) by any chance?
if so - can you compare them?
(I use thumbkey, but when I ran across 8vim considered switching
however I use thumbkey fluently and am not sure if worth switching)
i was pretty quick with thumbkey, it's nice on even a tiny device like a Jelly Star. nowhere near as quick with 8vim on any device yet.
> don't listen to ~any emacs user's opinion
I sort of came here to say the same thing.
The intersection between (the set of people who care about good UX) and (the set of people who would try to use emacs on android) is the empty set. Emacs users' self-flagellation is pretty legendary, and I say this as an emacs user (though I've mostly given up on how janky and slow it is compared to modern editors and only use it for magit these days)
Are Emacs users really known for "self-flagellation"? I would have thought that was more vi users. Even if modern vis like vim try to make it slightly less painful, the fact is modal editing is really nonintutive. Certainly the reason why I became an Emacs user nearly 40 years ago when I was using UNIX for the first time, was that the only two real options were vi and Emacs and after playing with vi for a bit I was pretty much "nope, not doing that". Emacs may have a reputation as being arcane, but ultimately it is a modeless editor (yes, you can make it emulate vi and its modes if you really want it to) which means it basically works like any other editor or word processor you'd find on mainstream OSes.
Plain Emacs certainly felt more intuitive at first contact, but Vim felt more intuitive to me once I approached it as a language. What can I say, I’m the target audience of evil mode.
I agree with you on UX but disagree with everything else. If you use native elisp compilation, I find its speed to rival an average editor. Completions can be slow in lsp-mode but still faster than VSCode (and emacs itself ships with eglot, a less full featured alternative to lsp-mode, but may be faster. I haven't used it enough to judge.) This is due to shelling out to LSPs and the fact that not all LSPs are particularly well built.
If you find your emacs to feel jank I highly recommend declaring "emacs bankruptcy" and starting anew with a fresh config. Defaults emacs ships with today are really good.
That said I haven't used emacs on Android yet so I don't know how well, if it all, it works. I also think the UX of emacs tends to bend toward the user's own preferences rather than good UX, and the default UX of emacs is a bit bad.
I've been using emacs for 15 years as my daily editor. One thing that never fails is that when I share the fact that I've switched away, emacs users fall over themselves to tell me I'm wrong.
I assure you that my emacs setup is as optimized as it can be. Native compilation, all that jazz. I've compiled my own. But emacs is ultimately a lost cause unless something drastic changes. The single threaded nature of it means that you need to just live with your editor regularly freezing for a whole second while working in bigger projects using modern tooling. The only way to remedy this is to turn off as many features as possible and accept a worse tooling experience. Shifting the blame for emacs poor internal architecture over on the poor LSPs is silly. Every other editor handles this better than emacs.
For now, I'm using zed and it was really an eye-opener to how fast an editor can be and feel. I replicated a large part of my workflow, basically all the keybindings, and while there are things I miss (projectile and some other things), I can live without them in exchange for not having my editor choke constantly when working on big projects while emacs chugs through json from lsp or something like that.
You may have a very justified reason to switch, including nnot liking one aspect of emacs. But you are presenting it as a general flaw. Which people cannot obviously accept as it’s fine for them and they are not experiencing your issue (and as you know, everyone’s setup and workflow are different)
As for the single threaded nature of it, it doesn’t bother me. Because what should be async already is. The only thing left that is synchronous follows closely the repl model of the terminal. I issue a command and I wait for the result. If the result doesn’t matter or I want part of it as soon as possible, then it can be async and there’s plenty of way you can make it so.
How do you make LSPs fast?
What do you mean? The language servers are independent projects from emacs. Some are slow and some are fast. And your project size is a factor.
> it doesn't bother me
Right, so what you're really saying is that you are totally fine with your editor being unresponsive and janky during regular editing workflow, working with modern tooling, and that everyone else is just wrong for not feeling the same way.
You do you. I lived with the same copium excuse for years, obviously, but I've moved past that now and into the year 20xx.
I love emacs and truly wish that I felt like I could seriously use it, and in many ways, I feel like it's the ultimate expression of what an editor could be. But it's just suffering from being 40 year old software that hasn't seen significant modernization to meet the demands of today's development workflows.
Your assumption is that Emacs is unresponsive and janky during my editing experience and it’s not that.
Everyone’s setup is different. Your configuration may be janky and unresponsive, but it’s not a generality.
I’m an Emacs enthusiast and also build iOS apps powered by org markup.
The more I used my apps, the more I wanted their UX optimised for mobile. This often means completely rethinking the Emacs experience when bringing to mobile.
This is most obvious in my latest app [1]. Org markup fully fades as implementation details. Of all my apps, this is the one I personally use the most. Proudly, I also started getting non-Emacs users interested in org [2].
Anyway, that’s all to say that as an Emacs fan, I want the full Emacs experience on desktop, but when on iPhone, I want fully optimised mobile UX. No meta anything there ;)
[1] https://xenodium.com/journelly-like-tweeting-but-for-your-ey...
[2] https://ellanew.com/ptpl/157-2025-05-19-journelly-is-org-for...
Emacs is ultimately an REPL environment, but ones where you can bind commands to bindings. And there’s a lot of bindings possible in a keyboard.
A mobile experience can be fine if you want a restricted subset of commands. You can then map them to buttons. But the core emacs experience is the ability to create your own commands and have different bindings.
The closest implementation, IMO, would be a streamdeck like UI, but with a transient or hydra like UX.
i didn't mean it in such a disdainful or self-flagellating way, though. emacs is a bag of tricks, and each of us pull a different set of them out.
I mean this kind of makes sense right, they chose it because they can customise it to fit them, it's basically a bespoke editor.
Ultimate .emacs on termux, note python-hook
What's the experience like pressing Ctrl+Shift+Meta+key shortcuts with those virtual keyboard apps? I assume they turn Ctrl, Shift, etc. into toggles so that you tap Ctrl, tap Shift, tap Meta, tap the shortcut key. But that's still four taps. (I know many of Emacs's commands have fewer modifiers than that, but I don't know which ones since even on a full keyboard I prefer the Vim control scheme so I never learned Emacs in much depth at all). Is that annoying, or is it easy enough to do that the annoyance fades into the background?
Also, is there a preconfigured config for Android that can be downloaded so that you don't have to spend too much time in the Customize mode to get started? (I'm assuming, though the article didn't go into detail, that much of the reason for spending time in Customize would be to remap some of those shortcuts to be easier to type on a virtual keyboard, e.g. fewer modifiers).
You can connect a bluetooth keyboard and mouse to an Android device -- somehow everybody thinks you have to buy some special $300 keyboard to attach one to a tablet but the basic keyboard from Amazon Basics does just ifne.
Yes. USB also works just fine too.
[delayed]
Good point, though I don't always have my Bluetooth keyboard available so I'm still interested in hearing people's experiences with those virtual keyboard apps.
Yeah when I think of “emacs on android” I kinda imagine a touchscreen. If you’re using a real keyboard, why not just use a real computer?
Big difference in portability between a foldable keyboard and a full laptop.
I used to have a flexible silicon keyboard I could roll up and carry but some of the keys died
Honestly these things are not the biggest worry.
You can use a pretty standard config. You are likely not going to be writing pages of code and for prose there are better things on a phone than the keyboard. You can get pretty far though github searching Emacs lisp files with android in the text.
More interesting is dealing with androids permissions. The original article mentions this and I have some notes here. https://gsilvers.github.io/me/posts/20250921-emacs-on-androi...
Its slow there are some keyboard like unexpected keyboard that make it easier. There's also modifier-bar-mode which displays a little bar you can click to get modifier keys.
(menu-bar-mode 1)
(tool-bar-mode 1)
(scroll-bar-mode 1)
(modifier-bar-mode 1)
(menu-bar-set-tool-bar-position `bottom)
Termux allows me to remap the volume buttons to control and meta which makes it much easier
Emacs lets you remap the volume keys:
You can use the usual C-h k <key> to see what Emacs calls the key.@grok solved the termux being too dark problem:
In .bashrc:
> Moments like these are truly a testament to Emacs' dedication to an accessible editor.
Ah, accessible. Word with a different meanings, and for me, in this sense, it's not helpful at all. Fortunately I managed to get Emacs talking with Speechd-el in Termux. Speechd-el is a poor man's Emacspeak. But it does seem to work. Well besides pressing SPC doesn't read the new text that scrolled onscreen, but if I have to, I can hook it.
There is a third option (in addition to the native app and Termux) to get emacs running. The recently added (to at least Pixel phones) "Terminal" app runs a standard Debian distribution inside a VM. emacs can be installed there in exactly the same way it would be on any other Debian machine.
I started reddit.com/r/androidterminal for discussing this feature
I'm sure grateful that you did that. I've been surprised by how little online discussion of this app I've seen. It's just extremely cool to be walking around with a real gnu/linux computer in my pocket, which cost nothing to add to the phone, and has no ads or in app purchases.
Caveat: all this is on iOS:
The only reason I want emacs on my phone is the one thing I don’t have: I want my org notes to be on both desktop and mobile. But syncing files across both has been dreadful, even in paid apps: duplicates everywhere and I constantly have to rechoose the files in a file finder UI. So my reminders are not just ever present for the time when they’re relevant, they’re just “not there” unless I take a lot of manual steps (if I’m lucky only) once a day.
I've been thinking about this a lot recently, although I'm a vim user (please don't hate me), visiting this thread to see if the emacs community has solved this.
My use case is I want the vim analog to some emacs tooling like org-mode, everywhere. I want open formats, I want vimwiki-style linking, I want taskwarrior integration, and I also want it to synch on all my devices.
There are some proprietary tools like NotePlan that use iCloud as backhaul (very well, actually), and it's open format, but it has an opinionated UX that isn't quite me, and I think I just want to stay in vim as much as possible that I can do what I want with. I suspect most people here interested in emacs would have a similar take on it.
If you're on iOS, and your laptop/desktop is macOS, you have a cloud drive that is (IMHO), better than Dropbox right there, baked in, so what would it look like to use that file system? Not awful actually. I've found device synch across that file system to be transparent and high quality, as long as I remember to save things regularly.
The problem for me when it comes to the mobile experience is that I think - no matter whether you're an emacs or vim user - you probably don't want that mode-based editing on your phone.
The best notes app on iOS is Apple Notes because it does a lot of things incredibly well for the context of writing notes one-handed while stood on a bus, or while sat in a coffee shop with a small touch-screen keyboard.
Where I'm at right now is I want to build something that can read and interact with my files on my phone, but is not mode-based - it just uses Apple text editing like Apple Notes, and saves everything in iCloud files (or Dropbox as a backup to get out of the apple ecosystem), and on my local machine I just get that live synched experience with the editor that makes sense.
So the format I'm mostly interested in (vimwiki), has formatting that would be understandable as styles in Apple Notes, so I'm trying to work out whether to a) write something to import/export to notes from vimwiki, or b) provide a vimwiki-aware editing tool with the ergonomics of Apple Notes for my phone. I suspect doing the same but for emacs and org-mode would do the job well for those who want that experience too.
Also thinking about this. Requirements I've identified:
1. Able to natively edit and view same file type on both devices, be it .md or .org or whatever you choose (there are more apps supporting .md, if you can stomach that)
2. Links must work on both devices! That alone means it's not trivial, even if you have a lightbulb moment and use .md files for access to more apps, together with one of Emacs' filetype-independent links like Hyperbole or Denote, because no .md app will support those links. Conversely in .org, not all apps even support Org-ID links... especially when you throw in encryption or any such complication.
3. App must have satisfactory editing facilities. I know at least one app that doesn't even let you indent/dedent list bullets...
4. Editing and viewing should be native, not rely on some import/export step
5. If you use TODO tasks, the app needs to make it convenient to see them at a glance across all files. Many Org apps fail here and either basically assume you have like one "todo.org" file and need no hand-holding, or even if they list all TODOs, there's no way to sort or filter, or it only lets you see them but not toggle them to DONE!
6. If you use a wiki-style workflow (like org-roam) so that you have far too many small files to keep track of, the app needs to make it easy to browse. Many apps fail here, just showing you a file list on the assumption that you even know what your files are named or what's in them. Nothing like grep, either.
7. Instantaneous sync. Things like syncthing just aren't good enough if you don't also host an always-on server. If sync conflicts are frequent, I'll be so wary of editing that I stop altogether.
For Android, https://f-droid.org/en/packages/com.github.catfriend1.syncth... works really well.
I've heard good things about https://apps.apple.com/gb/app/synctrain/id6553985316?platfor... for iOS, but I'm guessing it can't work constantly in the background like on Android?
How about a VPS running Emacs + Mosh and Blink? The only downside is that you need good internet coverage.
I don't use emacs or org mode, so I'm probably way off the mark, but I imagine I'd use git if I were to do something like that?
I use git (with Working Copy) for sync for this exact use-case.
Yup: emacs for editing org-mode files but git for sync.
iCloud surprisingly works without issues for me. You can switch on “keep downloaded” for the folder in question.
I tried installing Emacs on Android and then realized: How on earth am I even gonna input all the special key combos that I use for things in Emacs?
I figure it is impossible, without a special keyboard installed and even then it gets cumbersome to quickly input something like C-x C-s for saving a file. I am not motivated enough, to come up with a whole different shortcut system, just for rare if ever Emacs on phone use.
The menus have all you need. It's not ideal, of course, but it's enough to get you going. Otherwise you can remap the menu and toolbar to your needs.
There are several developer oriented keyboards. I found the Unexpected Keyboard quite good.
This is my Unexpected layout:
I'm a little embarrassed by my current workflow, which is:
A. Emacs and org mode on my laptop
B. Neovim to do development via SSH on my dedicated Hetzner box, because my laptop is too potato for dev
C. A bash script to push up any random notes I have up to the server
I have used sshfs, syncthing and unison in the past, but never quite got the workflow for either to click.
After about 13 years of trying I still am not as functional as most Dropbox users. I just can't stand Dropbox.
You're looking for tramp-mode. I used tramp-mode for years when working in a lab in grad school where is write code in emacs, have it save via SSH, then build and run the code on the remote. It allows you to use emacs just to author text and to use the remote for everything else.
Don't be embarrassed by a setup that works.
In the spirit of hopefully constrictive feedback:
A/B: Any reason not to do emacs or neovim everywhere? You can copy your dotfiles to the server if needed?
C: I wouldn't/don't use Dropbox either. If bash+scp works then great, but have you considered keeping your files in git? Still easy to sync over ssh from one machine to another, but natively handles things like sync conflicts.
I just haven't found Emacs to be particularly productive over SSH. IMO it works best on a local machine, there's just too much in the GUI which isn't as workable over terminal. Font rendering, images, clickable text links all take a hit. None are really deal breakers, but Emacs TUI just kind of feels like an afterthought. X11 over SSH doesn't feel responsive to me.
Its almost more of an aesthetic choice really, its just that Emacs feels comfier to me on a local machine. You otherwise lose too much of that feeling of customizing everything to your own taste, which is to me the nicest part of Emacs. It's kind of what I imagine a well tuned Forth to feel like.
Neovim is great over SSH, and I kind of prefer it as an editor - but Org support is too compelling. I've tried Neovim Org configs but they just can't compete with the legacy of Emacs Org. Org roam is unbeatable even with the preponderance of wiki style knowledge base apps. Org publish is just too good, as well. I've played with Neorg, and I really like it as a project, but it does feel like it is about 20 years behind.
I use git a lot but it runs into the large binary problem. I know git-annex is supposed to be good, but I haven't used it much. Syncthing is good but a lot of UI. I like unison but it isn't super well suited to the 'background sync' workflow.
My laptop is also a modified chromebook with a 50 GB HDD. I could get a real computer and solve a lot of my sync issues tomorrow, but then what would I have to complain about?
I see people with surface pros running VB studio, drinking Folger's with no discernable side effects and they are probably happier and more productive than I am.
Point being I might try Emacs on android
> I just haven't found Emacs to be particularly productive over SSH. IMO it works best on a local machine, there's just too much in the GUI which isn't as workable over terminal. Font rendering, images, clickable text links all take a hit. None are really deal breakers, but Emacs TUI just kind of feels like an afterthought. X11 over SSH doesn't feel responsive to me.
But that's what tramp is for, it works nicely and is surprisingly well integrated into the rest of Emacs. The only obvious downside is initial performance, but that can be worked around by tweaking SSH settings to keep connections open.
Another hack I use is to initiate a connection from remote to my local Emacs instance. The use case is ssh'ing into a remote shell, typing "remote-emacs <file-xyz>" and having that open the file on my local machine.
I did that by creating a script that gets my local IP from $SSH_CONNECTION, uses that to ssh into my local machine and executes "emacsclient -n /ssh:$HOSTNAME:$FILEPATH" which then in turn opens the remote file using tramp. Pretty useful.
I've used git-annex and I'll tell you, it's overcomplicated. Git LFS is probably better.
Hi OP, just chiming in here because you mentioned us at Hetzner and I saw your post. I also wasn't sure if the comment from nurettin below was meant to be "NextCloud" instead of "owncloud"...? NextCloud and Dropbox have some very similar use cases. We have a line of NextCloud-based products (Storage Shares). Maybe it would be worth trying out. --Katie
Your setup is pretty awesome. But if you miss dropbox so much, why not set up owncloud on the hetzner machine?
The nice thing is that Emacs 30.1 now has much better support for touchscreen events. It will take some time for packages to make use of that, but at least it is now possible. For instance, you should now be able to increase/decrease text size by pinching.
I was quite surprised too to learn how well terminal apps work on Android. Termux is amazing.
I've been using Emacs 30 on my android tablet for a few months now with a bluetooth keyboard. Needless to say, you can't really leverage eglot so it's basically a no-go for any meaningful software development. I've been using it for org-mode and it is fantastic for that.
Not to criticize you - I also use eglot and it's great - but let me mention that people have been doing pretty meaningful software development for several decades now, and LSPs are, I don't know, 5 years old?
There's a saying in my language, "the appetite grows while you eat"...
I think it's a fair complaint. You're on a setup with bad ergonomics as it is (tablet + Bluetooth keyboard.) Dealing with that and no LSP is rough. I'd be happy writing code on a desktop without an LSP, though I'd be happiest with both.
I did my share of coding on a Commodore 64 (have you seen that keyboard?) with a cassette tape as the only external storage, no debugger (just a very poor BASIC variant) and (of course) a mono CRT tv set as a monitor. No internet, of course, just a few books/magazines.
Kids these days... ;-)
Is there an Android app that does Waypipe or wprs to forward a remote Emacs (with eglot/LSP) to your Android tablet?
what is preventing you from using eglot on android?
the fdroid build of android doesn't have a real linux environment that you can install arbitrary binaries on to. you can switch to a termux-ish proot environment and do x-forwarding or TUI emacs but those are shenanigans
I've been using emacs in terminal mode inside termux for a few years and it's not bad. Full GUI emacs would be nice, I'll have to give this a try
It is already there and it works.
https://sourceforge.net/projects/android-ports-for-gnu-emacs...
There is a catch though, you need to download and install Termux & Emacs from this project as per the instructions. It took me a while to get it working, but after that it worked like a charm.
For small edits, has anybody configured a leader-key scheme? Something like Doom Emacs has with space as a leader.
It seems to me to be the best possible configuration for Emacs on Android (on a phone) and I was wondering if I should invest time in such a solution.
strokes-mode.el would also be very nice, but apparently it doesn't have touchscreen support.
F-Droid website is awful for a curious visitor. Serves me a .apk with no further instructions. What am I supposed to do with that?
https://f-droid.org/en/docs/Get_F-Droid/
I think you're kind of right. I was surprised that that's two clicks away from the front page, under docs. That's where I'd look but it probably should have a nice visible link that's the first thing you see. There is a picture of the program running on an android device and a QR code.
Perfectly adequate for people who know how it all works or people who look for software install instructions on the regular, but not the best first contact for people who don't.
Edit: Actually, even the instructions page doesn't tell you to download and run the package on the device's browser. A user visiting on a laptop or something will just have a weird useless file in the downloads dir (unless they go the adb route or otherwise figure out it needs to go on the device first).
I do termux and emacs on android because a bunch of small use cases are easier to do that way than navigate the app store
GNUs under Emacs it's the only FOSS Usenet client out there for Android.
Another (easier imo) way is to just install Emacs in the standard termux installation and run an X11 server, see https://hadi.timachi.com/posts/emacs_GUI_on_android/emacs_GU...
My computer died a few months ago and Emacs on Android has carried me through well. Still able to do development on the go. Amazing, amazing work by the Emacs dev!
The Unexpected Keyboard is a great addition, but even with the stock Android keyboard, it's totally usable. Of course, it helps to add things to menus and remap the volume keys.
You can add buttons to the toolbar with something like:
There are many icons bundled with Emacs that you can reuse: https://cgit.git.savannah.gnu.org/cgit/emacs.git/tree/etc/im...You can remove toolbar buttons:
Otherwise, you can add to menus: Remapping the volume keys is super handy, especially when you change the behavior by mode or buffer: Redefining the fill column is handy to set appropriate text wrapping:C-x f runs the command set-fill-column
Otherwise, the menu for Lime Wrapping in this buffer is super helpful.
I set my init to load up Dired so that I'm met with my project directory and am ready to go.
It's hard for me to think of another editor having my back like Emacs has. Again, amazing work by the community!
(Travels back to the 90s)
Pretty good for Emacs*
Long live VI.
Now I want to see how it performs in android 16 desktop mode
Well duh, I first used emacs on a lowly 386 running a variant of unix.
Today's SOCs are much more powerful.
With I assume full size display, keyboard, and full access to permissions. These are the real bottlenecks.