diff --git a/Makefile b/Makefile
index 982c59b..63638bd 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,9 @@
-.PHONY: all
+.PHONY: all format
all: .system
.system: config.scm
sudo guix system reconfigure $<
touch $@
+
+format: config.scm
+ guix style -f $<
diff --git a/README.md b/README.md
index bdf6ff6..6dcae53 100644
--- a/README.md
+++ b/README.md
@@ -2,10 +2,15 @@ _The nights are cold in the forest, but my ThinkPad keeps me warm._
Welcome to my GNU/ashram, an ascetic's abode.
-_The wind lisps into the leaves. The source is pure and the waters run clear._
+_The wind lisps through the leaves. The source is pure and the waters run clear._
The next steps on the Path:
-- [ ] install guix
-- [ ] install emacs (magit, geiser, org-mode, evil)
-- [ ] exwm or gnome?
+- [x] install guix
+- [x] install emacs (magit, geiser, org-mode, evil)
+- [x] exwm or gnome?
+- [ ] `wget https://guix.gnu.org/guix-refcard.pdf`
+- [ ]
+- [ ]
+- [ ] `guix install book-sicp info-reader && info sicp`
+- [ ]
diff --git a/config.scm b/config.scm
index b21d9af..637d2b3 100644
--- a/config.scm
+++ b/config.scm
@@ -1,119 +1,104 @@
-;; This is an operating system configuration generated
-;; by the graphical installer.
-;;
-;; Once installation is complete, you can learn and modify
-;; this file to tweak the system configuration, and pass it
-;; to the 'guix system reconfigure' command to effect your
-;; changes.
+;; -*- mode: scheme; -*-
-;; Indicate which modules to import to access the variables
-;; used in this configuration.
(use-modules (gnu)
- (gnu home)
- (gnu home services)
- (gnu home services shells)
- (gnu home services dotfiles)
- (gnu services)
- (gnu packages admin)
- (gnu packages gnuzilla)
- (gnu packages video)
- (guix gexp))
-(use-service-modules cups desktop guix networking ssh xorg)
+ (gnu home)
+ (gnu home services)
+ (gnu home services shells)
+ (gnu home services dotfiles)
+ (gnu services)
+ (gnu services admin)
+ (guix gexp))
+(use-service-modules cups
+ desktop
+ guix
+ networking
+ ssh
+ xorg)
+
+(define user-packages
+ (list "icecat"
+ "mpv"
+ "emacs"
+ "emacs-geiser"
+ "emacs-geiser-guile"
+ "emacs-guix"
+ "guile"
+ "ripgrep"
+ "fd"
+ "make"
+ "font-fira-sans"
+ "font-fira-code"))
+
+(define system-packages
+ (list "htop" "git" "vim"))
(define muni-home
(home-environment
- (packages (map specification->package
- '("icecat"
- "mpv")))
(services
- (append (list (service home-bash-service-type
- (home-bash-configuration
- (guix-defaults? #t)
- (aliases
- '(("ll" . "ls -l")))
- (variables
- `(("HISTSIZE" . "50000")))))
- (service home-files-service-type
- `((".guile" ,%default-dotguile)))
- (service home-dotfiles-service-type
- (home-dotfiles-configuration
- (directories '("./dotfiles"))))
- (service home-xdg-configuration-files-service-type
- `(("nano/nanorc" ,%default-nanorc))))
- %base-home-services))))
+ (append (list (service home-bash-service-type
+ (home-bash-configuration
+ (guix-defaults? #t)
+ (aliases '(("ll" . "ls -l")))
+ (variables `(("HISTSIZE" . "50000")))))
+ (service home-files-service-type
+ `((".guile" ,%default-dotguile)))
+ (service home-dotfiles-service-type
+ (home-dotfiles-configuration (directories '("./dotfiles"))))
+ (service home-xdg-configuration-files-service-type
+ `(("nano/nanorc" ,%default-nanorc))))
+ %base-home-services))))
(operating-system
(locale "en_US.utf8")
(timezone "Europe/Berlin")
(keyboard-layout (keyboard-layout "de"))
(host-name "ashram")
+ (issue "Welcome to my GNU/ashram, an ascetic's abode.")
- ;; The list of user accounts ('root' is implicit).
(users (cons* (user-account
(name "muni")
(comment "muni")
(group "users")
(home-directory "/home/muni")
(supplementary-groups '("wheel" "netdev" "audio" "video")))
+ ;; "root" is implicit
%base-user-accounts))
- ;; Packages installed system-wide. Users can also install packages
- ;; under their own account: use 'guix search KEYWORD' to search
- ;; for packages and 'guix install PACKAGE' to install a package.
- (packages (append (map specification->package
- '("emacs"
- "icecat"
- "emacs-geiser"
- "emacs-geiser-guile"
- "guile"
- "git"
- "ripgrep"
- "fd"
- "htop"
- "make"
- "vim"))
- %base-packages))
+ (packages (append (map specification->package
+ (append user-packages system-packages))
+ %base-packages))
- ;; Below is the list of system services. To search for available
- ;; services, run 'guix system search KEYWORD' in a terminal.
(services
- (append (list
-
- ;; To configure OpenSSH, pass an 'openssh-configuration'
- ;; record as a second argument to 'service' below.
- (service openssh-service-type)
- (service tor-service-type)
- (service enlightenment-desktop-service-type)
+ (append (list (service openssh-service-type)
(service gnome-desktop-service-type)
- (service guix-home-service-type `(("muni" ,muni-home)))
+ (service guix-home-service-type
+ `(("muni" ,muni-home)))
(set-xorg-configuration
(xorg-configuration (keyboard-layout keyboard-layout))))
-
- ;; This is the default list of services we
- ;; are appending to.
%desktop-services))
+
(bootloader (bootloader-configuration
(bootloader grub-bootloader)
(targets (list "/dev/sda"))
(keyboard-layout keyboard-layout)))
+
(swap-devices (list (swap-space
(target (uuid "e925b220-066c-45ea-9b8c-4cb6141dc6a3")))))
- ;; The list of file systems that get "mounted". The unique
- ;; file system identifiers there ("UUIDs") can be obtained
- ;; by running 'blkid' in a terminal.
- (file-systems (cons* (file-system
- (mount-point "/boot/efi")
- (device (uuid "8066-63C2"
- 'fat32))
- (type "vfat"))
- (file-system
- (mount-point "/")
- (device (uuid "f84f19c8-23f4-4c4a-b9cc-bc8cde2704a5"
- 'ext4))
- (type "ext4"))
- (file-system
- (mount-point "/home")
- (device (uuid "3b69b95f-05db-47ed-b8b4-f1649ce8f6d8"
- 'ext4))
- (type "ext4")) %base-file-systems)))
+ (file-systems (append (list (file-system
+ (mount-point "/boot/efi")
+ (device (uuid "8066-63C2"
+ 'fat32))
+ (type "vfat"))
+ (file-system
+ (mount-point "/")
+ (device (uuid
+ "f84f19c8-23f4-4c4a-b9cc-bc8cde2704a5"
+ 'ext4))
+ (type "ext4"))
+ (file-system
+ (mount-point "/home")
+ (device (uuid
+ "3b69b95f-05db-47ed-b8b4-f1649ce8f6d8"
+ 'ext4))
+ (type "ext4"))) %base-file-systems)))
diff --git a/dotfiles/.doom.d/config.el b/dotfiles/.doom.d/config.el
index 7d84d2d..478987d 100644
--- a/dotfiles/.doom.d/config.el
+++ b/dotfiles/.doom.d/config.el
@@ -21,8 +21,8 @@
;; See 'C-h v doom-font' for documentation and more examples of what they
;; accept. For example:
;;
-;;(setq doom-font (font-spec :family "Fira Code" :size 12 :weight 'semi-light)
-;; doom-variable-pitch-font (font-spec :family "Fira Sans" :size 13))
+(setq doom-font (font-spec :family "Fira Code" :size 12 :weight 'semi-light)
+ doom-variable-pitch-font (font-spec :family "Fira Sans" :size 13))
;;
;; If you or Emacs can't find your font, use 'M-x describe-font' to look them
;; up, `M-x eval-region' to execute elisp code, and 'M-x doom/reload-font' to
diff --git a/dotfiles/.doom.d/init.el b/dotfiles/.doom.d/init.el
index bba0f4f..cb889a8 100644
--- a/dotfiles/.doom.d/init.el
+++ b/dotfiles/.doom.d/init.el
@@ -102,7 +102,7 @@
;;llm ; when I said you needed friends, I didn't mean...
;;(lsp +eglot) ; M-x vscode
magit ; a git porcelain for Emacs
- ;;make ; run make tasks from Emacs
+ make ; run make tasks from Emacs
;;pass ; password manager for nerds
;;pdf ; pdf enhancements
;;terraform ; infrastructure as code
@@ -119,8 +119,8 @@
;;(agda +local) ; types of types of types of types...
;;beancount ; mind the GAAP
;;(cc +lsp) ; C > C++ == 1
- ;;clojure ; java with a lisp
- ;;common-lisp ; if you've seen one lisp, you've seen them all
+ clojure ; java with a lisp
+ common-lisp ; if you've seen one lisp, you've seen them all
;;coq ; proofs-as-programs
;;crystal ; ruby at the speed of c
;;csharp ; unity, .NET, and mono shenanigans
@@ -156,7 +156,7 @@
markdown ; writing docs for people to ignore
;;nim ; python + lisp at the speed of c
;;nix ; I hereby declare "nix geht mehr!"
- ;;ocaml ; an objective camel
+ ocaml ; an objective camel
org ; organize your plain life in plain text
;;php ; perl's insecure younger brother
;;plantuml ; diagrams for confusing people more
@@ -171,7 +171,7 @@
;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
;;(rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
;;scala ; java, but good
- ;;(scheme +guile) ; a fully conniving family of lisps
+ (scheme +guile) ; a fully conniving family of lisps
sh ; she sells {ba,z,fi}sh shells on the C xor
;;sml
;;solidity ; do you need a blockchain? No.