All Projects → JAremko → Docker Emacs

JAremko / Docker Emacs

Licence: gpl-3.0
Dockerized Emacs (GUI)

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to Docker Emacs

Flameshot
Powerful yet simple to use screenshot software 🖥️ 📸
Stars: ✭ 15,429 (+6787.95%)
Mutual labels:  cross-platform, gui
Fyne
Cross platform GUI in Go inspired by Material Design
Stars: ✭ 15,142 (+6659.82%)
Mutual labels:  cross-platform, gui
Gtk Fortran
A GTK / Fortran binding
Stars: ✭ 171 (-23.66%)
Mutual labels:  cross-platform, gui
Oni
Oni: Modern Modal Editing - powered by Neovim
Stars: ✭ 11,466 (+5018.75%)
Mutual labels:  editor, gui
Mednaffe
A front-end (GUI) for mednafen emulator
Stars: ✭ 200 (-10.71%)
Mutual labels:  cross-platform, gui
Evil
The extensible vi layer for Emacs.
Stars: ✭ 2,265 (+911.16%)
Mutual labels:  emacs, editor
Nyaovim
Web-enhanced Extensible Neovim Frontend
Stars: ✭ 2,166 (+866.96%)
Mutual labels:  editor, gui
Docker X11 Bridge
Simple Xpra X11 bridge to enable GUI with any docker image
Stars: ✭ 143 (-36.16%)
Mutual labels:  gui, docker-image
Mojs Curve Editor
GUI for live easing/property curves editing
Stars: ✭ 196 (-12.5%)
Mutual labels:  editor, gui
Spotlightify
The Spotify overlay controller
Stars: ✭ 190 (-15.18%)
Mutual labels:  cross-platform, gui
Abandon
😌 Simple and Robust Accounting
Stars: ✭ 155 (-30.8%)
Mutual labels:  cross-platform, gui
Mojs Timeline Editor
GUI for interactive `html`/`custom points`/`timeline` editing while crafting your animations
Stars: ✭ 215 (-4.02%)
Mutual labels:  editor, gui
Komodoedit
Komodo Edit is a fast and free multi-language code editor. Written in JS, Python, C++ and based on the Mozilla platform.
Stars: ✭ 1,972 (+780.36%)
Mutual labels:  cross-platform, editor
Autopilot Rs
A simple, cross-platform GUI automation module for Rust.
Stars: ✭ 168 (-25%)
Mutual labels:  cross-platform, gui
Omnigui
A cross-platform GUI framework from scratch just to learn
Stars: ✭ 147 (-34.37%)
Mutual labels:  cross-platform, gui
Gwork
Skinnable GUI with useful widget collection. Fork of GWEN.
Stars: ✭ 179 (-20.09%)
Mutual labels:  cross-platform, gui
Avalonia
A cross platform XAML framework for .NET
Stars: ✭ 12,588 (+5519.64%)
Mutual labels:  cross-platform, gui
Borealis
Hardware accelerated, controller and TV oriented UI library for PC and Nintendo Switch (libnx).
Stars: ✭ 135 (-39.73%)
Mutual labels:  cross-platform, gui
Minecraft World Downloader
Download Minecraft worlds, extend server's render distance
Stars: ✭ 187 (-16.52%)
Mutual labels:  cross-platform, gui
Libagar
Cross-Platform GUI Toolkit (stable)
Stars: ✭ 212 (-5.36%)
Mutual labels:  cross-platform, gui

Dockerized Emacs with GUI(Mac, Windows, GNU/Linux and your browser)

Images are clickable

http://i.imgur.com/rONW3c3.jpg http://i.imgur.com/mjl9ALQ.jpg http://i.imgur.com/RB46TA9.jpg

docker-x11-bridge + a web browser https://github.com/JAremko/docker-x11-bridge/raw/master/img/demoHD.jpg

Why?

  • Reap the benefits of Emacs and other GNU/Linux tools on Windows/MacOS machines
  • Use docker hub to auto-build your environment and store full backups for free
  • Build once and work with the same development environment everywhere
  • Run untrusted/risky code in the tunable sandbox with CPU/network/disk quotas
  • Try new tools, experiment and roll back changes when something goes wrong
  • Share your setup with others or extend someone else’s development environment
  • Run multiple Emacs instances on the same machine isolated
  • An easy way to swap Emacs version (emacs26,emacs25,emacs-snapshot) for debugging
  • Pause container to free resources temporarily
  • Checkpoint & Restore - maybe the fastest way to start a “heavy” environment
  • Friendly for networks with low upload speed/quotas

Tags:

If you need a different Emacs version/configuration checkout Silex/docker-emacs

How to use

First get docker for your OS. Then you can use one of the images as a base(FROM) for your Dockerfile. Simple example, Spacemacs distribution. It will allow you to install and backup additional software/package dependencies. With Dockerfile ADD instruction you can extract your .emacs.d from archives and remote repositories like GitHub using URL. Also you can simply run one of the images:

MacOS:

Get XQuartz

open -a XQuartz

In the XQuartz preferences, go to the “Security” tab and make sure you’ve got “Allow connections from network clients” ticked

ip=$(ifconfig en0 | grep inet | awk '$1=="inet" {print $2}')
xhost + $ip
docker run -ti --name emacs\
 -e DISPLAY=$ip:0\
 -e UNAME="emacser"\
 -e GNAME="emacsers"\
 -e UID="1000"\
 -e GID="1000"\
 -v <path_to_your_.emacs.d>:/home/emacs/.emacs.d\
 -v <path_to_your_workspace>:/mnt/workspace\
 jare/emacs emacs

source

other method

Windows

Get Cygwin with xinit, xorg-server and optionaly winpty(to run Emacs container with -t)

export DISPLAY=<your-machine-ip>:0.0
startxwin -- -listen tcp &
xhost + <your-machine-ip>
docker run --name emacs\
 -e DISPLAY="$DISPLAY"\
 -e UNAME="emacser"\
 -e GNAME="emacsers"\
 -e UID="1000"\
 -e GID="1000"\
 -v <path_to_your_.emacs.d>:/home/emacs/.emacs.d\
 -v <path_to_your_workspace>:/mnt/workspace\
 jare/emacs emacs

Or with -ti via winpty

winpty docker run -ti --name emacs\
-e DISPLAY="$DISPLAY"\
-e UNAME="emacser"\
-e GNAME="emacsers"\
-e UID="1000"\
-e GID="1000"\
-v <path_to_your_.emacs.d>:/home/emacs/.emacs.d\
-v <path_to_your_workspace>:/mnt/workspace\
jare/emacs emacs

source You can use @ninrod 's setup

GNU/Linux

UID and preferably UNAME should match the host's user id. Also make sure that $DISPLAY variable is set

docker run -ti --name emacs -v /tmp/.X11-unix:/tmp/.X11-unix:ro\
 -e DISPLAY="unix$DISPLAY"\
 -e UNAME="emacser"\
 -e GNAME="emacsers"\
 -e UID="1000"\
 -e GID="1000"\
 -v <path_to_your_.emacs.d>:/home/emacs/.emacs.d\
 -v <path_to_your_workspace>:/mnt/workspace\
 jare/emacs emacs

That's it! Now you should see Emacs window.

If it doesn't work

You may need to allow local connection for the user UNAME should match the hosts user id.

xhost +si:localuser:<UNAME>

Or allow local connection from the container's hostname(This should work with any UID)

xhost +local:`docker inspect --format='{{ .Config.Hostname }}' emacs`

source

Also you can run it with docker-x11-bridge
Pros:
  • Same client for GNU/Linux, Windows and MacOS + web browser
  • Persistent server (you can connect and disconnect without disrupting Emacs)
  • Interactive screen sharing demo
  • Use Emacs in web-browser (O_O) demo
Cons:
  • Lag spikes with some OSes
Basic docker commands to get you started:
  • docker rm -f emacs - remove emacs container
  • docker restart emacs - restart emacs container
  • docker rmi -f jare/emacs - remove jare/emacs image
  • docker pull jare/emacs - get newer jare/emacs version
  • docker images -a - list all images
  • docker ps -a - list all containers
  • docker run ... jare/emacs - run the default command
  • docker run -ti ... jare/emacs /bin/bash - start bash
  • docker exec emacs /usr/bin/emacs - start /usr/bin/emacs in the running emacs container
  • docker logs emacs - print emacs container's logs
  • docker run ... -p 8080:8080 ... jare/emacs - access container's server from localhost:8080
  • docker cp <from_my_local_machine_path> emacs:/<to_my_emacs_container_path>
  • docker cp emacs:/<from_my_emacs_container_path> <to_my_local_machine_path>
  • Manage data in containers with Docker volumes. Example: - docker volume create --name my-workspace - docker run ... -v my-workspace:/mnt/workspace ... jare/emacs - docker run ... -v my-workspace:/home/developer/workspace ... jare/vim-bundle
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].