[Top][All Lists]

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

Emacs inside container: preserved DISPLAY unavailable etc

From: t
Subject: Emacs inside container: preserved DISPLAY unavailable etc
Date: Tue, 04 Jan 2022 12:29:13 +0000
User-agent: mu4e 1.6.9; emacs 28.0.50

Hi guix.

Straigt out of manual:


$ guix shell --container --no-cwd --network emacs-next --expose=$HOME/.emacs.d --preserve='^DISPLAY$' -- emacs

No protocol specified
Display :1 unavailable, simulating -nw
Please set the environment variable TERM; see 'tset'.


Why? What's going on here? Am I supposed to expose some device or smth? This is almost verbatim from Guix manual.

Is there a way to find out which process' reporting that error?

Lets pretend it isn't XXI century and try terminal emacs:

$ guix shell --container --no-cwd --network emacs-next --expose=$HOME/.emacs.d --preserve='^TERM$' -- emacs

This starts emacs in the terminal, but fails to load any user installed libraries e.g. use-package. Looks like they reside inside ~/.guix-profile/share/emacs/site-lisp, so maybe all we need to do is again follow the manual and --link-profile

$ guix shell --container --no-cwd --network emacs-next --expose=$HOME/.emacs.d --preserve='^TERM$' --link-profile -- emacs

That doesn't help but load-path inside emacs has $HOME/.guix-profile/share/emacs/site-lisp as first entry, hm. However, if we look inside its almost empty. So, I'm not entirely sure exactly what --link-profile even achieves. Is there some magic in play that "trims" /gnu/store entries only to whatever was in manifest (or packages) passed to guix shell --container? That would make sense if we are indeed trying to isolate things. If so, solution would be to -m manifest.scm with all my emacs packages along with emacs-next.

I'd really like to solve the 'display unavailable' above. Could anyone help, please?

Thank you

reply via email to

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