This page contains various tips for the Xfce desktop environment.
Lets face it: one of the reasons for using Xfce is performance. It is lighter and more responsive than Gnome on almost all hardware, especially on machines with less memory and processor power.
Fonts play a huge part in GUI performance. With all of the font smoothing, hinting and rendering turned on, you may notice significant latency when menus or dialog boxes appear. When you turn all of these off, menus and dialog boxes will appear much faster (snappy in fact). Scrolling will also improve in web browsers, text editors, and terminal emulators.
The only problem with turning off hinting/antialising is ugly fonts. On a laptop LCD, I recommend the “Kochi Gothic” font from 9 points and larger. “Helvetica” at 9 points and “Luxi Sans” also gives a clean look. Also, using “Verdana” at 9+ points with only anti-aliasing turned on(no hinting or sub-pixel hinting) looks very slick, however it may appear a little bold. Other font recommendations are welcome!
If you want to use the new menu from GNOME, with quick starters for favorites applications and such, you can use the xfapplet panel plugin with the GNOME main menu applet. The menu should be installed with your package system, look for gnome-main-menu. Xfce screenshot, video.
Add a new xfapplet item inside your panel, and open its properties dialog to add the GNOME menu applet.
If you don't like GNOME main menu, try Ubuntu System Panel, available in several distributions.
See also: How to customize the Xfce 4.5+ menu
# ~/.gtkrc-2.0
style "panel-background" {
bg_pixmap[NORMAL] = "foo.bar"
bg_pixmap[PRELIGHT] = "foo.bar"
bg_pixmap[ACTIVE] = "foo.bar"
bg_pixmap[SELECTED] = "foo.bar"
bg_pixmap[INSENSITIVE] = "foo.bar"
}
style "panel-color" {
fg[NORMAL] = "#222222"
fg[ACTIVE] = "#111111"
bg[NORMAL] = "#edeff2"
bg[PRELIGHT] = "#3d6eab"
bg[ACTIVE] = "#3d6eab"
}
widget_class "*Panel*" style "panel-background"
widget "*PanelWidget*" style "panel-color"
widget "*PanelApplet*" style "panel-color"
widget "*Panel*" style "panel-color"
widget_class "*Panel*" style "panel-color"
class "*Panel*" style "panel-color"
class "*Tray*" style "panel-color"
class "*tray*" style "panel-color"
You have to create a .desktop file (usually in /usr/share/applications for system wide or ~/.local/share/applications for your user) for the application you want to add.
In the following example, we create an entry in the menu with the name “foo” in the submenu “Multimedia”:
[Desktop Entry] Encoding=UTF-8 Name=foo GenericName=bar Comment=Senseless program ever Exec=foobar Icon=/usr/share/pixmaps/foobar.xpm Terminal=false Type=Application Categories=Multimedia;
You can read more about .desktop files here.
The libexo provides several utils amongst one to handle desktop entry files in a GUI fashion: exo-desktop-item-edit. With it you can create a new .desktop file, by running the command exo-desktop-item-edit --create-new
You can do this in two ways:
/usr/share/applications/ folder, but you will lose mime data (file associations).NoDisplay=true
Like most UNIX terminal sessions, Xfce runs through user-customizable startup file when it starts up. You can edit this init file to run your own scripts, send environment variables to the GUI, etc.
To add your own startup code, edit the xinitrc file like this:
You can read more about xinitrc at various locations online.
To set the desktop margins, use the Settings Manager (Settings Manager > Workspaces & Margins > Margins).
The desktop margins are used to limit the size of maximized windows. This may be useful to avoid switching workspaces by accidentally mousing off the side of the screen.
The margins are also useful if you have only one Xfce panel: the margin area leaves a clear space to pull up application or workspace menus. By default, right click on the desktop (the margin) to show the Xfce menu, or middle (left+right) click to show the workspace menu.
If you would like the xfce logout menu to show up when you press your power button, and your machine has acpi support, then do the following:
/etc/acpi/events/powerbtn# /etc/acpi/events/powerbtn # This is called when the user presses the power button and calls # /etc/acpi/powerbtn.sh for further processing. # Optionally you can specify the placeholder %e. It will pass # through the whole kernel event message to the program you've # specified. # We need to react on "button power.*" and "button/power.*" because # of kernel changes. event=button[ /]power action=/usr/local/sbin/xfce4-shutdown-as-user.sh
/usr/local/sbin/xfce4-shutdown-as-user.sh
#!/bin/sh
# xfce4-shutdown-as-user.sh
#
# Check how many users are currently logged into X.
# If only one user is logged in, run a script which sets
# up the environment to call xfce4-session-logout.
LOGGED_IN_USER=`ls -trl /tmp/.ICE-unix/ | tail -n -1 | cut -d' ' -f3`
NUM_X_USERS=`echo $LOGGED_IN_USER | wc -l`
if [ $NUM_X_USERS -eq 1 ]; then
sudo -H -u $LOGGED_IN_USER /usr/local/sbin/xfce4-user-session-shutdown.sh
fi
/usr/local/sbin/xfce4-user-session-shutdown.sh#!/bin/sh # xfce4-user-session-shutdown.sh # # Set up the environment so that DISPLAY and # SESSION_MANAGER are valid, and xfce4-session-logout can run HOST=`hostname` SESSION_ID=`ls -t /tmp/.ICE-unix/ | head -n1` # Note that distros use different syntax for the SESSION_MANAGER variable (this script has Debian's format). # If this does not work, then try something like SESSION_MANAGER="local/$HOST:@/tmp/.ICE-unix/$SESSION_ID" # instead. You can always find the correct format for your distribution by looking at the # value of SESSION_MANAGER in a X session. DISPLAY=:0 SESSION_MANAGER="local/$HOST:/tmp/.ICE-unix/$SESSION_ID" /usr/bin/xfce4-session-logout
When you create a Thunar Custom Action you can set the name with an underscore “_” before a letter to use it as mnemonic. When you right click in a Thunar view, you can type the letter to access your custom action.