- Scheme 66.8%
- Emacs Lisp 21.6%
- Common Lisp 7.6%
- Shell 3.7%
- Makefile 0.3%
| scripts | fix(pack-private-keys): use correct recipient | |
| sijo | feat(stumpwm): add s-+ for simendsjo/create-map | |
| .envrc | fix: move repl to Makefile and add home and system scripts | |
| .guix-authorizations | feat(channel): setup guix channel | |
| .guix-channel | fix: unquote channel dependency name | |
| COPYING | fix: add COPYING with GPLv3 license | |
| LICENSE | patch: license as MIT | |
| Makefile | feat(Makefile): add system to build sijo-x1carbon-10th-gen | |
| news | feat(channel): setup guix channel | |
| README.org | doc(dotnet): usage documentation | |
simendsjo dotfiles
These are my experimental new dotfiles described as a guix channel. It also includes packages not ready to be upstreamed to other guix channels.
To use this channel, add the following to ~/.config/guix/channels.scm
(cons* (channel
(name 'sijo)
(url "https://codeberg.org/simendsjo/dotfiles.git")
(branch "main")
(introduction
(make-channel-introduction
"c352f7331b1722b2ffb964572c7f7fbec585bd2f"
(openpgp-fingerprint
"B0F2 D6C5 2936 95FD 57B5 D255 77BC 6345 B65D 6CFB"))))
%default-channels)
More information on my website: https://simendsjo.me/blog/20240615142728-setting_up_gnu_guix
Installation
Copy private keys from existing installation
scripts/upload-private-keys.sh
This script will output instructions on how to import on the new system.
Set up new installation
# Fetch source code
[ -d ~/code ] || mkdir ~/code
git clone https://codeberg.org/simendsjo/dotfiles.git ~/code/
# Fetch all necessary channels for the first run
guix pull -C ~/code/dotfiles/sijo/home/simendsjo/dotfiles/guix/channels
# For some reason, sourcing the profile and using the new guix doesn't work.
# Logging out and in again does though.
# Set up home
guix home reconfigure ~/code/dotfiles/sijo/home/simendsjo/home-environment.scm
Hacking
Start a REPL containing references to dotfiles, the channels and guile itself:
make ares
Connect to the REPL in emacs using emacs-arei (guix shell emacs emacs-arei):
(sesman-start) ;; Default bound to to C-s C-s
.NET (dotnet)
TL;DR:
- Get path for the
dotnetCLI:echo $(guix build dotnet@all)/share/dotnet/dotnet - Launch Rider with all dotnet SDKs available,
guix shell dotnet@all jetbrains-rider -- rider.sh - Navigate to
Settings -> Build, Execution, Deployment -> Toolset and Build - Set
.NET CLI executable pathto the CLI location from step 1.
When dependencies change, the dotnet build will have a new location too, so make sure you're always running the latest dotnet version.
The dotnet packages are versioned by the SDK version number.
guix shell dotnet@8.0.403
For each SDK version, several outputs are defined:
- out (empty below): host, sdk and runtime
- host: only dotnet executable
- sdk: only sdk
- runtime: only runtime
$ guix build dotnet@8.0.403 /gnu/store/2dicdpy9ymwk7plxyjypcg2pwppl7clk-dotnet-8.0.403-host /gnu/store/qkiz1fil1w29yn64h2g33im1ga5py61k-dotnet-8.0.403 /gnu/store/g7q8qi0xphdmjn893vy6dm4isfc7657y-dotnet-8.0.403-runtime /gnu/store/36z9l479lzj35l54mx77i0mnkbl6mgh3-dotnet-8.0.403-sdk
The above call works fine when all projects in a solution uses the same SDK version, but fails when multiple SDKs are requires as only the SDK for the host being called is found.
There are several packages defined which combines several versions, e.g.
dotnet@all:
$ guix shell dotnet@all -- dotnet --list-sdks 6.0.425 [/gnu/store/x0pm2q3dqjpm8zx4r9kdv8wm1hcbl8k6-dotnet-all/share/dotnet/sdk] 8.0.401 [/gnu/store/x0pm2q3dqjpm8zx4r9kdv8wm1hcbl8k6-dotnet-all/share/dotnet/sdk] 8.0.403 [/gnu/store/x0pm2q3dqjpm8zx4r9kdv8wm1hcbl8k6-dotnet-all/share/dotnet/sdk] 9.0.100-rc.1.24452.12 [/gnu/store/x0pm2q3dqjpm8zx4r9kdv8wm1hcbl8k6-dotnet-all/share/dotnet/sdk] 9.0.100-rc.2.24474.11 [/gnu/store/x0pm2q3dqjpm8zx4r9kdv8wm1hcbl8k6-dotnet-all/share/dotnet/sdk]