rrix2 19 hours ago

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/

  • phatskat 16 hours ago

    > 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.

  • procaryote 16 hours ago

    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

    • rrix2 6 hours ago

      i find that unless i swipe perfectly, the input is considered in the textbox not the bar, so i can't easily swipe out of it. :( have never really got the hang of it. i wish there was a button to swap in/out, i guess i could do some simple android dev but i'd rather not

  • yehoshuapw 16 hours ago

    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)

    • rrix2 16 hours ago

      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.

  • IceDane 16 hours ago

    > 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)

    • Karrot_Kream 15 hours ago

      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.

      • chuckadams 9 hours ago

        > Defaults emacs ships with today are really good.

        They're really not. It still defaults to opening a split window, still litters #foo# and foo~ files in the directory of whatever you're editing, and still comes with few language modes supported out of the box, let alone set up to automatically spawn and use LSP servers. Running a macro over a 10,000 line file is still incredibly slow on a 1-year old mac. Many common functions are still bound to chains of two or sometimes three keystrokes with multiple combinations of ctrl-keys and sometimes the mysterious ctrl-u prefix. Rebinding all the defaults is pretty much a given for any emacs power user. It's no wonder RMS ended up with RSI problems, because "emacs pinkie" is still very much a thing.

        I miss emacs in a lot of ways, I used it for a good two dozen years starting in the 90's, but there's a reason I use IDEA Ultimate to write code now.

        • skydhash 8 hours ago

          You may have two dozens years of emacs, but I fear you’ve not grasped the philosophy of emacs, if that is the list of complaints.

          > split windows.

          Why would I want a new window to replace the one I’m in. If I want to look at an info manual, I want it to start in a new window instead of the one that I’m looking it. My understanding is that there are main tasks and secondary tasks. Switching main tasks replace the current windows, starting secondary tasks pop up a new one. And those pops up are usually dismissed by typing q.

          > still litters #foo# and foo~ files in the directory of whatever you're editing

          Backup files and autosaved files are good. Especially if the edited file is not versioned. It’s the correct choice as some users are not programmers.

          > few language modes

          How many toolchain are installed on a newly installed OS? And major modes are not only for syntax.

          > LSP servers

          Eglot is built in and has a good set of default for current servers. But why should Emacs install stuff for me. It does not know how I want to install them.

          > macro over a 10,000 lines

          macros do run the full set of the commands as it would run in a normal invocation time the amount of repetition. And there are other approaches like an awk script that may be faster for your usecase.

          > common functions…bound to chains of two…three keystrokes

          Emacs have a lot of commands. And if you used something a lot, you can bind it to a more accessible bindings.

          > mysterious ctrl-u prefix

          If it’s mysterious after two dozen years, then I wonder if you ever give the manual a glance. It is for providing an argument to the command and it’s commonly used for providing an alternate behavior to the default one. Like ‘g’ is recompile in a compilation buffer and ‘ctrl-u g’ asks for the command to use for the new iteration instead of reusing the old one.

          • chuckadams 5 hours ago

            Nothing says "prompt interactively" like Ctrl-U. I mean, it literally stands for "universal argument", which is basically "do this command, but different". Defaulting to "insert four times" because why not? Mysterious :^)

            Like I said I used emacs for a quarter century, wrote quite a bit of elisp for doing my job, and I still miss some of those things, but I've made do with perl scripts. I still pop up emacs for quick edits now and again, but I long ago gave up trying to force it into the shape of a full-blown IDE.

        • lycopodiopsida 9 hours ago

          > but there's a reason I use IDEA Ultimate to write code now.

          IDEA is so painfully slow that while I have it paid by my company I cannot force myself to work in it for extended periods of time. And I say it being fully aware of Emacs's speed problems. Also, the limitation on "1 Window - 1 Project" is laughable in IDEA, as well as in VSCode.

          • homebrewer 4 hours ago

            > the limitation on "1 Window - 1 Project" is laughable in IDEA

            There's no such limitation in IDEA. If your project consists of separate subprojects stored in subdirectories inside a single large directory, just open that directory in IDEA. Your subdirectories will work/look/feel like different projects, all within the same window, with global symbol search, support for attaching SQL resolution scopes (i.e. attaching different databases to different projects and/or paths within them and having correct autocomplete), etc.

            One of the things I work on is such a project built from a dozen separate subprojects, some of them written in Java, one in PHP, one in JS/node, one in TS/React, two in Go, one in Python. Plus the usual stuff like Markdown, HTML, CSS, SQL, etc. It all integrates very nicely within the same window.

            If they're stored in completely separate directories, and you want to combine them into a single window for some reason, it's still perfectly possible by attaching them as "modules" inside your project settings. It looks and feels exactly like the first case, even when projects are spread across the system.

          • chuckadams 9 hours ago

            IDEA can certainly get slow, but `esc 10000 c-x e` still means I'm hitting abort before it gets even close to done. I use multiple panes/windows in IDEA all the time, and it also supports opening tabs in new windows/frames.

            • lycopodiopsida 9 hours ago

              I have just opened a 7k loc JS file in idea and I can observe for at least 2 seconds how syntax fontification and all the hints are applied and rendered. All of it on a macbook M4. It is not acceptable and also the slowest of any editor I've used.

              • homebrewer 4 hours ago

                It uses that time to parse the source into an AST and build a search index to provide type-aware symbol search, information for autocomplete and refactoring if you request it, etc. Sure it will be slower than simply highlighting the code and then doing nothing with it...

                If you use IDEA as a glorified text editor, you're using less than 1% of what it's capable of. It's a complete waste of computing resources then.

                • Karrot_Kream 2 hours ago

                  I think the contention is that emacs stalls and stutters running a macro on a medium sized file while IDEA sings. I find IDEA to be slower than emacs as a whole but overall more full-featured and much better out of the box. I'm an emacs fan myself, but think IDEA is a great IDE.

      • IceDane 14 hours ago

        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.

        • skydhash 13 hours ago

          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.

          • actionfromafar 13 hours ago

            How do you make LSPs fast?

            • G3rn0ti 25 minutes ago

              > How do you make LSPs fast?

              https://github.com/blahgeek/emacs-lsp-booster

              The fundamental issue is Emacs its JSON parser is currently still rather slow (not sure why actually). But in LSP mode it needs to parse the LSP server's many JSON response messages very quickly. The aforementioned booster converts all JSON into ELISP byte code so Emacs can process LSP messages much faster.

              I guess, the Emacs project will have to tune their JSON parser in the future.

            • skydhash 12 hours ago

              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.

          • IceDane 13 hours ago

            > 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.

            • skydhash 12 hours ago

              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.

            • PaulDavisThe1st 7 hours ago

              Modern tooling part one: tried using an LSP with emacs (35+ year user) ... gave up after 3 days, it provided absolutely nothing to my workflow.

              Modern tooling part two: via M-x grep (bound to F1) use ag(1) or rg(1) instead of grep to explore my codebase, runs async and finishes more or less before my "emacs pinkie" is ready to touch another key.

        • Karrot_Kream 5 hours ago

          Look nobody is forcing you to stay on emacs. But most of us aren't experiencing editor freezing even on big projects. I'm working in a monolith of multiple languages and can get LSP for all the ones we use just fine.

          To use your own argument, every other person has a better experience than you. Shifting the blame to the editor is silly ;)

        • taeric 7 hours ago

          You get the same behavior from any editor, though? Hell, you'd probably get similar behavior if you switched brands of power tools. People are attached to their tools.

          That said, it would help if you didn't have hyperbole there. Many of us do not, in fact, have to live with the editor freezing on a regular basis.

    • xenodium 15 hours ago

      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...

      • skydhash 13 hours ago

        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.

      • rrix2 6 hours ago

        I love your apps and wish I had android equivalents. cheers

        • xenodium 37 minutes ago

          Thank you! That’s wonderful to hear.

    • jhbadger 13 hours ago

      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.

      • jwrallie 12 hours ago

        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.

        • rrix2 6 hours ago

          whenever i ssh in to some box and fire up vi[m] to edit some text i realize how reliant i am on both input methods & how cool emacs&evil are for letting my do that to myself...

          vim text object motions for edits, my emacs keybindings and libs for movement&buffer management... my normal-mod binding for avy-goto-char and my other evil-leader stuff is muscle memory now...

      • wiseowise 2 hours ago

        Modal editing is unintuitive for the same reason why new language you're learning unintuitive. Once you understand the rules, it is much more intuitive than any other editor. This is the reason why I use IdeaVim/VSCodeVim instead of learning "native" shortcuts.

        Obligatory: https://i.imgur.com/WLzeQMj.png

    • rrix2 16 hours ago

      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.

    • Jeff_Brown 10 hours ago

      Very occasionally I run into a speed glitch in Emacs but not nearly enough to drive me away, given that nothing else can do all the stuff it does.

    • zipy124 12 hours ago

      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.

timonoko 12 hours ago

Ultimate .emacs on termux, note python-hook

  (menu-bar-mode -1)
  (setq inhibit-splash-screen t)
  (setq inhibit-startup-echo-area-message t)
  (global-set-key "å" 'hippie-expand)
  (global-set-key "∆" 'toggle-truncate-lines)
  (global-set-key (kbd "<f12>") 'toggle-truncate-lines)
  (xterm-mouse-mode 1)
  (global-set-key (kbd "<mouse-5>") 'scroll-up-command)
  (global-set-key (kbd "<mouse-4>") 'scroll-down-command) ;
  (global-set-key (kbd "<wheel-up>") 'scroll-up-command)
  (global-set-key (kbd "<wheel-down>") 'scroll-down-command) ;
  (setq case-fold-search t)
  (setq-default truncate-lines t)
  (setq sort-fold-case t)
  (autoload 'scad-mode "scad-mode" "A major mode for editing OpenSCAD code." t)
  (add-to-list 'auto-mode-alist '("\\.scad$" . scad-mode))
  (require 'scad-preview)
  (global-set-key (kbd "Å") 'dabbrev-expand)
  
  (add-hook 'python-mode-hook 'whitespace-mode)
  (setq whitespace-line-column 128)
  (custom-set-faces
   '(default ((t (:background "#000000" :foreground "#ffffff"))))
   '(whitespace-space ((t (:background "black" :foreground "blue"))))
   '(whitespace-tab ((t (:background "black" :foreground "blue"))))
   '(whitespace-newline ((t (:background "black" :foreground "blue"))))
   '(whitespace-empty ((t (:background "black" :foreground "grey50")))))
  • wwfn 7 hours ago

    What keyboard are you using? one where å Å ∆ F12 are easily accessible?

    Is there a good interface to (GUI?) openscad from termux?

    • timonoko 7 hours ago

      Å is in Finnish Keyboards, but totally useless. F12 is easily accessible in Hacker's Keyboard. ∆ is in Gboard.

      There no gui, you use openscad to generate STL and view that in Android STL-viewer. You can automatize it so that it is almost like the real thing.

        file_to_watch=$1
        last_modified=$(stat -c %Y "$file_to_watch")
        while true; do
            current_modified=$(stat -c %Y "$file_to_watch")
            if [ "$last_modified" != "$current_modified" ]; then
                openscad $1 -o $1.stl
                last_modified="$current_modified"
            fi
            sleep 1  # Check every second
        done
devinprater 16 hours ago

> 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.

rmunn 21 hours ago

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).

  • PaulHoule 20 hours ago

    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.

    • lugu 17 hours ago

      Yes. USB also works just fine too.

      • abyssin 10 hours ago

        How much current does it draw?

    • rmunn 20 hours ago

      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.

      • chamomeal 13 hours ago

        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?

        • PaulHoule 10 hours ago

          A tablet, keyboard and mouse together with a cheap plastic clip can substitute for a laptop whenever you can sit at a table. If you have a fast internet connection (hotel WiFi, phone tethering in a good location) you can connect to a home or work computer or rent whatever size cloud instance you want —- connect with RDP or an ssh client.

          It turns heads when you go to a hackathon and everyone else has a samey laptop or a gaudy gaming laptop. Sleeker and lighter and you’ve got 4x the RAM and cores.

          Granted the laptop hinges is good if you are in the passenger seat of a car but you can use a tablet like that as a tablet in those cases so you lose some utility but can still do a lot. This weekend I was traveling and usually used my tablet the ordinary way but I RDPes into my home computer whenever I wanted.

        • medstrom 11 hours ago

          Big difference in portability between a foldable keyboard and a full laptop.

      • brendyn 20 hours ago

        I used to have a flexible silicon keyboard I could roll up and carry but some of the keys died

  • getpokedagain 20 hours ago

    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.

    • getpokedagain 20 hours ago

      (menu-bar-mode 1)

      (tool-bar-mode 1)

      (scroll-bar-mode 1)

      (modifier-bar-mode 1)

      (menu-bar-set-tool-bar-position `bottom)

  • HackingWizard 5 hours ago

    I primarily use Hacker's keyboard to use Emacs in Termux. Bluetooth keyboard is also an option. But, for some text editing sessions software keyboard is sufficient.

  • getpokedagain 20 hours ago

    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...

  • rrix2 6 hours ago

    hardware or software keyboard I don't think I've ever used a binding like that and if I did I would almost immediately bind them to something more reasonable.

  • procaryote 16 hours ago

    Termux allows me to remap the volume buttons to control and meta which makes it much easier

    • spit2wind 13 hours ago

      Emacs lets you remap the volume keys:

        (global-set-key (kbd "<volume-down>") 'fill-paragraph)
      
      You can use the usual C-h k <key> to see what Emacs calls the key.
zelphirkalt 14 hours ago

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.

  • NoGravitas 8 hours ago

    I've played with `meow`, a Kakoune-like modal editing system for Emacs, but on desktop, I've never really had enough motivation to stick with it. It might actually make more sense for mobile.

  • spit2wind 13 hours ago

    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:

      <?xml version="1.0" encoding="utf-8"?>
      <keyboard bottom_row="false" name="Emacs-rev1" script="latin">
        <row>
          <key c="q" sw="1" nw="loc esc"/>
          <key c="w" sw="2" nw="~" ne="\@"/>
          <key c="e" sw="3" nw="!" ne="\#" se="loc €"/>
          <key c="r" sw="4" ne="$"/>
          <key c="t" sw="5" ne="%"/>
          <key c="y" sw="6" ne="^"/>
          <key c="u" sw="7" ne="&amp;"/>
          <key c="i" sw="8" ne="\*"/>
          <key c="o" sw="9" ne="("/>
          <key c="p" sw="0" ne=")"/>
        </row>
        <row>
          <key shift="0.4" c="a" nw="loc tab" ne="`"/>
          <key c="s" ne="loc §" sw="loc ß"/>
          <key c="d"/>
          <key c="f"/>
          <key c="g" ne="-" sw="_"/>
          <key c="h" ne="=" sw="+"/>
          <key c="j" ne="}" nw="{"/>
          <key c="k" nw="[" ne="]"/>
          <key c="l" nw="|" ne="\\"/>
        </row>
        <row>
          <key width="1.5" c="shift" ne="loc capslock"/>
          <key c="z"/>
          <key c="x" ne="loc †"/>
          <key c="c" sw="&lt;"   ne="."/>
          <key c="v" sw="&gt;"   ne=","/>
          <key c="b" sw="\?"     ne="/"/>
          <key c="n" sw=":"      ne=";"/>
          <key c="m" ne="&quot;" nw="'"/>
          <key width="1.5" c="backspace" ne="delete"/>
        </row>
        <row height="0.95">
          <key width="1.7" key0="ctrl" key1="loc switch_greekmath" key2="loc meta" key3="loc switch_clipboard" key4="switch_numeric"/>
          <key width="1.7" key0="alt" key1="loc change_method" key2="fn" key3="switch_emoji" key4="config"/>
          <key width="3.5" key0="space" key7="loc home" key8="loc end"/>
          <key width="1.6" key0="loc compose" key7="up" key6="right" key5="left" key8="down" key1="loc page_up" key3="loc page_down"/>
          <key width="1.5" key0="enter" key1="loc voice_typing" key2="action"/>
        </row>
      </keyboard>
zingar 16 hours ago

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.

  • zie an hour ago

    Have you tried beorg? https://www.beorgapp.com

    I've just started playing with it, but so far it seems quite good.

    I use iCloud sync and then on a macOS machine, I have code that commits it to VCS, so that it's durable.

  • PaulRobinson 13 hours ago

    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.

    • medstrom 10 hours ago

      Also thinking about this. Requirements I've identified -- and this is why people give up and just run Emacs on Android:

      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 not making it easy to insert such a link.

      3. App must have satisfactory editing facilities. I know at least one app that doesn't even let you indent/dedent list bullets...

      4. 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!

      5. If you use a wiki-style workflow such as 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. Count your blessings if there's at least a good search facility.

      6. Instant & reliable sync. Logseq Sync is too buggy (at least it was in 2023). Things like Syncthing just aren't good enough if you don't also host a server that is always on. If sync conflicts are frequent, I'll be so wary of editing that I stop altogether.

  • jwrallie 12 hours ago

    How about a VPS running Emacs + Mosh and Blink? The only downside is that you need good internet coverage.

  • sharperguy 16 hours ago

    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?

    • xz18r 15 hours ago

      I use git (with Working Copy) for sync for this exact use-case.

    • kreetx 15 hours ago

      Yup: emacs for editing org-mode files but git for sync.

  • Jakob 16 hours ago

    iCloud surprisingly works without issues for me. You can switch on “keep downloaded” for the folder in question.

sroerick 19 hours ago

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.

  • Karrot_Kream 15 hours ago

    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.

    • sroerick 9 hours ago

      Ok, so I'm playing with OCAML a lot right now, and it seems like in this workflow I would lose access to all the IDE tooling that is provided. That's not the end of the world, but still a big workflow hit which is solved by just remote ssh into NVIM. I'm definitely curious about your workflow, though.

      • Karrot_Kream 5 hours ago

        Curious how would you lose it? Do you mean the tooling you're using won't work across Tramp? You should ask in an emacs community for more detailed feedback on this if you're interested.

  • yjftsjthsd-h 19 hours ago

    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.

    • sroerick 18 hours ago

      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

      • entrox 14 hours ago

        > 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.

        • sroerick 9 hours ago

          How does it handle things like project heirarchy? Does folder browsing work? Can I use an org-roam database? I've used TRAMP to open single files over SSH, but it seems less functional than mounting with FUSE. But I haven't looked into it extensively.

          I am definitely going to build out that bash script for the second use case, that sounds excellent. Thanks, I had no idea you could do that

          • entrox 8 hours ago

            Yes, it works basically everywhere you'd interact with a local file or directory.

            For example, you open a remote dired buffer with C-x C-f /ssh:host:/dir/. Afterwards, opening a file or navigating to a directory will open it remotely as well. You can also use project functions or magit seamlessly. I have plenty of bookmarks remotely etc.

            Fundamentally, you just prepend "/ssh:[user@]host:" to any path or file operation and things will magically Just Work (tm).

      • spit2wind 7 hours ago

        > but Emacs TUI just kind of feels like an afterthought

        This reads as a testament to how far the Emacs GUI has progressed!

      • kreetx 15 hours ago

        I've used git-annex and I'll tell you, it's overcomplicated. Git LFS is probably better.

  • Hetzner_OL 15 hours ago

    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

  • nurettin 17 hours ago

    Your setup is pretty awesome. But if you miss dropbox so much, why not set up owncloud on the hetzner machine?

deng 14 hours ago

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.

timonoko 12 hours ago

@grok solved the termux being too dark problem:

In .bashrc:

  # 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
PopePompus 12 hours ago

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.

  • caleb-allen 11 hours ago

    I started reddit.com/r/androidterminal for discussing this feature

    • PopePompus 10 hours ago

      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.

akshatjiwan 12 hours ago

I was quite surprised too to learn how well terminal apps work on Android. Termux is amazing.

a-dub 7 hours ago

termux is actually a pretty good little linux distro. i still keep wondering if the vm/container thing they shipped in recent versions of android for pixel will subsume it.

i was really hoping that with the display port over usb-c out that appeared in pixel 9 that there would be a useful desktop that could potentially support laptop replacement, but it seems all the desktop mode, termux and termux with x over vnc (or whatever it is) seem not quite mature. could be cool though, although, maybe better if there were a wireless link for the display and a way to have it not interfere with the phone being a phone.

iib 18 hours ago

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.

s20n 19 hours ago

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.

  • mbork_pl 18 hours ago

    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"...

    • Karrot_Kream 15 hours ago

      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.

      • mbork_pl 13 hours ago

        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... ;-)

        • Karrot_Kream 5 hours ago

          I think the C64 had a fine keyboard? It's mostly a standard layout and a lot chunkier than the small Bluetooth keyboards that tend to cause wrist issues. I also began coding in the CRT days so idk why that would be a barrier, I guess you mean for resolution? My issues are ergonomic not functionality oriented.

  • NoGravitas 8 hours ago

    If you've got it installed as suggested in the article, with its own termux installation, can't you compile the LSPs there and use them with eglot?

  • forgotaboutit 19 hours ago

    Is there an Android app that does Waypipe or wprs to forward a remote Emacs (with eglot/LSP) to your Android tablet?

  • hazebooth 19 hours ago

    what is preventing you from using eglot on android?

    • rrix2 19 hours ago

      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

krupan 18 hours ago

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

  • canistel 11 hours ago

    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.

    • spit2wind 3 hours ago

      Termux isn't required, unless you want other applications (e.g. git, python, or GCC).

      If you do want Termux, a signed and compatible version is provided by the Emacs devs. It should all be in the README (at least it always has been, through various updates, since I started using the Emacs on Android before it was merged into the main branch).

procaryote 16 hours ago

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

jamesfisher 14 hours ago

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?

  • a96 12 hours ago

    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).

anthk 15 hours ago

GNUs under Emacs it's the only FOSS Usenet client out there for Android.

spit2wind 13 hours ago

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:

  (tool-bar-add-item "spell"
                   'eval-last-sexp
                   'eval-last-sexp
                   :help "Eval last sexp")

  (tool-bar-add-item "back-arrow"
                   'xref-pop-marker-stack
                   'xref-pop-marker-stack
                   :help "Previous Definition")

  (tool-bar-add-item "fwd-arrow"
                   'xref-find-definitions
                   'xref-find-definitions
                   :help "Find Definitions")
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:

  (tool-bar-add-item-from-menu 'find-file "")
Otherwise, you can add to menus:

  (define-key global-map
            [menu-bar edit expand]
            '("Expand word" . dabbrev-expand))
Remapping the volume keys is super handy, especially when you change the behavior by mode or buffer:

  (global-set-key (kbd "<volume-down>") 'fill-paragraph)

  (global-set-key (kbd "<volume-up>") 'my-runner)

  (defun my-runner ()
  (interactive)
  (cond ((equal major-mode 'org-mode)
         (call-interactively (local-key-binding (kbd "C-c C-c"))))
        ((equal major-mode 'emacs-lisp-mode)
         (save-buffer)
         (call-interactively 'eval-defun))
        ((string= (my-get-file-name)
                  "/data/data/org.gnu.emacs/files/.emacs.d/my_python_file.py")
         (save-buffer)
         (with-current-buffer (shell "*shell*")
           (my-send-string
            "python /data/data/org.gnu.emacs/files/.emacs.d/my_python_file.py"
            t
            "*shell*")
         ))
        (t
         (message "Undefined action"))
        ))
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!

greggh 20 hours ago

(Travels back to the 90s)

Pretty good for Emacs*

Long live VI.

zeeeeeebo 18 hours ago

Now I want to see how it performs in android 16 desktop mode

SanjayMehta 20 hours ago

Well duh, I first used emacs on a lowly 386 running a variant of unix.

Today's SOCs are much more powerful.

  • zingar 16 hours ago

    With I assume full size display, keyboard, and full access to permissions. These are the real bottlenecks.