Xfce: Difference between revisions

From Alpine Linux
(added link to polkit page)
 
(27 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<!-- Edited cmd blocks to indicate the user privileges required for each (ie with # or $) -->
[[file:XFCEScreenshot.png |thumb |Xfce screenshot.]]
[[file:XFCEScreenshot.png |thumb |Xfce screenshot.]]
[https://www.xfce.org 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.


== Prerequisites ==
== Prerequisites ==
 
{{:Include:Desktop prerequisites}}
* [[Installation|Install]] AlpineLinux
* [[Setting_up_a_new_user#Creating_a_new_user|Create a user account]] (optional but recommended)
* [[Repositories#Enabling_the_community_repository|Enable the Community repository]]
* [[Alpine_setup_scripts#setup-xorg-base|Install Xorg]]
* [[Alpine_setup_scripts#setup-xorg-base|Install Xorg]]
{{Tip|Except for the first two [[#Prerequisites|Prerequisites]], all the others are automatically handled if desktop is [[#Installation using setup-desktop|installed using setup-desktop]] script.}}
== Installation using setup-desktop ==
{{:Include:Setup-desktop}}


<br>
When xfce is chosen, the script additionally enables [[Display manager|lightdm]] as [[#With a display manager(graphical login)|display manager]].
 
== Basic Xfce desktop installation ==
 
Typical minimal package selection to install:
{{Cmd|# apk add xfce4 xfce4-terminal xfce4-screensaver lightdm-gtk-greeter dbus}}
 
{{Note|
<code>xfce4-screensaver</code> may also be necessary just for screen locking after inactivity (with no screensaver enabled).<br>
<code>lightdm-gtk-greeter</code> may be omitted if Xfce should only be started from or after a command line login, i.e. the machine should not boot to a graphical login screen (display manager). However, it is then necessary to add some theme files instead, to get a proper (themed) appearance. By default, there is no theme and <code>Adwaita</code> icon in Settings -> Appearance, but <code>Adwaita</code> is missing some icons for XFCE. Install <code>adw-gtk3</code> for basic themes and <code>adwaita-xfce-icon-theme</code> for basic icons.}}
 
[[File:Missingicons.png|thumb|Out-of-the-box look]]
[[File:Themeiconworking.png|thumb|With adw-gtk3-dark and Adwaita-Xfce]]
 
Starting dbus (desktop bus) service:
{{Cmd|# rc-service dbus start}}
 
Enabling dbus to start on boot:
{{Cmd|# rc-update add dbus}}


If dbus is not running it leads to issues like missing icons and keyboard shortcuts.
== Manual installation ==


<br>
Typical minimal package selection to install:{{Cmd|# apk add xfce4 xfce4-terminal xfce4-screensaver lightdm-gtk-greeter font-dejavu}}


Enabling udev service:
{{pkg|lightdm-gtk-greeter}} package may be omitted if Xfce should only be [[#Starting Xfce|started from command line]]. The above packages provide a minimal working Xfce. Refer [[#Configuration|Configuration]] section for more.
{{Cmd|# setup-devd udev}}
 
<br>


== Starting Xfce ==
== Starting Xfce ==


=== With a display manager (graphical login) ===
=== With a display manager ===


If the package <code>lightdm-gtk-greeter</code> has been installed per the instructions above, the lightdm display manager may be started to log in graphically with your new user.
If the package <code>lightdm-gtk-greeter</code> has been installed per the instructions above, the lightdm [[Display manager|display manager]] may be started to log in graphically with your new user.{{Cmd|# rc-service lightdm start}}
{{Cmd|# rc-service lightdm start}}


After correct operation is verified, lightdm can be enabled to start up during boot:
After correct operation is verified, lightdm can be enabled to start up during boot:{{Cmd|# rc-update add lightdm}}
{{Cmd|# rc-update add lightdm}}


=== From the command line ===
=== From the command line ===


Xfce may be started with:
Xfce may be started with:{{cmd|$ startx}}
{{cmd|startx}}


If you want to start it via another script or mechanism like <code>xinit</code>, use <code>startxfce4</code>. e.g. call it via "exec startxfce4" at the end of the ~/.xinitrc configuration file.
If you want to start it via another script or mechanism like <code>xinit</code>, use <code>startxfce4</code>. e.g. call it via <code>exec startxfce4</code> at the end of the {{path|~/.xinitrc}} configuration file.


== Localized keyboard layout ==
== Configuration ==
<br>
Settings->Keyboard->Layout->"Keyboard layout" seems to get activated only after once temporarily switching on the "Use system defaults" button, logging out and in again, and then turning it off.


== Allowing shut down and reboot ==
=== Themes and icons ===
[[File:Missingicons.png|thumb|Out-of-the-box look]]
It is necessary to add some theme files, to get a proper (themed) appearance. By default, there is no theme and <code>Adwaita</code> icon in Settings -> Appearance, but <code>Adwaita</code> is missing some icons for XFCE.
Install {{pkg|adw-gtk3}} package for basic themes and {{pkg|adwaita-xfce-icon-theme}} package for basic icons. {{Cmd|# apk add adwaita-xfce-icon-theme adw-gtk3}}
[[File:Themeiconworking.png|thumb|With adw-gtk3-dark and Adwaita-Xfce]]
<!--Unsure if this needed.. xfce needs the {{Pkg|adwaita-icon-theme}}, otherwise some icons might be missing,  -->


To enable users to shut down the machine or reboot, the packages {{Pkg|elogind}} and {{Pkg|polkit-elogind}} need to be installed.
=== Enabling privilege escalation GUI ===


{{Cmd|# apk add elogind polkit-elogind}}
Ensure that all conditions related to [[Polkit#Enabling_privilege_escalation_GUI|Enabling privilege escalation GUI]] are met and install: {{Cmd|# apk add xfce-polkit}}.


A reboot is required to let it take effect.
Ensure that Xfce is started using a graphical [[#With a display manager|display manager]], otherwise you will see an empty error dialogue box at login.
{{Cmd|lbu commit  # if running in diskless mode, to save state
reboot
}}


== Auto-mounting USB drives ==
[[File:Requirements are not met.png|thumb|When requirements are not met and it is not working.]]


To enable automatic mounting of USB drives, install these packages:
Now, make sure in Settings -> Session and Startup -> Application Autostart, "XFCE PolKit" exists and checked. If it is not found, navigate to {{path|/etc/xdg/autostart}} and check if {{path|xfce-polkit.desktop}} exists and its size is not 0. If everything above has been done, when you type <code>admin://</code> in the address bar, you will see the password dialogue.
{{Cmd|# apk add gvfs udisks2}}
Depending on what devices you intend to mount, some additional packages may be needed:
{{Cmd|ntfs-3g        Stable, full-featured, read-write NTFS (driver)
gvfs-cdda      CDDA support for gvfs
gvfs-afp      AFP support for gvfs
gvfs-goa      GNOME Online Accounts support for gvfs
gvfs-mtp      MTP support for gvfs
gvfs-smb      Windows fileshare support for gvfs
gvfs-lang      Languages for package gvfs
gvfs-afc      Apple mobile devices support for gvfs
gvfs-nfs      NFS support for gvfs
gvfs-dev      Backends for the gio framework in GLib (development files)
gvfs-archive  Archiving support for gvfs
gvfs-dav      WebDAV support for gvfs
gvfs-fuse      FUSE support for gvfs
gvfs-gphoto2  gphoto2 support for gvfs
gvfs-avahi    DNS-SD support for gvfs}}


To list descriptions of all gvfs- packages:
[[File:Polkitworking.png|thumb|Now it is working.]]
{{cmd|apk info -d gvfs-*
}}


=== File management ===


Make sure that mounting is enabled in
Install the necessary [[File management]] packages for automounting of removable storage and browsing of network shares  within XFCE that works seamlessly with file associations.
Thunar>Edit>Preferences>Advanced>Volume Management>Configure>Storage>Removable Storage


== Network browsing ==
Make sure that mounting is enabled in {{ic|Thunar>Edit>Preferences>Advanced>Volume Management>Configure>Storage>Removable Storage}}


For browsing of network shares within XFCE that works seamlessly with file associations, you can install the gvfs packages for the network protocols you use.
If the XFCE sessions are already in progress, they need to be restarted for the changes to take effect, i.e. log out and log in again.


For example, to browse in a SMB/cifs windows network:
=== Localized keyboard layout ===
{{Cmd|# apk add gvfs-smb}}


(Check: If the above may already be sufficient for gvfs to initiate the fuse kernel module. Else, try to identify if there are necessary steps in:)
Settings->Keyboard->Layout->"Keyboard layout" seems to get activated only after once temporarily switching on the "Use system defaults" button, logging out and in again, and then turning it off.
 
{{Cmd|# apk add gvfs-fuse}}
 
The OpenRC script for fuse is in a separate package.
{{Cmd|# apk add fuse-openrc}}
 
Then the fuse service can be started manually.
{{Cmd|# rc-service fuse start}}
(The XFCE sessions already in progress need to be restarted for this to take effect, i.e. log out and log in again.)
 
If it works, the fuse service can be added to start up automatically at boot time:
{{Cmd|# rc-update add fuse}}
 
== Enabling privilege escalation GUI ==
 
In other popular Linux distributions, such as Ubuntu Server, this comes by default when you install minimal XFCE, but if you install XFCE on Alpine using the instruction on this page, it is not included, and the GUI application that needs root access fails with a message like "permission denied". You can test this with the default Thunar file manager by installing <code>gvfs</code>, which is needed for things like Trash or browsing SMB network share, and then typing <code>admin://</code> in the address bar.
 
[[File:Nopolkit.png|thumb|When XFCE is first installed using the instruction on this page.]]
 
To enable the privilege escalation GUI for a doas/sudo user, you need to install <code>elogind</code>, <code>polkit-elogind</code>, <code>xfce-polkit</code>, and <code>lightdm</code>. Note that elogind and lightdm must be running before logging into the XFCE desktop, otherwise you will see an empty error dialogue box at login.
 
[[File:Requirements are not met.png|thumb|When requirements are not met and it is not working.]]
 
To make elogind/lightdm running, either make them start automatically at system start:
 
{{Cmd|doas rc-update add elogind  #change elogind for lightdm and run the same command}}
 
or start them manually for this time only:
 
{{Cmd|doas rc-service elogind start  #change elogind for lightdm and run the same command}}
 
Now, make sure in Settings -> Session and Startup -> Application Autostart, "XFCE PolKit" exists and checked. If it is not found, navigate to <code>/etc/xdg/autostart</code> and check if <code>xfce-polkit.desktop</code> exists and its size is not 0. If everything above has been done, when you type <code>admin://</code> in the address bar, you will see the password dialogue.
 
[[File:Polkitworking.png|thumb|Now it is working.]]


== Troubleshooting ==
== Troubleshooting ==


==== Missing Icons ====
=== Startup ===
 
By default xfce needs the {{Pkg|adwaita-icon-theme}}, otherwise some icons might be missing,
 
{{Cmd|# apk add adwaita-icon-theme}}
 
<br>
 
==== Startup ====


If the Xorg server segfaults in kvm/qemu then add ''nomodeset'' as a boot option.
If the Xorg server segfaults in kvm/qemu then add ''nomodeset'' as a boot option.


If the mouse / keyboard is not responding, you can try disabling hotplug.
If the mouse / keyboard is not responding, you can try disabling hotplug.
Line 166: Line 76:
   EndSection
   EndSection


<br>
=== Login ===


==== Login ====
If you are unable to login, check {{path|/var/log/lightdm/lightdm.log}}, there may be output there from X to indicate failed modules, etc.


If you are unable to login, check /var/log/lightdm/lightdm.log, there may be output there from X to indicate failed modules, etc.
If you are unable to login, or you see an error "Failed to execute login command", you should check {{path|~/.xinitrc}} (if you're using {{path|.xinitrc}}) with your preferred text editor (vi, nano, etc) and ensure that it is set to load xfce. To do this, the 'exec' line (usually the last line in the file) should read <code>exec startxfce4</code>. If {{path|~/.xinitrc}} does not exist, create it and add the exec line. this command will do it:{{Cmd|$ echo "exec startxfce4" >> ~/.xinitrc}}


If you are unable to login, or you see an error "Failed to execute login command", you should check ~/.xinitrc (if you're using .xinitrc) with your preferred text editor (vi, nano, etc) and ensure that it is set to load xfce. To do this, the 'exec' line (usually the last line in the file) should read "exec startxfce4". If ~/.xinitrc does not exist, create it and add the exec line. this command will do it:
=== Unable to shut down and reboot ===


{{Cmd|$ echo "exec startxfce4" >> ~/.xinitrc}}
If users are unable to shut down the machine or reboot, ensure that [[elogind]] service is enabled.


<br>
=== Permission denied when using Thunar ===


==== Session ====
[[File:Nopolkit.png|thumb|When XFCE is first installed using the instruction on this page.]]
GUI application that needs root access fails with a message "permission denied". Refer [[#Enabling privilege escalation GUI|Enabling privilege escalation GUI]] section.


If the panel and windows disappear or start flickering after logging in to xfce the first time, log out, and then log in again. That happens because xfce is writing a default config file with the compositor enabled, but does not enable it during your first login.  Clear out the ~/.config/xfce directory, and login as "first time" again, as the default vblank setting for the compositor is likely incorrect.  Open the windows manager tweaks and dconf editor (or use dconf-query) before you log out.  Tick the compositor to off in the window manager tweaks ui.  If you have a recent enough xfce (4.14) there is a ui in window manager tweaks to set syncing mode, and you can try different values, such as vblank, xpresent, and glx, while turning the compositor on and off, until you find one that works.  Or, from dconf editor, you can set xfwm4 /general/vblank_mode, which you will find is set to "auto" by default, and then turn the compositor on again.  This can also be accomplished from the command line using using:
=== Session ===


{{cmd|xfconf-query -c xfwm4 -p /general/vblank_mode -s mode}} where mode is vblank, glx or xpresent.   
If the panel and windows disappear or start flickering after logging in to xfce the first time, log out, and then log in again. That happens because xfce is writing a default config file with the compositor enabled, but does not enable it during your first login.  Clear out the {{path|~/.config/xfce}} directory, and login as "first time" again, as the default vblank setting for the compositor is likely incorrect.  Open the windows manager tweaks and dconf editor (or use dconf-query) before you log out.  Tick the compositor to off in the window manager tweaks ui.  If you have a recent enough xfce (4.14) there is a ui in window manager tweaks to set syncing mode, and you can try different values, such as vblank, xpresent, and glx, while turning the compositor on and off, until you find one that works.  Or, from dconf editor, you can set xfwm4 /general/vblank_mode, which you will find is set to "auto" by default, and then turn the compositor on again.  This can also be accomplished from the command line using using: {{cmd|$ xfconf-query -c xfwm4 -p /general/vblank_mode -s mode}} where mode is vblank, glx or xpresent.   


You have to use xfconf-query from within the xfce terminal session, or at least with the xfce settings daemon started.
You have to use xfconf-query from within the xfce terminal session, or at least with the xfce settings daemon started.
=== Rootless Xorg ===
Refer {{Issue|16220}}. As per [https://wiki.archlinux.org/title/Xorg#Rootless_Xorg Arch wiki], [[Display manager|lightdm]] do not support rootless Xorg. So you may need to have the following file created. {{cat|/etc/X11/Xwrapper.config|allowed_users{{=}}anybody
needs_root_rights{{=}}yes}}
=== Missing Fonts ===
If you face black screen when invoking startx, Refer {{Issue|16220}}. Try to install a [[Fonts|font]] by issuing the command: {{Cmd|# apk add font-dejavu}}


== See also ==
== See also ==


* [[Installation#Post-Install|Post Install]]
* [https://wiki.archlinux.org/title/Xfce Xfce - Archwiki]
* [https://wiki.gentoo.org/wiki/Xfce Xfce - Gentoo Wiki]
* [https://wiki.postmarketos.org/wiki/Xfce4 Xfce4 - PostmarketOS Wiki]


* [[Alpine Setup Scripts]]


[[Category:Desktop]]
[[Category:Desktop Environments]]

Latest revision as of 11:05, 7 August 2025

Xfce screenshot.

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.

Prerequisites

Tip: Except for the first two Prerequisites, all the others are automatically handled if desktop is installed using setup-desktop script.

Installation using setup-desktop

The Alpine Linux script for quickly setting up a desktop is:

# setup-desktop

On running the above command, you will be prompted to select a desktop environment.

Which desktop environment? ('gnome', 'plasma', 'xfce', 'mate', 'sway', 'lxqt' or 'none') [none]

Once you have chosen a desktop environment, this script installs the chosen desktop along with necessary packages, firefox browser and adds necessary services to run on startup. You can reboot when complete, and the system will boot into a graphical login screen with the chosen desktop environment, except for sway. To view the packages installed by the script: $ cat /usr/sbin/setup-desktop

When xfce is chosen, the script additionally enables lightdm as display manager.

Manual installation

Typical minimal package selection to install:

# apk add xfce4 xfce4-terminal xfce4-screensaver lightdm-gtk-greeter font-dejavu

lightdm-gtk-greeter package may be omitted if Xfce should only be started from command line. The above packages provide a minimal working Xfce. Refer Configuration section for more.

Starting Xfce

With a display manager

If the package lightdm-gtk-greeter has been installed per the instructions above, the lightdm display manager may be started to log in graphically with your new user.

# rc-service lightdm start

After correct operation is verified, lightdm can be enabled to start up during boot:

# rc-update add lightdm

From the command line

Xfce may be started with:

$ startx

If you want to start it via another script or mechanism like xinit, use startxfce4. e.g. call it via exec startxfce4 at the end of the ~/.xinitrc configuration file.

Configuration

Themes and icons

Out-of-the-box look

It is necessary to add some theme files, to get a proper (themed) appearance. By default, there is no theme and Adwaita icon in Settings -> Appearance, but Adwaita is missing some icons for XFCE.

Install adw-gtk3 package for basic themes and adwaita-xfce-icon-theme package for basic icons.

# apk add adwaita-xfce-icon-theme adw-gtk3

With adw-gtk3-dark and Adwaita-Xfce

Enabling privilege escalation GUI

Ensure that all conditions related to Enabling privilege escalation GUI are met and install:

# apk add xfce-polkit

.

Ensure that Xfce is started using a graphical display manager, otherwise you will see an empty error dialogue box at login.

When requirements are not met and it is not working.

Now, make sure in Settings -> Session and Startup -> Application Autostart, "XFCE PolKit" exists and checked. If it is not found, navigate to /etc/xdg/autostart and check if xfce-polkit.desktop exists and its size is not 0. If everything above has been done, when you type admin:// in the address bar, you will see the password dialogue.

Now it is working.

File management

Install the necessary File management packages for automounting of removable storage and browsing of network shares within XFCE that works seamlessly with file associations.

Make sure that mounting is enabled in Thunar>Edit>Preferences>Advanced>Volume Management>Configure>Storage>Removable Storage

If the XFCE sessions are already in progress, they need to be restarted for the changes to take effect, i.e. log out and log in again.

Localized keyboard layout

Settings->Keyboard->Layout->"Keyboard layout" seems to get activated only after once temporarily switching on the "Use system defaults" button, logging out and in again, and then turning it off.

Troubleshooting

Startup

If the Xorg server segfaults in kvm/qemu then add nomodeset as a boot option.

If the mouse / keyboard is not responding, you can try disabling hotplug.

  Section "ServerFlags"
    Option "AutoAddDevices" "False"
  EndSection

Login

If you are unable to login, check /var/log/lightdm/lightdm.log, there may be output there from X to indicate failed modules, etc.

If you are unable to login, or you see an error "Failed to execute login command", you should check ~/.xinitrc (if you're using .xinitrc) with your preferred text editor (vi, nano, etc) and ensure that it is set to load xfce. To do this, the 'exec' line (usually the last line in the file) should read exec startxfce4. If ~/.xinitrc does not exist, create it and add the exec line. this command will do it:

$ echo "exec startxfce4" >> ~/.xinitrc

Unable to shut down and reboot

If users are unable to shut down the machine or reboot, ensure that elogind service is enabled.

Permission denied when using Thunar

When XFCE is first installed using the instruction on this page.

GUI application that needs root access fails with a message "permission denied". Refer Enabling privilege escalation GUI section.

Session

If the panel and windows disappear or start flickering after logging in to xfce the first time, log out, and then log in again. That happens because xfce is writing a default config file with the compositor enabled, but does not enable it during your first login. Clear out the ~/.config/xfce directory, and login as "first time" again, as the default vblank setting for the compositor is likely incorrect. Open the windows manager tweaks and dconf editor (or use dconf-query) before you log out. Tick the compositor to off in the window manager tweaks ui. If you have a recent enough xfce (4.14) there is a ui in window manager tweaks to set syncing mode, and you can try different values, such as vblank, xpresent, and glx, while turning the compositor on and off, until you find one that works. Or, from dconf editor, you can set xfwm4 /general/vblank_mode, which you will find is set to "auto" by default, and then turn the compositor on again. This can also be accomplished from the command line using using:

$ xfconf-query -c xfwm4 -p /general/vblank_mode -s mode

where mode is vblank, glx or xpresent.

You have to use xfconf-query from within the xfce terminal session, or at least with the xfce settings daemon started.

Rootless Xorg

Refer #16220. As per Arch wiki, lightdm do not support rootless Xorg. So you may need to have the following file created.

Contents of /etc/X11/Xwrapper.config

allowed_users=anybody needs_root_rights=yes

Missing Fonts

If you face black screen when invoking startx, Refer #16220. Try to install a font by issuing the command:

# apk add font-dejavu

See also