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.