My Guix profiles written in Scheme Lisp available as a learning tool.
The goal of my profiles are to create a Lisp-oriented workstation: the backend (operating system) is defined in Scheme Lisp and the frontend ("desktop" environment) and its tools are defined in Emacs Lisp. For portability, I write most of my personal tools in Common Lisp. Other popular development environments are supported too.
enzuru.scm
installs important packages. clone.scm
clones my .emacs.d and some important dotfiles for booting into StumpWM, Quicklisp, services for receiving and tagging email, etc.
The goal is for Guix and Emacs to respectively provide the "backend" and "frontend" of my programming environment.
Feature | Tool |
---|---|
Browser | Nyxt |
Editor | Emacs |
File manager | Midnight Commander |
GPU stack | ROCm |
Shell | fish |
Terminal | kitty |
Terminal multiplexer | tmux |
Window manager | StumpWM |
- C
- C++
- Go
- Objective-C (GNUstep)
- Rust
- Clojure
- Common Lisp (Steel Bank)
- Emacs Lisp
- Scheme (Guile)
You'll want to modify these files to meet your own usecase; shouldn't take long.
Setting up my Guix system is as simple as:
guix install git ansible
git clone [email protected]:enzuru/profiles.git
cd profiles
ansible-playbook clone.yml
# reboot
guix pull
guix home reconfigure home/config.scm
sudo guix system reconfigure config.scm
# reboot
Note, sudo
is needed because that guix command requires the user's path, so don't just run it as root.
Probably works on any modern version of Guix. Here's what I've actually tested recently:
- Guix 1.3
- Guix 1.4
Licensed under the GPLv3; copyright is assigned to my eponymous charity enzu.ru