summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorc0co.channel <c0co.channel@braincrime.com>2025-09-10 01:32:17 +0100
committerc0co.channel <c0co.channel@braincrime.com>2025-09-10 01:32:17 +0100
commit32c943e19323b7be2a15aa18d575e03074a7e6c4 (patch)
tree6ac43062127217fdf8b6c24b866ccc8975e69995
parentbe45b9fff3c435689ed21f4ec8fc32803b5858c1 (diff)
Tidy .scms, more XDG env vars, virtman to syswide
-rw-r--r--dom0/files/misc-config/sway-config4
-rw-r--r--dom0/home.scm31
-rw-r--r--dom0/system-laptop.scm16
-rw-r--r--dom0/system.scm1
-rw-r--r--patches/libvirt-qemu-caps.patch73
-rw-r--r--vmstore/corpo/corpo-system.scm29
-rw-r--r--vmstore/corpo/home.scm26
7 files changed, 137 insertions, 43 deletions
diff --git a/dom0/files/misc-config/sway-config b/dom0/files/misc-config/sway-config
index e654cea..fd4e37f 100644
--- a/dom0/files/misc-config/sway-config
+++ b/dom0/files/misc-config/sway-config
@@ -26,7 +26,7 @@ output * bg $HOME/.config/guix-config/dom0/files/wallpapers/taclnc.png fill
# Example configuration:
#
# output HDMI-A-1 resolution 1920x1080 position 1920,0
-output * resolution 1920x1080 position 1920,0
+output * resolution 1920x1080
exec dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY
exec spice-vdagent
# You can get the names of your outputs by running: swaymsg -t get_outputs
@@ -222,7 +222,7 @@ bar {
# When the status_command prints a new line to stdout, swaybar updates.
# The default just shows the current date and time.
- status_command while date +'%Y-%m-%d %X'; do sleep 1; done
+ status_command while (echo "!! WARNING !! THIS IS Dom0 !! $(date +'%Y-%m-%d %X'); do sleep 1; done
colors {
statusline #ffffff
diff --git a/dom0/home.scm b/dom0/home.scm
index ee1028d..16bec95 100644
--- a/dom0/home.scm
+++ b/dom0/home.scm
@@ -13,10 +13,10 @@
#:use-module (guix gexp)
#:export (dom0-home-environment))
- (use-package-modules compression gnome fonts freedesktop
+ (use-package-modules compression gnome gnome-xyz video fonts freedesktop
linux package-management pulseaudio ssh
terminals xdisorg xorg glib virtualization
- wm)
+ wm messaging)
(define dom0-home-environment
(home-environment
@@ -40,12 +40,24 @@
("CLUTTER_BACKEND" . "wayland")
("ELM_ENGINE" . "wayland_egl")
("ECORE_EVAS_ENGINE" . "wayland-egl")
- ("QT_QPA_PLATFORM" . "wayland-egl")))
+ ("QT_QPA_PLATFORM" . "wayland-egl")
+
+ ;; JAVA
+ ("_JAVA_AWT_WM_NONREPARENTING" . #t)
+
+ ;; env-vars for Flatpak visibility
+ ("XDG_DATA_DIRS" . "$XDG_DATA_DIRS:$HOME/.local/share/flatpak/exports/share")))
(service home-bash-service-type
(home-bash-configuration
- (bash-profile (list (local-file "files/scripts/sway-login")))
+ (bash-profile (list (local-file "files/scripts/sway-login")
+ ("flatpak -u remote-add --if-not-exists flathub https://flathub.org/repo/flathub.pakrepo"))
(bashrc (list (local-file "files/scripts/gpg-agent-tty")))))
+
+ (simple-service 'xdg-user-directories-config-service
+ home-xdg-user-directories-service-type
+ (home-xdg-user-directories-configuration
+ (download "$HOME/Downloads")))
(service home-xdg-configuration-files-service-type
`(("sway/config" ,(local-file "./files/misc-config/sway-config"))))
@@ -55,20 +67,23 @@
(pinentry-program
(file-append pinentry "/bin/pinentry"))
(ssh-support? #t)))
+
(service home-dbus-service-type)
(service home-pipewire-service-type)))
(packages (list xorg-server-xwayland
sway swayidle swaylock fuzzel foot
- grimshot wl-clipboard network-manager-applet
+ grimshot wl-clipboard wl-paste network-manager-applet
xdg-desktop-portal xdg-desktop-portal-gtk
xdg-desktop-portal-wlr xdg-utils xdg-dbus-proxy shared-mime-info
- ;; Flatpak
- flatpak (list glib "bin")
+ ;; Flatpak and XDG
+ flatpak (list glib "bin") ; flatpak dependency
+ xdg-desktop-portal xdg-desktop-portal-gtk xdg-desktop-portal-wlr
+ xdg-utils xdg-dbus-proxy shared-mime-info
;; Audio
alsa-utils pavucontrol
;; General
- virt-manager openssh zip unzip))))
+ openssh zip unzip))))
diff --git a/dom0/system-laptop.scm b/dom0/system-laptop.scm
index d7f9ba5..20bdc89 100644
--- a/dom0/system-laptop.scm
+++ b/dom0/system-laptop.scm
@@ -26,13 +26,13 @@
;; Users ('root' is implicit).
(users (cons* (user-account
- (name "dom0")
- (comment "dom0")
- (group "users")
- (home-directory "/home/dom0")
- (supplementary-groups '("wheel" "libvirt" "kvm"
+ (name "dom0")
+ (comment "dom0")
+ (group "users")
+ (home-directory "/home/dom0")
+ (supplementary-groups '("wheel" "libvirt" "kvm"
"netdev" "audio" "video")))
- %base-user-accounts))
+ %base-user-accounts))
(bootloader (bootloader-configuration
(bootloader grub-efi-bootloader)
@@ -94,8 +94,7 @@
(list
;; NVIDIA
(service nvidia-service-type)
- ;(service kernel-module-loader-service-type
- ;'("nvidia"))
+
;; systemd dependencies
(service elogind-service-type)
@@ -171,5 +170,6 @@
(packages (cons* vim
git
cryptsetup
+ virt-manager
strace
%base-packages)))
diff --git a/dom0/system.scm b/dom0/system.scm
index 4b5b03c..6cd02c5 100644
--- a/dom0/system.scm
+++ b/dom0/system.scm
@@ -170,6 +170,7 @@
;; Packages (system-wide)
(packages (cons* vim
git
+ virt-manager
cryptsetup
strace
%base-packages)))
diff --git a/patches/libvirt-qemu-caps.patch b/patches/libvirt-qemu-caps.patch
new file mode 100644
index 0000000..dd110a6
--- /dev/null
+++ b/patches/libvirt-qemu-caps.patch
@@ -0,0 +1,73 @@
+From e7239c619fcaf35b8b605ce07c5d5b15351b3a62 Mon Sep 17 00:00:00 2001
+From: anonymix007 <48598263+anonymix007@users.noreply.github.com>
+Date: Wed, 4 Jun 2025 12:05:23 +0300
+Subject: [PATCH] qemu: capabilities: Check if cpuModels is not NULL before
+ trying to dereference it
+
+accel->cpuModels field might be NULL if QEMU does not return CPU models.
+The following backtrace is observed in such cases:
+0 virQEMUCapsProbeQMPCPUDefinitions (qemuCaps=qemuCaps@entry=0x7f1890003ae0, accel=accel@entry=0x7f1890003c10, mon=mon@entry=0x7f1890005270)
+ at ../src/qemu/qemu_capabilities.c:3091
+1 0x00007f18b42fa7b1 in virQEMUCapsInitQMPMonitor (qemuCaps=qemuCaps@entry=0x7f1890003ae0, mon=0x7f1890005270) at ../src/qemu/qemu_capabilities.c:5746
+2 0x00007f18b42fafaf in virQEMUCapsInitQMPSingle (qemuCaps=qemuCaps@entry=0x7f1890003ae0, libDir=libDir@entry=0x7f186c1e70f0 "/var/lib/libvirt/qemu",
+ runUid=runUid@entry=955, runGid=runGid@entry=955, onlyTCG=onlyTCG@entry=false) at ../src/qemu/qemu_capabilities.c:5832
+3 0x00007f18b42fb1a5 in virQEMUCapsInitQMP (qemuCaps=0x7f1890003ae0, libDir=0x7f186c1e70f0 "/var/lib/libvirt/qemu", runUid=955, runGid=955)
+ at ../src/qemu/qemu_capabilities.c:5848
+4 virQEMUCapsNewForBinaryInternal (hostArch=VIR_ARCH_X86_64, binary=binary@entry=0x7f1868002fc0 "/usr/bin/qemu-system-alpha",
+ libDir=0x7f186c1e70f0 "/var/lib/libvirt/qemu", runUid=955, runGid=955,
+ hostCPUSignature=0x7f186c1e9f20 "AuthenticAMD, AMD Ryzen 9 7950X 16-Core Processor, family: 25, model: 97, stepping: 2", microcodeVersion=174068233,
+ kernelVersion=0x7f186c194200 "6.14.9-arch1-1 #1 SMP PREEMPT_DYNAMIC Thu, 29 May 2025 21:42:15 +0000", cpuData=0x7f186c1ea490)
+ at ../src/qemu/qemu_capabilities.c:5907
+5 0x00007f18b42fb4c9 in virQEMUCapsNewData (binary=0x7f1868002fc0 "/usr/bin/qemu-system-alpha", privData=0x7f186c194280)
+ at ../src/qemu/qemu_capabilities.c:5942
+6 0x00007f18bd42d302 in virFileCacheNewData (cache=0x7f186c193730, name=0x7f1868002fc0 "/usr/bin/qemu-system-alpha") at ../src/util/virfilecache.c:206
+7 virFileCacheValidate (cache=cache@entry=0x7f186c193730, name=name@entry=0x7f1868002fc0 "/usr/bin/qemu-system-alpha", data=data@entry=0x7f18b67c37c0)
+ at ../src/util/virfilecache.c:269
+8 0x00007f18bd42d5b8 in virFileCacheLookup (cache=cache@entry=0x7f186c193730, name=name@entry=0x7f1868002fc0 "/usr/bin/qemu-system-alpha")
+ at ../src/util/virfilecache.c:301
+9 0x00007f18b42fb679 in virQEMUCapsCacheLookup (cache=cache@entry=0x7f186c193730, binary=binary@entry=0x7f1868002fc0 "/usr/bin/qemu-system-alpha")
+ at ../src/qemu/qemu_capabilities.c:6036
+10 0x00007f18b42fb785 in virQEMUCapsInitGuest (caps=<optimized out>, cache=<optimized out>, hostarch=VIR_ARCH_X86_64, guestarch=VIR_ARCH_ALPHA)
+ at ../src/qemu/qemu_capabilities.c:1037
+11 virQEMUCapsInit (cache=0x7f186c193730) at ../src/qemu/qemu_capabilities.c:1229
+12 0x00007f18b431d311 in virQEMUDriverCreateCapabilities (driver=driver@entry=0x7f186c01f410) at ../src/qemu/qemu_conf.c:1553
+13 0x00007f18b431d663 in virQEMUDriverGetCapabilities (driver=0x7f186c01f410, refresh=<optimized out>) at ../src/qemu/qemu_conf.c:1623
+14 0x00007f18b435e3e4 in qemuConnectGetVersion (conn=<optimized out>, version=0x7f18b67c39b0) at ../src/qemu/qemu_driver.c:1492
+15 0x00007f18bd69c5e8 in virConnectGetVersion (conn=0x55bc5f4cda20, hvVer=hvVer@entry=0x7f18b67c39b0) at ../src/libvirt-host.c:201
+16 0x000055bc34ef3627 in remoteDispatchConnectGetVersion (server=0x55bc5f4b93f0, msg=0x55bc5f4cdf60, client=0x55bc5f4c66d0, rerr=0x7f18b67c3a80,
+ ret=0x55bc5f4b8670) at src/remote/remote_daemon_dispatch_stubs.h:1265
+17 remoteDispatchConnectGetVersionHelper (server=0x55bc5f4b93f0, client=0x55bc5f4c66d0, msg=0x55bc5f4cdf60, rerr=0x7f18b67c3a80, args=0x0, ret=0x55bc5f4b8670)
+ at src/remote/remote_daemon_dispatch_stubs.h:1247
+18 0x00007f18bd5506da in virNetServerProgramDispatchCall (prog=0x55bc5f4cae90, server=0x55bc5f4b93f0, client=0x55bc5f4c66d0, msg=0x55bc5f4cdf60)
+ at ../src/rpc/virnetserverprogram.c:423
+19 virNetServerProgramDispatch (prog=0x55bc5f4cae90, server=server@entry=0x55bc5f4b93f0, client=0x55bc5f4c66d0, msg=0x55bc5f4cdf60)
+ at ../src/rpc/virnetserverprogram.c:299
+20 0x00007f18bd556c32 in virNetServerProcessMsg (srv=srv@entry=0x55bc5f4b93f0, client=<optimized out>, prog=<optimized out>, msg=<optimized out>)
+ at ../src/rpc/virnetserver.c:135
+21 0x00007f18bd556f77 in virNetServerHandleJob (jobOpaque=0x55bc5f4d2bb0, opaque=0x55bc5f4b93f0) at ../src/rpc/virnetserver.c:155
+22 0x00007f18bd47dd19 in virThreadPoolWorker (opaque=<optimized out>) at ../src/util/virthreadpool.c:164
+23 0x00007f18bd47d253 in virThreadHelper (data=0x55bc5f4b7810) at ../src/util/virthread.c:256
+24 0x00007f18bce117eb in start_thread (arg=<optimized out>) at pthread_create.c:448
+25 0x00007f18bce9518c in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
+
+Signed-off-by: anonymix007 <anonymix007@users.noreply.github.com>
+---
+ src/qemu/qemu_capabilities.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
+index 3cbdf3de82..8ba528fc07 100644
+--- a/src/qemu/qemu_capabilities.c
++++ b/src/qemu/qemu_capabilities.c
+@@ -3087,6 +3087,9 @@ virQEMUCapsProbeQMPCPUDefinitions(virQEMUCaps *qemuCaps,
+ if (virQEMUCapsFetchCPUDefinitions(mon, qemuCaps->arch, &accel->cpuModels) < 0)
+ return -1;
+
++ if (!accel->cpuModels)
++ return 0;
++
+ defs = accel->cpuModels;
+ for (i = 0; i < defs->ncpus; i++) {
+ if (STREQ_NULLABLE(defs->cpus[i].name, "max")) {
+--
+2.51.0
diff --git a/vmstore/corpo/corpo-system.scm b/vmstore/corpo/corpo-system.scm
index 3544847..930990f 100644
--- a/vmstore/corpo/corpo-system.scm
+++ b/vmstore/corpo/corpo-system.scm
@@ -11,7 +11,7 @@
(use-service-modules linux guix desktop pm audio
networking dbus xorg avahi spice)
(use-package-modules linux audio libusb wm fonts
- freedesktop vim cryptsetup)
+ freedesktop vim security-token cryptsetup)
(operating-system
(locale "en_GB.utf8")
@@ -26,7 +26,7 @@
(password (crypt "worker" "$6$abc"))
(group "users")
(home-directory "/home/corpo")
- (supplementary-groups '("wheel" "netdev" "audio" "video")))
+ (supplementary-groups '("wheel" "plugdev" "netdev" "audio" "video")))
%base-user-accounts))
(bootloader (bootloader-configuration
@@ -42,7 +42,7 @@
;; Non-free
(kernel linux)
- (kernel-arguments '("modprobe.blacklist=noveau"
+ (kernel-arguments '("modprobe.blacklist=nouveau"
;"nvidia_drm.modeset=1"
"quiet"))
(firmware (list linux-firmware))
@@ -68,8 +68,7 @@
(list
;; NVIDIA
;(service nvidia-service-type)
- ;(service kernel-module-loader-service-type
- ;'("nvidia"))
+
;; systemd dependencies
(service elogind-service-type)
@@ -103,19 +102,9 @@
(using-setuid? #t)))
;; Networking
- ;(service network-manager-service-type)
+ (service network-manager-service-type)
(service wpa-supplicant-service-type)
- (service static-networking-service-type
- (list (static-networking
- (addresses
- (list (network-address
- (device "eth0")
- (value "10.0.2.15/24"))))
- (routes
- (list (network-route
- (destination "default")
- (gateway "10.0.2.2"))))
- (name-servers '("208.67.222.222")))))
+
;; dbus
(service avahi-service-type)
(service udisks-service-type)
@@ -124,7 +113,7 @@
(service polkit-service-type)
(service dbus-root-service-type)
- ;; Cleanup stayle font cache
+ ;; Cleanup stale font cache
fontconfig-file-system-service
;; Power and thermals
@@ -137,9 +126,9 @@
;; Time
(service ntp-service-type)
- ;; udev
+ ;; udev including yubikey
(udev-rules-service 'pipewire-add-udev-rules pipewire)
-
+ (udev-rules-service 'fido2 libfido2 #:groups '("plugdev"))
;; corpo home
(service guix-home-service-type
`(("worker" ,corpo-home-environment))))))
diff --git a/vmstore/corpo/home.scm b/vmstore/corpo/home.scm
index 5211c57..eaf1a7c 100644
--- a/vmstore/corpo/home.scm
+++ b/vmstore/corpo/home.scm
@@ -13,9 +13,9 @@
#:use-module (guix gexp)
#:export (corpo-home-environment))
- (use-package-modules compression gnome fonts freedesktop
+ (use-package-modules compression gnome gnome-xyz video fonts freedesktop
linux package-management pulseaudio
- terminals xdisorg xorg glib wm)
+ terminals xdisorg xorg glib wm messaging)
(define corpo-home-environment
(home-environment
@@ -40,11 +40,25 @@
("ELM_ENGINE" . "wayland_egl")
("ECORE_EVAS_ENGINE" . "wayland-egl")
("QT_QPA_PLATFORM" . "wayland-egl")))
+
+ ;; JAVA
+ ("_JAVA_AWT_WM_NONREPARENTING")
+
+ ;; env-vars for Flatpak visibility
+ ("XDG_DATA_DIRS". "$XDG_DATA_DIRS:$HOME/.local/share/flatpak/exports/share" #t)
+
(service home-bash-service-type
(home-bash-configuration
- (bash-profile (list (local-file "./files/scripts/sway-login")))))
-
+ (bash-profile (list (local-file "./files/scripts/sway-login")
+ ("flatpak -u remote-add --if-not-exists flathub https://flathub.org/repo/flathub.pakrepo")))))
+
+
+ (simple-service 'xdg-user-directories-config-service
+ home-xdg-user-directories-service-type
+ (home-xdg-user-directories-configuration
+ (download "$HOME/Downloads"))))
+
(service home-xdg-configuration-files-service-type
`(("sway/config" ,(local-file "./files/misc-config/sway-config"))))
@@ -53,12 +67,14 @@
(packages (list xorg-server-xwayland
sway swayidle swaylock fuzzel foot
- grimshot wl-clipboard network-manager-applet
+ grimshot wl-clipboard wl-paste network-manager-applet
xdg-desktop-portal xdg-desktop-portal-gtk
xdg-desktop-portal-wlr xdg-utils xdg-dbus-proxy shared-mime-info
;; Flatpak
flatpak (list glib "bin") ; flatpak dependency
+ xdg-desktop-portal xdg-desktop-portal-gtk xdg-desktop-portal-wlr
+ xdg-utils xdg-bus-proxy shared-mime-info
;; Audio
alsa-utils pavucontrol