- Scheme 80.6%
- Tree-sitter Query 15.6%
- Go Template 3.7%
|
Sughosha
9debc663a1
* 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. |
||
|---|---|---|
| garuda/packages | Initial commit | |
| gnu/packages | gnu: Remove greetd-nwg-hello-sway-session. | |
| same-expert | system: Add extra options to keep gc outputs and derivations. | |
| themes | themes: sweet-v2-sddm-theme: Fix license. | |
| .guix-authorizations | Initial commit | |
| .guix-channel | .guix-channel: Remove guix-gaming-games channel dependency. | |
| COPYING | Initial commit | |
| README.md | Add README.md. | |
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).
~/.envfile 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
Copyright Notice
Modules in this repository are distributed under GNU GPL version 3 or later license without any warranty.
Copyright © 2026 Sughosha sughosha@disroot.org