From mboxrd@z Thu Jan 1 00:00:00 1970 From: Divan Santana Subject: Re: [HOWTO] Start X server manually instead of using a login manager Date: Mon, 23 Jul 2018 09:43:48 +0200 Message-ID: References: <87d0vjm0ct.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:43245) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fhW0V-0000e1-Dk for help-guix@gnu.org; Mon, 23 Jul 2018 04:15:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fhW0S-0006ig-66 for help-guix@gnu.org; Mon, 23 Jul 2018 04:15:51 -0400 Received: from outmail149077.authsmtp.com ([62.13.149.77]:35443) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fhW0R-0006h8-KU for help-guix@gnu.org; Mon, 23 Jul 2018 04:15:48 -0400 In-reply-to: <87d0vjm0ct.fsf@gmail.com> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-guix-bounces+gcggh-help-guix=m.gmane.org@gnu.org Sender: "Help-Guix" To: Alex Kost Cc: help-guix@gnu.org Alex Kost writes: > Hello, > > People often ask how they can use startx/xinit on GuixSD. It is > possible, although it is not as easy as on other distros. Hopefully, > this tutorial will answer some questions on the subject. > > At first, a couple of points: > > - We will run X server with user privileges, so if something goes wrong, > look at the X log, which is placed at "~/.local/share/xorg/Xorg.N.log" > by default. > > - We will run "xinit", not "startx": the latter is just a wrapper that > does some preparations and runs "xinit". (startx is a usual shell > script with a usual script's behavior: it does not like that Guix > violates Filesystem Hierarchy Standard, so it successfully fails to > start). > > Now the steps you need to do to use "xinit": > > 1. Install xinit, X server and required modules to some guix profile, > for example: > > guix package -i xinit xorg-server xf86-input-libinput xf86-video-fbdev xf86-video-nouveau > > 2. Make "~/.xinitrc" file. If you don't know what its content should > be, just put "exec xterm" there, or even better read: > > https://wiki.archlinux.org/index.php/Xinit > > 3. Running "xinit" requires specifying multiple arguments, so you will > probably make an auxiliary script to run it. This script will look > like this: > > --8<---------------cut here---------------start------------->8--- > #!/bin/sh > > DIR=$HOME/.guix-profile > > $DIR/bin/xinit -- $DIR/bin/Xorg :0 vt1 -keeptty \ > -configdir $DIR/share/X11/xorg.conf.d \ > -modulepath $DIR/lib/xorg/modules > --8<---------------cut here---------------end--------------->8--- > > Note that using the current terminal ("vt1" in this case) and > "-keeptty" is required, otherwise X server refuses to start without > root privileges. > > For testing purposes, you may change the above arguments to ":1 vt2", > switch to vt2 (Ctrl-Alt-F2) and run this script. > > 4. Finally (if the above script works), you can remove login manager > from your os services (if you use %desktop-services): > > --8<---------------cut here---------------start------------->8--- > (use-modules > ;; ... > (srfi srfi-1) ; for 'remove' > (gnu services desktop) > (gnu services xorg)) > > (operating-system > ;; ... > (services > (remove (lambda (service) > (eq? (service-kind service) slim-service-type)) > %desktop-services))) > --8<---------------cut here---------------end--------------->8--- To help others, a few other notes. To auto start x upon login one can do something like --8<---------------cut here---------------start------------->8--- (mingetty-service (mingetty-configuration (tty "tty1") (auto-login "ds"))) --8<---------------cut here---------------end--------------->8--- And this in you bashrc/zshrc. --8<---------------cut here---------------start------------->8--- if [[ ! $DISPLAY && $XDG_VTNR -eq 1 ]]; then exec $HOME/bin/startx.sh fi --8<---------------cut here---------------end--------------->8--- Also I needed to set these in order for my icons to be detected again. Failing to do so, the icons aren't found and some apps crash like libreoffice. --8<---------------cut here---------------start------------->8--- export XDG_DATA_DIRS="/run/current-system/profile/share:$HOME/.guix-profile/share:/run/current-system/profile/share" export XDG_CONFIG_DIRS="$HOME/.guix-profile/etc/xdg:/run/current-system/profile/etc/xdg" export XDG_CONFIG_HOME="$HOME/.config" export XDG_CACHE_HOME="$HOME/.cache" export XDG_DATA_HOME="$HOME/.local/share" --8<---------------cut here---------------end--------------->8--- I'm still strangely getting this error when my terminals (termite) launch since switching to this method: tput: unknown terminal "xterm-termite" Not sure why that is yet.