Xfce

Revision as of 23:35, September 18, 2014 by Duncan.britton (Talk | contribs)

About Xfce

Xfce is a lightweight desktop environment for UNIX-like operating systems. It aims to be fast and low on system resources, while still being visually appealing and user friendly.

Xfce embodies the traditional UNIX philosophy of modularity and re-usability. It consists of a number of components that provide the full functionality one can expect of a modern desktop environment. They are packaged separately and you can pick among the available packages to create the optimal personal working environment.

Another priority of Xfce is adhereance to standards, specifically those defined at freedesktop.org. About XFCE

Installation

Before emerging Xfce you need to:

#  eselect profile add funtoo/1.0/linux-gnu/mix-ins/xfce

We are now ready to install Xfce. Install the meta-package, which pulls in all of the components you need for a minimal Xfce installation:

# emerge xfce4-meta

Running Xfce

There are several different ways to start Xfce:

  • Editing the .xinitrc file in your user's home directory and using startx from a text console.
  • Using a display manager (e.g. SLiM, GDM, and KDM).
  • Configuring your shell profile to automatically start Xfce upon a successful login.

.xinitrc

The most common way to start the environment is to configure ~/.xinitrc to launch an Xfce session. The proper way to launch Xfce from the terminal is by using startxfce4 combined with ck-launch-session.

$ echo "exec startxfce4 --with-ck-launch" > ~/.xinitrc

Note that --with-ck-launch (from ConsoleKit) is required by Xfce for important tasks such as shutting down, suspending, and automatically mounting removable storage media. Some applications will not work properly without it. Therefore we need to add ConsoleKit to the default runlevel, executing the following command as root:

# rc-update add consolekit default

Finally, to start the graphical environment, run startx from a login shell:

$ startx

Display Manager

A display manager is a program that manages sessions and acts as a login screen. Here's a short list of a few of the display managers available in Funtoo:

  • XDM (x11-apps/xdm): X.Org's standard display manager.
  • LightDM (x11-misc/lightdm): A lightweight, but highly configurable display manager.
  • SLiM (x11-misc/slim): Simple Login Manager -- a lightweight display manager. Not very configurable.

Any of these would make a fine choice. After you've chosen which display manager to use, install it:

# emerge lightdm

All that's left to do now is to add the name of the display manager to /etc/conf.d/xdm, add the xdm service to the default runlevel, and start the service:

DISPLAYMANAGER="lightdm"
# rc-update add xdm default
# /etc/init.d/xdm start

Power Group

If you wish to be able to shutdown/reboot/suspend/hibernate using xfce4-logout-session then you will need to add yourself or the user to the power group by:

# gpasswd -a <username> power

If the group does not exist then execute the following and try again:

# groupadd power

Now you need to add the following to /usr/share/polkit-1/actions/org.freedesktop.upower.policy:

/usr/share/polkit-1/actions/org.freedesktop.upower.policy (xml source code)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
 "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/PolicyKit/1.0/policyconfig.dtd">
<policyconfig>
  <vendor>The UPower Project</vendor>
  <vendor_url>http://upower.freedesktop.org/</vendor_url>
  <icon_name>system-suspend</icon_name>
 
  <action id="org.freedesktop.upower.suspend">
    <description>Suspend the system</description>
    <description xml:lang="fr">Mettre le système en veille</description>
    <description xml:lang="it">Sospende il sistema</description>
    <description xml:lang="pl">Wstrzymanie systemu</description>
    <description xml:lang="sv">Försätt systemet i vänteläge</description>
    <message>Authentication is required to suspend the system</message>
    <message xml:lang="fr">Vous devez vous identifier pour mettre le système en veille</message>
    <message xml:lang="it">È richiesto autenticarsi per sospendere il sistema</message>
    <message xml:lang="pl">Wymagane jest uwierzytelnienie, aby wstrzymać system</message>
    <message xml:lang="sv">Autentisering krävs för att försätta systemet i vänteläge</message>
    <defaults>
      <allow_any>yes</allow_any>
      <allow_inactive>no</allow_inactive>
      <allow_active>yes</allow_active>
    </defaults>
  </action>
 
  <action id="org.freedesktop.upower.hibernate">
    <description>Hibernate the system</description>
    <description xml:lang="fr">Mettre le système en hibernation</description>
    <description xml:lang="it">Iberna il sistema</description>
    <description xml:lang="pl">Hibernacja systemu</description>
    <description xml:lang="sv">Försätt systemet i viloläge</description>
    <message>Authentication is required to hibernate the system</message>
    <message xml:lang="fr">Vous devez vous identifier pour mettre le système en hibernation</message>
    <message xml:lang="it">È richiesto autenticarsi per ibernare il sistema</message>
    <message xml:lang="pl">Wymagane jest uwierzytelnienie, aby zahibernować system</message>
    <message xml:lang="sv">Autentisering krävs för att försätta systemet i viloläge</message>
    <defaults>
      <allow_any>yes</allow_any>
      <allow_inactive>no</allow_inactive>
      <allow_active>yes</allow_active>
    </defaults>
  </action>
 
</policyconfig>

and also add the following to /usr/share/polkit-1/actions/org.freedesktop.consolekit.policy:

/usr/share/polkit-1/actions/org.freedesktop.consolekit.policy (xml source code)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
 "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/PolicyKit/1.0/policyconfig.dtd">
 
 
<policyconfig>
 
  <action id="org.freedesktop.consolekit.system.stop">
    <description>Stop the system</description>
    <message>System policy prevents stopping the system</message>
    <defaults>
      <allow_any>yes</allow_any>
      <allow_inactive>no</allow_inactive>
      <allow_active>yes</allow_active>
    </defaults>
  </action>
 
  <action id="org.freedesktop.consolekit.system.stop-multiple-users">
    <description>Stop the system when multiple users are logged in</description>
    <message>System policy prevents stopping the system when other users are logged in</message>
    <defaults>
      <allow_any>yes</allow_any>
      <allow_inactive>no</allow_inactive>
      <allow_active>yes</allow_active>
    </defaults>
  </action>
 
  <action id="org.freedesktop.consolekit.system.restart">
    <description>Restart the system</description>
    <message>System policy prevents restarting the system</message>
    <defaults>
      <allow_any>yes</allow_any>
      <allow_inactive>no</allow_inactive>
      <allow_active>yes</allow_active>
    </defaults>
  </action>
 
  <action id="org.freedesktop.consolekit.system.restart-multiple-users">
    <description>Restart the system when multiple users are logged in</description>
    <message>System policy prevents restarting the system when other users are logged in</message>
    <defaults>
      <allow_any>yes</allow_any>
      <allow_inactive>no</allow_inactive>
      <allow_active>yes</allow_active>
    </defaults>
  </action>
 
</policyconfig>

Plugins for Thunar and XFCE

There are a lot of plugins available for Thunar and XFCE. here is a table that contains the name of the plugin and a description of what it does. To install one of the plugins, run

# emerge [name of plugin]
Name Description
xfce-extra/thunar-volman Daemon that enforces volume-related policies
xfce-extra/thunar-vcs-plugin Adds Subversion and GIT actions to the context menu of thunar
xfce-extra/thunar-shares-plugin Thunar plugin to share files using Samba
xfce-extra/thunar-archive-plugin Archive plug-in for the Thunar filemanager
xfce-extra/xfce4-volumed Daemon to control volume up/down and mute keys
xfce-extra/xfce4-screenshooter Xfce4 screenshooter application and panel plugin
xfce-extra/xfce4-notifyd Notification daemon for the Xfce desktop environment
xfce-extra/xfce4-mixer A volume control application (and panel plug-in) for the Xfce desktop environment
xfce-extra/xfce4-mount-plugin A mount plug-in for the Xfce panel
xfce-extra/xfce4-clipman-plugin A clipboard manager plug-in for the Xfce panel
xfce-extra/xfce4-battery-plugin A battery monitor panel plugin for the Xfce desktop environment