The maturity of GNU Guix System has basically made this setup obsolete. If you want a true operating system almost completely hacakable in Lisp, please move on to that distro.
I am attempting to document setting up this "fullstack Lisp" experience on my GitHub home page.
These setup scripts build a BSD-based Lisp workstation pictured above after a fresh FreeBSD or OpenBSD install which is how I used to do most of my computing before GNU Guix System. You can adapt these setup scripts to help build your own Lisp workstation; you must modify these scripts because they are designed specifically for my own workstations, but I leave them as FOSS so that users can learn about advanced computing styles. This style of computing is a throwback to the ancient Lisp machines.
Category | Selection |
---|---|
Operating systems | FreeBSD, OpenBSD |
Programming languages | Common Lisp, Emacs Lisp |
Shell | fish |
Text editor | Emacs |
Window manager | exwm |
File manager | Sunrise Commander |
Terminal | rxvt-unicode |
Version control | magit |
Search | the_silver_searcher |
IRC client | irssi |
Font | terminus |
I use the BSD operating systems as a base because I find them to be the cleanest, most consistent, and most stable *nix operating systems.
The highlight of my workstation is the exwm window manager. exwm turns Emacs into a full-blown tiling window manager hackable in Lisp. Furthermore, the Sly Common Lisp IDE and a few implementations of Common Lisp are shipped.
These scripts clone my .emacs.d/ in order to provide a Lisp-based window manager and development environment. You should reference my .emacs.d/enzuru/setup/enzuru-keys.el to learn how to control the system.
I usually install OpenBSD on laptops and exotic architectures (PowerPC & SPARC64) while dual-booting FreeBSD on my gaming machine (this makes compiling and running -CURRENT
a breeze). This is why my FreeBSD setup includes installing the Nvidia driver while excluding all "quality of life" settings for laptops.
Also, when I'm on an OpenBSD machine most of my programming is in Common Lisp and Emacs Lisp. When I'm on FreeBSD, I may also hack in Python, Ruby, and JavaScript, as well as do DevOps work with Linux tools like Terraform, Docker, and Kubernetes. You can clearly see this difference in the packages that I choose to install on each operating system.
I've also added to FreeBSD some cool TCP/IP optimizations that I found on a blog post that is no longer online.
Check out openbsd/setup and freebsd/setup to see how it all comes together.