summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTyler Murphy <tylerm@tylerm.dev>2023-09-06 12:02:40 -0400
committerTyler Murphy <tylerm@tylerm.dev>2023-09-06 12:02:40 -0400
commitdbbd9fa1debe637e46b215e34c645ad59b099b7c (patch)
tree0ff67d33fae3aefb00dfe2d1fd9b4769d59973d6
parentj o e b i d e n (diff)
downloaddotfiles-guix-dbbd9fa1debe637e46b215e34c645ad59b099b7c.tar.gz
dotfiles-guix-dbbd9fa1debe637e46b215e34c645ad59b099b7c.tar.bz2
dotfiles-guix-dbbd9fa1debe637e46b215e34c645ad59b099b7c.zip
OVMFFFFFFFF
-rw-r--r--home-config/home-configuration.scm2
-rw-r--r--modules/home-config/base-system.scm193
-rw-r--r--modules/home-services/virtualization.scm38
3 files changed, 136 insertions, 97 deletions
diff --git a/home-config/home-configuration.scm b/home-config/home-configuration.scm
index 0bd11f4..506a4bd 100644
--- a/home-config/home-configuration.scm
+++ b/home-config/home-configuration.scm
@@ -9,6 +9,7 @@
(gnu packages vim)
(gnu packages gcc)
(gnu packages gnupg)
+ (gnu packages virtualization)
(gnu services)
(guix packages)
(guix gexp)
@@ -71,6 +72,7 @@
"netcat"
"ripgrep"
"fd"
+ "nasm"
"node"
"tree-sitter-cli"
"python-pynvim"))
diff --git a/modules/home-config/base-system.scm b/modules/home-config/base-system.scm
index 452ba55..f819d1a 100644
--- a/modules/home-config/base-system.scm
+++ b/modules/home-config/base-system.scm
@@ -1,36 +1,36 @@
(define-module (home-config base-system)
- #:use-module (gnu)
- #:use-module (nongnu packages linux)
- #:use-module (gnu system setuid)
- #:use-module (gnu packages admin)
- #:use-module (gnu packages avahi)
- #:use-module (gnu packages)
- #:use-module (guix packages)
- #:use-module (gnu packages shells)
- #:use-module (guix build-system trivial)
- #:use-module (guix licenses)
- #:use-module (gnu packages tls)
- #:use-module (srfi srfi-1)
- #:use-module (home-packages wm)
- #:use-module (gnu packages security-token)
- #:use-module (gnu services security-token)
- #:use-module (gnu services cups)
- #:use-module (gnu services desktop)
- #:use-module (gnu services networking)
- #:use-module (gnu services xorg)
- #:use-module (gnu services ssh)
- #:use-module (gnu services nix)
- #:use-module (gnu services sound)
- #:use-module (gnu services docker)
- #:use-module (gnu services avahi)
+ #:use-module (gnu)
+ #:use-module (nongnu packages linux)
+ #:use-module (gnu system setuid)
+ #:use-module (gnu packages admin)
+ #:use-module (gnu packages avahi)
+ #:use-module (gnu packages)
+ #:use-module (guix packages)
+ #:use-module (gnu packages shells)
+ #:use-module (gnu packages tls)
+ #:use-module (srfi srfi-1)
+ #:use-module (gnu packages security-token)
+ #:use-module (gnu services security-token)
+ #:use-module (gnu packages virtualization)
+ #:use-module (gnu services cups)
+ #:use-module (gnu services desktop)
+ #:use-module (gnu services networking)
+ #:use-module (gnu services xorg)
+ #:use-module (gnu services ssh)
+ #:use-module (gnu services nix)
+ #:use-module (gnu services sound)
+ #:use-module (gnu services docker)
+ #:use-module (gnu services avahi)
#:use-module (gnu services authentication)
- #:use-module (gnu services virtualization))
+ #:use-module (gnu services virtualization)
+ #:use-module (home-packages wm)
+ #:use-module (home-services virtualization))
(define %my-base-packages
(remove (lambda (package)
- (member (package-name package)
- (list "sudo" "nano")))
- %base-packages))
+ (member (package-name package)
+ (list "sudo" "nano")))
+ %base-packages))
(define %backlight-udev-rule
(udev-rule
@@ -44,95 +44,94 @@
(define-public base-operating-system
(operating-system
(kernel linux)
- (firmware (list linux-firmware intel-microcode sof-firmware))
- (locale "en_US.utf8")
- (timezone "America/New_York")
- (keyboard-layout (keyboard-layout "us"))
- (host-name "ThisWillChange")
+ (firmware (list linux-firmware intel-microcode sof-firmware))
+ (locale "en_US.utf8")
+ (timezone "America/New_York")
+ (keyboard-layout (keyboard-layout "us"))
+ (host-name "ThisWillChange")
- ;; The list of user accounts ('root' is implicit).
- (users (cons* (user-account
- (name "tylerm")
- (comment "Tyler")
- (group "users")
- (home-directory "/home/tylerm")
+ ;; The list of user accounts ('root' is implicit).
+ (users (cons* (user-account
+ (name "tylerm")
+ (comment "Tyler")
+ (group "users")
+ (home-directory "/home/tylerm")
(shell (file-append zsh "/bin/zsh"))
- (supplementary-groups '("wheel" "audio" "lp" "docker" "plugdev" "libvirt" "kvm" "netdev" "video" "tty")))
- %base-user-accounts))
+ (supplementary-groups '("wheel" "audio" "lp" "docker" "plugdev" "libvirt" "kvm" "netdev" "video" "tty")))
+ %base-user-accounts))
- (packages (append (map specification->package (list "swayfx"
- "swaybg"
+ (packages (append (map specification->package (list "swayfx"
+ "swaybg"
"wlogout"
"sof-firmware"
"intel-microcode"
"alsa-utils"
- "swayidle"
- ;"swaylock"
- "alacritty"
- "gnome-themes-extra"
+ "swayidle"
+ "dconf"
+ "alacritty"
+ "gnome-themes-extra"
"adwaita-icon-theme"
"hicolor-icon-theme"
- "git"
- "nss-certs"
- "gnupg"
- "light"
- "waybar"
- "avahi"
- "mako"
- "grim"
- "slurp"
- "wl-clipboard"
- "bluez"
- "blueman"
- "opendoas"
- "xdg-desktop-portal"
- "xdg-desktop-portal-wlr"
- "v4l2loopback-linux-module"
- "docker"
+ "git"
+ "nss-certs"
+ "gvfs"
+ "gnupg"
+ "virt-manager"
+ "light"
+ "waybar"
+ "avahi"
+ "mako"
+ "grim"
+ "slurp"
+ "wl-clipboard"
+ "bluez"
+ "blueman"
+ "opendoas"
+ "xdg-desktop-portal"
+ "xdg-desktop-portal-wlr"
+ "v4l2loopback-linux-module"
+ "docker"
"linux-pam"
- "pulseaudio"
+ "pulseaudio"
;;"pipewire"
"libx11"
"xorg-server-xwayland"
"fprintd"
- "wireplumber"
- "virt-manager"
- "wireshark"
- "zsh"
+ "wireplumber"
+ "wireshark"
+ "zsh"
"neovim"))
(list swaylock-effects-new)
%my-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
+ ;; 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 pcscd-service-type)
- (service cups-service-type
- (cups-configuration
- (web-interface? #t)))
- ;; Avahi is only present for CUPS to support "automagic" printing
- (service avahi-service-type
- (avahi-configuration
- (publish? #f) ;; do not advertise this machiene
- (publish-workstation? #f))) ; do not advertise, I want this to be as silent as possible
- (service docker-service-type)
- (service nix-service-type)
- (service libvirt-service-type
- (libvirt-configuration
- (unix-sock-group "libvirt")))
- (service virtlog-service-type)
- (service bluetooth-service-type)
+ ;; To configure OpenSSH, pass an 'openssh-configuration'
+ ;; record as a second argument to 'service' below.
+ (service openssh-service-type)
+ (service pcscd-service-type)
+ (service cups-service-type
+ (cups-configuration
+ (web-interface? #t)))
+ ;; Avahi is only present for CUPS to support "automagic" printing
+ (service avahi-service-type
+ (avahi-configuration
+ (publish? #f) ;; do not advertise this machiene
+ (publish-workstation? #f))) ; do not advertise, I want this to be as silent as possible
+ (service docker-service-type)
+ (service nix-service-type)
+ (service my-libvirt-service-type)
+ (service virtlog-service-type)
+ (service bluetooth-service-type)
(service pam-limits-service-type)
(service fprintd-service-type)
- (udev-rules-service 'fido2 libfido2 #:groups '("plugdev")))
+ (udev-rules-service 'fido2 libfido2 #:groups '("plugdev")))
;; This is the default list of services we
- ;; are appending to.
+ ;; are appending to.
(modify-services %desktop-services
(guix-service-type config =>
(guix-configuration
@@ -152,9 +151,9 @@
(udev-configuration
(inherit config)))
(delete pulseaudio-service-type)
- (delete gdm-service-type)
- (delete avahi-service-type)
- (delete alsa-service-type))))
+ (delete gdm-service-type)
+ (delete avahi-service-type)
+ (delete alsa-service-type))))
(name-service-switch %mdns-host-lookup-nss)
diff --git a/modules/home-services/virtualization.scm b/modules/home-services/virtualization.scm
new file mode 100644
index 0000000..abc1335
--- /dev/null
+++ b/modules/home-services/virtualization.scm
@@ -0,0 +1,38 @@
+(define-module (home-services virtualization)
+ #:use-module (guix packages)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages virtualization)
+ #:use-module (gnu packages firmware)
+ #:use-module (gnu services)
+ #:use-module (gnu services configuration)
+ #:use-module (gnu services virtualization)
+ #:use-module (gnu home services)
+ #:use-module (guix gexp))
+
+(define my-libvirt
+ (package
+ (inherit libvirt)
+ (inputs
+ (modify-inputs (package-inputs libvirt)
+ (append ovmf)))))
+(define (ovmf-special-files config)
+ `(("/usr/share/OVMF/OVMF_CODE.fd",
+ (file-append ovmf "/share/firmware/ovmf_x64.bin"))))
+
+(define-public my-libvirt-service-type
+ (service-type
+ (name 'my-libvirt)
+ (extensions
+ (list
+ (service-extension libvirt-service-type
+ (lambda (config)
+ (libvirt-configuration
+ (libvirt my-libvirt)
+ (unix-sock-group "libvirt")))
+ )
+ (service-extension special-files-service-type
+ ovmf-special-files)
+ ))
+ (default-value #f)
+ (description "Libvirt with OVMF")))
+