1
2
Fork
You've already forked guix-modules
0
modules for system, home, packages and functions to extend Guix.
  • Scheme 80.6%
  • Tree-sitter Query 15.6%
  • Go Template 3.7%
Sughosha 9debc663a1
system: Add extra options to keep gc outputs and derivations.
* same-expert/system/guix.scm (my-guix-system)[services]: In the
guix-service-type service, add "--gc-keep-outputs=yes" and
"--gc-keep-derivations=yes" to extra-options.
2026年07月03日 17:46:10 +05:30
garuda/packages Initial commit 2026年06月10日 13:49:19 +05:30
gnu/packages gnu: Remove greetd-nwg-hello-sway-session. 2026年06月30日 10:47:16 +05:30
same-expert system: Add extra options to keep gc outputs and derivations. 2026年07月03日 17:46:10 +05:30
themes themes: sweet-v2-sddm-theme: Fix license. 2026年06月28日 13:45:35 +05:30
.guix-authorizations Initial commit 2026年06月10日 13:49:19 +05:30
.guix-channel .guix-channel: Remove guix-gaming-games channel dependency. 2026年06月10日 13:50:31 +05:30
COPYING Initial commit 2026年06月10日 13:49:19 +05:30
README.md Add README.md. 2026年06月10日 13:50:04 +05:30

same-expert-guix-modules


Introduction

This is an unofficial channel for Guix with modules for guix system and guix home configurations. Initially the intention was to make switching between desktop environments easy (by just one keword value change), but later on more features were added, especially Garuda Linux desktop environment themes and settings (see below).

Configuring is as simple as this (your config.scm file would look like this):

(use-modules (same-expert system guix))
(my-guix-system
 ;; User information
 #:my-display-name					"Sughosha"
 #:my-login-name					"sughosha"
 #:my-timezone						"Asia/Kolkata"
 #:my-locale						"en_US.utf8"
 ;; Home environment preferences
 #:my-desktop-environment			'kde
 #:my-home-dotfiles				'("nano")
 #:my-home-packages				'("hello")
 #:my-home-environment-variables	`(("SAME_EXPERT_GUIX_HOME" . "1"))
 #:my-home-shell-aliases			'(("same-expert" . "echo same-expert"))
 ;; Core configuration
 #:system-target-disk				"/dev/sda"
 #:system-root-partition			"/dev/sda2"
 #:system-root-filesystem-type		"btrfs"
 #:system-boot-partition			"/dev/sda1"
 #:system-bootloader				'grub-efi
 #:system-host-name				"gnu_device"
 #:system-keyboard-layout			'("us"))

This repository mainly focuses on the system and home modules and the packages are intended specifically to be used with them but can also be installed independently. The templates in system/templates and home/templates directories could be your starting point.

Features

  • Easy configuration for your current system, your home-environment, or for a live ISO image with easy-to-understand keywords.
  • Ease configuration for bootable live ISO images ready to use with desktop enviroments to try before installing.
  • Easy switch between desktop environments.
  • Supported desktop environments as of now: GNOME, KDE, LXQt, nwg-shell (currently with Sway only), and Xfce.
  • Meta packages for desktop environments to make your experience hassle-free.
  • Optional package suites that come with the chosen desktop enviroment (currently GNOME or KDE only).
  • Optional support for nonguix (can be enabled by just #t) if your hardware does not completely support free software yet.
  • Optional support for proprietary NVIDIA graphic driver (can be enabled by just #t) if you need it.
  • Optional support for guix-gaming-channels (can be enabled by just #t).
  • Garuda Linux desktop environment options (currently Dr460nized KDE, Mokka KDE, GNOME, and Sway).
  • ~/.env file in which you can manually add profile enviroment variables without needing to reconfigure your home environment.
  • Configurations for applications (dotfiles) to make your workflow easier.
  • Reproducibility.
  • And much more...

Channel Configuration

An example channel configuration would be (in $XDG_CONFIG_HOME/guix/channels.scm and /etc/guix/channels.scm):

(cons* (channel
 (name 'same-expert-guix-modules)
 (url "https://codeberg.org/SameExpert/guix-modules")
 (branch "main")
 (introduction
 (make-channel-introduction
 "923385f83af721c3021ccfda2f78907a9e98d352"
 (openpgp-fingerprint
 "EAD1 89E4 799B 5E5E B20A 2A19 CDBC 0BD9 5943 A706"))))
 %default-channels)

Once you already have your system or home environment configured with these modules, it will take care of your channels as per your configuration.

Useage

You can find the templates in system/templates and home/templates directories. To make it easy, copy a template to your config.scm file and then make changes as per your needs. You can then run guix system build, guix system reconfigure, guix system image, guix home build, or guix home reconfigure as per your needs. If you are building a system image, you can also directly use the template, without needlessly modifying anything, to test it.

To know the supported keywords, as of now you need to read the module files (the keywords are grouped to make it a bit easy). A proper documentation for them is in the TODO list (see below).

If you are an expert and/or want to use the full potential that Guix provides, you can also inherit your configuration that uses any of these modules inside another definition.

TODO (my wishlist)

  • A proper documentation with information about all the keywords.
  • Simplify variable definitions.
  • Separate modules supporting nonfree software from this repository.
  • Add this channel to Guix toys.

Author

Sughosha sughosha@disroot.org

Modules in this repository are distributed under GNU GPL version 3 or later license without any warranty.

Copyright © 2026 Sughosha sughosha@disroot.org