Skip to content

Commit baff6cc

Browse files
committed
Improved README
1 parent b57db3d commit baff6cc

File tree

2 files changed

+47
-3
lines changed

2 files changed

+47
-3
lines changed

README.md

Lines changed: 47 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,49 @@
1-
# Lisp user space
1+
# Building a futuristic Lisp workstation
22

3-
An [org-roam](https://www.orgroam.com/) tree of my Lisp user space workstation, exported to [org-roam-ui](https://github.com/org-roam/org-roam-ui) with [publish-org-roam-ui](https://github.com/ikoamu/publish-org-roam-ui).
3+
![GNU/Linux with a Lisp user space on top](screenshot.png "Screenshot of lisp hacking in exwm running on Guix System")
44

5-
Available live here: https://enzuru.github.io/lisp-user-space/
5+
This web of projects documents how you can use the [GNU operating system](https://www.gnu.org/) in order to create a futuristic Lisp workstation, with Linux as its kernel, and a rich Lisp user space on top.
6+
7+
Using [org-roam-ui](https://github.com/org-roam/org-roam-ui), you can [visually navigate](https://enzuru.github.io/lisp-user-space/) how these projects work together to build a Lisp workstation.
8+
9+
You can have your [user space tools written in Emacs Lisp](https://github.com/enzuru/.emacs.d), your [window management handled by Common Lisp](https://github.com/enzuru/.stumpwm.d), and [your system configuration declaratively written in Guile Scheme](https://github.com/enzuru/profiles).
10+
11+
## Features
12+
13+
### High-performance parallel computing
14+
15+
By combining GNU Guix's [high-performance computing emphasis](https://hpc.guix.info/) with [advanced Clojure parallel computing libraries](https://dragan.rocks/software/), one ends up with a powerful workstation for expressing complex workloads in elegant forms.
16+
17+
### Trustless full-source bootstrap
18+
19+
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](https://guix.gnu.org/blog/2023/the-full-source-bootstrap-building-from-source-all-the-way-down/).
20+
21+
### Hack your operating system live
22+
23+
Lisp user space provides an [introspective](https://www.gnu.org/software/guile/manual/html_node/Introspection.html), [hackable](https://www.gnu.org/philosophy/rms-hack.en.html), and [transactionable](https://guix.gnu.org/en/blog/2018/multi-dimensional-transactions-and-rollbacks-oh-my/) operating system that can be modified live in a [REPL](https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop).
24+
25+
### Text-based and keyboard-driven
26+
27+
Lisp user space is centered on [text-based user interfaces](https://en.wikipedia.org/wiki/Text-based_user_interface) instead of [graphical user interfaces](https://en.wikipedia.org/wiki/Graphical_user_interface), and can be used [without a mouse](https://www.nongnu.org/ratpoison/inspiration.html), which makes it easier to use for people living with disabilities as well as power users.
28+
29+
Emacs has text-based keyboard-driven applications for all the major desktop environment functions, such as [window management](https://github.com/ch11ng/exwm), [file management](https://github.com/suntsov/efar), [web browsing](https://github.com/emacsmirror/elpher), [mail](https://notmuchmail.org/notmuch-emacs/), [streaming music](https://github.com/agrif/pianobar.el), [chatting](https://www.gnu.org/software/emacs/manual/html_mono/erc.html), [shell management](https://www.gnu.org/software/emacs/manual/html_mono/eshell.html), [version control](https://magit.vc/), and [life organization](https://orgmode.org/). All these tools can be modified and adjusted live as you use them.
30+
31+
### Perfect complement to POSIX
32+
33+
If in [POSIX](https://en.wikipedia.org/wiki/POSIX) everything is [truly a file](https://en.wikipedia.org/wiki/Everything_is_a_file), then [the logical conclusion](https://github.com/NetBSD/src/blob/cfd6b2f509474ce4eee8adcb3259acbdd754f5e1/doc/roadmaps/desktop#L259) is that the ideal POSIX "desktop environment" should be a file editor, and the only editor that can function as such is GNU Emacs.
34+
35+
### Respects your freedom
36+
37+
The operating system is mostly defined [declaratively](https://en.wikipedia.org/wiki/Declarative_programming) in Scheme Lisp and the applications are mostly coded [imperatively](https://en.wikipedia.org/wiki/Imperative_programming) 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.
38+
39+
## Setting up a Lisp user space
40+
41+
It's remarkably easy to get a Lisp user space setup on top of Linux:
42+
43+
- Install the [Guix GNU/Linux distribution](https://guix.gnu.org)
44+
- Only install [nonguix](https://gitlab.com/nonguix/nonguix) if you truly require additional hardware support
45+
- Install Emacs (`guix install emacs`)
46+
- Install [Geiser](https://www.nongnu.org/geiser/) (`M-x package-install geiser-guile`) and [SLY](https://github.com/joaotavora/sly) (`M-x package-install sly`)
47+
- Install a Lisp window manager like [exwm](https://github.com/emacs-exwm/exwm) (`M-x package-install exwm`) or [StumpWM](https://github.com/stumpwm/stumpwm) (`guix install stumpwm`)
48+
- Bootstrap your window manager ([exwm](https://github.com/ch11ng/exwm/wiki#bootstrap), [StumpWM](https://github.com/stumpwm/stumpwm/wiki/StartUp))
49+
- Boot into your window manager ([exwm](https://github.com/ch11ng/exwm/wiki/Configuration-Example#configuration-of-x-init-script), [StumpWM](https://stumpwm.github.io/git/stumpwm-git_1.html))

screenshot.png

609 KB
Loading

0 commit comments

Comments
 (0)