emacs: project: Only save buffers in current project when compiling.
emacs: project: Add more project root marker files.
emacs: magit: Set magit-clone-default-directory.
This is a custom channel containing my Guix configuration for operating systems, home environments, and the like. Secrets are stored out of band for obvious reasons.
The channel directory structure looks like this:
rsent ├── configs ├── home │ ├── configs │ ├── manifests │ └── services ├── machines ├── services ├── system ├── transformations └── utils
configs
contains global variables used within system
, home
,
and machines
directories.
home
contains home environments and their configurations
configs
and services
subdirectories are the home-specific
equivalent of the top-level configs
and services
.manifests
contains loosely organized packagesmachines
contains operating systems and machine lists used by $
guix deploy
services
contains custom service typessystems
contains generic operating systems. These are primarily
inherited by other systems to share behavior.transformations
contains functions that use record inheritance to
add arbitrary configuration data to operating systems that may be
difficult to express with service extensions.utils
contains helper functions that don't fit elsewhere.Save the following to a file.
(cons* (channel (name 'rsent) (url "https://git.sr.ht/~freakingpenguin/rsent") (branch "master") (introduction (make-channel-introduction ;; Use commit after .guix-authorizations appeared because I merged a ;; branch the wrong direction. "fa6011e23debd768ccb8135d0cfb25d964ecc6c5" (openpgp-fingerprint "0BC0 5236 B0DA D691 2F6E 1993 A2D2 1FA4 2A90 8978")))) %default-channels)
Then run
$ guix pull -C <file-name>
Alternatively, you can use the channels.scm
file stored in the
init
branch. To do that:
$ git checkout init $ guix pull -C channels.scm
For temporary use and testing unpushed/pulled changes, you can use
$ guix <command> -L . <args>
In theory my Emacs configuration can be used without Guix by simply
copying rsent/home/configs/aux-files/emacs
to ~/.emacs
,
assuming the various packages are installed and available. However,
Guix generates and loads various *.autoloads.el
files for my
installed packages. Not every use-package
form has manual autoloads
defined (e.g. via :commands
).
As such, if you want to use my config and are not already using a
package manager that handles autoloads for you, you will need to add
your own manual autoloads. Use the -Q
flag to test how Emacs works
without autoloads on Guix. This disables site-start.el
file, which
also disables loading the guix-emacs.el
file.
Additionally there are various integrations between Emacs and my home environment, such as environment variables and activation scripts. Nothing here should be critical, but don't be surprised if some functionality is, well, nonfunctional.
StumpWM is currently split into two parts; a system-level package and
a home-level configuration. If odd behavior is detected (e.g. SBCL
attempting to place .fasl
in /gnu/store
), ensure that:
--no-grafts
a46908620fa
this should no longer be necessary.To set up a Yubikey after initial system installation, run the following commands with the YubiKey connected:
$ gpg --card-edit fetch quit $ gpg --card-status