Skip to content

SovereignShop/devenv

Repository files navigation

Table of Contents

  1. Installing
    1. Windows
    2. Linux
  2. Development
    1. Colaborative editing
    2. Communication
    3. Workflow
    4. Essential Commands

img

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 Clojurescript
  • modules/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 robot
  • modules/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.com
  • modules/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.

Installing

Make sure to do a git submodule update --recursive --init before installing.

Windows

  • 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)"
  • 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 git@github.com: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)

Linux

Once you have docker installed, Simply run:

  1. ./docker_build.sh (in this directory)
  2. ./docker_run.sh- (in this directory)

Development

Colaborative editing

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.

Communication

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.

Essential Commands

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

About

The Sovereign Shop development environment.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published