14 ms·
Cloudmacs: access your Emacs in browser
- jordigh 7y agoIt's a bit old and abandoned, by ymacs is another approach: http://www.ymacs.org/ http://www.ymacs.org/
- hatmatrix 7y agoCloudmacs seems favorable since it's not a rewrite but use of the existing infrastructure, which means all emacs packages are available to it.
- nuggien 7y agothis seems to be using gotty [1] to run spacemacs and serve it up as a web app. [1]: https://github.com/yudai/gotty https://github.com/yudai/gotty
- karlicoss 7y agoYep, should have summarized in a comment, thanks! I've got a 'how does it work section' in readme: https://github.com/karlicoss/cloudmacs#how-does-it-work https://github.com/karlicoss/cloudmacs#how-does-it-work - Gotty is a tool that allows accessing any TTY app as a web page (also allows forwarding input) - We use Gotty to run emacsclient --tty -a '' command, that connects to the existing Emacs instance or starts a new one. That makes the session persist tab closing, connection problems etc. - Your Emacs configs and files you want to expose to Cloudmacs are mapped in docker-compose.yml file. Rest of the setup is basically dirty business of setting up Docker container, permissions etc.
- jraph 7y agoDo you know how gotty compares to shellinabox? I use the latter when I cannot use SSH. There is WeTTY, too, that is based on xterm.js, which seems interesting. This one is listed in the readme of Gotty.
- karlicoss 7y agoI did some googling and couldn't find any clear differences, so just settled on gotty. If anyone knows, I'd be happy to add it to readme!
- Koshkin 7y agoQ: a) can emacs be "emscripted"? b) could one access emacs using the web browser built into emacs?
- jackcviers3 7y agoNo - it doesn't run js.
- selfishgene 7y agoCan this run graphical version of emacs or just terminal? Any support for Kui? (https://medium.com/the-graphical-terminal/visualizing-ci-cd-in-a-terminal-cf49c4d211cb https://medium.com/the-graphical-terminal/visualizing-ci-cd-...) Would like to be able use latex-preview in something like this.
- karlicoss 7y agoI was aiming for terminal to keep it minimal, and I think gotty only deals with standard text terminals, so I'd guess no. This setup: https://github.com/JAremko/browsermax https://github.com/JAremko/browsermax seems to deal with X, but not sure if it actually still works, and looks quite complicated.
- yjftsjthsd-h 7y agoI suppose the GUI analog to gotty is Apache Guacamole, which should run emacs fine (along with most anything else).
- selfishgene 7y agoSure ... but I presume that latency is the big issue here, even if Guacamole is connecting to localhost. Wish that preview-latex could work in terminal emacs using some graphics extension like kui (IBM) or DomTerm.
- taude 7y agoHas anyone done an Emacs compile to WASM, like someone did for Vim? https://rhysd.github.io/vim.wasm/ https://rhysd.github.io/vim.wasm/
- georgewsinger 7y agoIs this better than using emacs over SSH?
- karlicoss 7y agoIf you have access to ssh client and can connect to your server, then not really. Could however be better from security perspective if you don't want to expose a shell and the whole filesystem to potentially untrusted computers.
- MereInterest 7y agoFrom a security perspective, access to emacs should be considered just as dangerous as a shell. As a trivial example, M-x shell will bring up a shell within emacs.
- xtajv 7y agoBased on [1] it looks like you could gain root within the docker container. From there, you need a bit of luck to get root on the host [2]. [1] https://github.com/karlicoss/cloudmacs/blob/master/asEnvUser https://github.com/karlicoss/cloudmacs/blob/master/asEnvUser [2] https://security.stackexchange.com/a/153016 https://security.stackexchange.com/a/153016
- karlicoss 7y agoWithin the Docker container, everything runs as root by default, since container can't know your UID in advance. Main reason for this script is to make sure mounted files are not written back as root. Although a section explaining how to build container that runs as non-root user in the first place (even though it requires modifying Dockerfile, I think) would be useful, so I'll add it, thanks! Yep, potential kernel/Docker bugs would let you escape the sandbox, but I guess that's the risk I'm accepting.
- mapgrep 7y ago“The authors intended redisplay to be used on text terminals over slow links. Emacs, to this day, has code that activates if it thinks you’re running on a connection slower than 2600 baud.” https://m.facebook.com/notes/daniel-colascione/buttery-smooth-emacs/10155313440066102 https://m.facebook.com/notes/daniel-colascione/buttery-smoot... I feel like a grumpy fossil for asking this, but if your problem is “Sometimes you have to use non-personal computers where it's not possible/undesirable to install desktop Emacs,” why not run emacs the way it has been run in exactly those sorts of situations for almost 50 years? Remotely, via shell? Is the hat trick here that by stuffing emacs into a docker container and accessing it over the web you can consume like 10,000 times the energy and resources of just running it over ssh in a terminal window as God intended ? Sorry sorry that was a rude question. Now please get off my lawn. (Honestly though I ran emacs for 5+ years entirely on an overtaxed Sun workstation shared with dozens if not hundreds of other students, over ssh, and it was fine! I believe I even had color working. I began at 14.4kbps and went from there. I saw the machine once, maybe twice.)
- Spivak 7y agoBecause “a computer you don’t control” is almost certainly going to have a web browser available but not a SSH client or terminal. I have personally implemented Linux workstations where access to the terminal or any shell is prohibited.
- yjftsjthsd-h 7y agoSSH and terminal have long since been ported to browser, fwiw.
- nambit 7y agoSometimes I'm playing a video game on steam and would like to have the steam overlay browser to do some work while I respawn.
- pcr910303 7y ago> why not run emacs the way it has been run in exactly those sorts of situations for almost 50 years? Remotely, via shell? You know what? This project is doing exactly that; using Emacs remotely, via a terminal (not a shell BTW, shell is just a name for some specific language’s interpreter, that is good at launching sub processes). It’s using the gotty[0] library, which is an implementation of the tty[1] in the browser. It’s a natural extension; ttys have been ported for a few decades, starting from teleprinters[2] to text terminals[3] and terminal emulators[4]. [0] https://github.com/yudai/gotty https://github.com/yudai/gotty [1] https://en.m.wikipedia.org/wiki/Terminal_emulator https://en.m.wikipedia.org/wiki/Terminal_emulator [2] https://en.m.wikipedia.org/wiki/Teleprinter https://en.m.wikipedia.org/wiki/Teleprinter [3] https://en.m.wikipedia.org/wiki/Text_terminal https://en.m.wikipedia.org/wiki/Text_terminal [4] https://en.m.wikipedia.org/wiki/Terminal_emulator https://en.m.wikipedia.org/wiki/Terminal_emulator
- deleted 7y ago[deleted]
- fsiefken 7y agoWith Termux I run spacemacs on my phone and oculus go and quest, but this is neat as well. Now I could theoretically use emacs in Firefox Reality where I have all my other apps handy.
- pvinis 7y agoI would love to read or watch about how you use all that!
- karlicoss 7y agoYep, would be interested to know as well! I can somewhat comfortably use vim via termux, but emacs seems too much in terms of keybindings. Unless you connect external keyboard?
- fsiefken 7y agoBluetooth keyboard of course, can't really use vim or spacemacs without it. In Termux I install curl and all the prerequisites for a spacemacs install. Oculus TV can be made to use Android apps like Termux.
- nathias 7y agoemacs in browser, so you can use your emacs in browser while using your browser in emacs
- alexeiz 7y agoHow does this work with numerous Emacs keybindings which surely conflict with browser shortcuts? If you press Ctrl-N in the Cloudmacs, will your cursor move one line down or will the browser open a new window?
- celrod 7y agoChrome has an app mode. From memory, the steps are roughly 1. Press the three dots to the right of the url. 2. Click more tools on the drop down menu. 3. Finally "create shortcut". This should let you open that website in a mode where it hijacks relatively few keyboard shortcuts, so that `C-N`, `C-W`, etc, work. I don't think it gets all of them though.