From 2396b0aeb65c90637af264d4ad859ad878e0aaeb Mon Sep 17 00:00:00 2001 From: Tyler Murphy Date: Thu, 7 Sep 2023 15:20:42 -0400 Subject: [PATCH] GNU/Windows --- :w | 47 +++++++++++++ home-config/sway/config.d/keybinds | 1 + modules/home-config/base-system.scm | 19 +++++- modules/home-packages/firmware.scm | 1 + modules/home-packages/virtualization.scm | 85 +++++++++++++++++++----- 5 files changed, 134 insertions(+), 19 deletions(-) create mode 100644 :w diff --git a/:w b/:w new file mode 100644 index 0000000..13448f3 --- /dev/null +++ b/:w @@ -0,0 +1,47 @@ +(define-module (home-packages virtualization) + #:use-module (guix packages) + #:use-module (guix utils) + #:use-module (gnu packages) + #:use-module (gnu packages package-management) + #:use-module (gnu packages build-tools) + #:use-module (gnu packages virtualization) + #:use-module (gnu packages firmware) + #:use-module (home-packages firmware) + #:use-module (guix gexp)) + +(define-public libvirt-new + (package + (inherit libvirt) + (inputs + (modify-inputs (package-inputs libvirt) + (append ovmf-new))) + (arguments + (substitute-keyword-arguments (package-arguments libvirt) + ((#:phases phases) + #~(modify-phases #$phases + (add-after 'install 'ovmf + (lambda _ + (let ((fmw (string-append #$output "/usr/share/OVMF"))) + (mkdir-p fmw) + (copy-recursively #$(file-append ovmf-new "/share/firmware") fmw)) + (let ((fmw (string-append #$output "/share/qemu"))) + (mkdir-p fmw) + (copy-recursively #$(file-append qemu "/share/qemu") fmw)) + )) + )))))) + +(define-public virt-manager-new + (package + (inherit virt-manager) + (name "virt-manager-new") + (arguments + (substitute-keyword-arguments (package-arguments virt-manager) + ((#:phases phases) + #~(modify-phases #$phases + (add-after 'install 'ovmf + (lambda _ + (let ((fmw (string-append #$output "/usr/share/OVMF"))) + (mkdir-p fmw) + (copy-recursively #$(file-append ovmf-new "/share/firmware") fmw) + ))) + )))))) diff --git a/home-config/sway/config.d/keybinds b/home-config/sway/config.d/keybinds index b8ea81f..d70cf82 100644 --- a/home-config/sway/config.d/keybinds +++ b/home-config/sway/config.d/keybinds @@ -48,4 +48,5 @@ bindsym XF86AudioPrev exec playerctl previous # Screenshot bindsym Print exec grim -g "$(slurp)" - | wl-copy +bindsym Alt+Print exec grim - | wl-copy bindsym Shift+Print exec slurp -p | grim -g - - | convert - txt:- | tail -n 1 | awk '{print $3}' | wl-copy diff --git a/modules/home-config/base-system.scm b/modules/home-config/base-system.scm index e0975d2..239f254 100644 --- a/modules/home-config/base-system.scm +++ b/modules/home-config/base-system.scm @@ -21,6 +21,7 @@ #:use-module (gnu services sound) #:use-module (gnu services docker) #:use-module (gnu services avahi) + #:use-module (gnu services spice) #:use-module (gnu services authentication) #:use-module (gnu services virtualization) #:use-module (home-packages wm) @@ -76,7 +77,6 @@ "nss-certs" "gvfs" "gnupg" - ;; "virt-manager" "light" "waybar" "avahi" @@ -97,8 +97,19 @@ "xorg-server-xwayland" "fprintd" "wireplumber" - "wireshark" + "qemu" + "spice" + "xf86-video-qxl" "zsh" + "mesa" + "mesa-utils" + "glu" + "vulkan-loader" + "vulkan-validationlayers" + "vulkan-tools" + "vulkan-headers" + "spirv-tools" + "spirv-headers" "neovim")) (list swaylock-effects-new virt-manager-new) %my-base-packages)) @@ -112,6 +123,7 @@ ;; record as a second argument to 'service' below. (service openssh-service-type) (service pcscd-service-type) + (service spice-vdagent-service-type) (service cups-service-type (cups-configuration (web-interface? #t))) @@ -125,7 +137,8 @@ (service libvirt-service-type (libvirt-configuration (libvirt libvirt-new) - (unix-sock-group "libvirt"))) + (unix-sock-group "libvirt") + (tls-port "16555"))) (service virtlog-service-type) (service bluetooth-service-type) (service pam-limits-service-type) diff --git a/modules/home-packages/firmware.scm b/modules/home-packages/firmware.scm index 6e88992..37ae276 100644 --- a/modules/home-packages/firmware.scm +++ b/modules/home-packages/firmware.scm @@ -21,5 +21,6 @@ (let ((fmw (string-append #$output "/share/firmware"))) (mkdir-p fmw) (copy-recursively "Build/OvmfX64/RELEASE_GCC49/FV" fmw) + (copy-file "Build/OvmfX64/RELEASE_GCC49/FV/OVMF.fd" (string-append fmw "/OVMF_CODE.fd")) ))) )))))) diff --git a/modules/home-packages/virtualization.scm b/modules/home-packages/virtualization.scm index 5a7dbe4..64d882d 100644 --- a/modules/home-packages/virtualization.scm +++ b/modules/home-packages/virtualization.scm @@ -12,24 +12,77 @@ (define-public libvirt-new (package (inherit libvirt) + (name "libvirt-new") (inputs (modify-inputs (package-inputs libvirt) - (append ovmf-new))))) + (append qemu))) + (arguments + (substitute-keyword-arguments (package-arguments libvirt) + ((#:phases phases) + #~(modify-phases #$phases + (add-after 'install 'install-firmware + (lambda _ + (let ((fmw (string-append #$output "/share/qemu"))) + (mkdir-p fmw) + (copy-recursively #$(file-append qemu "/share/qemu") fmw)) + (let ((fmw (string-append #$output "/usr/share/OVMF"))) + (mkdir-p fmw) + (copy-recursively #$(file-append ovmf-new "/share/firmware") fmw)) + )) + )))))) (define-public virt-manager-new - (package - (inherit virt-manager) - (name "virt-manager-new") - (arguments - (substitute-keyword-arguments (package-arguments virt-manager) - ((#:phases phases) - #~(modify-phases #$phases - (add-after 'install 'ovmf - (lambda _ - (let ((fmw (string-append #$output "/usr/share/OVMF"))) - (mkdir-p fmw) - (copy-recursively #$(file-append ovmf-new "/share/firmware") fmw) - (mkdir-p fmw) - (copy-recursively "Build/OvmfX64/RELEASE_GCC49/FV" fmw) - ))) + (package + (inherit virt-manager) + (name "virt-manager-new") + (inputs + (modify-inputs (package-inputs virt-manager) + (append qemu))) + (arguments + (substitute-keyword-arguments (package-arguments virt-manager) + ((#:phases phases) + #~(modify-phases #$phases + (add-after 'install 'install-firmware + (lambda _ + (let ((fmw (string-append #$output "/share/qemu"))) + (mkdir-p fmw) + (copy-recursively #$(file-append qemu "/share/firmware") fmw)) + (let ((fmw (string-append #$output "/usr/share/OVMF"))) + (mkdir-p fmw) + (copy-recursively #$(file-append ovmf-new "/share/firmware") fmw)) + )) )))))) + +;; (define-public libvirt-new +;; (package +;; (inherit libvirt) +;; (inputs +;; (modify-inputs (package-inputs libvirt) +;; (append ovmf-new))) +;; (arguments +;; (substitute-keyword-arguments (package-arguments libvirt) +;; ((#:phases phases) +;; #~(modify-phases #$phases +;; (add-after 'install 'ovmf +;; (lambda _ +;; (let ((fmw (string-append #$output "/usr/share/OVMF"))) +;; (mkdir-p fmw) +;; (copy-recursively #$(file-append ovmf-new "/share/firmware") fmw)) +;; )) +;; )))))) + +;; (define-public virt-manager-new +;; (package +;; (inherit virt-manager) +;; (name "virt-manager-new") +;; (arguments +;; (substitute-keyword-arguments (package-arguments virt-manager) +;; ((#:phases phases) +;; #~(modify-phases #$phases +;; (add-after 'install 'ovmf +;; (lambda _ +;; (let ((fmw (string-append #$output "/usr/share/OVMF"))) +;; (mkdir-p fmw) +;; (copy-recursively #$(file-append ovmf-new "/share/firmware") fmw) +;; ))) +;; ))))))