- Windows 11, or Windows 10 version 1903 or higher, with Build 18362 or higher, for x64 systems, and Version 2004 or higher, with Build 19041 or higher, for ARM64 systems
- Basic linux command line understanding
- Optional: Windows terminal application
There is no WSL or Multipass on Guix, but we can get the same thing with QEmu (and a lot more). But it’s a bit trickier to get started!
Guix packages required:
- qemu (possibly can get away with minimal package)
- cloud-utils (for cloud-localds)
- cdrkit-libre (for genisoimage, used by cloud-localds)
Create the following user data file - there may be more in this than you need.
```mermaid
sequenceDiagram
participant dotcom
participant iframe
participant viewscreen
dotcom->>iframe: loads html w/ iframe url
iframe->>viewscreen: request template
viewscreen->>iframe: html & javascript
iframe->>dotcom: iframe ready
| <?xml version="1.0" encoding="UTF-8"?> | |
| <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> | |
| <!-- | |
| Noto Mono + Color Emoji Font Configuration for KDE/Konsole | |
| Konsole/KDE apps use QT rather than the GTK emoji setup. So standard Ubuntu setup doesn't seem to work. | |
| https://bugs.launchpad.net/ubuntu/+source/kubuntu-meta/+bug/1767390 | |
| If you want the Snake emoji in your Python venv Powerline then see below! |
NOTE: If you have Windows 11 there is now an official way to do this in WSL 2, use it if possible - see MS post here (WINDOWS 11 ONLY)
This guide will enable systemd to run as normal under WSL 2. This will enable services like microk8s, docker and many more to just work during a WSL session. Note: this was tested on Windows 10 Build 2004, running Ubuntu 20.04 LTS in WSL 2.
-
To enable
systemdunder WSL we require a tool calledsystemd-genie -
Copy the contents of
install-sg.shto a new file/tmp/install-sg.sh:
(updated versions of this document, plus more, live here)
This will show you how to get Guix running on WSL2.
We're going to go as "minimal" as possible, without starting off one of the readily available WSL2 distros.
Parts of this guide should help with understanding how to set up any custom distro on WSL, not just Guix.
Disclaimer: I'm a Guix nOOb! (hence going through the trouble of installing it on WSL2)
If you're encountering ping github.com failing inside WSL with a Temporary failure in name resolution, you're not alone — this has been a long-standing issue, especially when using VPNs or corporate networks.
This issue is now fixed robustly with DNS tunneling, which preserves dynamic DNS behavior and avoids limitations like WSL’s former hard cap of 3 DNS servers in /etc/resolv.conf.
DNS tunneling is enabled by default in WSL version 2.2.1 and later, meaning that if you're still seeing DNS resolution issues, the first and most effective fix is simply to upgrade WSL. Upgrading WSL updates the WSL platform itself, but does not affect your installed Linux distributions, apps, or files.
To upgrade WSL, follow these steps,
| log4j.appender.cmd-logger=org.apache.log4j.RollingFileAppender | |
| log4j.appender.cmd-logger.append=true | |
| log4j.appender.cmd-logger.layout=org.apache.log4j.PatternLayout | |
| log4j.appender.cmd-logger.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c - %m%n | |
| log4j.appender.cmd-logger.File=/var/log/rundeck/command.log | |
| log4j.appender.cmd-logger.rollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy | |
| log4j.appender.cmd-logger.rollingPolicy.ActiveFileName=/var/log/rundeck/command.log | |
| log4j.appender.cmd-logger.rollingPolicy.FileNamePattern=/var/log/rundeck/command-%d{yyyy-MM-dd}.log | |
| log4j.appender.cmd-logger.MaxBackupIndex=7 |
- To have org-mode expand everything by default: M-x customize-variable RET org-startup-folded
- To insert code-blocks quickly: <s TAB
- To insert a new bullet/number in the current list: M-RET
- To promote a heading:
M-<left arrow> - To demote a heading:
M-<right arrow> - Hyperlinks:
- To link to another org-mode file: