Hi all,

I started using Guix with XFCE on Xorg (with the default desktop configuration), and couldn't change the theme. I fixed the issue by installing dconf, which is needed by xfce to edit its own configuration. I think the problem could be fixed by adding dconf as a dependency of the xfce package.


What I did:
Editing the ThemeName property directly in ~/.config/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml or using the GTK_THEME="Greybird:dark" environment variable did not work (the xml edit was reverted after restarting the session, and the environment variable was only followed by my web browser, Librewolf, and not xfce utilities like Thunar or xfce4-terminal).

By running xfsettingsd manually with `xfsettingsd --replace --no-daemon`, I got a Dbus warning about not being able to commit the configuration changes due to a missing `ca.desrt.dconf` .service file when I tried changeing the theme in the XFCE settings.

After googling hard and configuring guix home to have a user dbus service, I learnt about the dconf-service and fixed the issue by simply installing the dconf package. After removing what I added, it turns out the guix home dbus service was not needed, but removing dconf and restarting makes the theme impossible to change again.


My system is a VM installed from the iso following the manual installation, running on a baremetal LUKS-encrypted LVM logical volume.


My system configuration (based on the desktop example):
```
;; This is an operating system configuration template
;; for a "desktop" setup with GNOME and Xfce where the
;; root partition is encrypted with LUKS, and a swap file.

(use-modules (gnu) (gnu system nss) (guix utils))
(use-service-modules desktop sddm xorg ssh spice)
(use-modules (gnu home services desktop))
(use-package-modules certs gnome ssh password-utils emacs gnome-xyz librewolf libreoffice)
; sshfs -> (gnu packages linux) ???
(use-package-modules linux)

(operating-system
  (host-name "geeksos")
  (timezone "Europe/Paris")
  (locale "fr_FR.utf8")

  ;; Choose US English keyboard layout.  The "altgr-intl"
  ;; variant provides dead keys for accented characters.
  (keyboard-layout (keyboard-layout "fr" "bepo"))

  ;; Use the UEFI variant of GRUB with the EFI System
  ;; Partition mounted on /boot/efi.
  (bootloader (bootloader-configuration
                (bootloader grub-efi-bootloader)
                (targets '("/boot/efi"))
                (keyboard-layout keyboard-layout)))

  ;; Specify a mapped device for the encrypted root partition.
  ;; The UUID is that returned by 'cryptsetup luksUUID'.
  ;(mapped-devices
  ; (list (mapped-device
  ;        (source (uuid "12345678-1234-1234-1234-123456789abc"))
  ;        (target "my-root")
  ;        (type luks-device-mapping))))

  (file-systems (append
                 (list (file-system
                         (device (file-system-label "root"))
                         (mount-point "/")
                         (type "btrfs"))
                       (file-system
                         (device (uuid "04AB-4473" 'fat))
                         (mount-point "/boot/efi")
                         (type "vfat")))
                 %base-file-systems))

  ;; Specify a swap file for the system, which resides on the
  ;; root file system.
  (swap-devices (list (swap-space
                       (target "/swapfile"))))

  ;; Create user `bob' with `alice' as its initial password.
  (users (cons (user-account
                (name "yacine")
                ;(comment "Alice's brother")
                ;(password #f)
                (group "yacine")
                (supplementary-groups '("wheel" "netdev"
                                        "audio" "video")))
               %base-user-accounts))

  ;; Add the `students' group
  (groups (cons* (user-group
                  (name "yacine"))
                 %base-groups))

  ;; This is where we specify system-wide packages.
  (packages (append (list
                     ;; for HTTPS access
                     ;nss-certs
                     ;; for user mounts
             gvfs

             ; does not work
             greybird-gtk-theme
             ; core
             openssh
             emacs
             librewolf
             libreoffice

             ; user utils
             sshfs
             password-store)
                    %base-packages))

  ;; Add GNOME and Xfce---we can choose at the log-in screen
  ;; by clicking the gear.  Use the "desktop" services, which
  ;; include the X11 log-in service, networking with
  ;; NetworkManager, and more.
  (services
    (append
      (list
    ;(service home-dbus-service-type                    ; only works in guix home configurations
    ;     (home-dbus-configuration))
    (service spice-vdagent-service-type
         (spice-vdagent-configuration))
    ; TODO: add authorized keys
    (service openssh-service-type
         (openssh-configuration
           (x11-forwarding? #t)
           (permit-root-login 'prohibit-password)
           (gateway-ports? #t))))
      (if (target-x86-64?)
                (append (list ;(service gnome-desktop-service-type)
                              (service xfce-desktop-service-type)
                              (set-xorg-configuration
                               (xorg-configuration
                                (keyboard-layout keyboard-layout))))
                        %desktop-services)

                ;; FIXME: Since GDM depends on Rust (gdm -> gnome-shell -> gjs
                ;; -> mozjs -> rust) and Rust is currently unavailable on
                ;; non-x86_64 platforms, we use SDDM and Mate here instead of
                ;; GNOME and GDM.
                (append (list ;(service mate-desktop-service-type)
                              (service xfce-desktop-service-type)
                              (set-xorg-configuration
                               (xorg-configuration
                                (keyboard-layout keyboard-layout))
                               sddm-service-type))
                        %desktop-services))))

  ;; Allow resolution of '.local' host names with mDNS.
  (name-service-switch %mdns-host-lookup-nss))
```


My home configuration:
```
(use-modules (gnu)
             (gnu home)
             (gnu home services shells))
(use-modules (gnu home services desktop))
(use-modules (gnu home services dotfiles))

(home-environment
;  (packages
;    (specifications->packages
;      (list
;    "xfce4-settings")))
  (services
    (list
      (service home-dotfiles-service-type
           (home-dotfiles-configuration
         (layout 'stow)
         (packages '("ssh"))
         (directories
           '("."))))
               ; excluding .git does not work, and keeping it breaks project management in doom emacs
         ; hack solution: using stow to whitelist directories to deploy
         ;(excluded '("./\\.git" "config\\.scm"))))
;      (service home-dbus-service-type
;           (home-dbus-configuration))
      (service home-bash-service-type
           (home-bash-configuration
         (environment-variables '(("PS1" . "\\[\\e[1;32m\\]\\u \\[\\e[1;34m\\]\\w \\[\\e[0m\\]λ ")                                                     ("EDITOR" . "emacsclient"))))))))
         ;(aliases '(("gs" . "git status"))))))))
 ;(packages (specifications->packages
 ;           (list "git"
 ;                 "emacs-no-x-toolkit")))

 ;(services (list (service home-bash-service-type
 ;                         (home-bash-configuration
 ;                          (environment-variables '(("PS1" . "\\[\\e[1;32m\\]\\u \\[\\e[1;34m\\]\\w \\[\\e[0m\\]λ ")  ;                                                   ("EDITOR" . "emacsclient")))
 ;                          (aliases '(("gs" . "git status"))))))))
```

Thank you




  • bug#77868: bug report: XF... Yacine Cheikhrouhou via Bug reports for GNU Guix

Reply via email to