Jump to content

Xfce

From ArchWiki
(Redirected from Xfce (Español))

Xfce is a lightweight and modular desktop environment based on GTK. To provide a complete user experience, it includes a window manager, a file manager, desktop and panel.

Installation

Install the xfce4 group. You may also wish to install the xfce4-goodies group which includes extra plugins and a number of useful utilities such as the mousepad editor. Xfce uses the Xfwm window manager by default.

Starting

Choose Xfce Session from the menu in a display manager of choice, or add exec startxfce4 to Xinitrc.

Note: Do not call the xfce4-session executable directly; startxfce4 is the correct command which, in turn, calls the former when appropriate.

Configuration

Xfce stores configuration options in Xfconf. There are several ways to modify these options:

  • In the main menu, select Settings and the category you want to customize. Categories are programs usually located in /usr/bin/xfce4-* and /usr/bin/xfdesktop-settings.
  • xfce4-settings-editor can see and modify all settings. Options modified here will take effect immediately. Use xfconf-query to change settings from the commandline; see the documentation for details.
  • Settings are stored in XML files in ~/.config/xfce4/xfconf/xfce-perchannel-xml/ which can be edited by hand. However, changes made here will not take effect immediately.

Menu

See Xdg-menu for more info on using the Free Desktop menu system.

Whisker menu

xfce4-whiskermenu-plugin (also part of xfce4-goodies) is an alternative application launcher. It shows a list of favorites, browses through all installed applications through category buttons, and supports fuzzy searching. After package being installed, it can replace Applications Menu as first item in Panel 1 (in Settings > Panel > Items add Whisker Menu).

Set keyboard shortcut to launch whisker menu

To set a keyboard shortcut to launch the whisker menu, go to Settings > Keyboard and then the Application Shortcuts tab. Click on the Add button, set the command to xfce4-popup-whiskermenu and assign the desired keyboard shortcut.

Edit entries

A number of graphical tools are available for this task:

  • MenuLibre — An advanced menu editor that provides modern features in a clean, easy-to-use interface.
https://github.com/bluesabre/menulibre || menulibreAUR.
  • Alacarte — Menu editor for GNOME
https://www.gnome.org/ || alacarte
  • XAME (XFCE Applications Menu Editor) — GUI tool written in Gambas designed specifically for editing menu entries in Xfce, it will not work in other environments. (Discontinued)
https://redsquirrel87.altervista.org/doku.php/xfce-applications-menu-editor || xameAUR

Alternatively, create the file ~/.config/menus/xfce-applications.menu manually. See the example configuration below:

<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
  "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">

<Menu>
    <Name>Xfce</Name>
    <MergeFile type="parent">/etc/xdg/menus/xfce-applications.menu</MergeFile>

    <Exclude>
        <Filename>xfce4-run.desktop</Filename>
        <Filename>exo-terminal-emulator.desktop</Filename>
        <Filename>exo-file-manager.desktop</Filename>
        <Filename>exo-mail-reader.desktop</Filename>
        <Filename>exo-web-browser.desktop</Filename>
        <Filename>xfce4-about.desktop</Filename>
        <Filename>xfhelp4.desktop</Filename>
    </Exclude>

    <Layout>
        <Merge type="all"/>
        <Separator/>
        <Menuname>Settings</Menuname>
        <Separator/>
        <Filename>xfce4-session-logout.desktop</Filename>
    </Layout>
</Menu>

The <MergeFile> tag includes the default Xfce menu.

The <Exclude> tag excludes applications which we do not want to appear in the menu. Here we excluded some Xfce default shortcuts, but you can exclude firefox.desktop or any other application.

The <Layout> tag defines the layout of the menu. The applications can be organized in folders or however we wish. For more details see the Xfce wiki.

You can also make changes to the Xfce menu by editing the .desktop files themselves. To hide entries, see Desktop entries#Hide desktop entries. You can edit the application's category by modifying the Categories= line of the desktop entry, see Desktop entries#File example.

Set preferred applications

To change the default applications used for opening certain resources, use the Preferred Applications setting. This will change the behavior of exo-open, which is invoked by resource openers such as xdg-open.

Desktop

Remove desktop icons

Issue the following command:

$ xfconf-query -c xfce4-desktop -v --create -p /desktop-icons/style -t int -s 0

To reinstate icons on the desktop, issue the same command with a value of 2.

Kill window shortcut

Xfce does not have a shortcut to kill a window, for example when a program freezes.

With xorg-xkill, use xkill to interactively kill a window. For the currently active window, use xdotool:

$ xdotool getwindowfocus windowkill

Alternatively:

$ sh -c "xkill -id $(xprop -root -notype | sed -n '/^_NET_ACTIVE_WINDOW/ s/^.*# *\|\,.*$//g p')"

To add the shortcut, use Settings > Keyboard or an application like xbindkeys.

Session

Autostart

To launch custom applications when Xfce starts up, click the Applications Menu > Settings > Settings Manager and then choose the Session and Startup option and click the tab Application Autostart. You will see a list of programs that get launched on startup. To add an entry, click the Add button and fill out the form, specifying the path to an executable you want to run.

Autostart application location paths are described in the XDG Autostart specification.

Alternatively, add the commands you wish to run (including setting environment variables) to xinitrc (or xprofile when a display manager is being used).

Tip: Sometimes it might be useful to delay the startup of an application. Note that specifying under Application > Autostart a command such as sleep 3 && command does not work; a workaround is to use the syntax sh -c "sleep 3 && command"

Lock the screen

xflock4 is the reference Shell script which is used to lock an Xfce session.

It tries to lock the screen with these screen lockers in the specified order:

It exits with return code 1 if it fails to find any of these.

The List of applications/Security#Screen lockers contains a short description of these screen lockers together with other popular applications.

To have xflock4 run a custom session locker, set LockCommand in the session's xfconf channel to the command line to be used:

$ xfconf-query --create -c xfce4-session -p /general/LockCommand -t string -s "session-locker-command"

The panel lock button in the Action Buttons panel simply executes /usr/bin/xflock4. It should work as expected as long as xflock4 is functioning i.e. one of the native lockers is installed or a custom locker is configured to integrate with it as proposed above.

Suspend

Whether or not the session is systematically locked on suspend can be configured through the xfconf properties or from the GUI.

To prevent locking on suspend using the CLI, turn lock-screen-suspend-hibernate to false:

$ xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/lock-screen-suspend-hibernate -s false

Similarly, turn it to true to lock the session on suspend.

The setting can also be controlled from the GUI: open the Session and Startup application and turn the flag General > Lock screen before sleep on or off.

Whenever the suspend keyboard button is pressed, it can be handled by either Xfce's power manager or by systemd-logind. To give precedence to logind, the following xfconf setting must be set to true:

$ xfconf-query --create -c xfce4-power-manager -p /xfce4-power-manager/logind-handle-suspend-key -t bool -s true
Note: To check how systemd-logind handles events whenever it has precedence over Xfce, check logind.conf(5)

Disable saved sessions

Per user, saved sessions can be disabled by unchecking Applications > Settings > Session and Startup > General > Automatically save session on logout or by executing the following command:

$ xfconf-query --create -c xfce4-session -p /general/SaveOnExit -t bool -s false

Alternatively, Xfce kiosk mode can be used to disable the saving of sessions systemwide. To disable sessions, create or edit the file /etc/xdg/xfce4/kiosk/kioskrc and add the following:

[xfce4-session]
SaveSession=NONE

You may need to remove previously saved sessions. Navigate to Applications > Settings > Session and Startup > Saved Sessions and press the Clear Saved Sessions button, or simply delete the ~/.cache/sessions/ directory.

Use a different window manager

Note: For the changes to take effect, you will need to clear the saved sessions and ensure that session saving is disabled when logging out for the first time. Once the window manager of choice is running, session saving can be enabled again.

The files specifying the default window manager are found in the following locations:

  • ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml - per user
  • /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml - systemwide

The default window manager for the user can be set easily using xfconf-query:

$ xfconf-query -c xfce4-session -p /sessions/Failsafe/Client0_Command -t string -sa xfsettingsd
$ xfconf-query -c xfce4-session -p /sessions/Failsafe/Client1_Command -t string -sa wm_name

If you want to start the window manager with command line options, see the commands below:

$ xfconf-query -c xfce4-session -p /sessions/Failsafe/Client0_Command -t string -sa xfsettingsd
$ xfconf-query -c xfce4-session -p /sessions/Failsafe/Client1_Command -t string -s wm_name -t string -s --wm-option

If you need more command line options, simply add more -t string and -s --wm-option arguments to the command.

Note: If you instead set Client0_Command to wm_name and Client1_Command to xfsettingsd, you can prevent xfce4-session-logout from reverting to a default theme. However, you will need to manually set the cursor theme.

If you want to change the default window manager systemwide, edit the file specified above manually, changing xfwm4 to the preferred window manager and adding more <value type="string" value="--wm-option"/> lines for extra command line options if needed.

You can also change the window manager by autostarting wm_name --replace using the autostart facility or by running wm_name --replace & in a terminal and making sure the session is saved on logout. Be aware though that this method does not truly change the default manager, it merely replaces it at login. Note that if you are using the autostart facility, you should disable saved sessions as this could lead to the new window manager being started twice after the default window manager.

Theming

XFCE themes are available at xfce-look.org. Xfwm themes are stored in /usr/share/themes/theme_name/xfwm4, and set in Settings > Window Manager. GTK themes are stored in /usr/share/themes/theme_name/gtk-2.0 and /usr/share/themes/theme_name/gtk-3.0 and are set in Settings > Appearance.

To achieve a uniform look for all applications, see Uniform look for Qt and GTK applications.

See also Cursor themes, Icons, and Font configuration.

Consistent Look Between SSD and CSD Windows

Xfce currently uses Server-Side Decorations (SSD) (see Wikipedia:Window decoration) themed by Xfwm for most windows and Client-side decoration (CSD) themed by the respective programs for Xfce Settings, Print, Save, and other dialogs.

Xfwm SSD window styles can be themed to match the CSD windows by manually adjusting or creating themes in /usr/share/themes/theme_name/xfwm4 or by using a tool such as the Xfwm4 Theme Generator which "Creates xfwm4 themes from client side decorations."

Reverting Client-Side Decorations

With Xfce 4.18, client-side decorations are optional and disabled by default. [1]

Non-Xfce applications may still use client-side decorations. To disable them globally, see GTK#Client-side decorations.

Sound

Sound themes

XFCE4 supports freedesktop system sounds, but it is not configured out of the box.

To enable a sound theme:

  1. Check Enable event sounds in Settings > Appearance > Settings;
  2. In the Settings Editor set xsettings/Net/SoundThemeName to a sound theme located in /usr/share/sounds/;
  3. Turn on System Sounds in audio mixer (e.g. pavucontrol).

sound-theme-freedesktop provides a compatible sound theme, but it lacks many required events. A better choice is sound-theme-smoothAUR (SoundThemeName should be Smooth).

Keyboard volume buttons

xfce4-pulseaudio-plugin provides a panel applet which has support for keyboard volume control and volume notifications. As an alternative, you can install xfce4-volumed-pulse, which also provides keybinding and notification control, but without an icon sitting in the panel. This is handy, for example, when using pasystray at the same time for a finer control.

Alternatively, xfce4-mixer also provides a panel applet and keyboard shortcuts. The Arch package only supports ALSA, but you can rebuild it manually to add PulseAudio support.

After installing the panels, you have to add it to the taskbar or the keyboard shortcuts will not work.

For non desktop environment specific alternatives, see List of applications/Multimedia#Volume control.

Shortcuts

If you are not using an applet or daemon that controls the volume keys, you can map volume control commands to your volume keys manually using Xfce's keyboard settings. For the sound system you are using, see the sections linked to below for the appropriate commands.

Keyboard shortcuts

Keyboard shortcuts are defined in two places: Settings > Window Manager > Keyboard, and Settings > Keyboard > Shortcuts.

Polkit Authentication Agent

The polkit-gnome agent will be installed along with xfce4-session and autostarted automatically; no user intervention is required. For more information, see Polkit#Authentication agents.

A third party polkit authentication agent for Xfce is also available, see xfce-polkitAUR or xfce-polkit-gitAUR.

Display blanking

Some programs that are commonly used with Xfce will control monitor blanking and DPMS (monitor powersaving) settings. They are discussed below.

Xfce Power Manager

Xfce Power Manager controls DPMS settings only. They can be configured in the Power Manager GUI within the Display tab.

Note that when Display power management is turned off, DPMS is fully disabled, but this does not mean that Power Manager will simply stop controlling DPMS. However, it does not control screen blanking, which may remain enabled even after display power management is disabled. [2] To disable both blanking and DPMS, right click on the power manager system tray icon or left click on the panel applet and make sure that the option labelled Presentation mode is ticked.

XScreenSaver

If xscreensaver is installed and runs alongside Xfce Power Manager, it may not be clear which application is in control of blanking and DPMS as both are competing for control of the same settings. Therefore, in a situation where it is important that the monitor not be blanked (when watching a video for instance), it is advisable to disable blanking and DPMS through both applications. To know more about XScreenSaver options, see XScreenSaver#DPMS and blanking settings.

xset

If neither of the above applications are running, then blanking and DPMS settings can be controlled using the xset command, see DPMS#Runtime settings.

Note: There are some issues associated with blanking and resuming from blanking in some configurations. See [3][4].

Tips and tricks

Mounting support for Thunar and xfdesktop

If plugged external drives does not appear and installation partitions are shown as mounted devices, on the desktop and in Thunar, install gvfs. See Udisks#Hide selected partitions for more advanced configuration options.

Screenshots

Xfce has its own screenshot tool, xfce4-screenshooter. It is part of the xfce4-goodies group.

Default keyboard shortcuts: Print opens the main dialog window, Alt+Print takes a screenshot of the active window, Shift+Print allows you to select a region to be captured.

Alternatively, an independent screenshot program like scrot can be used.

Terminal color themes or palettes

Terminal color themes or palettes can be changed in the GUI, under the Colors tab in Preferences. These are the colors that are available to most console applications like Emacs, Vi and so on.

The settings are stored in Xfconf. Although you can edit them directly, it might be more convenient to download or create a color preset file. The default presets are stored in /usr/share/xfce4/terminal/colorschemes/, custom presets can be placed in ~/.local/share/xfce4/terminal/colorschemes/. You can select a preset in Preferences > Colors > Presets.

Check forum thread Terminal Colour Scheme Screenshots for hundreds of available choices and themes.

A commented example of a color preset file:

~/.local/share/xfce4/terminal/colorschemes/tango-gray.theme
[Scheme]

# Name of the color preset
Name=Tango (gray background)

# Name translated into other languages
Name[ru]=Танго (серый фон)

# Color values are CSS colors (e.g. #ff0000, #ffff00000000, rgb(255, 0, 0) or red)

ColorForeground=white
ColorBackground=#323232

# 16 colors separated by semicolon:
# black;red;green;yellow;blue;purple;cyan;light-gray;gray;bright-red;bright-green;bright-yellow;bright-blue;bright-purple;bright-cyan;white
ColorPalette=#2e3436;#cc0000;#4e9a06;#c4a000;#3465a4;#75507b;#06989a;#d3d7cf;#555753;#ef2929;#8ae234;#fce94f;#739fcf;#ad7fa8;#34e2e2;#eeeeec

# Uncomment to override:

# TabActivityColor=#ef2929

# ColorCursor=white
# ColorCursorForeground=#323232
# ColorCursorUseDefault=FALSE

# ColorSelectionBackground=#ad7fa8
# ColorSelection=#323232
# ColorSelectionUseDefault=FALSE

# ColorBold=white
# ColorBoldUseDefault=FALSE

# "Vary the background color for each tab"
# ColorBackgroundVary=TRUE

# "Use system theme colors for text and background"
# ColorUseTheme=TRUE

env-modules autocompletion in Terminal

The env-modulesAUR package provides shell autocompletion for login shells. However, by default, sessions in xfce4-terminal are not considered as login. To enable autocompletion for Environment Modules, tick the Run command as login shell checkbox in Preferences > General.

Colour management

Xfce has no native support for colour management. [5] See ICC profiles for alternatives.

Multiple monitors

Xfce has support for multiple monitors, which can be configured in the Applications > Settings > Display dialog. In the Advanced tab, one can save profiles for different monitors and have them applied automatically as soon as the connected monitors change. For more information, see the display article from the Xfce documentation.

Alternatively, one can use arandr to manage display configurations in the form of xrandr commands which can be assigned to Xfce keyboard shortcuts.

SSH agents

By default, Xfce will try to load gpg-agent and ssh-agent. Since gpg-agent is handled by systemd, you may want to disable it in the Xfce settings:

$ xfconf-query --create -c xfce4-session -p /startup/gpg-agent/enabled -t bool -s false

If you plan to use the ssh-agent.service user unit as described in SSH keys#Start ssh-agent with systemd user, disable ssh-agent in the Xfce settings as well:

$ xfconf-query --create -c xfce4-session -p /startup/ssh-agent/enabled -t bool -s false

To use GNOME Keyring, simply tick the checkbox Launch GNOME services on startup in the Advanced tab of Session and Startup in Xfce's settings. This will also disable gpg-agent and ssh-agent.

Source: https://docs.xfce.org/xfce/xfce4-session/advanced#ssh_and_gpg_agents

Scroll a background window without shifting focus on it

Go to Main Menu > Settings > Window Manager Tweaks > Accessibility tab. Uncheck Raise windows when any mouse button is pressed.

$ xfconf-query --channel xfwm4 --property /general/raise_with_any_button --set false

Mouse button modifier

By default, the mouse button modifier in Xfce is set to Alt. This can be changed with xfconf-query. For instance, the following command will set the Super key as the mouse button modifier:

$ xfconf-query -c xfwm4 -p /general/easy_click -n -t string -s "Super"

Strictly speaking, using multiple modifiers is not supported. However, as a workaround, multiple modifiers can be specified if the key names are separated with ><. For instance, to set Ctrl+Alt as the mouse button modifier, you can use the following command:

$ xfconf-query -c xfwm4 -p /general/easy_click -n -t string -s "Ctrl><Alt"

Limit the minimum brightness of the brightness-slider

Limiting the minimum brightness can be useful for displays which turn off backlight on a brightness level of 0. In xfce4-power-manager 1.3.2 a new hidden option had been introduced to set a minimum brightness value with a xfconf4-property. Add brightness-slider-min-level as an int property in xfconf4. Adjust the int value to get a suitable minimum brightness level.

$ xfconf-query --channel xfce4-power-manager --property '/xfce4-power-manager/brightness-slider-min-level' --create --type int --set 0

Adding profile pictures

To add profile pictures for each user to be displayed in the whisker-menu, simply place a 96x96 PNG file in /home/user/.face.

Image editing programs like GIMP can be used to scale your favourite images down to 96x96 and convert it.

Power manager plugin label

The xfconf option show-panel-label of type int controls the label of the power manager, it can be configured for different label formats: it can be set to 0 (no label), 1 (percentage), 2 (remaining time) or 3 (both).

It is also accessible through the power manager plugin GUI in Properties > Show label

Using the Windows (Super) key for shortcuts

The Super key is treated as a modifier key, like Ctrl and Alt, instead of producing a keypress. Assigning an action to it will keep you from using it for other shortcuts, because it will trigger that action in addition to whatever else you assign to it.

To get around this, and make it more useful for shortcuts, install the application xcape. This lets you configure modifier keys to act as other keys when pressed and released on their own.

Next, go to Settings > Keyboard > Application Shortcuts and assign an unused key combination, say Alt+F1, to the Application menu (or whatever action you want when you press the Super key by itself). Test that it works. Next, use xcape to assign Alt+F1 to the Super key:

$ xcape -e 'Super_L=Alt_L|F1'

Check that the Super key now performs the action you assigned to Alt+F1.

If all is well, make this an autostart action; go to Settings > Session and Startup > Application Autostart tab, press the Add button and enter the command there to make it run every time you start Xfce (if xcape was already installed, also check that there is not already a similar entry registered).

Now, you can freely use the Super key in shortcuts. For example: In Window Manager > Keyboard, you can use Super and Up or Down for Raise window or Lower window.

Using the experimental Wayland support

Xfce supports both labwc and wayfireAUR as its Wayland compositor. However, only labwc works out of the box; Wayfire requires additional tweaking to the session file to make it work. For this purpose this section focuses on getting Xfce working with labwc as it requires the least effort to get Xfce working in Wayland.

After installing labwc, you should be able to switch to the Xfce Session (Wayland) option in your display manager of choice and log in as usual. Note that Wayland support is marked as experimental for a good reason: things will not work like you expect it to and a lot of stuff are generally broken. For example, desktop icons placed by xfdesktop may appear and disappear as the desktop gain and lose focus.

Using labwc custom keymaps

The labwc configuration files for Xfce are located in ~/.config/xfce4/labwc/ instead of the default labwc directory ~/.config/labwc/. If you have a custom environment file with keymaps in it, you need a lock file ~/.config/xfce4/labwc/lock, otherwise the layout gets overwritten by startxfce4 with the system's default layout.

Troubleshooting

Modifying setting does not take effect

If you are running a separate Xsettings daemon, it may make some configuration not taking effect. Disable it by removing or commenting the corresponding line and restart Xorg.

NVIDIA and xfce4-sensors-plugin

To detect and use the sensors of an NVIDIA GPU, install libxnvctrl and then rebuild xfce4-sensors-plugin with ABS. Another option is xfce4-sensors-plugin-nvidiaAUR which replaces xfce4-sensors-plugin.

Panel applets keep being aligned on the left

Add a separator someplace before the right end and set its "expand" property. [6]

Restore default settings

If for any reason you need to revert back to the default settings, remove or rename ~/.config/xfce4/:

$ mv ~/.config/xfce4/ ~/.config/xfce4-bak

Relogin for changes to take effect. If you get Unable to load a failsafe session upon login, see the #Session failure section.

Session failure

Symptoms include:

  • The mouse is an X and/or does not appear at all;
  • Window decorations have disappeared and windows cannot be closed;
  • Desktop turns grey and all desktop icons disappear;
  • (xfwm4-settings) will not start, reporting These settings cannot work with your current window manager (unknown);
  • Errors reported by a display manager such as No window manager registered on screen 0;
  • Unable to load a failsafe session:
Unable to load a failsafe session.
Unable to determine failsafe session name.  Possible causes: xfconfd is not running (D-Bus setup problem); environment variable $XDG_CONFIG_DIRS is set incorrectly (must include "/etc"), or xfce4-session is installed incorrectly.

Restarting Xfce or rebooting your system may solve the problem, but a corrupt session could also be the cause. Delete the session folder:

$ rm -r ~/.cache/sessions/

Also make sure that the relevant folders in $HOME are owned by the user starting xfce4. See Chown.

Mousepad editor menu bar is not visible

Run the following to make it visible:

$ gsettings set org.xfce.mousepad.preferences.window menubar-visible true

Trash icon not visible and trash applet does not work

Trash requires the optional dependency gvfs to work. Install gvfs and reboot the system.

Wayland support not working

If you are trying to get Xfce working with WayfireAUR, additional editing must be done to the session files to make it work.

If not, make sure you have labwc installed.

See also

OSZAR »