xelb running on thin clients
map7 opened this issue · 7 comments
We are using thin clients under Debian 7 and would like to use the great 'exwm'. When I start exwm I get a xelb error
My environment is
- Debian 7
- Emacs 25.0.50.2
- LTSP 5.2
let*: make client process failed: No such file or directory, :name, XELB, :remote, /tmp/.X11-unix/X7
The problem is I've the X7 directory only exists on the thin client and we are running the xelb source code as part of emacs configuration on the server. The thin client we use is called Linux Terminal Server Project.
I've configured my .xsession with the following
#!/usr/bin/env bash
#
# This is a sample file for the ~/.xinitrc file.
#
# Disable access control
xhost +SI:localuser:$USER
# Fallback cursor
xsetroot -cursor_name left_ptr
# Keyboard repeat rate
#xset r rate 180 40
export VISUAL=emacsclient
export EDITOR="$VISUAL"
#export DISPLAY=:0
#export DISPLAY=192.168.200.198:7
xset b off &
xhost +
exec dbus-launch --exit-with-session emacs
On the server in the /tmp/.X11-unix directory I only have X0 and on the client in that directory I only have X7.
I've been using XFCE on these machines without a problem and I don't have to install XFCE on the client it is ran from the server itself. If I uncomment either of those DISPLAY lines above emacs doesn't even start on the client. Without those lines at least emacs starts but exwm does't start.
I have no experience with LSTP but it seems it basically gets the client run an X server instance and X programs are run on the server but displayed on the client through SSH X11 forwarding. Am I right? If this is the case then we cannot create the connection via a socket. Could you verify if (xcb:connect ":7")
can succeed?
I just pasted that command into the scratch buffer and ran it, but it might not be correct as I get the following error;
Debugger entered--Lisp error: (void-function xcb:connect)
(xcb:connect ":7")
eval((xcb:connect ":7") nil)
elisp--eval-last-sexp(t)
eval-last-sexp(t)
eval-print-last-sexp(nil)
funcall-interactively(eval-print-last-sexp nil)
call-interactively(eval-print-last-sexp nil nil)
command-execute(eval-print-last-sexp)
I just pasted that command into the scratch buffer and ran it, but it might not be correct as I get the following error;
Debugger entered--Lisp error: (void-function xcb:connect) (xcb:connect ":7") eval((xcb:connect ":7") nil) elisp--eval-last-sexp(t) eval-last-sexp(t) eval-print-last-sexp(nil) funcall-interactively(eval-print-last-sexp nil) call-interactively(eval-print-last-sexp nil nil) command-execute(eval-print-last-sexp)
It seems the XELB library is not loaded correctly.
You may as well change the xcb:connect-to-socket
in this line to xcb:connect
and see if EXWM would start correctly.
I get a different error
error in process filter: let: [XELB] Connection failed: No protocol specified
I get a different error
error in process filter: let: [XELB] Connection failed: No protocol specified
This is probably an access control problem. Could you please double check the xhost setting (by running xhost
with no argument)?
Also there's another authentication issue but strangely you did not encountered it. When I tried to use XELB to make an X connection through an ssh session (which set $DISPLAY
as localhost:10.0
) I got the following error:
X11 connection rejected because of wrong authentication.
Clearly we need to setup the authentication info according to the $HOME/.Xauthority
file when making a connection, but this functionality is not implemented in XELB yet. And it seems xhost +
has no effect here. Maybe the environment LTSP sets up is quite different. What is the value of $DISPLAY
in your case?
I've just pushed ddca322 and ch11ng/exwm@2dcb26c to fix the aforementioned authentication problem. Please update your local repo to make further tests.
Thank you that works on the thin clients now (even dual screen works on the thin clients).