ב״ה
Food stamps are being threatened. Please Donate to צדק חודשי.
Gay vegan Jewish Luddite.
2025-01-07
These instructions detail a step-by-step guide to getting set up with
the lightweight, minimalistic rde desktop.
It covers everything one would need for basic computing, such as web
browsing, chatting, and listening to music.
To get started, use rde Kickstart.
$ git clone https://git.sr.ht/~whereiseveryone/rde-kickstart
$ guix shell -m manifest.scm
Make sure to fill in your user info.
(feature-user-info
#:user-name "caleb"
#:full-name "Caleb Herbert"
#:email "csh@bluehome.net"
#:emacs-advanced-user? #f)
Now, reconfigure.
$ just reconfigure
Make sure to re-run this command every time you want a change to your
rde configuration to take effect.
By default, this does not do much. It just installs GNU Emacs. To get a full desktop, we'll need to add a lot more.
Add the wm and keyboard modules. Sway requires the keyboard module.
#:use-module (rde features keyboard)
#:use-module (rde features wm)
Then add the following code for a good set of defaults.
(rde-config-home-environment
(rde-config
(features
(list
;; ...
;; Keyboard
(feature-keyboard
#:keyboard-layout (keyboard-layout "us"))
;; Desktop
(feature-sway)
(feature-waybar)
(feature-swaylock)))))
You may also want to use the (rde features networking) module for
(feature-networking).
First, you need to choose a terminal emulator and a shell. foot
works well on all machines, and Bash is the standard shell on most
GNU/Linux systems.
Load the terminals and shells modules.
#:use-modules (rde features terminals)
#:use-modules (rde features shells)
Add the foot feature.
(rde-config-home-environment
(rde-config
(features
(list
;; ...
;; Terminal
(feature-foot)
(feature-bash)))))
Add the (rde features web-browsers) module.
I recommend using a Mozilla-based browser with (feature-librewolf).
If you insist on a Chromium-based browser, I recommend Ungoogled
Chromium with (feature-ungoogled-chromium).
I recommend Snikket (XMPP) for all your chat needs. Unfortunately, the only client I can recommend for Snikket at this time is Dino. Even though it is not a program for GNU Emacs, it supports all the critical features one expects of a modern chat client, including end-to-end encryption. Hopefully one day there will be a decent Snikket client for Emacs, but Dino will have to suffice for now.
To use it, all you have to do is add it to your packages.
(feature-base-packages
#:home-packages
(map specification->package
(list "dino")))
Make sure to add the (gnu packages) module.
You may also want to listen to music while you use Emacs. eradio is
an excellent package for this. Just add it to your #:home-packages
list!
(feature-base-packages
#:home-packages
(map specification->package
(list "dino" "emacs-eradio")))
You will also have to configure Emacs to use it. Add the following
under (feature-emacs).
#:extra-init-el
'((setq eradio-player '("mpv" "--no-video" "--no-terminal"))
(global-set-key (kbd "C-c r p") 'eradio-play)
(global-set-key (kbd "C-c r s") 'eradio-stop)
(global-set-key (kbd "C-c r t") 'eradio-toggle)
(setq
eradio-channels
'(("94.9 KCMO" . "https://provisioning.streamtheworld.com/pls/KCMOFMAAC.pls")
("KQRC 98.9 The Rock!" . "https://live.amperwave.net/manifest/audacy-kqrcfmaac-hlsc.m3u8")
("101 The Fox" . "https://playerservices.streamtheworld.com/api/livestream-redirect/KCFXFMAAC.aac")
("KKFI 90.1 Kansas City, MO" . "http://pacificaservice.org:8000/kkfi_64?type=.mp3")
("iHeart2000s" . "https://stream.revma.ihrhls.com/zc6850/hls.m3u8")
("aNONradio" . "http://anonradio.net:8000/anonradio")
("Chabad.org Jewish Music" . "https://stream.radio.co/sdfd68a101/listen")
("Chabad.org Torah Classes Radio" . "https://streams.radio.co/s9f35c3afc/listen")
("KZHE" . "http://crystalout.surfernetwork.com:8001/KZHE-FM_MP3")))
)
The variable eradio-channels contains my personal selection of
stations, both local and remote. You can find more channels to stream
on Radio Browser.
By this point, you may have a functional desktop, but it lacks that
rde flare. Let's change that.
Modules:
#:use-module (rde features emacs-xyz)
#:use-module (rde features fontutils)
Features:
(feature-emacs-appearance)
(feature-emacs-modus-themes)
(feature-emacs-all-the-icons)
(feature-fonts)