[[!meta title="rde Emacs introduction"]] [[!meta copyright="Copyright © 2022 Andrew Tropin"]] [[!inline pages="internal(2022/info/rde-nav)" raw="yes"]] # rde Emacs introduction Andrew Tropin (he/him, IRC: abcdw, ) [[!inline pages="internal(2022/info/rde-before)" raw="yes"]] [rde Emacs](https://git.sr.ht/~abcdw/rde/tree/master/item/rde/features/emacs-xyz.scm) is a vanilla-flavored distribution of Emacs, which intergates well with your OS, WM and rest of the environment. It's built on top of [Guix Home](https://guix.gnu.org/en/blog/2022/keeping-ones-home-tidy/) project and allows to manage not only elisp packages and configurations, but other dependencies like operating system packages, user program configurations in a declarative and reproducible manner. You don't need to follow complicated installation instructions, apply workarounds and be afraid of updates: just do it, update rde, throw some custom elisp code, declare and customize features you need or want to try in a simple lisp (Scheme) file and you will get it. Don't like the result? Just rollback to previous generation and EVERYTHING will work as before. Once you make it to your liking, it will work forever*, even if you move to a new laptop/workstation. # Discussion ## Notes - Thank you. Super cool that you started guix home. (: ## Questions and answers - Q: Do you use this to have multiple configs running side by side for live comparison? - A: Yes, two separate configs. (more capture TBD) - Q: Are you using Guix System, or Guix on top of another distro?  If System, any tips?  I tried Guix System, but found getting started was very difficult due to lacking WiFi firmware and incomplete documentation. - A: Yes he uses Guix system and package manager. RE: WiFi: First option is to buy a wifi adaptor that doesn't require proprietary firmware. - Q: One of the issues I've had managing Emacs packages with Guix is a conflict between the Guix package ethos (read-only) and the Emacs package ethos (hackable in real-time). Any suggestions to resolve this? - A: There is an interactive/live workflow for editing emacs configuration, which kinda similiar to usual, but you persist your changes from time to time and rebuild the configuration to apply those persisted changes for new emacs instances. - Q: What is next for rde? - A: Short term plan is to prepare more documentation, getting started guide, live CD to explore system. Also would like to find maintainers to help.  - Q: Do you use emacs without this? If so, for what purposes, and how does it feel compared to rde? - A: No, I don't use emacs outside of RDE. There's a way to add mostly anything in your emacs config into RDE.But doesn't use it because it isn't reproducible. Can break between machines. - Q: Are there any plans to push things from rde to guix's main channel? - A: Would like to push some things upstream but can't always fit patches  - Q: How difficult is it to add support for new Emacs packages to Guix?  Have you found that's burdensome vs. package.el or other in-Emacs package management approaches? - A: Packaging elisp for guix isn't hard at all, in most cases it's really easy. Sending patches is a little more involved, but also not rocket science :) - Q: Do your reckon RDE is currently opinionated? Or is it a one size fits all framework? - A: It's vanilla-flavored and kinda opinionated at the same time, but everyone free to use whatever parts/features fits them, also they free to implement or use implemented by others features, which can fit better for them than original rde's features. - Q: How to get into RDE? Is there already documentation/getting started guide? - There is an example configuration and link to slightly sparse manual at , you can ask question #tropin at libera.chat. - Q: Can you mix RDE with custom emacs init file? - Yes, you can, but it will add irreproducibility to your setup. Other discussions from IRC: - Easy reliable rollbacks is definitely one of the things I love about nix and guix - Yes! It is great to know that stuff is hard to mess up. This leads to more fun experimenting. [[!inline pages="internal(2022/info/rde-after)" raw="yes"]] [[!inline pages="internal(2022/info/rde-nav)" raw="yes"]] # Related talks - [Building reproducible Emacs](/2020/talks/08/) - Andrew's previous talk at EmacsConf 2020 [[!sidebar content=""]] [[!taglink CategoryConfiguration]]