1
2
Fork
You've already forked dotfiles
0
Personal configuration files for simendsjo https://simendsjo.me
  • Scheme 66.8%
  • Emacs Lisp 21.6%
  • Common Lisp 7.6%
  • Shell 3.7%
  • Makefile 0.3%
2024年12月30日 21:22:03 +01:00
scripts fix(pack-private-keys): use correct recipient 2024年12月19日 22:19:54 +01:00
sijo feat(stumpwm): add s-+ for simendsjo/create-map 2024年12月30日 21:22:03 +01:00
.envrc fix: move repl to Makefile and add home and system scripts 2024年08月08日 21:49:58 +02:00
.guix-authorizations feat(channel): setup guix channel 2024年06月01日 20:47:10 +02:00
.guix-channel fix: unquote channel dependency name 2024年09月09日 13:59:09 +02:00
COPYING fix: add COPYING with GPLv3 license 2024年06月01日 21:53:30 +02:00
LICENSE patch: license as MIT 2024年07月18日 16:06:27 +02:00
Makefile feat(Makefile): add system to build sijo-x1carbon-10th-gen 2024年09月18日 12:52:30 +02:00
news feat(channel): setup guix channel 2024年06月01日 20:47:10 +02:00
README.org doc(dotnet): usage documentation 2024年11月04日 22:03:15 +01:00

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:

  1. Get path for the dotnet CLI: echo $(guix build dotnet@all)/share/dotnet/dotnet
  2. Launch Rider with all dotnet SDKs available, guix shell dotnet@all jetbrains-rider -- rider.sh
  3. Navigate to Settings -> Build, Execution, Deployment -> Toolset and Build
  4. Set .NET CLI executable path to 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]