Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jjba23/sss
Supreme Sexp System - SSS - a Lisp machine adventure
https://github.com/jjba23/sss
common-lisp dotfiles emacs gnu guile guix lisp nix scheme
Last synced: 3 days ago
JSON representation
Supreme Sexp System - SSS - a Lisp machine adventure
- Host: GitHub
- URL: https://github.com/jjba23/sss
- Owner: jjba23
- License: gpl-3.0
- Created: 2024-10-08T10:49:13.000Z (28 days ago)
- Default Branch: trunk
- Last Pushed: 2024-10-29T14:46:23.000Z (7 days ago)
- Last Synced: 2024-10-29T17:26:00.348Z (7 days ago)
- Topics: common-lisp, dotfiles, emacs, gnu, guile, guix, lisp, nix, scheme
- Language: Emacs Lisp
- Homepage:
- Size: 14.5 MB
- Stars: 29
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.org
- License: COPYING
Awesome Lists containing this project
README
#+title: Supreme Sexp System - SSS
#+author: Josep Bigorra
#+email: [email protected]
#+options: num:nilA Lisp machine adventure, where GNU and Lisp are celebrated, GNU is love, Emacs and StumpWM are life.
gnu emacs + stumpwm + gnu guix
Find the divine sayings, and the destined configurations, all my Guix, Scheme, StumpWM, Common Lisp and Emacs Lisp configurations here for learning you a fully Lisp machine with GNU/Linux for a great good.
*** What lies here?
Knowledge you may find in the repo includes:
- Emacs configurations with Emacs Lisp + Elpaca
- GNU Guix system configurations with Guile Scheme
- StumpWM configurations in Common Lisp with GNU Guix modules for SBCL
- kitty terminal emulator configurations from Guile Scheme (in GNU Home)
- picom configurations from Guile Scheme (in GNU Home)
- rofi configurationsNote: Screenshot below might be outdated and no longer representative of the current, everchanging state of these "dotfiles".
#+begin_html
#+end_html*** Introduction
These are my configuration files, which also explain a lot about the tooling I use and enjoy, and can teach you a thing or two.If you like my work, please support me by [[https://bmc.link/jjbigorra][buying me a cup of coffee ☕]] so I can continue with a lot of motivation.
This is the set of files that powers my day-to-day computing experience, so do not track my dotfiles (rolling, unstable, and untested), but feel free to use them and take inspiration from them or fork and work under the terms of the GNU GPL v3 or newer.
#+begin_html
#+end_htmlIn some ways this is a laboratory of experimentation for my computing environment. What I do with any other program that forms part of sss is only meant to work for me. As such, I may introduce breaking changes without prior notice.
This is all to say that you understand the risks associated with tracking an ever-changing project that does not enjoy widespread testing and whose target audience is only me. If you are fine with that and are willing to assume responsibility for any possible breakage, then please feel welcome to follow along. You can always open an issue here or contribute any fixes, if you will.
*** Per host - per-host.scm
It is *REQUIRED* to include a ~per-host.scm~ in the root of this project, which is excluded from Git, and will determine certain settings for your own machine.
Find here a reference configuration with what is required.#+begin_src scheme
(define sss-filesystems
(list (file-system
(device "/dev/nvme0n1p3")
(mount-point "/")
(type "ext4"))
(file-system
(device "/dev/nvme0n1p1")
(mount-point "/boot/efi")
(type "vfat"))))
#+end_src
*** Words of AdviceLearning Lisps is really going down a rabbit hole, but trust me, you will come out with a better understanding of programming as a whole out the other end.
This configuration is heavily biased towards containing a ~joe~ user who also acts as administrator for most of the time. Your mileage may vary (YMMV).
Some commands in the ~Makefile~ are more geared towards ~joe~ since we assume a device is most frequently only tended to by one system administration most of the time. Some examples are ~make fr~ or ~make jr~.
The system and home folders of users are managed independently of each other, in quite a loosely coupled manner.
It's possible you need to some manual installations, and temporary workarounds, in order to install ~sss~ on a brand-new Guix installation. For example including ~nonguix~ in your channels (=~/.config/guix/channels.scm=). You might also need to install tools like Git and GNU make temporarily.
#+begin_src scheme
(cons* (channel
(name 'nonguix)
(url "https://gitlab.com/nonguix/nonguix")
(introduction
(make-channel-introduction
"897c1a470da759236cc11798f4e0a5f7d4d59fbc"
(openpgp-fingerprint
"2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5"))))
%default-channels)#+end_src