Announcing Guile Knots!
cbaines.net/posts/announcing_g…
It's been around for a while, but I thought I'd try and do some publicity.
The blog post has more details but let me know if you have any thoughts or questions!
Announcing Guile Knots!
cbaines.net/posts/announcing_g…
It's been around for a while, but I thought I'd try and do some publicity.
The blog post has more details but let me know if you have any thoughts or questions!
It turns out that G-expressions don't handle references in vectors created using the read syntax (for example, #(1 2 3))
codeberg.org/guix/guix/pulls/1…
This will be useful if you have extensive usage of serializers like guile-json, which use vectors to represent arrays.
#guix
* guix/gexp.scm (gexp) [collect-escapes, substitute-references]: Support vectors created using the read syntax. * tests/gexp.scm ("one input package, vector"): New test.Codeberg.org
📢 Deliberation on GCD 008 on genAI use in #Guix has started; final document:
codeberg.org/guix/guix-consens…
Discussion:
codeberg.org/guix/guix-consens…
Guix team members: you have until July 27th 23:59 AoE to tell whether you support, accept, or disapprove the proposal!
guix-consensus-documents - Guix Consensus Documents—collaborative decision-makingCodeberg.org
“Debugging performance regressions”
hpc.guix.info/blog/2026/07/deb…
Where we talk about bisecting the entire distro in search of a bug.
Version 3 of GCD 008 on genAI use in #Guix is available 👇
codeberg.org/guix/guix-consens…
Discussion 👇
codeberg.org/guix/guix-consens…
📅 Deliberation tentatively scheduled for July 11th.
guix-consensus-documents - Guix Consensus Documents—collaborative decision-makingCodeberg.org
codeberg.org/Z572/guix-systemd…
#guix system with systemd
Currently it is only a demo and can be started via `guix system vm`.
Why do this? Because it's fun.
⚠️ Guix security alert ⚠️
Critical security vulnerabilities in the guix daemon and substitute capabilities have been disclosed. ALL users should immediately update.
guix.gnu.org/en/blog/2026/guix…
Blog posts about GNU Guix.guix.gnu.org
Introducing the mega Nonguix :P
ultrarare.space/en/posts/manag…
Here's English version! Updated for nix-shell-wrapper interface change and the new with-nix-profile. Added a new section for extra setups to workaround issues introduced by different packaging practices. Let me know if there're more of them.
Blog posts about GNU Guix.guix.gnu.org
Added a with-nix-profile macro. It can be used in package declaration of Guix System and Guix Home, transforming nix-shell-wrapper into packages and collecting Nix packages from them.
With the collected Nix packages, an additional build-nix-profile command is provided to build and link the resulted profile to the specified path, also registering GC root.
What's left is to write services to execute this build-nix-profile command and extend search paths ;)
To avoid loading incompatible libraries from the other distribution and crashing programs, like what may happen when using Guix and Nix on foreign distros, the constructed Nix profile won't contain executables and commands are provided by the nix shell wrappers.
See also the first few lists in codeberg.org/hako/Rosenthal/sr… and let me know what are missing.
Rosenthal - A certain Guix channel / 某 Guix 頻道Codeberg.org
I didn't fully understand nix shell, so here's improved nix-shell-wrapper interface (haven't pushed yet). Probably interesting to Nix folks as well :)
GuixPkgs: every #Guix package, as a #Nix flake -- on Farid Zakaria's blog
"With this primitive in hand, I pondered what it would mean to import the entire Guix package set into Nix."
fzakaria.com/2026/06/25/guixpk…
I’m a software engineer, father and wishful amateur surfer. If you’ve come seeking my political views, you’ve found the wrong Fareed.Farid Zakaria’s Blog
Collection of reproductible #eda #podman images for electronic design development, using #guix, classified by domain (#asic, #fpga, #synthesis, etc.)
codeberg.org/csantosb/eda-tool…
Use it as:
podman pull codeberg.org/csantosb/eda-tools/guix-kicad:0.1
podman run -it --rm --network=host -e DISPLAY -v "$PWD":"$PWD" -w "$PWD" -e HOME guix-kicad:0.1 kicad
Tweaked the interface a bit and added docstring. Here's code for nix-shell-wrapper and nix-shell-wrapper->package:
codeberg.org/hako/Rosenthal/sr…
Too many backslashes are used in the docstring, duplicating the examples here as well:
(nix-shell-wrapper "cowsay"
'("github:NixOS/nixpkgs/nixos-26.05#coreutils"
"github:NixOS/nixpkgs/nixos-26.05#cowsay")
#:run-command '("env" "LANG=C.UTF-8" "cowsay" "hello"))
(nix-shell-wrapper "python-with-numpy"
"with (import (builtins.getFlake \"github:NixOS/nixpkgs/nixos-26.05\") {}); python3.withPackages (ps: [ps.numpy])"
#:expression? #t
#:run-command '("python"))Rosenthal - A certain Guix channel / 某 Guix 頻道Codeberg.org
Here's improved example on constructing the Nix command, with a Scheme procedure for nix shell (more flexible than nix run and more similar to guix shell) wrappers.
#guix
There're chances that Guix misses service packages you want to use, and you can actually deploy your services with them from other sources, before the packages are properly packaged.
Besides the oci-service-type, Nixpkgs is also a good fit. The nix run command is similiar to guix time-machine + guix shell so you can have version-pinning as well.
Here's a rough example for the setup.
Hey, everyone. I want to spend the next few weeks learning @guix and installing it as a replacement for Debian. The learning curve looks daunting. Where do I start?
I want to do it on real hardware and I have a spare laptop. Sadly @daviwil's nice tutorials appear outdated...?
What I have: an ambition for software freedom and a love of Lisp. What I need: an understanding of the packaging model and (sadly) support for non-free hardware.
Point me to a recent .iso? Point me to a good explainer for noobs? Thanks!
Hey #Guix!
Now `guix pull` and `guix time-machine` supports Git symref. And?
It allows to easily have unmerged Pull-Request.
Consider the fictive PR 567 improving package foo.
And such CI processed this PR with the evaluation 1234.
Then
guix time-machine \
-C guix.bordeaux.inria.fr/eval/12… \
-- shell foo bar
where channels.scm file points to refs/pull/567/head.
Done! 🤩
* gnu/locak.mk (dist_patch_DATA): Register patch. * gnu/packages/patches/zig-0.16-fix-runpath.patch: New file. * gnu/packages/zig.scm (zig-0.16-libc-abi-tools, zig-0.16): New variables.Codeberg.org
There are already a lot of Emacs starter themes, @sacha and Prot made a full Yay Emacs episode on them[1], and also Emacs is going to have an official newcomer-presets thing[2].
Maybe #guix should focus on a different approach, lets implement the guile/wisp code switcher that the @spritely has in some of its articles, or lets support Jessica in the VSCode Guile extension effort[3].
1: sachachua.com/blog/2026/04/yay…
Created a starter Emacs configuration to work with Guix!
Thanks to the parinfer Lisp editing approach, I think it's possible to create a configuration that's usable for newcomers unfamiliar with Emacs, Scheme and Guix.
Currently the configuration is in its very early stage, feedback and contribution welcome!
This blog post is amazing 👇
coopi.neocities.org/posts/nix-…
A comprehensive mapping between Nix flakes and GNU Guix's mechanisms — for Nix folks curious about Guix, and Guix folks wondering what flakes even are.coopi.neocities.org
I finally gave it a try and here it is: home-writable-files-manager-service-type.
home-symlink-manager-service-type can be replaced to it:
(home-environment
(essential-services
(cons* (service home-writable-files-manager-service-type)
(modify-services ((@@ (gnu home) home-environment-default-essential-services)
this-home-environment)
(delete home-symlink-manager-service-type)))
...))On home activation, changed files (indentified by hash) will be copied to a backup directory as with home-symlink-manager-service-type.
Cc: @ekaitz_zarraga@mastodon.social
#guix
Rosenthal - A certain Guix channel / 某 Guix 頻道Codeberg.org
mirror-substitutes now adds a new on-demand operation mode. I have also refreshed README of the repository.
In contrast to the approach that requires a preknown list of Guix / Nix store items and can be regulated by the operator, this new one mirrors substitutes on user request. (The scope is still limited to specified upstream servers but you as the operator can't select the content.)
The benefit it brings is to only mirror substitutes that are actually used. This usually reduces transfer and storage requirement on a Guix / Nix mirror.
#guix
Mirror Guix substitutes without relying on remote server implementationCodeberg.org
I wonder if it's possible to use #Xapian for #toys (the #Guix channel search engine), and here it is: toys-xapian (demo available at search.guix.moe/).
I'll maintain this instance as part of guix.moe (also as a backup to the toys.whereis.social instance, there has been some downtime this week) when I think it's stable.
Latest #Noctalia v5 is now available as a #Guix channel!
github.com/noctalia-dev/noctal…
Will contribute installation instruction to docs.noctalia.dev/v5/ soon.
A sleek and minimal desktop shell thoughtfully crafted for Wayland. - noctalia-dev/noctalia-shellGitHub
The new 610.xx NVIDIA proprietary driver series is now available in Nonguix as nvda-new-feature, superseding the previous nvda-590 driver.
NVIDIA is kicking off the new week with their first Linux driver beta in the R610 driver series that is succeeding the current R595 release branch.www.phoronix.com
For anyone that is interested in Guix System ZFS support, here's implementation. Right now it's usable but isn't ready for merging into Guix.
Let me know if there's bug in the implementation if you manage to have a try. It's much welcomed if you can also help with TODOs listed in the PR.
I have deployed it on my systems and I'll update my dotfiles for this PR soon(currently a different implementation is used by the published configurations), so there're example configurations you can view.
#guix
This series brings ZFS support into Guix System, either automatically configured when ZFS datasets are declared in OS file-systems, or manually via `zfs-service-type` otherwise. ZFS native encryption is not considered.Codeberg.org
Marked a few more Guix System mount points as needed for boot. Hopefully this will be useful to people that want to mount tmpfs as /.
#guix
This is useful when separating rootfs into many mount points, especially for mounting tmpfs as /. Mount points in this change are found and tested by booting from a clean rootfs with such setup. * gnu/system/file-systems.Codeberg.org
2026-02-11 build is out!
The desktop environment has been changed to niri + Noctalia shell. It now also starts Guix System installer automatically, though you're expected to finish keyboard layout setup on tty1 first if you do not use QWERTY.
This build also provides (untested) aarch64-linux images.
2026-01-18 build of my Guix System installation LiveCDs ("LiveCDs" section in codeberg.org/hako/Testament) is out! Notably I have finally finished testing Xorg support for NVIDIA proprietary driver! More information on the setup is updated in Nonguix README. Installer used for this build will add the following comments to the generated configuration so you can edit it before installation: ``` ;; Uncomment the following line for NVIDIA proprietary driver support. ;; (nonguix-transformation-nvidia #:configure-xorg? #t) ``` #guix #nonguix
Finished reworking the LiveCDs! Now there're two variants:
- Default
- HiDPI, with a larger console font
No NVIDIA variant, since nouveau + firmware is suffcient for the installation task.
Updated the "LiveCDs" section of codeberg.org/hako/Testament. New images are now placed in Guix Moe's storage. When updating, changes to links and channels.lock will be in the same commit.
The new images provide similiar experience to the official one, additionally with:
- substitutes from Guix Moe, to speed up downloading in slow regions (within the LiveCDs, not added to the installed system)
- Linux and Linux LTS kernel options
- fish shell for manual installation
- simple desktop environment built around niri on tty7
The set-keymap script now also works with the installer: when setting keyboard layout in the installer, it's also applied to other ttys and niri's configuration.
Here're a few issues that may affect the experience and should be avoided if you want to install now:
- codeberg.org/guix/guix/issues/…
- codeberg.org/guix/guix/issues/…
2026-01-12 build of my Guix System LiveCDs is out!
Source, usage and downloads are available in codeberg.org/hako/Testament (see the LiveCDs section). This build is from commit 12b811db05e1.
In the next build I plan to rework the LiveCDs, integrate guided installer from Guix and add a NVIDIA variant. Hopefully by then I'll be able to update the images monthly, no ETA though ;)
Guix channel for packages that can't be included upstream. Please do NOT promote or refer to this repository on any official Guix communication channels.GitLab
(Work-in-progress) Legacy series (390.xx, 470.xx), aarch64-linux support, improved documentation and verrsion selection support for Nonguix NVIDIA proprietary driver!
gitlab.com/nonguix/nonguix/-/m…
This series introduces binary-package-from-sources to handle multiarch binary packages, as mentioned before inGitLab
https://cache-test.guix.moe is now available for testing. It currently serves substitutes for #Guix and #Nonguix, mirrored from their official publish servers, retaining signing keys.
This new cache-test server uses mirror-substitutes (and store paths from guix-store-paths) to mirror substitutes from any upstream.
If everything goes well, I'll deprecate existing setup on guix.moe mirrors and deploy the new configuration. Feedback welcome!
Mirror Guix substitutes without relying on remote server implementationCodeberg.org
“Time travel without borders”
guix.gnu.org/en/blog/2026/time…
On the freshly implemented ability of ‘guix time-machine’ and ‘guix pull’ to download channel files without putting you at risk.
#Guix
Tried something interesting: build ZFS module into the kernel and use CachyOS kernel on Guix System 😋
codeberg.org/hako/Testament/co…
#guix
* modules/linux.scm (linux-with-zfs, default-initrd-configs, cachyos-configs): New procedures. * modules/common.scm (%kernel-patches): Delete variable. (make-linux/dolly, %kernel-config): New procedures. (linux/dolly): Rename to ...Codeberg.org