xhost setting at boot
I am able to set xhost at boot in Fedora by editing /etc/gdm/Init/Default
and for example add:
/usr/bin/xhost +local:
How can similar be done in Ubuntu? I want that the
/usr/bin/xhost +local:
command is executed when the system is sitting at login prompt.
Solution 1:
The xhost
command needs an active X server to run, it can run at the login screen, for example when lightdm
loads.
You can enable it by editing /etc/lightdm/lightdm.conf
and adding the line:
display-setup-script=/home/user/bin/xhost.sh
example /etc/lightdm/lightdm.conf
file:
[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
display-setup-script=/home/user/bin/xhost.sh
example /home/user/bin/xhost.sh
file:
#!/bin/bash
xhost +
It works on Ubuntu 12.04.1 LTS, and it was needed to enable a Java application that needed X and was run by Tomcat 6.
Solution 2:
This worked for me:
Edit ~/.xinitrc
:
export DISPLAY=":0.0"
xhost +
openbox
Note: in my specific setup, I'm running only openbox. Normally that file is empty or missing in Ubuntu. My guess is that you could remove the "openbox" line and it would work, but I don't have a way to test it right now. If it doesn't work, replace the last line for your window manager command.
Solution 3:
~/.xinitrc
did not work for me on Ubuntu 14.04 but the following in ~/.profile
did. On each login, GUI/terminal/SSH/etc..., the script will run so I redirect stdout
to silence the output.
xhost +local: > /dev/null
Solution 4:
I had the same issue with Ubuntu 17.10. It could be that my system was not properly configured. Anyway, in my case, I added
xhost + SI:localuser:root > /dev/null
at the bottom of my ~/.bashrc
file and it worked. I don't know if this is a security risk. I share that in case someone else is in the same situation and trust that adding root to the list of privileged X server users should be OK.
It is suggested here on ubuntuhandbook.org
You can test it directly on the terminal first:
xhost + SI:localuser:root
xhost -
The second line makes sure that only those in the list have access to the X server. Then try "Edit as administrator", after right clicking on a file or directly execute
pkexec gedit
If this does not work, then it is pointless to make the command permanent in ~/.bashrc
.
To be more precise, I first executed
xhost
to see which users had access to the X server. I saw that the format was SI:localuser:dominic
where dominic
is my login name. So, I used the same format SI:localuser:root
to add the root
user.