Guix icons: can't render them in firefox and emacs

Hi,

Most of my icons and emoticons are broken (emacs and browser). Few examples:

image

I have guix installed as an OS using systemcrafters image and I’m using Mozilla Firefox 137.0.2.

Any ideas on how to fix this? Here are my system and home files.

(use-modules (gnu)
             (nongnu packages linux)
             (gnu packages linux)
             (gnu packages audio)
             (gnu packages networking)
             (gnu packages package-management))

(use-service-modules cups
		     desktop
		     networking
		     ssh
		     xorg
		     sound
		     nix
		     docker
		     )


;;non-guix key for substitute urls
(define %nonguix-key
  (plain-file
   "nonguix-archive-key.pub"
   "(public-key
    (ecc
     (curve Ed25519)
     (q #C1FD53E5D4CE971933EC50C9F307AE2171A2D3B52C804642A7A35F84F3A4EA98#)))"))


(operating-system
 (kernel linux)
 (firmware (list linux-firmware
                 iwlwifi-firmware))
 ;; Add this to make sure the module gets loaded at boot time
 (initrd-modules (append '("btusb") %base-initrd-modules))
 (locale "en_US.utf8")
 (timezone "America/Santiago")
 (keyboard-layout (keyboard-layout "us"))
 (host-name "juanpablo")

 ;; The list of user accounts ('root' is implicit).
 (users (cons* (user-account
                (name "juanpablo")
                (comment "Juan Pablo")
                (group "users")
                (home-directory "/home/juanpablo")
                (supplementary-groups '("wheel" "netdev" "audio" "video")))
               %base-user-accounts))

 ;; Packages installed system-wide.  Users can also install packages
 ;; under their own account: use 'guix search KEYWORD' to search
 ;; for packages and 'guix install PACKAGE' to install a package.
 (packages (append (list (specification->package "emacs")
                         (specification->package "emacs-exwm")
                         (specification->package "emacs-desktop-environment")
                         (specification->package "bluez")
                         (specification->package "blueman")
                         (specification->package "pipewire")
                         (specification->package "wireplumber")
                         (specification->package "nix")
			 (specification->package "docker")
			 )
                   %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 gnome-desktop-service-type)
                ;; To configure OpenSSH, pass an 'openssh-configuration'
                ;; record as a second argument to 'service' below.
                (service openssh-service-type)
                (service cups-service-type)
                (service nix-service-type)
                (set-xorg-configuration
                 (xorg-configuration
                  (keyboard-layout keyboard-layout)))
                (service bluetooth-service-type
                         (bluetooth-configuration
                          (auto-enable? #t)))
		(service docker-service-type)
		(service containerd-service-type)
		)
	  
          ;; Add the Nonguix substitutes configuration
          (modify-services %desktop-services
                           (guix-service-type config =>
                                              (guix-configuration
                                               (inherit config)
                                               (authorize-key? #t)
                                               (discover? #t)
                                               (authorized-keys
                                                (append (list %nonguix-key)
                                                        %default-authorized-guix-keys))
                                               (substitute-urls
                                                (append
                                                 (list "https://substitutes.nonguix.org"
                                                       "https://ci.guix.gnu.org"
                                                       "https://bordeaux.guix.gnu.org")
                                                 %default-substitute-urls))))
			   )
	  )
 )

 (bootloader (bootloader-configuration
              (bootloader grub-efi-bootloader)
              (targets (list "/boot/efi"))
              (keyboard-layout keyboard-layout)))
 (swap-devices (list (swap-space
                      (target (uuid
                               "939e1958-ff51-429b-8934-0508c120af98")))))

 ;; The list of file systems that get "mounted".  The unique
 ;; file system identifiers there ("UUIDs") can be obtained
 ;; by running 'blkid' in a terminal.
 (file-systems (cons* (file-system
                       (mount-point "/boot/efi")
                       (device (uuid "1EB2-58A7"
                                     'fat32))
                       (type "vfat"))
                      (file-system
                       (mount-point "/")
                       (device (uuid
                                "38524a9a-825a-4794-9464-7acb796d2dac"
                                'ext4))
                       (type "ext4")) %base-file-systems)))

  ;; This is the uuid for s76gx laptop
  ;;   ;; The list of file systems that get "mounted".  The unique
  ;; ;; file system identifiers there ("UUIDs") can be obtained
  ;; ;; by running 'blkid' in a terminal.
  ;; (file-systems (cons* (file-system
  ;;                        (mount-point "/")
  ;;                        (device (uuid
  ;;                                 "8b11798e-bf6a-45f3-8e9d-0da8d300030d"
  ;;                                 'ext4))
  ;;                        (type "ext4"))
  ;;                      (file-system
  ;;                        (mount-point "/boot/efi")
  ;;                        (device (uuid "DD8A-554A"
  ;;                                      'fat32))
  ;;                        (type "vfat")) %base-file-systems)))
(use-modules (gnu home)
             (gnu home services)
             (gnu packages)
	     (gnu services)
	     (gnu packages emacs)
             (gnu packages emacs-xyz)
             (gnu packages fonts)
             (gnu packages python)
             (gnu packages node)
             (gnu packages tex)
             (gnu packages version-control)
	     (gnu packages haskell-xyz)
	     (gnu packages python-xyz)
	     (gnu packages texlive)
	     (guix transformations)
	     (guix packages)
	     (srfi srfi-1)
             (guix build-system emacs)
	     (guix build-system gnu)
	     (guix build-system copy)
	     (packages ai)
	     (packages ensure-guix)
	     (gnu packages networking)
	     (gnu packages mail)
	     (gnu packages curl)
	     (gnu home services sound)
	     (gnu home services desktop)
	     (gnu packages web)
	     (gnu packages docker)
	     (gnu packages compression)
	     ;; (gnu home services desktop)
	     ;; (gnu services desktop)
	     )


;; (display (module-ref (resolve-interface '(packages ai)) 'globalprotect-openconnect))
;; (newline)



(define transform-gptel
  (options->transformation
   '((with-commit . "emacs-gptel=075376c002d0f0c50e68ffd23c647eeab27fea73"))))

(define gptel-package
  (transform-gptel emacs-gptel))

(define gptel-without-compilation
  (package
   (inherit emacs-gptel)
   (build-system copy-build-system)
   (arguments
    `(#:install-plan
      '(("." "share/emacs/site-lisp/"))))))  ;; Copy the entire directory

(home-environment
 (packages
  (list emacs-next
        emacs
	git
	emacs-use-package-ensure-guix
        emacs-ace-window
        emacs-all-the-icons
        emacs-atomic-chrome
        emacs-auto-yasnippet
        emacs-avy
        emacs-bug-hunter
        emacs-burly
        emacs-cape
        emacs-code-cells
        emacs-corfu
        emacs-counsel
        emacs-counsel-tramp
        emacs-dap-mode
        emacs-dash
        emacs-dashboard
        emacs-docker-tramp
        emacs-doom-modeline
        emacs-doom-themes
        emacs-easy-kill
        emacs-editorconfig
        emacs-elfeed
        emacs-eterm-256color
        emacs-evil-nerd-commenter
        emacs-exec-path-from-shell
        emacs-expand-region
        emacs-f
        emacs-flycheck
        emacs-fontaine
        emacs-general
        emacs-guix
        emacs-hide-lines
        emacs-hydra
        emacs-ivy
        emacs-ivy-rich
        emacs-ivy-yasnippet
        emacs-jsonrpc
        emacs-jupyter
        emacs-kind-icon
        emacs-lsp-ivy
        emacs-lsp-mode
        emacs-lsp-treemacs
        emacs-lsp-ui
        emacs-magit
        emacs-multiple-cursors
        emacs-no-littering
        emacs-org
        emacs-org-bullets
        emacs-org-chef
        emacs-org-download
        emacs-org-tree-slide
        emacs-ox-hugo
        emacs-page-break-lines
        emacs-perspective
        emacs-phi-search
        emacs-pretty-hydra
        emacs-projectile
        emacs-pyvenv
        emacs-restclient
        emacs-s
        emacs-sphinx-doc
        emacs-swiper
        emacs-transpose-frame
        emacs-use-package
        emacs-which-key
        emacs-yasnippet
        ;; font-aporetic
        font-iosevka
        font-iosevka-comfy
        node
        pandoc
        python
        python-jupytext
        python-lsp-server
	;; texlive
	emacs-transient
	emacs-copilot
	;; emacs-gptel
	gptel-without-compilation
	emacs-claude-code
	emacs-aider
	drepl
	comint-mime
	mathjax
	mu
	;; globalprotect-openconnect
	;; emacs-transient
	;; claude-code-cli
	;; (specification->package "claude-code-cli@0.1.0")
	;; ((options->transformation
	;;   '((with-commit . "emacs-gptel=2bb081e")))
	;;  emacs-gptel))
	curl
	docker-cli
	zlib
	))
  (services
   (list
    (service home-dbus-service-type)
    (service home-pipewire-service-type)
    )
   )

 ;; (services
 ;;  (list
 ;;   (simple-service
 ;;    'desktop-entries
 ;;    home-desktop-entries-service-type
 ;;    (list
 ;;     (desktop-entyr
 ;;      (name "Emacs")
 ;;      (exec "bash -l -c 'emacs %F'")
 ;;      (comment "GNU Emacs")
 ;;      (type "Application")
 ;;      (icon "emacs")
 ;;      (categories '("Development" "TextEditor"))
 ;;      (terminal #f))))))
 ;; )
)

Hey Juan,
I think it depends on various font packages
That youtube short, if it was japanese, may need additional packages like “font-adobe-source-han-sans”
“font-wqy-zenhei” (Found this through Application Setup (GNU Guix Reference Manual))
I had an issue with emojis as well, for that i needed “font-google-noto-emoji” to fix it, that fixed most of my issues, although i still get some unknown symbols related to nerd icons

1 Like