summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Thompson <dthompson2@worcester.edu>2024-02-17 10:00:34 -0500
committerDavid Thompson <dthompson2@worcester.edu>2024-02-17 10:00:34 -0500
commitb14a123560dbfc4b7b9ceedf12cc5730558e2418 (patch)
tree3df54bb873e722554198512e151cef32e206301d
parenta0297b6b96544b58c56af05cf872535b1e7f6707 (diff)
Move all os/home configurations into modules.
-rw-r--r--dthompson/machines/ikaruga.scm219
-rw-r--r--dthompson/machines/rise.scm185
-rw-r--r--dthompson/machines/takemi.scm (renamed from takemi-os.scm)38
-rw-r--r--ikaruga-home.scm82
-rw-r--r--ikaruga-os.scm116
-rw-r--r--rise-home.scm65
-rw-r--r--rise-os.scm120
7 files changed, 424 insertions, 401 deletions
diff --git a/dthompson/machines/ikaruga.scm b/dthompson/machines/ikaruga.scm
new file mode 100644
index 0000000..0f4e402
--- /dev/null
+++ b/dthompson/machines/ikaruga.scm
@@ -0,0 +1,219 @@
+;;; Copyright © 2022-2024 David Thompson <dthompson2@worcester.edu>
+;;;
+;;; This program is free software; you can redistribute it and/or
+;;; modify it under the terms of the GNU General Public License as
+;;; published by the Free Software Foundation; either version 3 of the
+;;; License, or (at your option) any later version.
+;;;
+;;; This program is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+;;; General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program. If not, see
+;;; <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+;;
+;; Laptop OS configuration.
+;;
+;; To update the OS, run:
+;;
+;; sudo -E guix system reconfigure -L . -e '(@ (dthompson machines ikaruga) ikaruga-os)'
+;;
+;; To update the home environment, run:
+;;
+;; guix home reconfigure -L . -e '(@ (dthompson machines ikaruga) ikaruga-home)'
+
+(define-module (dthompson machines ikaruga)
+ #:use-module (dthompson home common)
+ #:use-module (dthompson home pipewire)
+ #:use-module (gnu)
+ #:use-module (gnu bootloader)
+ #:use-module (gnu home)
+ #:use-module (gnu packages)
+ #:use-module (gnu services)
+ #:use-module (gnu services base)
+ #:use-module (gnu services cups)
+ #:use-module (gnu services desktop)
+ #:use-module (gnu services games)
+ #:use-module (gnu services pm)
+ #:use-module (gnu services virtualization)
+ #:use-module (gnu services sound)
+ #:use-module (gnu services xorg)
+ #:use-module (gnu system)
+ #:use-module (gnu system accounts)
+ #:use-module (gnu system file-systems)
+ #:use-module (gnu system mapped-devices)
+ #:use-module (nongnu packages linux)
+ #:use-module (nongnu system linux-initrd))
+
+(define-public ikaruga-os
+ (operating-system
+ (locale "en_US.utf8")
+ (timezone "America/New_York")
+ (keyboard-layout (keyboard-layout "us"))
+ (host-name "ikaruga")
+ (bootloader (bootloader-configuration
+ (bootloader grub-efi-bootloader)
+ (targets (list "/boot/efi"))
+ (keyboard-layout keyboard-layout)))
+ ;; Use regular Linux with the big bad proprietary firmware blobs.
+ (kernel linux)
+ (initrd microcode-initrd)
+ ;; sof-firmware is required for sound to work, linux-firmware takes
+ ;; care of everything else.
+ (firmware (list sof-firmware linux-firmware))
+ (users (cons* (user-account
+ (name "dave")
+ (comment "David Thompson")
+ (group "users")
+ (home-directory "/home/dave")
+ (supplementary-groups
+ '("audio"
+ "kvm" ; for running VMs
+ "libvirt" ; also for VMs
+ "lp" ; for bluetooth
+ "netdev"
+ "realtime" ; for realtime prioritization
+ "video"
+ "wheel"))) ; for sudo
+ %base-user-accounts))
+ (groups (cons (user-group
+ (name "realtime")
+ (system? #t))
+ %base-groups))
+ (packages (cons (specification->package "nss-certs")
+ %base-packages))
+ (services
+ (let ((services
+ (cons* (service gnome-desktop-service-type)
+ (service bluetooth-service-type)
+ (service thermald-service-type)
+ ;; For Nintendo Switch Pro controller
+ (service joycond-service-type)
+ (service cups-service-type
+ (cups-configuration
+ (web-interface? #t)
+ (extensions
+ (list (specification->package "cups-filters")
+ ;; Brother laser printers
+ (specification->package "brlaser")))))
+ ;; Used by GNOME Boxes
+ (service libvirt-service-type)
+ (service virtlog-service-type)
+ ;; The first entry increases the maximum realtime
+ ;; priority for non-privileged processes; the second
+ ;; entry lifts any restriction of the maximum
+ ;; address space that can be locked in memory.
+ (service pam-limits-service-type
+ (list
+ (pam-limits-entry "@realtime" 'both 'rtprio 99)
+ (pam-limits-entry "@realtime" 'both 'memlock
+ 'unlimited)))
+ %desktop-services)))
+ (modify-services services
+ ;; No pulseaudio. We run pipewire as a home service instead.
+ (delete pulseaudio-service-type)
+ ;; Use Wayland instead of X11
+ (gdm-service-type config =>
+ (gdm-configuration
+ (inherit config)
+ (wayland? #t)))
+ ;; Get nonguix substitutes.
+ (guix-service-type config =>
+ (guix-configuration
+ (inherit config)
+ (substitute-urls
+ (cons "https://substitutes.nonguix.org"
+ %default-substitute-urls))
+ (authorized-keys
+ (cons (local-file "../../keys/nonguix-signing-key.pub")
+ %default-authorized-guix-keys)))))))
+ (mapped-devices (list (mapped-device
+ (source (uuid "02b1ffb4-d868-4e5f-ab9b-8be3092e3a3c"))
+ (target "cryptroot")
+ (type luks-device-mapping))))
+ (file-systems (cons* (file-system
+ (mount-point "/boot/efi")
+ (device (uuid "91D3-F76B" 'fat32))
+ (type "vfat"))
+ (file-system
+ (mount-point "/")
+ (device "/dev/mapper/cryptroot")
+ (type "ext4")
+ (dependencies mapped-devices))
+ %base-file-systems))
+ (name-service-switch %mdns-host-lookup-nss)))
+
+(define-public ikaruga-home
+ (home-environment
+ (packages (specifications->packages
+ '("ardour"
+ "blender"
+ "calf"
+ "dragonfly-reverb"
+ "emacs"
+ "emacs-better-defaults"
+ "emacs-buffer-env"
+ "emacs-doom-modeline"
+ "emacs-doom-themes"
+ "emacs-flycheck-guile"
+ "emacs-geiser-guile"
+ "emacs-htmlize"
+ "emacs-js2-mode"
+ "emacs-magit"
+ "emacs-magit-annex"
+ "emacs-markdown-mode"
+ "emacs-org-reveal"
+ "emacs-paredit"
+ "emacs-racket-mode"
+ "emacs-rainbow-delimiters"
+ "emacs-smex"
+ "emacs-typo"
+ "emacs-use-package"
+ "emacs-web-mode"
+ "emacs-which-key"
+ "emacs-yaml-mode"
+ "firefox"
+ "font-google-noto-emoji"
+ "font-google-noto-sans-cjk"
+ "font-google-noto-serif-cjk"
+ "font-inconsolata"
+ "gimp"
+ "git"
+ "git:send-email"
+ "git-annex"
+ "gnome-boxes"
+ "gnome-tweaks"
+ "gnupg"
+ "google-chrome-unstable"
+ "gst-plugins-bad"
+ "guile@3"
+ "htop"
+ "hydrogen"
+ "keepassxc"
+ "libreoffice"
+ "libresprite"
+ "lsp-plugins"
+ "milkytracker"
+ "ncurses"
+ "obs"
+ "openssh"
+ "pavucontrol"
+ "pinentry"
+ "qpwgraph"
+ "quodlibet"
+ "sfxr"
+ "sicp"
+ "steam"
+ "strace"
+ "tiled"
+ "tor"
+ "vlc"
+ "x42-plugins"
+ "xournal"
+ "yt-dlp")))
+ (services (cons (service home-pipewire-service-type)
+ common-services))))
diff --git a/dthompson/machines/rise.scm b/dthompson/machines/rise.scm
new file mode 100644
index 0000000..c5fb3de
--- /dev/null
+++ b/dthompson/machines/rise.scm
@@ -0,0 +1,185 @@
+;;; Copyright © 2022-2024 David Thompson <dthompson2@worcester.edu>
+;;;
+;;; This program is free software; you can redistribute it and/or
+;;; modify it under the terms of the GNU General Public License as
+;;; published by the Free Software Foundation; either version 3 of the
+;;; License, or (at your option) any later version.
+;;;
+;;; This program is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+;;; General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program. If not, see
+;;; <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+;;
+;; DAW laptop configuration.
+;;
+;; To update the OS configuration, run:
+;;
+;; guix system reconfigure -L . -e '(@ (dthompson machines rise) rise-os)'
+;;
+;; To update the home environment, run:
+;;
+;; guix home reconfigure -L . -e '(@ (dthompson machines rise) rise-home)'
+
+(define-module (dthompson machines rise)
+ #:use-module (dthompson home common)
+ #:use-module (dthompson home pipewire)
+ #:use-module (gnu)
+ #:use-module (gnu bootloader)
+ #:use-module (gnu home)
+ #:use-module (gnu packages)
+ #:use-module (gnu services)
+ #:use-module (gnu services base)
+ #:use-module (gnu services cups)
+ #:use-module (gnu services desktop)
+ #:use-module (gnu services games)
+ #:use-module (gnu services pm)
+ #:use-module (gnu services virtualization)
+ #:use-module (gnu services sound)
+ #:use-module (gnu services xorg)
+ #:use-module (gnu system)
+ #:use-module (gnu system accounts)
+ #:use-module (gnu system file-systems)
+ #:use-module (gnu system mapped-devices)
+ #:use-module (nongnu packages linux)
+ #:use-module (nongnu system linux-initrd))
+
+(define-public rise-os
+ (operating-system
+ (locale "en_US.utf8")
+ (timezone "America/New_York")
+ (keyboard-layout (keyboard-layout "us"))
+ (host-name "rise")
+ (bootloader (bootloader-configuration
+ (bootloader grub-efi-bootloader)
+ (targets (list "/boot/efi"))
+ (keyboard-layout keyboard-layout)))
+ ;; Use regular Linux with the big bad proprietary firmware blobs.
+ (kernel linux)
+ ;; Install microcode updates because why the heck wouldn't you want
+ ;; this???
+ (initrd microcode-initrd)
+ ;; sof-firmware is required for sound to work, linux-firmware takes
+ ;; care of everything else.
+ (firmware (list sof-firmware linux-firmware))
+ (users (cons* (user-account
+ (name "dave")
+ (comment "David Thompson")
+ (group "users")
+ (home-directory "/home/dave")
+ (supplementary-groups
+ '("audio"
+ "kvm" ; for VMs
+ "lp" ; for bluetooth
+ "netdev"
+ "realtime" ; for realtime prioritization
+ "video"
+ "wheel"))) ; for sudo
+ %base-user-accounts))
+ (groups (cons (user-group
+ (name "realtime")
+ (system? #t))
+ %base-groups))
+ (packages (append (map specification->package
+ '("ncurses" "nss-certs" "strace"))
+ %base-packages))
+ (services (modify-services
+ (cons* (service gnome-desktop-service-type)
+ (service bluetooth-service-type)
+ ;; Keep CPU temp in check.
+ (service thermald-service-type)
+ ;; Enable CUPS web UI and also add the extension
+ ;; for my Brother laser printer.
+ (service cups-service-type
+ (cups-configuration
+ (web-interface? #t)
+ (extensions
+ (map specification->package '("cups-filters" "brlaser")))))
+ ;; The first entry increases the maximum realtime
+ ;; priority for non-privileged processes; the
+ ;; second entry lifts any restriction of the
+ ;; maximum address space that can be locked in
+ ;; memory.
+ (service pam-limits-service-type
+ (list
+ (pam-limits-entry "@realtime"
+ 'both 'rtprio 99)
+ (pam-limits-entry "@realtime"
+ 'both 'memlock 'unlimited)))
+ %desktop-services)
+ ;; In this house, we use JACK.
+ (delete pulseaudio-service-type)
+ ;; Get nonguix substitutes.
+ (guix-service-type config =>
+ (guix-configuration
+ (inherit config)
+ (substitute-urls
+ (append (list "https://substitutes.nonguix.org")
+ %default-substitute-urls))
+ (authorized-keys
+ (append (list (local-file "keys/nonguix-signing-key.pub"))
+ %default-authorized-guix-keys))))))
+ (mapped-devices (list (mapped-device
+ (source (uuid "ee0a37d1-36d6-4e50-8af0-fc0bfe8c22ef"))
+ (target "cryptroot")
+ (type luks-device-mapping))))
+ (file-systems (cons* (file-system
+ (mount-point "/boot/efi")
+ (device (uuid "1F21-80A1" 'fat32))
+ (type "vfat"))
+ (file-system
+ (mount-point "/")
+ (device "/dev/mapper/cryptroot")
+ (type "ext4")
+ (dependencies mapped-devices)) %base-file-systems))
+ (name-service-switch %mdns-host-lookup-nss)))
+
+(define-public rise-home
+ (home-environment
+ (packages (specifications->packages
+ '("audacity"
+ "alsa-utils"
+ "ardour"
+ "blender"
+ "calf"
+ "carla"
+ "dragonfly-reverb"
+ "emacs"
+ "emacs-better-defaults"
+ "emacs-buffer-env"
+ "emacs-doom-modeline"
+ "emacs-doom-themes"
+ "emacs-flycheck-guile"
+ "emacs-geiser-guile"
+ "emacs-magit"
+ "emacs-markdown-mode"
+ "emacs-paredit"
+ "emacs-rainbow-delimiters"
+ "emacs-smex"
+ "emacs-use-package"
+ "emacs-which-key"
+ "firefox"
+ "font-google-noto-sans-cjk"
+ "font-google-noto-serif-cjk"
+ "font-inconsolata"
+ "gimp"
+ "git"
+ "gnome-tweaks"
+ "htop"
+ "hydrogen"
+ "jack"
+ "lsp-plugins"
+ "milkytracker"
+ "obs"
+ "openssh"
+ "patchage"
+ "qjackctl"
+ "sfxr"
+ "x42-plugins"
+ "yt-dlp")))
+ (services common-services)))
diff --git a/takemi-os.scm b/dthompson/machines/takemi.scm
index 5bac09e..5a94e16 100644
--- a/takemi-os.scm
+++ b/dthompson/machines/takemi.scm
@@ -1,13 +1,14 @@
-(use-modules (gnu)
- (gnu packages version-control)
- (gnu services admin)
- (gnu services certbot)
- (gnu services cgit)
- (gnu services ci)
- (gnu services networking)
- (gnu services ssh)
- (gnu services version-control)
- (gnu services web))
+(define-module (dthompson machines takemi)
+ #:use-module (gnu)
+ #:use-module (gnu packages version-control)
+ #:use-module (gnu services admin)
+ #:use-module (gnu services certbot)
+ #:use-module (gnu services cgit)
+ #:use-module (gnu services ci)
+ #:use-module (gnu services networking)
+ #:use-module (gnu services ssh)
+ #:use-module (gnu services version-control)
+ #:use-module (gnu services web))
(define letsencrypt-cert
"/etc/letsencrypt/live/dthompson.us/fullchain.pem")
@@ -338,11 +339,12 @@
(define takemi-host-key
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOrptBAMgs8dGDerBkcmZQ2W/0nEXtOBCl8nLlEwjKdI")
-(list (machine
- (operating-system takemi-os)
- (environment managed-host-environment-type)
- (configuration (machine-ssh-configuration
- (host-name "dthompson.us")
- (system "x86_64-linux")
- (user "dave")
- (host-key takemi-host-key)))))
+(define-public takemi-machine
+ (list (machine
+ (operating-system takemi-os)
+ (environment managed-host-environment-type)
+ (configuration (machine-ssh-configuration
+ (host-name "dthompson.us")
+ (system "x86_64-linux")
+ (user "dave")
+ (host-key takemi-host-key))))))
diff --git a/ikaruga-home.scm b/ikaruga-home.scm
deleted file mode 100644
index 85bd022..0000000
--- a/ikaruga-home.scm
+++ /dev/null
@@ -1,82 +0,0 @@
-;;; Copyright © 2023 David Thompson <dthompson2@worcester.edu>
-;;;
-;;; This program is free software; you can redistribute it and/or
-;;; modify it under the terms of the GNU General Public License as
-;;; published by the Free Software Foundation; either version 3 of the
-;;; License, or (at your option) any later version.
-;;;
-;;; This program is distributed in the hope that it will be useful,
-;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-;;; General Public License for more details.
-;;;
-;;; You should have received a copy of the GNU General Public License
-;;; along with this program. If not, see
-;;; <http://www.gnu.org/licenses/>.
-
-(define-module (ikaruga-home)
- #:use-module (dthompson home common)
- #:use-module (dthompson home pipewire)
- #:use-module (gnu home)
- #:use-module (gnu packages)
- #:use-module (gnu services))
-
-(home-environment
- (packages (specifications->packages
- '("emacs"
- "emacs-better-defaults"
- "emacs-buffer-env"
- "emacs-doom-modeline"
- "emacs-doom-themes"
- "emacs-flycheck-guile"
- "emacs-geiser-guile"
- "emacs-htmlize"
- "emacs-js2-mode"
- "emacs-magit"
- "emacs-magit-annex"
- "emacs-markdown-mode"
- "emacs-org-reveal"
- "emacs-paredit"
- "emacs-racket-mode"
- "emacs-rainbow-delimiters"
- "emacs-smex"
- "emacs-typo"
- "emacs-use-package"
- "emacs-web-mode"
- "emacs-which-key"
- "emacs-yaml-mode"
- "firefox"
- "font-google-noto-emoji"
- "font-google-noto-sans-cjk"
- "font-google-noto-serif-cjk"
- "font-inconsolata"
- "gimp"
- "git"
- "git:send-email"
- "git-annex"
- "gnome-boxes"
- "gnome-tweaks"
- "gnupg"
- "google-chrome-unstable"
- "gst-plugins-bad"
- "guile@3"
- "keepassxc"
- "libreoffice"
- "libresprite"
- "milkytracker"
- "ncurses"
- "obs"
- "openssh"
- "pavucontrol"
- "pinentry"
- "quodlibet"
- "sfxr"
- "sicp"
- "steam"
- "strace"
- "tiled"
- "tor"
- "vlc"
- "xournal")))
- (services (cons (service home-pipewire-service-type)
- common-services)))
diff --git a/ikaruga-os.scm b/ikaruga-os.scm
deleted file mode 100644
index 28d7b06..0000000
--- a/ikaruga-os.scm
+++ /dev/null
@@ -1,116 +0,0 @@
-;;; Copyright © 2022 David Thompson <davet@gnu.org>
-;;;
-;;; This program is free software; you can redistribute it and/or
-;;; modify it under the terms of the GNU General Public License as
-;;; published by the Free Software Foundation; either version 3 of the
-;;; License, or (at your option) any later version.
-;;;
-;;; This program is distributed in the hope that it will be useful,
-;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-;;; General Public License for more details.
-;;;
-;;; You should have received a copy of the GNU General Public License
-;;; along with this program. If not, see
-;;; <http://www.gnu.org/licenses/>.
-
-;;; Commentary:
-;;
-;; Laptop OS configuration.
-;;
-;; To update using this OS configuration, run:
-;;
-;; guix system reconfigure ikaruga.scm
-
-(use-modules (gnu)
- (gnu services cups)
- (gnu services desktop)
- (gnu services games)
- (gnu services pm)
- (gnu services virtualization)
- (gnu services sound)
- (gnu services xorg)
- (nongnu packages linux)
- (nongnu system linux-initrd))
-
-(operating-system
- (locale "en_US.utf8")
- (timezone "America/New_York")
- (keyboard-layout (keyboard-layout "us"))
- (host-name "ikaruga")
- (bootloader (bootloader-configuration
- (bootloader grub-efi-bootloader)
- (targets (list "/boot/efi"))
- (keyboard-layout keyboard-layout)))
- ;; Use regular Linux with the big bad proprietary firmware blobs.
- (kernel linux)
- (initrd microcode-initrd)
- ;; sof-firmware is required for sound to work, linux-firmware takes
- ;; care of everything else.
- (firmware (list sof-firmware linux-firmware))
- (users (cons* (user-account
- (name "dave")
- (comment "David Thompson")
- (group "users")
- (home-directory "/home/dave")
- (supplementary-groups
- '("audio"
- "kvm" ; for running VMs
- "libvirt" ; also for VMs
- "lp" ; for bluetooth
- "netdev"
- "video"
- "wheel"))) ; for sudo
- %base-user-accounts))
- (packages (append (list (specification->package "nss-certs"))
- %base-packages))
- (services (modify-services (cons* (service gnome-desktop-service-type)
- (service bluetooth-service-type)
- (service thermald-service-type)
- ;; For Nintendo Switch Pro controller
- (service joycond-service-type)
- (service cups-service-type
- (cups-configuration
- (web-interface? #t)
- (extensions
- (list (specification->package
- "cups-filters")
- ;; Brother laser printers
- (specification->package
- "brlaser")))))
- ;; Used by GNOME Boxes
- (service libvirt-service-type)
- (service virtlog-service-type)
- %desktop-services)
- ;; No pulseaudio. We run pipewire as a home service instead.
- (delete pulseaudio-service-type)
- ;; Use Wayland instead of X11
- (gdm-service-type config =>
- (gdm-configuration
- (inherit config)
- (wayland? #t)))
- ;; Get nonguix substitutes.
- (guix-service-type config =>
- (guix-configuration
- (inherit config)
- (substitute-urls
- (append (list "https://substitutes.nonguix.org")
- %default-substitute-urls))
- (authorized-keys
- (append (list (local-file "keys/nonguix-signing-key.pub"))
- %default-authorized-guix-keys))))))
- (mapped-devices (list (mapped-device
- (source (uuid "02b1ffb4-d868-4e5f-ab9b-8be3092e3a3c"))
- (target "cryptroot")
- (type luks-device-mapping))))
- (file-systems (cons* (file-system
- (mount-point "/boot/efi")
- (device (uuid "91D3-F76B" 'fat32))
- (type "vfat"))
- (file-system
- (mount-point "/")
- (device "/dev/mapper/cryptroot")
- (type "ext4")
- (dependencies mapped-devices))
- %base-file-systems))
- (name-service-switch %mdns-host-lookup-nss))
diff --git a/rise-home.scm b/rise-home.scm
deleted file mode 100644
index c072142..0000000
--- a/rise-home.scm
+++ /dev/null
@@ -1,65 +0,0 @@
-;;; Copyright © 2023 David Thompson <dthompson2@worcester.edu>
-;;;
-;;; This program is free software; you can redistribute it and/or
-;;; modify it under the terms of the GNU General Public License as
-;;; published by the Free Software Foundation; either version 3 of the
-;;; License, or (at your option) any later version.
-;;;
-;;; This program is distributed in the hope that it will be useful,
-;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-;;; General Public License for more details.
-;;;
-;;; You should have received a copy of the GNU General Public License
-;;; along with this program. If not, see
-;;; <http://www.gnu.org/licenses/>.
-
-(define-module (rise-home)
- #:use-module (dthompson home common)
- #:use-module (gnu home)
- #:use-module (gnu packages)
- #:use-module (gnu services))
-
-(home-environment
- (packages (specifications->packages
- '("audacity"
- "alsa-utils"
- "ardour"
- "blender"
- "calf"
- "carla"
- "dragonfly-reverb"
- "emacs"
- "emacs-better-defaults"
- "emacs-buffer-env"
- "emacs-doom-modeline"
- "emacs-doom-themes"
- "emacs-flycheck-guile"
- "emacs-geiser-guile"
- "emacs-magit"
- "emacs-markdown-mode"
- "emacs-paredit"
- "emacs-rainbow-delimiters"
- "emacs-smex"
- "emacs-use-package"
- "emacs-which-key"
- "firefox"
- "font-google-noto-sans-cjk"
- "font-google-noto-serif-cjk"
- "font-inconsolata"
- "gimp"
- "git"
- "gnome-tweaks"
- "htop"
- "hydrogen"
- "jack"
- "lsp-plugins"
- "milkytracker"
- "obs"
- "openssh"
- "patchage"
- "qjackctl"
- "sfxr"
- "x42-plugins"
- "yt-dlp")))
- (services common-services))
diff --git a/rise-os.scm b/rise-os.scm
deleted file mode 100644
index 7dc5247..0000000
--- a/rise-os.scm
+++ /dev/null
@@ -1,120 +0,0 @@
-;;; Copyright © 2023 David Thompson <dthompson2@worcester.edu>
-;;;
-;;; This program is free software; you can redistribute it and/or
-;;; modify it under the terms of the GNU General Public License as
-;;; published by the Free Software Foundation; either version 3 of the
-;;; License, or (at your option) any later version.
-;;;
-;;; This program is distributed in the hope that it will be useful,
-;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-;;; General Public License for more details.
-;;;
-;;; You should have received a copy of the GNU General Public License
-;;; along with this program. If not, see
-;;; <http://www.gnu.org/licenses/>.
-
-;;; Commentary:
-;;
-;; Digital Audio Workstation configuration.
-;;
-;; To update using this OS configuration, run:
-;;
-;; sudo -E guix system reconfigure rise.scm
-
-(use-modules (gnu)
- (gnu services cups)
- (gnu services desktop)
- (gnu services pm)
- (gnu services sound)
- (nongnu packages linux)
- (nongnu system linux-initrd))
-
-(operating-system
- (locale "en_US.utf8")
- (timezone "America/New_York")
- (keyboard-layout (keyboard-layout "us"))
- (host-name "rise")
- (bootloader (bootloader-configuration
- (bootloader grub-efi-bootloader)
- (targets (list "/boot/efi"))
- (keyboard-layout keyboard-layout)))
- ;; Use regular Linux with the big bad proprietary firmware blobs.
- (kernel linux)
- ;; Install microcode updates because why the heck wouldn't you want
- ;; this???
- (initrd microcode-initrd)
- ;; sof-firmware is required for sound to work, linux-firmware takes
- ;; care of everything else.
- (firmware (list sof-firmware linux-firmware))
- (users (cons* (user-account
- (name "dave")
- (comment "David Thompson")
- (group "users")
- (home-directory "/home/dave")
- (supplementary-groups
- '("audio"
- "kvm" ; for VMs
- "lp" ; for bluetooth
- "netdev"
- "realtime" ; for realtime prioritization
- "video"
- "wheel"))) ; for sudo
- %base-user-accounts))
- (groups (cons (user-group
- (name "realtime")
- (system? #t))
- %base-groups))
- (packages (append (map specification->package
- '("ncurses" "nss-certs" "strace"))
- %base-packages))
- (services (modify-services
- (cons* (service gnome-desktop-service-type)
- (service bluetooth-service-type)
- ;; Keep CPU temp in check.
- (service thermald-service-type)
- ;; Enable CUPS web UI and also add the extension
- ;; for my Brother laser printer.
- (service cups-service-type
- (cups-configuration
- (web-interface? #t)
- (extensions
- (map specification->package '("cups-filters" "brlaser")))))
- ;; The first entry increases the maximum realtime
- ;; priority for non-privileged processes; the
- ;; second entry lifts any restriction of the
- ;; maximum address space that can be locked in
- ;; memory.
- (service pam-limits-service-type
- (list
- (pam-limits-entry "@realtime"
- 'both 'rtprio 99)
- (pam-limits-entry "@realtime"
- 'both 'memlock 'unlimited)))
- %desktop-services)
- ;; In this house, we use JACK.
- (delete pulseaudio-service-type)
- ;; Get nonguix substitutes.
- (guix-service-type config =>
- (guix-configuration
- (inherit config)
- (substitute-urls
- (append (list "https://substitutes.nonguix.org")
- %default-substitute-urls))
- (authorized-keys
- (append (list (local-file "keys/nonguix-signing-key.pub"))
- %default-authorized-guix-keys))))))
- (mapped-devices (list (mapped-device
- (source (uuid "ee0a37d1-36d6-4e50-8af0-fc0bfe8c22ef"))
- (target "cryptroot")
- (type luks-device-mapping))))
- (file-systems (cons* (file-system
- (mount-point "/boot/efi")
- (device (uuid "1F21-80A1" 'fat32))
- (type "vfat"))
- (file-system
- (mount-point "/")
- (device "/dev/mapper/cryptroot")
- (type "ext4")
- (dependencies mapped-devices)) %base-file-systems))
- (name-service-switch %mdns-host-lookup-nss))