diff options
-rw-r--r-- | dotfiles/.bash_profile | 14 | ||||
-rw-r--r-- | rise-home.scm | 47 | ||||
-rw-r--r-- | rise-os.scm | 122 |
3 files changed, 183 insertions, 0 deletions
diff --git a/dotfiles/.bash_profile b/dotfiles/.bash_profile new file mode 100644 index 0000000..7736e39 --- /dev/null +++ b/dotfiles/.bash_profile @@ -0,0 +1,14 @@ +# Set up Guix Home profile +if [ -f ~/.profile ]; then . ~/.profile; fi + +# Honor per-interactive-shell startup file +if [ -f ~/.bashrc ]; then . ~/.bashrc; fi + +# Merge search-paths from multiple profiles, the order matters. +eval "$(guix package --search-paths \ +-p $HOME/.config/guix/current \ +-p $HOME/.guix-profile \ +-p /run/current-system/profile)" + +# Prepend setuid programs. +export PATH=/run/setuid-programs:$PATH diff --git a/rise-home.scm b/rise-home.scm new file mode 100644 index 0000000..cd6598d --- /dev/null +++ b/rise-home.scm @@ -0,0 +1,47 @@ +(use-modules (gnu home) + (gnu packages) + (gnu services) + (guix gexp) + (gnu home services shells)) + +(home-environment + (packages (specifications->packages + '("alsa-utils" + "ardour" + "calf" + "carla" + "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" + "jack" + "lsp-plugins" + "milkytracker" + "obs" + "openssh" + "patchage" + "qjackctl" + "sfxr"))) + (services + (list (service home-bash-service-type + (home-bash-configuration + (aliases '(("grep" . "grep --color=auto") + ("ls" . "ls -ahlp --color=auto")))))))) diff --git a/rise-os.scm b/rise-os.scm new file mode 100644 index 0000000..266017c --- /dev/null +++ b/rise-os.scm @@ -0,0 +1,122 @@ +;;; 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 "./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)) |