From mboxrd@z Thu Jan 1 00:00:00 1970 From: zloster Subject: Re: [HOWTO] Start X server manually instead of using a login manager Date: Mon, 23 Jul 2018 12:52:26 +0300 Message-ID: References: <87d0vjm0ct.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:32967) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fhXXy-0002sA-No for help-guix@gnu.org; Mon, 23 Jul 2018 05:54:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fhXXt-0004Ne-Dh for help-guix@gnu.org; Mon, 23 Jul 2018 05:54:30 -0400 Received: from relay1-d.mail.gandi.net ([217.70.183.193]:57283) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fhXXs-0004LX-MN for help-guix@gnu.org; Mon, 23 Jul 2018 05:54:24 -0400 In-Reply-To: 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: Divan Santana , Alex Kost Cc: help-guix@gnu.org On 23.07.2018 10:43, Divan Santana wrote: > 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--- Hi, I have an idea about this problem. How ever my understanding is very limited so take care to do additional research: > 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. There is a shell variable $TERM. Also there is a '/usr/share/terminfo/' directory with some definitions about the various terminals. If a description of terminal is missing from '/usr/share/terminfo/' it is possible to see this message from some command-line utilities. Start with searching the man page of 'tset', 'reset' and 'terminfo' commands. Best regards, Radoslav Petrov