[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Guix as remote dev machine

From: t
Subject: Guix as remote dev machine
Date: Mon, 21 Mar 2022 14:09:02 +0000
User-agent: Cyrus-JMAP/3.5.0-alpha0-4907-g25ce6f34a9-fm-20220311.001-g25ce6f34

Hi Guix.

I'm trying to come up with a reasonable way to use my Guix machine sitting in 
the attic as my remote development server. This presents several challenges. 
Locally I would typically follow these steps:
1. Create a project dir with guix.scm describing (possibly empty) package
2. `guix shell` or start a container, with entire system if I need to e.g. run 
a db
3. start emacs from that shell or container forwarding to my main DISPLAY

When attempting to do something similar remotely, you very quickly run into 
issues. X forwarding to a Linux machine kinda works, but sadly on OSX, which I 
have to use as a client, XQuartz X server implementation can't deal with hi DPI 
and the end result is miserable. Then there're potential rendering issues when 
your remote server doesn't even have a graphics card. We're sadly left with ssh 
+ terminal Emacs. However, just ssh and then follow the above steps won't be 
enough. When your ssh session goes down, it'll take everything with it.

I hear you say `tmux`. I thought so too, but fresh `guix package -i tmux` gives 
me `Incorrect locale LC_all, LC_CTYPE or LANG` when I try to run it. Weird, 
seeing how this is attempted on Guix SD. No matter. Lets just go with `screen`, 
which seems to work. Then follow the above steps.

This sort of works and how I would imagine most people attempting this would 
end up with. It leaves me itchy though. I mean, do I even need that `screen` 
there when `emacs --daemon=name` exist? Latter will happily detach itself from 
your tty and persist across ssh sessions. Problem of course is the 2nd step 
above, which assumes we spawn a shell (possibly run a container, maybe even the 
entire system). I wonder if there's a way to avoid the intermediate `screen` or 
`tmux` completely. Way I understand it, `guix shell`, `guix shell -c` and `guix 
system --container` are Unix processes. Could they be detached or put under 
some group or smth? I mean, screen works ok, but I wonder.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]