Starting desktop in linux

How to start GUI on Ubuntu Linux Machine

Earlier I had written an article on How to start GUI on CentOS 8. After this article was read by one of my readers, he asked me to write a similar article for Ubuntu. Typically any Linux servers (CentOS or Ubuntu) don’t provide Graphical User Interface (GUI) as it adds up in RAM & CPU usage. This article explains how to install a desktop and start GUI on Ubuntu Linux machine.

How to Install a desktop and start GUI on Ubuntu

Pre-requisites

Update the server

Log in to your Ubuntu Linux Server using SSH and update the server.

Install tasksel utility manager

Tasksel is an easy-to-use tool that installs a group of software-related packages as a coordinated “task” onto the system.

root@ubuntu:~# apt-get install tasksel

Install a Desktop Environment on Ubuntu

Select a Display Manager

A display manager is an application responsible for launching a display server and managing user authentication and login session. A few display managers are gdm , gdm3 , lightdm , slim , kdm etc., The default gdm3 is the popular display manager for GNOME desktop environment, however, it is a resource-intensive display manager. To conserve system resources, you can install lighter display managers such as lightdm , slim , etc.,

Install display manager

root@ubuntu:~# apt-get install slim

Verify the default display manager

root@ubuntu:~# cat /etc/X11/default-display-manager /usr/bin/slim

Choose a Desktop Environment

Since Ubuntu 17.10, GNOME is the default desktop environment. With more features and a wider community. GNOME 3.36 has a lot to offer in the latest Ubuntu 20.04. Find out from here the various desktop environments available.

Install GNOME Desktop Environment on Ubuntu

Opens a graphical interface. Use arrow keys to scroll the list and select Ubuntu Desktop (Space key to select).

Click here to know more on Ubuntu GNOME desktop and Ubuntu desktop

Tasksel - Software Selection Interface

Once selected, press tab to select Ok and press Enter .

Sit back and relax, as the system will take quite a time to install the necessary software (depending on the machine and the internet connection).

Reboot the server

After the reboot, a graphical login screen will be displayed by the display manager (In our case Slim).

Was this article helpful?

About The Author

Author Profile

Ramya Santhosh

is a Web Designer and content creator. A freelance writer on latest trends in technology, gadget reviews, How to’s and many more.

Читайте также:  Создать загрузочный dvd диск linux
  • How to shrink a qcow2 Windows VM image on Linux
  • [Linux]: How to Change Hostname on CentOS/RHEL – 7/8
  • No such file or directory c++ Error [CentOS]
  • How to configure Open vSwitch bridge for OpenStack
  • Too many connections for neutron-db-manage [MySQL]
  • How to manually install higher version of PIP for Python v2.7

Comments Leave a Comment

Hi Ramya, for the past one week, my Zorin OS boots to command line only, not to desktop (gnome). Seems my personal files were as they were. What to do the system get booted to desktop by default (am new to Linux).

After rebooting I still do not get the GUI. I am trying to install this on an AWS instance. I am new to this and it is for a school project. Verifying the display manager even after reboot shows gdm3. Tasksel says I have Debian desktop environment and … GNOME installed. I am sure my problem is user error. Thanks for the article, I learned a lot from you.

After I select “gnome” I get the error message: debconf: DBDriver “config” could not write /var/cache/debconf/config.dat-new: permission denied tasksel: debconf failed to run.

Источник

xinit

The xinit program allows a user to manually start an Xorg display server. The startx(1) script is a front-end for xinit(1) .

xinit is typically used to start window managers or desktop environments. While you can also use xinit to run GUI applications without a window manager, many graphical applications expect an EWMH compliant window manager. Display managers start Xorg for you and generally source xprofile.

Installation

Configuration

xinit and startx take an optional client program argument, see #Override xinitrc. If you do not provide one they will look for ~/.xinitrc to run as a shell script to start up client programs.

xinitrc

~/.xinitrc is handy to run programs depending on X and set environment variables on X server startup. If it is present in a user’s home directory, startx and xinit execute it. Otherwise startx will run the default /etc/X11/xinit/xinitrc .

Note: Xinit has its own default behaviour instead of executing the file. See xinit(1) for details.

This default xinitrc will start a basic environment with Twm, xorg-xclock and Xterm (assuming that the necessary packages are installed). Therefore, to start a different window manager or desktop environment, first create a copy of the default xinitrc in your home directory:

$ cp /etc/X11/xinit/xinitrc ~/.xinitrc

Then edit the file and replace the default programs with desired commands. Remember that lines following a command using exec would be ignored. For example, to start xscreensaver in the background and then start openbox, use the following:

. xscreensaver & exec openbox-session

Note: At the very least, ensure that the last if block in /etc/X11/xinit/xinitrc is present in your ~/.xinitrc file to ensure that the scripts in /etc/X11/xinit/xinitrc.d are sourced.

Читайте также:  Linux ограничить использование процессора

Long-running programs started before the window manager, such as a screensaver and wallpaper application, must either fork themselves or be run in the background by appending an & sign. Otherwise, the script would halt and wait for each program to exit before executing the window manager or desktop environment. Note that some programs should instead not be forked, to avoid race bugs, as is the case of xrdb. Prepending exec will replace the script process with the window manager process, so that X does not exit even if this process forks to the background.

xserverrc

The xserverrc file is a shell script responsible for starting up the X server. Both startx and xinit execute ~/.xserverrc if it exists, startx will use /etc/X11/xinit/xserverrc otherwise.

In order to maintain an authenticated session with logind and to prevent bypassing the screen locker by switching terminals, Xorg has to be started on the same virtual terminal where the login occurred [1]. Therefore it is recommended to specify vt$XDG_VTNR in the ~/.xserverrc file:

#!/bin/sh exec /usr/bin/Xorg -nolisten tcp "$@" vt$XDG_VTNR

See Xserver(1) for a list of all command line options.

Tip: -nolisten local can be added after -nolisten tcp to disable abstract sockets of X11 to help with isolation. There is a quick background on how this potentially affects X11 security.

Alternatively, if you wish to have the X display on a separate console from the one where the server is invoked, you can do so by using the X server wrapper provided by /usr/lib/systemd/systemd-multi-seat-x . For convenience, xinit and startx can be set up to use this wrapper by modifying your ~/.xserverrc .

Note: To re-enable redirection of the output from X session into the Xorg log file, add the -keeptty option. See Xorg#Session log redirection for details.

Usage

To run Xorg as a regular user, issue:

Note: xinit does not handle multiple displays when another X server is already started. For that you must specify the display by appending — :display_number , where display_number is 1 or more.

Your window manager (or desktop environment) of choice should now start correctly.

To quit X, run your window manager’s exit function (assuming it has one). If it lacks such functionality, run:

Note: pkill will kill all running X instances. To specifically kill the window manager on the current virtual terminal, run:

$ pkill -15 -t tty"$XDG_VTNR" Xorg

Tips and tricks

Override xinitrc

If you have a working ~/.xinitrc but just want to try other window manager or desktop environment, you can run it by issuing startx followed by the path to the window manager, for example:

Читайте также:  Wifi connection linux mint

If the binary takes arguments, they need to be quoted to be recognized as part of the first parameter of startx:

$ startx "/usr/bin/application --key value"

Note that the full path is required. You can also specify custom options for the #xserverrc script by appending them after the double dash — sign:

$ startx /usr/bin/enlightenment -- -br +bs -dpi 96

Note: Since the scripts under /etc/X11/xinit/xinitrc.d/ are skipped, the environment variable DISPLAY may need be to set. You can try out i3 on the desired display by executing DISPLAY=:display_number startx /usr/bin/i3 .

Tip: This can be used to start regular GUI programs but without any of the basic window manager features. See also #Starting applications without a window manager and Running program in separate X display.

Autostart X at login

Make sure that startx is properly configured.

Place the following in your login shell initialization file (e.g. ~/.bash_profile for Bash or ~/.zprofile for Zsh):

if [ -z "$" ] && [ "$" -eq 1 ]; then exec startx fi

You can replace the -eq comparison with one like -le 3 (for vt1 to vt3) if you want to use graphical logins on more than one virtual terminal.

Alternative conditions to detect the virtual terminal include «$(tty)» = «/dev/tty1» , which does not allow comparison with -le , and «$(fgconsole 2>/dev/null || echo -1)» -eq 1 , which does not work in serial consoles.

The exec command ensures that the user is logged out when the X server exits, crashes or is killed by an attacker. If you want to take the risk and remain logged in when the X session ends, remove exec .

Switching between desktop environments/window managers

If you are frequently switching between different desktop environments or window managers, it is convenient to either use a display manager or expand ~/.xinitrc to make the switching possible.

The following example shows how to start a particular desktop environment or window manager with an argument:

. # Here Xfce is kept as default session=$ case $session in i3|i3wm ) exec i3;; kde ) exec startplasma-x11;; xfce|xfce4 ) exec startxfce4;; # No known session, try to run it as command * ) exec $1;; esac

To pass the argument session:

$ startx ~/.xinitrc session 

Starting applications without a window manager

It is possible to start only specific applications without a window manager, although most likely this is only useful with a single application shown in full-screen mode. For example:

Alternatively the binary can be called directly from the command prompt as described in #Override xinitrc.

With this method you need to set each application’s window geometry through its own configuration files (if possible at all).

Tip: This can be useful to launch graphical games, where excluding the overhead of a compositor can help improve the game’s performance.

Источник

Оцените статью
Adblock
detector