Need help with nonguix - mesa and other stuffs

hi all. i need help reviewing my config.scm file. im really struggling to find information about (replace-mesa). nonguix docs doesnt explain it well as i get an error:

In procedure replace-mesa:
Invalid keyword: #<package nvda@580.15 nongnu/packages/nvidia.scm:729 7f13df925580>

without replace-mesa, this is the error i get otherwise:

guix system: error: no target of type 'special-files' for service 'nvidia'

what am i doing wrong?! please help.

config.scm

(use-modules (gnu)
(gnu tests linux-modules)
(gnu home)
(gnu home services)
(gnu home services shells)
(gnu home services utils)
(gnu services)
(gnu services sound)
(gnu services linux)
(gnu services desktop)
(gnu services vpn)
(gnu services sddm)
(gnu services configuration)
(gnu packages admin)
(gnu packages freedesktop)
(gnu packages compton)
(gnu packages linux)
(gnu packages gnome)
(gnu packages connman)
(gnu packages tex)
(guix gexp)
(guix transformations)
(nongnu packages linux)
(nongnu packages nvidia)
(nongnu packages firmware)
(nongnu packages nvidia)
(nongnu services nvidia)
(nongnu system linux-initrd)
;; nonguix transformations
(nonguix transformations))

(replace-mesa #:driver nvda-580)

;; removed nvidia here V
(use-package-modules xdisorg xorg xfce fonts package-management ncurses wm text-editors python-xyz terminals version-control display-managers linux librewolf)

;; desktop used to go here V
;; nvidia goes here? V
(use-service-modules desktop networking xorg sddm ssh xorg linux)

(define xf
(compose
(nonguix-transformation-guix)))

(define %pc
(operating-system
(kernel linux)
(kernel-arguments (append
'(“modprobe.blacklist=nouveau”
“nvidia_drm.modeset=1”)
%default-kernel-arguments))
(kernel-loadable-modules (list nvidia-driver nvidia-modules))
(firmware (cons* linux-firmware iwlwifi-firmware %base-firmware))
(initrd microcode-initrd)

;; users and locale information here

(packages (append (list
obconf
ncurses
thunar
librewolf
flatpak
git
nvidia-system-monitor
htop
network-manager
font-jetbrains-mono
font-abattis-cantarell
font-adobe-source-code-pro
font-adobe-source-han-code-jp
font-adobe-source-serif
font-adobe100dpi
font-adwaita
font-liberation
texlive-dejavu-otf
sddm
xinit xwallpaper
xset
xscreensaver
tint2
picom
pipewire
wireplumber
rxvt-unicode
(specification->package “openbox” “nvidia-driver” “nvidia-module” “bluez”)) %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
(simple-service 'network-manager-applet
profile-service-type
(list (replace-mesa network-manager-applet)))
(service nvidia-service-type)
(service network-manager-service-type
(network-manager-configuration
(network-manager (replace-mesa network-manager))))
(service connman-service-type
(connman-configuration
(disable-vpn? #f)))
(service alsa-service-type)
;; To configure OpenSSH, pass an ‘openssh-configuration’
;; record as a second argument to ‘service’ below.
(service sddm-service-type
(sddm-configuration
(xorg-configuration
(xorg-configuration (keyboard-layout keyboard-layout)
(modules (cons* nvidia-driver %default-xorg-modules))
(drivers '(“nvidia”))))))
(service openssh-service-type))))

;; bootloader and filesystems here

(xf %pc)
((nonguix-transformation-nvidia
#:driver nvda-580
#:configure-xorg? sddm-service-type
#:kernel-mode-setting? #true)
%pc)

Can you put your config.scm contents into code format instead of ‘hide details’?
I don’t think you have to worry about it being too long as this forum seems to add scrollbars for long code and it makes it more readable for others.

Also, do you mean to say nongnu instead of nonguix? I didn’t even know using Guix with the linux kernel existed until now and associate nonguix with the nonguix channel and nonGPL apps.

here you go:

(use-modules (gnu)
(gnu tests linux-modules)
(gnu home)
(gnu home services)
(gnu home services shells)
(gnu home services utils)
(gnu services)
(gnu services sound)
(gnu services linux)
(gnu services desktop)
(gnu services vpn)
(gnu services sddm)
(gnu services configuration)
(gnu packages admin)
(gnu packages freedesktop)
(gnu packages compton)
(gnu packages linux)
(gnu packages gnome)
(gnu packages connman)
(gnu packages tex)
(guix gexp)
(guix transformations)
(nongnu packages linux)
(nongnu packages nvidia)
(nongnu packages firmware)
(nongnu packages nvidia)
(nongnu services nvidia)
(nongnu system linux-initrd)
;; nonguix transformations
(nonguix transformations))

(replace-mesa #:driver nvda-580)

;; removed nvidia here V
(use-package-modules xdisorg xorg xfce fonts package-management ncurses wm text-editors python-xyz terminals version-control display-managers linux librewolf)

;; desktop used to go here V
;; nvidia goes here? V
(use-service-modules desktop networking xorg sddm ssh xorg linux)

(define xf
(compose
(nonguix-transformation-guix)))

(define %pc
(operating-system
(kernel linux)
(kernel-arguments (append
'(“modprobe.blacklist=nouveau”
“nvidia_drm.modeset=1”)
%default-kernel-arguments))
(kernel-loadable-modules (list nvidia-driver nvidia-modules))
(firmware (cons* linux-firmware iwlwifi-firmware %base-firmware))
(initrd microcode-initrd)

;; users and locale information here

(packages (append (list
obconf
ncurses
thunar
librewolf
flatpak
git
nvidia-system-monitor
htop
network-manager
font-jetbrains-mono
font-abattis-cantarell
font-adobe-source-code-pro
font-adobe-source-han-code-jp
font-adobe-source-serif
font-adobe100dpi
font-adwaita
font-liberation
texlive-dejavu-otf
sddm
xinit xwallpaper
xset
xscreensaver
tint2
picom
pipewire
wireplumber
rxvt-unicode
(specification->package “openbox” “nvidia-driver” “nvidia-module” “bluez”)) %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
(simple-service 'network-manager-applet
profile-service-type
(list (replace-mesa network-manager-applet)))
(service nvidia-service-type)
(service network-manager-service-type
(network-manager-configuration
(network-manager (replace-mesa network-manager))))
(service connman-service-type
(connman-configuration
(disable-vpn? #f)))
(service alsa-service-type)
;; To configure OpenSSH, pass an ‘openssh-configuration’
;; record as a second argument to ‘service’ below.
(service sddm-service-type
(sddm-configuration
(xorg-configuration
(xorg-configuration (keyboard-layout keyboard-layout)
(modules (cons* nvidia-driver %default-xorg-modules))
(drivers '(“nvidia”))))))
(service openssh-service-type))))

;; bootloader and filesystems here

(xf %pc)
((nonguix-transformation-nvidia
#:driver nvda-580
#:configure-xorg? sddm-service-type
#:kernel-mode-setting? #true)
%pc)


yea you can use guix alongside the linux kernel. nonguix has transformations i need in order to use legacy nvidia drivers on my machine. i shouldve mentioned that in my first post.

Here’s slightly modified working version of your configuration, with the intended NVIDIA driver setup.

(use-modules (gnu)
             (gnu tests linux-modules)
             (gnu home)
             (gnu home services)
             (gnu home services shells)
             (gnu home services utils)
             (gnu services)
             (gnu services sound)
             (gnu services linux)
             (gnu services desktop)
             (gnu services vpn)
             (gnu services sddm)
             (gnu services configuration)
             (gnu packages admin)
             (gnu packages freedesktop)
             (gnu packages compton)
             (gnu packages linux)
             (gnu packages gnome)
             (gnu packages connman)
             (gnu packages tex)
             (guix gexp)
             (guix transformations)
             (nongnu packages linux)
             (nongnu packages nvidia)
             (nongnu packages firmware)
             (nongnu packages nvidia)
             (nongnu services nvidia)
             (nongnu system linux-initrd)
             ;; nonguix transformations
             (nonguix transformations))

;; removed nvidia here V
(use-package-modules xdisorg xorg xfce fonts package-management ncurses wm text-editors python-xyz terminals version-control display-managers linux librewolf)

;; desktop used to go here V
;; nvidia goes here? V
(use-service-modules desktop networking xorg sddm ssh xorg linux)

(define %pc
  (operating-system
    (kernel linux)
    (firmware (cons* linux-firmware %base-firmware))
    (initrd microcode-initrd)

    ;; users and locale information here

    (packages (append (list
                       obconf
                       ncurses
                       thunar
                       librewolf
                       flatpak
                       git
                       nvidia-system-monitor
                       htop
                       network-manager
                       font-jetbrains-mono
                       font-abattis-cantarell
                       font-adobe-source-code-pro
                       font-adobe-source-han-code-jp
                       font-adobe-source-serif
                       font-adobe100dpi
                       font-adwaita
                       font-liberation
                       texlive-dejavu-otf
                       sddm
                       xinit xwallpaper
                       xset
                       xscreensaver
                       tint2
                       picom
                       pipewire
                       wireplumber
                       rxvt-unicode
                       (specification->package "openbox")
                       (specification->package "bluez"))
                      %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 (service sddm-service-type)
            (set-xorg-configuration
             (xorg-configuration
               (keyboard-layout keyboard-layout))
             sddm-service-type)

            ;; To configure OpenSSH, pass an ‘openssh-configuration’
            ;; record as a second argument to ‘service’ below.
            (service openssh-service-type))

      (modify-services %desktop-services
        (delete gdm-service-type))))

    ;; bootloader and filesystems here
    ))

((compose (nonguix-transformation-guix)
          (nonguix-transformation-nvidia
           #:driver nvda-580
           #:configure-xorg? sddm-service-type))
 %pc)

thank you. now i can reconfigure.