# -*- mode: org; org-html-head-include-scripts: nil; -*-
#+OPTIONS: toc:nil
* rde
Set of tools for managing computing environments with GNU Guix. Also,
rde contains additional home services for Guix Home and packages for
GNU Guix. More info is available at [[http://trop.in/rde][trop.in/rde]].
*Disclaimer:* The project is in an active development stage.
*Tip:* older Nix source code is available under ~stale/~ directory.
** Principles
*** Main
- Ergonomic :: Sane keybindings, good contrast, readable fonts.
- Reproducible :: Setup can be easily replicated.
- Hackable :: Easy to throw out or modify any part of setup.
- Stateless :: All state must be explicit and syncable or temporary.
*** Secondary
- Lightweight and battery efficient :: wayland, fast native apps.
- Offline :: most of workflows and apps should work without network.
- Attention-friendly :: minimal use of notification and other
distractive things.
** Usage
rde heavily relies on Guix Home and Guix System, it's able to provide
both a ~home-environment~ and ~operating-system~ records, which can be
used by ~guix home~ and ~guix system~ respectively. It's not ready for
wide audience yet, but for very curious people: my current [[file:rde/examples/abcdw/configs.scm][config]] is
here and I use following commands to apply it:
#+begin_src shell
git clone https://git.sr.ht/~abcdw/rde
cd rde
make
#+end_src
Read more about ~home-environment~ at [[http://guix.gnu.org/en/manual/devel/en/guix.html#Home-Configuration][Home Configuration]].
GNU Guix and git should be installed before invoking commands above.
The alternative and more apropriate way to use rde will be described
later.
** Guix Home
~Guix Home~ is a part of GNU Guix now, no additional installation steps
are required.
*** People's Guix Home configurations
- [[https://hg.sr.ht/~yoctocell/guixrc/browse/yoctocell/home][yoctocell]]'s full-blown configuration with variety of software.
- [[https://git.sr.ht/~krevedkokun/dotfiles/tree/master/item/home/yggdrasil][krevedkokun]]'s Emacs(Evil)/Wayland(Sway) compact and clean config.
** Channel introduction
In case you want to use rde as a channel, add the following code to
your ~~/.config/guix/channels.scm~, and call ~guix pull~.
#+begin_src scheme
(cons*
(channel
(name 'rde)
(url "https://git.sr.ht/~abcdw/rde")
(introduction
(make-channel-introduction
"257cebd587b66e4d865b3537a9a88cccd7107c95"
(openpgp-fingerprint
"2841 9AC6 5038 7440 C7E9 2FFA 2208 D209 58C1 DEB0"))))
%default-channels)
#+end_src
** Just a screenshot
A picture to catch your eye)
#+CAPTION: Latest rde screenshot
#+NAME: fig:latest-screenshot
https://cdn.fosstodon.org/media_attachments/files/106/900/674/950/793/851/original/4b17f03528571ca0.png
*** Tools
| Purpose | Tool |
|------------------------+-----------|
| Window Manager | Sway |
| Terminal | Alacritty |
| Login Shell | Bash |
| Interactive Unix Shell | Zsh |
| Service Manager/Init | Shepherd |
| Filesystem | Btrfs |
| Everything Else (: | Emacs |
** Community
There are a few [[https://lists.sr.ht/~abcdw][mailing lists]] you can subscribe and/or post with your
existing email account:
- [[https://lists.sr.ht/~abcdw/rde-announce/][~abcdw/rde-announce@lists.sr.ht]] :: for news and updates.
- [[https://lists.sr.ht/~abcdw/rde-discuss/][~abcdw/rde-discuss@lists.sr.ht]] :: for discussions and questions.
- [[https://lists.sr.ht/~abcdw/rde-devel/][~abcdw/rde-devel@lists.sr.ht]] :: for patches and development related
discussions.
** Contributing
*** New features, fixes or ideas
Send mails, optionally with inline patches to rde-devel mailing list.
*** Documentation
For Guix Home documentation maintained in [[https://git.savannah.gnu.org/cgit/guix.git/tree/doc][guix repo]].