guix-config
guix-config copied to clipboard
My config for GuixSD
** About
This repository contains my system configuration, packages, services and other related stuff for [[http://www.gnu.org/software/guix/][GNU Guix]]. The Guile code that can be found here relies on some of my [[https://gitlab.com/alezost-config/guile][guile modules]].
** Files and directories
-
[[file:modules][modules]]: This directory contains all guile modules with my additional packages, services and utilities for Guix. I add this directory to =GUILE_LOAD_PATH= environment variable.
-
[[file:guix-package-path][guix-package-path]]: This directory was made specifically for =GUIX_PACKAGE_PATH= environment variable. It contains [[file:modules/al/guix/packages][al/guix/packages]] symlink which points to my package directory. Thus, it contains my packages (and only the packages) placed in a proper hierarchy. I did not set =GUIX_PACKAGE_PATH= to the directory with all my guile [[file:modules][modules]] as Guix would traverse all those modules and all variables inside to find the packages, which is long and may find unwanted things.
Also this directory is specified in [[file:.guix-channel]] file, so this repository can be used as a [[https://guix.gnu.org/manual/en/html_node/Channels.html][Guix channel]]. I.e., a channel like the following may be added to [[file:~/.config/guix/channels.scm]] file.
#+BEGIN_SRC scheme (channel (name 'alezost-channel) (url "https://gitlab.com/alezost-config/guix.git")) #+END_SRC
-
[[file:system-config][system-config]]: Directory with system configuration files (for ~guix system~ commands). My main config is placed in [[file:system-config/os-main.scm][os-main.scm]] file.
-
[[file:user-config][user-config]]: Directory with manifest files I use to populate my Guix profiles with ~guix package --profile=… --manifest=…~ shell command (actually, with my [[https://gitlab.com/alezost-config/guile/blob/master/scripts/profile][profile]] script).
-
[[file:misc]]: Miscellaneous stuff related to Guix.