Skip to content
View enzuru's full-sized avatar

Block or report enzuru

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
enzuru/README.md

Building a futuristic Lisp workstation

GNU/Linux with a Lisp user space on top

I am currently working on the GNU operating system in order to create a futuristic Lisp workstation, with Linux as its kernel, and a rich Lisp user space on top.

Some projects that I contribute to (or plan to):

Most of my user space tools are written in Emacs Lisp, with my window management handled by Common Lisp, and my system configuration declaratively written in Guile.

Features

High-performance parallel computing

By combining GNU Guix's high-performance computing emphasis with advanced Clojure parallel computing libraries, one ends up with a powerful workstation for expressing complex workloads in elegant forms.

Trustless full-source bootstrap

Secure yourself against malevolent state actors and never trust someone else's unverified binaries again, as you can build from the source all the way down.

Hack your operating system live

Lisp user space provides an introspective, hackable, and transactionable operating system that can be modified live in a REPL.

Text-based and keyboard-driven

Lisp user space is centered on text-based user interfaces instead of graphical user interfaces, and can be used without a mouse, which makes it easier to use for people living with disabilities as well as power users.

Emacs has text-based keyboard-driven applications for all the major desktop environment functions, such as window management, file management, web browsing, mail, streaming music, chatting, shell management, version control, and life organization. All these tools can be modified and adjusted live as you use them.

Perfect complement to POSIX

If in POSIX everything is truly a file, then the logical conclusion is that the ideal POSIX "desktop environment" should be a file editor, and the only editor that can function as such is GNU Emacs.

Respects your freedom

The operating system is mostly defined declaratively in Scheme Lisp and the applications are mostly coded imperatively in Emacs Lisp. Both can be inspected and hacked live in a REPL, making it a pure expression of the libre software ethic, and an incredibly versatile tool for a skilled programmer.

Follow me!

I continue to progress on publishing tools and documentation for this rich computing style.

Follow me on GitHub to keep track of my contributions to various Lisp user space codebases! Development on the GNU operating system itself is limited to the official mailing lists for each project. And follow me on Medium in order to follow my latest announcements and tutorials.

Using Lisp user space

It's remarkably easy to get a Lisp user space setup on top of Linux:

  • Install the Guix GNU/Linux distribution
  • Only install nonguix if you truly require additional hardware support
  • Install Emacs (guix install emacs)
  • Install Geiser (M-x package-install geiser-guile) and SLY (M-x package-install sly)
  • Install a Lisp window manager like exwm (M-x package-install exwm) or StumpWM (guix install stumpwm)
  • Bootstrap your window manager (exwm, StumpWM)
  • Boot into your window manager (exwm, StumpWM)

Pinned Loading

  1. stumpwm/stumpwm-contrib stumpwm/stumpwm-contrib Public

    Extension Modules for StumpWM

    Common Lisp 232 140

  2. influxdata/helm-charts influxdata/helm-charts Public

    Official Helm Chart Repository for InfluxData Applications

    Mustache 237 338

  3. mcrute/pydora mcrute/pydora Public

    Pandora API Client and Command Line Player written in Python

    Python 65 19

  4. .emacs.d .emacs.d Public

    A maximalist Emacs config tracking the latest trends

    Emacs Lisp 78 3

  5. profiles profiles Public

    Guix profiles and Scheme code for setting up a Lisp-based workstation on top of GNU Guix

    Scheme 6

  6. home home Public

    My dotfiles, scripts, and Lisp code for StumpWM, SBCL, Slynk, etc

    Common Lisp 7