This is the docker environment for Sovereign Shop development. It includes other Repos as Git Submodules. These include:
modules/doom.d
: The doom emacs config directory.moduues/emacs.d
: The doom emacs install directory.modules/skyhook
: Working repo for the (formerly) EuroZone project, now evolving.modules/skyhook/deps/modules/swig
: Decomplected WYSYWIG for Clojurescriptmodules/toko
: Delta-based tokenizer for automatic on-line serialization of textual documents as facts.modules/butterfly-motor
: OpenSCAD Pneumatic motor.modules/heatsealer
: OpenSCAD Heat Sealer for welding plastic sheets.modules/foam-generator
: Foam generator for making aircrete.modules/pu-sprayer
: Polyurethane spray gun for DIYers.modules/vane-motor
: Vane style pneumatic motor.modules/cement-pump
: Investigations into designs for a low-cost cement pump.modules/cabinetry-joins
: Simple fdm-optimized joints for low-cost storage.modules/vine-drill
: investigations into well-drilling machine based on a vine robotmodules/dlfp
: Investigations of Dragon’s Deep Learning For Programmers. Includes book and code.modules/codenames
: An implementation of the game Codenames in clojure/clojurescript.modules/blog
: My personal blog: www.cartesiantheatrics.commodules/clj-raft
: Repo for RAFT algorithm implementation.modules/clj-rosbag
: ROS bag reader implementation in Clojure.modules/practice
: Cross-disciplinary practice problems based on org-mode spaced repetition framework
The environment includes Python, Clojure, Java, Node.js, and Clojurescript.
Make sure to do a git submodule update --recursive --init
before installing.
- Install WSL 2.
- Install Ubuntu 22.04 with WSL 2.
- Install Docker Desktop for Windows.
- Enable WSL 2 engine in docker: go to settings and toggle “Use the WSL 2 based engine”.
- Restart docker.
- Install vcxsrv using windows.
- Create a shortcut to launch cvxsrv on your desktop:
- Right Click -> new -> shortcut.
- past this in the “location” field:
"C:\Program Files\VcXsrv\vcxsrv.exe" :0 -ac -terminate -lesspointer -multiwindow -clipboard -wgl -ac -dpi auto
- Save shortcut
- Launch CvSxrv by double clicking the X icon. You should see it show up in your running programs panel.
- Login into ubuntu.
- Install terminator:
sudo apt install terminator
- Launch terminator by just invoking the command at the prompt. You should see a new terminal window show up. If you get this far, it means your X window server is working.
- Install some programs:
- zsh & git:
sudo apt install zsh git
- oh-my-zsh:
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
- zsh & git:
- Launch into zsh terminal.
- Configure git:
git config --global user.email "<your email here>" && git config --global user.name "<your name here>"
- Create an ssh-key:
ssh-keygen -C "<email>"
(default all the options)- Cat the public key:
cat ~/.ssh/id_rsa.pub
- Copy/Paste your public key into github. See here, click “New SSH key”.
- Create ssh session:
eval `ssh-agent` && ssh-add ~/.ssh/id_rsa
- Clone the repo:
git clone [email protected]:cartesian-theatrics/games.git --recursive
- NOTE: make sure you’ve accepted all three of my github collaboration invites before cloning. You need to be a collaborator on all the repos.
- Build docker container:
./docker_build.sh
(this will take a long time the first time) - Run docker container:
./docker_run_windows.sh
(this will also take a long time the first time)
Once you have docker installed, Simply run:
./docker_build.sh
(in this directory)./docker_run.sh-
(in this directory)
We’ll use crdt.el for collaborative editing. It’s designed for org-mode and allows you to share any emacs buffer for collaborative editing. See the README here. The docker container is already setup with `tuntox`, so follow the guide for that to share your buffers.
I’ll make sure that CRDT is supported out-of-the-box as I setup the emacs environment here. I’ve tested it already with two computers and it works wonderfully.
I installed telegram into the container with voice support so we should be able to chat to each other directly in emacs. You’ll want to install telegram for your desktop: https://desktop.telegram.org/
Just run M-x telega
(say yes to the compile questions) to connect the emacs
client to your telegram desktop.
Category | Hint | key pattern | command | Note |
---|---|---|---|---|
Emacs | Emacs is stuck | Ctrl-g |
||
Navigation | Enter Normal | ESC |
evil-normal-state | it’s recommended to remap CAPS to ESC |
Navigation | Enter Insert | i |
evil-insert | |
Navigation | Enter Visual | v |
evil-visual-state | Used for selecting text |
Doom | Get Help | SPC h d h |
doom/help | Learn Doom |
Buffers | Goto Buffer | SPC b b |
switch-workspace-buffer | |
Buffers | Goto Any Buffer | SPC b B |
switch-buffer | Inclues Process Buffers |
Buffers | Manage Buffers | SPC b i |
ibuffer | Press d to mark, d to delete |
Terminal | Open term | M-x vterm |
vterm | Open oh-my-zsh shell |
Search | Recent files | SPC f r |
recentf-open-files | Find recent files. |
Search | Project files | SPC p f |
projectile-find-file | Find file in project (git repo) |
Search | Omni Search | SPC * |
Omni search files in project | |
Search | Command Search | SPC : |
execute-extended-command | Search for a emacs command |
Chat | Open Telegram client | M-x telega |
Open telegram chat client | |
Version Control | Manage Git | SPC g g |
magit-status | The ultimate git interface |
Version Control | Get help | h |
magit-popup-help | Run in magit-satus context |