X
Tech

How to customise your Linux desktop: Xfce

Here is the first in a series of posts describing some of the most popular Linux desktops, including examples of customizing their appearance and operation.
Written by J.A. Watson, Contributor

I will start this post with a disclaimer: I do not claim to be an expert on Linux desktops in any way, or by any stretch of the imagination. I am an ordinary Linux user, no more.

I have quite a few laptops, notebooks and netbooks and I have a number of different Linux distributions loaded on each of those. When I load a distribution, I generally choose whatever the 'preferred' desktop for that distribution is -- that means KDE on openSuSE, Gnome on Fedora and Debian, Cinnamon and MATE on Linux Mint, Xfce on Manjaro, and so on.

That, in turn, means that I have had to actually work on each of those different desktops, and in most cases I have learned enough about configuration and customization to create a comfortable environment for myself.

What I am going to present in this series are my own experiences, and my own preferences and procedures. There will certainly be people who know a lot more than I do about every one of the desktops I discuss, so if you have other good tips, advice and/or preferences, feel free to speak up in the comments.

One other thing: I'm going to include lots and lots of pretty pictures and screenshots this time, so I will make up for the lack of those, and the excess of CLI examples, in my previous blog post.

This is turning out to be a very long post, so once again you might want to find a comfy chair and a cup of (whatever) before you start.

xfce.jpg
This first post of the series will discuss the Xfce desktop, not because of any preference or priority on my part, but because I happen to have my Samsung N150 Plus netbook with me today. I almost always load either Xfce or LXDE on it because of its limited CPU power and memory.

I will be using Manjaro 15.10 for the screen shots and examples because Xfce is their 'flagship' distribution, so they always have the latest Xfce release, and it is in general very well implemented and integrated with their distribution.

The default Manjaro Xfce desktop looks like this:
Xfce
Xfce 4.12 Desktop on Manjaro Linux 15.10

That is a very typical-looking desktop, and in this first glance it doesn't look significantly different to many others including LXDE, KDE and even Windows. Well, not Windows 8, of course, but that is a different rant. I'm going to divide it into three major parts, and consider what might be interesting to change or customize in each one:

  • Wallpaper - Different static images, multiple (changing) images
  • Desktop icons - Include/remove specific icons, individually or by category, add new icons for commonly used applications
  • Panel - Change panel location and/or size, add multiple panels, show/hide panels, modify panel contents
desktopmenu.png
Xfce Desktop Menu
First up, then, is the desktop wallpaper. On Xfce this is managed through the Desktop Managerwhich can be found either in the Xfce (Whisker) menus in the 'Settings' group, or by simply right-clicking on the desktop background and choosing 'Desktop Settings...'from the menu window that pops up.
desktopbackground.png
Xfce Desktop Management
The Desktop Manager contains three tabs, for Background, Menus, and Icons. Here you can see the Backgroundtab, where you can configure the wallpaper. There is a list of default images, and you can select any one by simply clicking on it. The actual desktop display will be changed as soon as you click, so you can see if you really like whatever you select. If you want variety you can enable 'Change the background' and then set an interval in minutes,, and even tell it that you want the images in 'Random Order' rather than sequentially. If, like me, you want to use your own images for wallpaper you can choose the 'Folder' to be displayed.
desktopmenusettings.png
Xfce Desktop Menus Settings
applicationmenu.png
Xfce Desktop Application Menu
The second tab in this window is Menus. When you right-click on the Xfce desktop you get the menu shown here, and if you have the 'Desktop Menu' option selected here, the last item in that menu will be a cascading Applications menu. This means you don't have to go to the bottom or top panel and click something, you don't have to slam the mouse cursor into the top left corner of the screen, you can start an application from anywhere on the screen that you can see a bit of desktop wallpaper.

You might not realize how nice that really is until you have used it for a few minutes.

If for some reason that I can't think of right now you don't want this kind of direct access to the application menu, you can disable it.

Also in the Menus tab is an item which I personally think shows Xfce's long heritage, because it is an action triggered by a middle mouse button click. Yeah, I know, all the Windows users are saying "what? middle? I've only got left and right mouse buttons", and all the Mac users are saying "an N-button mouse has N-1 too many buttons"... but there are a lot of us (mostly with grey hair) who used 3-button mice for many years. In fact, I have a colleague who still uses one (and it has a little ball sticking out the bottom, really).

workspaces.png
Xfce Workspace/Window List
Anyway, if you middle-click on the desktop, Xfce will pop up a Workspace/Window list, similar to what you see here. This window also lets you add or delete workspaces. There are a number of options in the Menus tab that let you select what will be displayed and how it is displayed, and even if it is displayed at all.
desktopicons.png
Xfce Desktop Icons
The other item that is of interest right now is the 'Icons' tab. The part which interests me here is the 'Default Icons' list at the bottom of the window. By default Xfce displays the three icons shown in the screen shot above. It's never been clear to me why you would want file manager icons for both File System and Home on the desktop... I mean, even one of those is too much for me, but both of them, when they differ by only one click when either one is opened? Must be some kind of historical thing that a lot of users expect. The same is actually true of the Trash icon, many/most desktops include it, and I think I can honestly say that I have never, ever clicked on it (intentionally) in 20 years of using Linux.

Xfce also dynamically displays icons for any 'Removable Devices' which may be connected. Unfortunately for me, disk partitions count as removable devices, so when you have a lot of partitions (for a lot of different Linux distributions) the desktop can get rather cluttered with them. In fact even on this little N150+ there would be 10 more icons on the desktop for additional disk partitions. Gaaa.

So if you are old and cranky like me, and you don't want all of that cruft on your desktop, you can remove any or all of it by de-selecting the items in the 'Default Icons' list. One word of warning about removable devices, if you remove the icons for them then you will have to go through the file manager to unmount them, and if you have already removed both file manager icons you will have to go through the application menus to get to the file manager to get to the removable devices. Hmm. Maybe I am starting to see a little bit of light here.

Whew. That was a long haul, just to get through the basic desktop configuration possibilities! The next section covers Panel configuration, and if anything it is a bit more involved than the desktop. So this would be a good time to stretch your legs, and get a fresh cup of coffee/tea/whatever. Smoke 'em if you've got 'em.

panelcontrol.png
Xfce Panel Management
As shown in the screen shot above, the Manjaro Xfce desktop has one panel which spans the bottom of the screen. Panels are controlled and configured using a different utility, 'Panel Preferences', which is also located in the 'Settings' menu, or can be accessed by right-clicking anywhere on the panel and choosing 'Panel' and then 'Panel Preferences'.

The first thing to know about this control is that it gives you access to all of the panels, no matter how many there are and no matter which one you right-clicked to get to it. Here it shows 'Panel 0', and you can simply click on that name in the drop-down list to get any others. within the preferences control, the Display tab shown here presents the general characteristics of the panel.

Perhaps the most interesting of the options here is 'Automatically hide the panel' which defaults to 'Never', so all panels are visible at all times by default. That might be a good choice if you have a nice big monitor with tons of screen resolution to play with (although I don't even like it then). In addition to the familiar 'Always' option, which means you have to move the mouse cursor to the edge of the screen to display the panel, Xfce also has an 'Intelligent' option, which means that the panel will only be hidden when something else wants to use its screen space. I find this to be very useful, and it has become my panel mode. For a bit of fun, open any non-maximized window and then drag it around the screen. Any panel with this option set will be visible until you drag the window onto the border of the panel and then the panel will jump out of the way - and then jump back into view again as soon as you clear its space. Oh, and of course even when a panel is automatically hidden, if you need it all you have to do is move the mouse cursor to that edge of the screen and the panel will come back out.

Other options in this tab include 'Mode' and 'Lock' (I'll come back to those in a minute), and the general size of the panel. If the length is less than 100%, you can tell it to automatically increase the length as necessary to accommodate new buttons and icons. If you are very fond of Panel icons and want to have a lot of them, you can even configure a multi-row panel here, up to a maximum of six rows. Geez, who could ever use a six-row panel? I guess if you had some kind of gigantic, super-high resolution display. All I can say is - ugh.

panel.png
Xfce Panel
panelitems.png
Xfce Panel Items
The Items tab shows you what the panel actually contains. The default initial panel contents are shown here, which you can compare to the screen shot above. At the left end there is a Whisker menu, then an area for Window Buttons (which will be filled dynamically as windows are created), then a Spacer and the Show Desktop button. This one is particularly clever, in that it remembers the state of the windows when you click it to minimize all open windows; when you click it again to restore the minimized windows, it only restores those which were open originally, any which were already minimized stay that way. Nice.

Next on the Panel is the Workspace Switcher, then a Notification Area where you will get things such as Network and Bluetooth status, volume control and Update Manager status.. Finally, there is a clock and then the Action Buttons which brings up Logout/Restart/Shutdown/Suspend/Hibernate options.

As I mentioned above, I often install Xfce on netbook systems. One of the characteristics of netbooks is small screens - generally up to about 11", with resolution something like 1024x600. What you might notice from that resolution and would certainly notice from using a netbook is that they have considerably more horizontal screen space than vertical screen space.

It makes sense to me to use the horizontal space for Panels when possible. So I create a new panel by clicking the "+" button next to Panel 0, and then I change the Mode from Horizontal to Vertical, and drag the new Panel to the right (or left) edge of the screen. It will snap-to the edge when you get close, so it isn't hard to position; don't worry about the vertical placement at this time. That will give you an empty panel at the edge of the screen, like this:

paneladd.png
Xfce Panel Add - Vertical

Now I need to add some content to the panel. My objective here is to divide the content of the panels so that those which are simple symbols or controls, generally fixed-width and do not include text, should be in the vertical panel at the side of the screen, and those which are larger, wider and include text in the body should be in the bottom panel.

For the first few items I can simply move (drag) them from one panel to the other, that's a lot easier than adding to one and deleting from the other. All I have to do is right-click on an item in the original Panel, choose Move and then drag-and-drop it in the new Panel. One good place to start is with the Logout/Shutdown icon, so I drag that over, then follow with the Show Desktop icon, and finally the clock.

Once those items have been moved over, click Lock on both panels, and make sure that both have Intelligent Hide selected, and the first stage is done! The screen now looks like this:


xfcetwopanel.png
Xfce Desktop with Horizontal and Vertical Panels
Whoops! That clock isn't what I want - it looks kind of spiffy with that vertical text display, but I would like to change it to a simple analog display.
analogclock.png
Xfce Clock Properties
clockfinal.png
So I right-click on the clock icon, and choose Properties, and then click on Appearance to see what other options are available. Hmmm. I had a binary clock on the wall once, a very long time ago, but I would struggle to read it now. LCD is kind of boring (Nixie tubes might be fun, though), and Fuzzy... nah, what I really want is Analog. That's much better.

Of course, most people like to have application launchers on the Panel so they can conveniently start their most commonly used programs. I'm going to show two ways of adding these; the first is a quick-and-dirty way which turns out to be the one I most commonly use.

Going back to the bottom panel, I mentioned at the beginning that there is a Whisker Menu button at the left end of the bottom panel.
whiskermenu.png
Xfce Whisker Menu
Click on that and you will get a menu with Favorites on the left side, and menu categories on the right. I think it is safe to assume that one of the most commonly used applications is a web browser, so we will add that to the right Panel that I just created. Simply right-click on the Web Browser in the Favorites list and you will get a list which includes Add to Panel. When you click that option, if you have only one panel the launcher will be added to it; but in our case, because we now have two panels it is clever enough to pop up a window and ask which panel we want to add it to. Very nice!

The new launcher will be added at the bottom/right of the panel, if you want it positioned somewhere else just right-click, select Move and drag it where you want.

The other way to add something to a Panel is to right-click on the Panel and choose 'Add Item'.
paneladditems.png
Xfce Add to Panel
This brings up the 'Add New Item' dialog. Here you can see a number of predefined controls and monitors that you could add. The first of those is a generic Launcher, and when you select that it adds an empty launcher to the bottom/right of the Panel. It has a boxy-looking question mark symbol in it, and it doesn't actually do anything yet. Hmmm.

Right-click on the new launcher icon and choose 'Properties'. This presents you with a nearly-empty window, and my first reaction was "Yikes, what do I do now", but fortunately all you need to do is click the "+" button and you will get another window with a list of predefined applications that you can choose from.

selectlauncher.png
Xfce Launcher Target Select
This is a very long list - you chances of finding the application you want to add are very good. Applications like the browser, mail reader, LibreOffice, terminal emulator; Xfce utilities such as settings manager, file manager, software manager; pretty much anything you might need, just dig around in the list until you find what you need. When you choose an item from this list, it will fill in all of the necessary properties for the launcher, including the icon, command name and description.

If you can't find what you want to add, you have the option of clicking "Add an Empty Item", and then filling in the properties yourself.

There is one other possible Mode for Panels which was introduced with Xfce 4.10. It is called a 'Deskbar', and it is a sort of hybrid between horizontal and vertical panels. As I mentioned above, I tend or configure my desktop with icon-only items such as launchers and controls in a vertical panel, and icons which have text and graphics in a horizontal panel. There are two reasons for this, first I don't like to read vertical text, and second items with dynamic length tend to eat up vertical panel space very quickly.

deskbar1.png
The Xfce Deskbar arranges items vertically, but writes text and displays extended graphics horizontally. That sounds kind of strange and confusing, but I think a simple example can make it clear. If I create a Deskbar, and then move the Clock and Window Buttons from the original bottom Panel to this new Deskbar, it looks like this (with several windows open).

The obvious difference here, compared to the screen shot above when I moved the Clock to a vertical Panel, is that the digital clock display is horizontal. The same is true of the Window Buttons, so rather than taking a large amount of panel space for each window, it only needs enough for a small icon per window, and the text is displayed horizontally next to the icon. That's pretty nice.

The disadvantage is equally obvious, a vertical panel doesn't have much room for horizontal text. If you know what the application icons are that's not a problem; or if you are willing to hover on the window icons then the full window text will be displayed in a pop-up.

deskbar3.png
There is one other way to solve (or at least reduce) this problem, by making the Deskbar more than one row wide. Here I have made it three rows wide, which shows enough text to identify pretty much any window.

When combined with Intelligent Hide, this makes for a pretty nice desktop. Move the Whisker Menu up to the Deskbar, and you can then delete the original bottom panel and you have recovered all of the (limited) vertical screen space on a netbook. That's pretty nice, but to be honest I don't go quite that far - I leave the Deskbar width at one row because I generally don't need the window description text, and in the rare cases where I do need it, I just hover on them to get it.

The Xfce Tour document says that Deskbars are particularly good for wide-screen monitors. I sort of agree with that, but I would extend that to say that multi-column Deskbars are good on wide screens, and single-column Deskbars are good on very small screens such as netbooks. In fact, when you look at the aspect ratio, you could consider netbooks to be low-resolution wide-screen displays, so it's really the same use case...

All right, that's enough about Panels. I think you realize that there is a lot of room for exploration, experimentation and personalisation in this part of Xfce. So don't be shy, look around, make some changes, and see what you might like (or not).

I can even give you one tip about something else to look at - the 'Window Menu' rather than the 'Window Buttons' that I have used here. It's a different approach, sort of a combination of the Workspace Switcher and Window Buttons, and it will let you keep the Deskbar only one row wide. Some people seem to like it a lot, and others absolutely hate it. I'm still undecided, but I'm starting to think it is pretty chill.

One last thing - I promise, the last and it won't take very long. I can't talk about desktop customizing without at least mentioning this. A lot of people prefer to have application launcher icons on the desktop, rather than (or in addition to) in the Panels and/or menus.

I mentioned at the beginning that the Xfce desktop has various icons included by default, but those are all specific utilities. It is also possible to add application launchers to the desktop - and in fact, there are two ways to do this, as there was for adding them to a panel.

The simple way, the same as adding them to a panel, is to go to the Whisker Menu, find the item you want, right-click and choose 'Add to Desktop'. Easy as pie, that does the whole job - defines the name, comment, command and icon symbol. If you don't like the location it chooses on the desktop you can drag it anywhere you want.

The alternative is to right-click on the desktop background, and choose 'Create Launcher'. This gives you an empty launcher, and you have to fill in everything you need. Good luck with that... But this does show one other interesting point, because when you right-click the background you should notice that you can also create a URL link, a folder or a new document on the desktop as well. I promised that the desktop launcher would be the last thing here, so I will leave those for investigation and experimentation by the readers.

Here's the bottom line. On my Manjaro Xfce system I have created a vertical Panel on the right side and a Deskbar on the left side. I have moved everything out of the original bottom Panel to one of those two new panels, and I have added a couple of launchers to the vertical panel. I also changed the Window Buttons to a Window Menu on the Deskbar. The final result looks like this:


xfcedesktop.png
Xfce Desktop in Jamie's World

I think that's really nice (duh, I made it). You might not agree, but that is exactly why I have spent all this time explaining Xfce desktop configuration and customization. To encourage you to try it yourself, and make something that fits your needs and your visual and functional preferences. Go for it!

More on Linux and open source:

Editorial standards