Dear Guixters, Maybe I am asking too much to Guix haha. Maybe I don't. So. Here is what I intend to do : I want to write a Guix System definition that puts a .emacs.d directory inside /root which is "usable". I don't feel the need to create a regular user (I don't fear too much damages inside a disposable VM context). So I tried two options : First, using an extra-special-file (extra-special-file "/root/.emacs.d" (local-file "emacs.d" #:recursive? #t)) But the resulting .emacs.d is put into the store and is not writable. Second, using skeletons (skeletons `((".emacs.d" ,(local-file "emacs.d" #:recursive? #t)))) But it seems it populate only regular users home directory. /root is left empty. Perhaps the issue is the local-file. Perhaps I could change the resulting extra-special-file permissions if it does not mess up the store. Or perhaps I could create a regular user. What would be "the way" ? haha Cheers, Jérémy
Jérémy Korwin-Zmijowski <jeremy@korwin-zmijowski.fr> writes: > Dear Guixters, > > Maybe I am asking too much to Guix haha. Maybe I don't. > > So. Here is what I intend to do : > > I want to write a Guix System definition that puts a .emacs.d directory > inside /root which is "usable". I don't feel the need to create a > regular user (I don't fear too much damages inside a disposable VM > context). > > So I tried two options : > > First, using an extra-special-file > > (extra-special-file "/root/.emacs.d" > (local-file "emacs.d" #:recursive? #t)) > > But the resulting .emacs.d is put into the store and is not writable. This is by design I believe. Any item in the store is NOT writable. Anything configured with guix is meant to be static, declarative, reproducible, NOT updated-able. :) Though it's possible that you are trying to do something that I just do not understand. This is most likely the case. You seem like a genius. :) > > Second, using skeletons > > (skeletons `((".emacs.d" ,(local-file "emacs.d" #:recursive? #t)))) > > But it seems it populate only regular users home directory. /root is > left empty. > > Perhaps the issue is the local-file. > Perhaps I could change the resulting extra-special-file permissions if > it does not mess up the store. > Or perhaps I could create a regular user. > > What would be "the way" ? haha If you want a write-able /root/.emacs.d/ I would recommend starting Emacs as root. That would do the job for you. :) > > Cheers, > Jérémy > -- Joshua Branson (joshuaBPMan in #guix) Sent from Emacs and Gnus https://gnucode.me https://video.hardlimit.com/accounts/joshua_branson/video-channels https://propernaming.org "You can have whatever you want, as long as you help enough other people get what they want." - Zig Ziglar
Yo Joshua ! Thank you for taking the time to answer my question. I really appreciate it ! Actually, my "genius" haha is working on a little script to pop a Guix VM tailored to remotely pair-program with one or more Guiler(s)/Schemer(s)/Guixter(s) ! After the hard work, the VM is deleted. So right now, I am struggling to provide Emacs with a configuration through the system definition. The more Guix can do for me the better I am. Because Emacs has to download and create files into .emacs.d, the folder has to be writable. Until I find something clever, I will run a second script inside the VM to clone the configuration and pull the Guix sources (so we can contribute to Guix as well!) PS: do you want to pair ? ;-) Jérémy
Hello, Jérémy Korwin-Zmijowski <jeremy@korwin-zmijowski.fr> writes: > Dear Guixters, > > Maybe I am asking too much to Guix haha. Maybe I don't. > > So. Here is what I intend to do : > > I want to write a Guix System definition that puts a .emacs.d directory > inside /root which is "usable". I don't feel the need to create a > regular user (I don't fear too much damages inside a disposable VM > context). > So I tried two options : > > First, using an extra-special-file > > (extra-special-file "/root/.emacs.d" > (local-file "emacs.d" #:recursive? #t)) > > But the resulting .emacs.d is put into the store and is not writable. I ran into a similar issue some time ago, with the same dillema. The 'solution' that works well enough for me: the `emacs-no-littering' package, with (setq no-littering-etc-directory "/tmp/emacs/etc") no-littering-var-directory "/tmp/emacs/var")) HTH! - Jelle
Hi Jelle !
Le samedi 17 avril 2021 à 00:16 +0200, Jelle Licht a écrit :
> The 'solution' that works well enough for me:
> the `emacs-no-littering' package, with
> (setq no-littering-etc-directory "/tmp/emacs/etc")
> no-littering-var-directory "/tmp/emacs/var"))
This is interesting ! I will definitely try it.
Thank you for passing by :)
Jérémy
Jérémy Korwin-Zmijowski <jeremy@korwin-zmijowski.fr> writes: > Yo Joshua ! > > Thank you for taking the time to answer my question. I really > appreciate it ! > > Actually, my "genius" haha is working on a little script to pop a Guix > VM tailored to remotely pair-program with one or more > Guiler(s)/Schemer(s)/Guixter(s) ! After the hard work, the VM is > deleted. ahaha! That's a bummer! > > So right now, I am struggling to provide Emacs with a configuration > through the system definition. The more Guix can do for me the better I > am. > Because Emacs has to download and create files into .emacs.d, the > folder has to be writable. > > Until I find something clever, I will run a second script inside the VM > to clone the configuration and pull the Guix sources (so we can > contribute to Guix as well!) > > PS: do you want to pair ? ;-) Sure! That would give me a reason no stop being so lazy! > > Jérémy > -- Joshua Branson (joshuaBPMan in #guix) Sent from Emacs and Gnus https://gnucode.me https://video.hardlimit.com/accounts/joshua_branson/video-channels https://propernaming.org "You can have whatever you want, as long as you help enough other people get what they want." - Zig Ziglar