Opening graphical applications from the command line

Graphical applications can be launched from a terminal window or console session by simply typing the name of the application.

[fedorauser@localhost]$ firefox
File names vs Application names

Programs are opened from the command line using the name of the executable file provided in the program’s package. An entry in the desktop menu will often be named differently from the file it executes. For example, the GNOME disk management utility appears in the menu as Disks, and the file it executes is /usr/bin/gnome-disks.

When a program is executed on the command line, the terminal is occupied until the program completes. When a graphical application is executed from the command line, the program’s error output, or STDERR, is sent to the terminal window. This can be especially useful when troubleshooting.

Example 1. Viewing errors by launching graphical applications from the command line
[fedorauser@localhost]$ astromenace-wrapper
	AstroMenace 1.3.1 121212

	Open XML file: /home/fedorauser/.config/astromenace/amconfig.xml
	VFS file was opened /usr/share/astromenace/gamedata.vfs

	Vendor     : OpenAL Community
	Renderer   : OpenAL Soft
	Version    : 1.1 ALSOFT 1.15.1
	ALut ver   : 1.1

	Font initialized: DATA/FONT/LiberationMono-Bold.ttf

	Current Video Mode: 3200x1080 32bit

	Xinerama/TwinView detected.
	Screen count: 2
	Screen #0: (0, 0) x (1920, 1080)
	Screen #1: (1920, 0) x (1280, 1024)

	Supported resolutions list:
	640x480 16bit
	640x480 32bit
	640x480 0bit
	768x480 16bit
	<output truncated>

To launch a graphical application, but fork the additional output into the background and return the terminal for immediate use, use the shell’s job control feature.

[fedorauser@localhost]$ emacs foo.txt &
Ending a session

Applications that hold the command line prompt until they complete will close when the terminal session ends, even if they are forked into the background.

GUI programs can also be launched on one TTY and displayed on another by specifying the DISPLAY variable. This can be useful when running multiple graphical sessions, or for troubleshooting problems with a desktop session.

  1. Switch to another TTY using the key combination Ctrl+Alt+F2 and log in. Note that consoles are available by default with F2 through F6.

  2. Identify the X session you want to target. The DISPLAY variable is always an integer preceded by a colon, and will be :0 in most cases. Check the arguments of the currently running X process to verify the value. The command below shows both the DISPLAY variable as well as the TTY that X is running on, tty1.

    [fedorauser@localhost]$ ps aux|grep /usr/bin/X
    root      1498  7.1  1.0 521396 353984 tty1    Ss+  00:04  66:34 /usr/bin/X :0 vt1 -background none -nolisten tcp -auth /var/run/kdm/A:0-22Degc
    root     23874  0.0  0.0 109184   900 pts/21   S+   15:35   0:00 grep --color=auto /usr/bin/X
  3. Specify the DISPLAY variable when executing the program.

    [fedorauser@localhost]$ DISPLAY=:0 gnome-shell --replace &
  4. Switch back to the TTY the graphical session is running on. Since the example above shows X running on vt1, pressing Ctrl+Alt+F1 will return to the desktop environment.

Launching Applications with Alt+F2

Most desktop environments follow the convention of using the key combination Alt+F2 for opening new applications. Pressing Alt+F2 brings up a prompt for a command to be entered into.

Commands entered into this dialog box function much as they would if entered in a terminal. Applications are known by their file name, and can accept arguments.

GNOME command entry dialog box
Figure 1. Using Alt+F2 with GNOME
KDE command entry dialog box
Figure 2. Using Alt+F2 with KDE
LXDE command entry dialog box.
Figure 3. Using Alt+F2 with LXDE
MATE command entry dialog box.
Figure 4. Using Alt+F2 with MATE