summaryrefslogblamecommitdiffstats
path: root/2022/talks/rde.md
blob: 62810ae7dd511240e174a9007c7211e45044c5c9 (plain) (tree)
1
2
3
4
5
6
7
8
9







                                                                                                     
                                                     
                                                            
 
 



                                                                                     






                                                                        
                                                                        
                                        














                                                                        
                                                            
                             
                                                                      











                                                                       

                                                                     
                                                                 
            
                                                                       
                                                                   
                                                                    
                                           
                                                                    

                                                                       
                                                                  
                                                                      
                                                                   



                                                                      
                               

                                                                      


                                                                                                
 


                                                           
               
                                                                                           
                       
 
                                  
[[!meta title="rde Emacs introduction"]]
[[!meta copyright="Copyright © 2022 Andrew Tropin"]]
[[!inline pages="internal(2022/info/rde-nav)" raw="yes"]]

<!-- Initially generated with emacsconf-generate-talk-page and then left alone for manual editing -->
<!-- You can manually edit this file to update the abstract, add links, etc. --->


# rde Emacs introduction
Andrew Tropin (he/him, IRC: abcdw, <https://trop.in>)

[[!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 <https://git.sr.ht/~abcdw/rde>, 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]]