Xfce: Difference between revisions

From Alpine Linux
(replace doas with "#" to indicate root)
m (added URL of upstream)
 
(8 intermediate revisions by 2 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.]]
[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.
 
{{:Include:Setup-desktop}}
 
When xfce is chosen, the above utility also installs [[lightdm]] as display manager and most of the steps listed below in the Manual installation are completed.


[[file:XFCEScreenshot.png |thumb |Xfce screenshot.]]
= Manual installation =


== Prerequisites ==
== 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]]
* [[D-Bus#Installation|Install and configure D-Bus]] (without D-Bus icons and keyboard shortcuts may be missing)


<br>
<br>
== Basic Xfce desktop installation ==


Typical minimal package selection to install:
Typical minimal package selection to install:
{{Cmd|# apk add xfce4 xfce4-terminal xfce4-screensaver lightdm-gtk-greeter dbus}}
{{Cmd|# apk add xfce4 xfce4-terminal xfce4-screensaver lightdm-gtk-greeter}}


{{Note|
{{Note|
Line 24: Line 25:
[[File:Themeiconworking.png|thumb|With adw-gtk3-dark and Adwaita-Xfce]]
[[File:Themeiconworking.png|thumb|With adw-gtk3-dark and Adwaita-Xfce]]


Starting dbus (desktop bus) service:
{{:Include:Setup_Device_Manager}}
{{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.
 
<br>
 
Enabling udev service:
{{Cmd|# setup-devd udev}}
 
<br>


== Starting Xfce ==
== Starting Xfce ==
Line 52: Line 40:


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 ==
== Localized keyboard layout ==
Line 67: Line 55:


A reboot is required to let it take effect.
A reboot is required to let it take effect.
{{Cmd|lbu commit  # if running in diskless mode, to save state
{{Cmd|# lbu commit  # if running in diskless mode, to save state
reboot
$ reboot
}}
}}


Line 77: Line 65:
   
   
Depending on what devices you intend to mount, some additional packages may be needed:
Depending on what devices you intend to mount, some additional packages may be needed:
{{Cmd|ntfs-3g       Stable, full-featured, read-write NTFS (driver)
{{Cmd|# apk add \
gvfs-cdda     CDDA support for gvfs
    ntfs-3g     \ # Stable, full-featured, read-write NTFS (driver)
gvfs-afp       AFP support for gvfs
    gvfs-cdda   \ # CDDA support for gvfs
gvfs-goa       GNOME Online Accounts support for gvfs
    gvfs-afp     \ # AFP support for gvfs
gvfs-mtp       MTP support for gvfs
    gvfs-goa     \ # GNOME Online Accounts support for gvfs
gvfs-smb       Windows fileshare support for gvfs
    gvfs-mtp     \ # MTP support for gvfs
gvfs-lang     Languages for package gvfs
    gvfs-smb     \ # Windows fileshare support for gvfs
gvfs-afc       Apple mobile devices support for gvfs
    gvfs-lang   \ # Languages for package gvfs
gvfs-nfs       NFS support for gvfs
    gvfs-afc     \ # Apple mobile devices support for gvfs
gvfs-dev       Backends for the gio framework in GLib (development files)
    gvfs-nfs     \ # NFS support for gvfs
gvfs-archive   Archiving support for gvfs
    gvfs-dev     \ # Backends for the gio framework in GLib (development files)
gvfs-dav       WebDAV support for gvfs
    gvfs-archive \ # Archiving support for gvfs
gvfs-fuse     FUSE support for gvfs
    gvfs-dav     \ # WebDAV support for gvfs
gvfs-gphoto2   gphoto2 support for gvfs
    gvfs-fuse   \ # FUSE support for gvfs
gvfs-avahi     DNS-SD support for gvfs}}
    gvfs-gphoto2 \ # gphoto2 support for gvfs
    gvfs-avahi   \ # DNS-SD support for gvfs}}


To list descriptions of all gvfs- packages:
To list descriptions of all gvfs- packages:
{{cmd|apk info -d gvfs-*
{{cmd|$ apk info -d gvfs-*
}}
}}


Line 141: Line 130:
{{Cmd|# rc-service elogind start  #change elogind for lightdm and run the same command}}
{{Cmd|# 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.
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.


[[File:Polkitworking.png|thumb|Now it is working.]]
[[File:Polkitworking.png|thumb|Now it is working.]]


== Troubleshooting ==
= Troubleshooting =


==== Missing Icons ====
==== Missing Icons ====
Line 170: Line 159:
==== Login ====
==== 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, 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, 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:
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}}
{{Cmd|$ echo "exec startxfce4" >> ~/.xinitrc}}
Line 180: Line 169:
==== Session ====
==== 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:  
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.   
{{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.
Line 192: Line 181:
* [[Alpine Setup Scripts]]
* [[Alpine Setup Scripts]]
* [https://wiki.archlinux.org/title/Xfce Xfce - Archwiki]
* [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]


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

Latest revision as of 10:24, 12 August 2024

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.

Note: Before installing any desktop,

Installation using setup-desktop

The Alpine Linux script for setting up a desktop quickly is setup-desktop.

# setup-desktop

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

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

Once you have chosen a desktop environment, this script installs the chosen desktop along with all the necessary packages, firefox browser and adds the necessary services to run on startup. You can reboot when complete and the system will boot into a graphical login screen with the desktop environment. Depending on the desktop chosen, the script also activates the necessary services like dbus, elogind, login manager etc..

To view all the packages that are installed by the script for the chosen desktop you can issue the below command:

# cat /sbin/setup-desktop

When xfce is chosen, the above utility also installs lightdm as display manager and most of the steps listed below in the Manual installation are completed.

Manual installation

Prerequisites


Typical minimal package selection to install:

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

Note:

xfce4-screensaver may also be necessary just for screen locking after inactivity (with no screensaver enabled).

lightdm-gtk-greeter 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 Adwaita icon in Settings -> Appearance, but Adwaita is missing some icons for XFCE. Install adw-gtk3 for basic themes and adwaita-xfce-icon-theme for basic icons.
Out-of-the-box look
With adw-gtk3-dark and Adwaita-Xfce

Setting up eudev on a desktop system is recommended:

# setup-devd udev

For more details and advanced instructions see Device Manager.

Starting Xfce

With a display manager (graphical login)

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.

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.

Allowing shut down and reboot

To enable users to shut down the machine or reboot, the packages elogind and polkit-elogind need to be installed.

# apk add elogind polkit-elogind

A reboot is required to let it take effect.

# lbu commit # if running in diskless mode, to save state $ reboot

Auto-mounting USB drives

To enable automatic mounting of USB drives, install these packages:

# apk add gvfs udisks2

Depending on what devices you intend to mount, some additional packages may be needed:

# apk add \ 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:

$ apk info -d gvfs-*


Make sure that mounting is enabled in

Thunar>Edit>Preferences>Advanced>Volume Management>Configure>Storage>Removable Storage

Network browsing

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.

For example, to browse in a SMB/cifs windows network:

# 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:)

# apk add gvfs-fuse

The OpenRC script for fuse is in a separate package.

# apk add fuse-openrc

Then the fuse service can be started manually.

# 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:

# 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 gvfs, which is needed for things like Trash or browsing SMB network share, and then typing admin:// in the address bar.

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 elogind, polkit-elogind, xfce-polkit, and lightdm. 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.

When requirements are not met and it is not working.

To make elogind/lightdm running, either make them start automatically at system start:

# rc-update add elogind #change elogind for lightdm and run the same command

or start them manually for this time only:

# 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 /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.

Troubleshooting

Missing Icons

By default xfce needs the adwaita-icon-theme, otherwise some icons might be missing,

# apk add adwaita-icon-theme


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


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.

See also