Difference between revisions of "Xfce Setup"

From Alpine Linux
Jump to: navigation, search
(Install packages)
(Session)
 
(116 intermediate revisions by 22 users not shown)
Line 1: Line 1:
= Initial setup =
+
<!-- Edited cmd blocks to indicate the user privileges required for each (ie with # or $) -->
Start by booting up Alpine (see [[Installation|these]] instructions on how to do that)<BR>
 
When Alpine is up and running, do the initial setup.
 
{{Cmd|setup-alpine}}
 
  
= Install packages =
+
[[file:XFCEScreenshot.png |thumb |Xfce screenshot.]]
Run the ''setup-xorg-base'' script to install the xorg base packages and to replace mdev with udev. We can also install xfce4 and the alpine-desktop selected packages while here.
 
  
This might take a few minutes depending on your network speed.
+
== Prerequisites ==
{{Cmd|setup-xorg-base}}
 
  
{{Cmd|apk add xfce4}}
+
* [[Installation|Alpine Installation]]
<!-- Removed reference to "alpine-desktop" and "slim" because they seem to not exist anymore. Making this change to help newbie install pain free. Refer to https://forum.alpinelinux.org/forum/installation/xfce-not-installing. -->
+
* [[Setting_up_a_new_user#Creating_a_new_user|Create user accounts]]
 +
* [[Alpine_setup_scripts#setup-xorg-base|Graphical base environment]]
 +
* [[Enable_Community_Repository#Using_community_repositories|Enabled "community" repository]]
  
== Video and Input packages ==
 
You will most likely want to install a package suitable for your video chipset and input devices.
 
  
For example, if you have an Sis video chipset install 'xf86-video-sis', for Intel video chipset install 'xf86-video-intel'.
+
== Basic Xfce desktop installation ==
  
{{Cmd|apk add xf86-video-sis}}
+
Typical minimal package selection to install:
and / or
+
{{Cmd|# apk add xfce4 xfce4-terminal xfce4-screensaver lightdm-gtk-greeter }}
{{Cmd|apk add xf86-input-synaptics}}
 
  
To see available video driver packages run:
+
{{Note|
{{cmd|apk search xf86-video}}
+
<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. The theme that would otherwise be included by default may be added with <code>adwaita-gtk2-theme adwaita-icon-theme</code>.
 +
}}
  
Use xf86-video-modesetting for qemu/kvm guests.
+
Starting dbus (desktop bus) service:
Use xf86-video-vmware for Virtualbox/VMware guests.
+
{{Cmd|# rc-service dbus start}}
Use xf86-video-geode for Alix1D.
 
  
To search for xf86-input driver packages run:
+
Enabling dbus to start on boot:
{{cmd|apk search xf86-input}}
+
{{Cmd|# rc-update add dbus}}
  
As good choice for the start is:
+
If dbus is not running it leads to issues like missing icons and keyboard shortcuts.
  
{{cmd|apk add xf86-input-mouse xf86-input-keyboard}}
+
== Starting Xfce ==
  
= Configure xorg-server (optional) =
+
=== With a display manager (graphical login) ===
On most systems, xorg should be able to autodetect all devices. However you can still configure xorg-server by hand by launching:
 
{{Cmd|Xorg -configure}}
 
This will result in `/root/xorg.conf.new`. You can modify this file to fit your needs.<BR>
 
(When finished modifying and testing the above configuration file, move it to `/etc/X11/xorg.conf` for normal usage.)
 
  
== Keyboard Layout ==
+
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 you use a layout different than "us", you need to:
+
{{Cmd|# rc-service lightdm start}}
{{Cmd|apk add setxkbmap
 
setxkbmap <%a language layout from /usr/share/X11/xkb/rules/xorg.lst%>}}
 
In order to make it persistent add this section to /etc/X11/xorg.conf:
 
{{Cmd|Section "InputClass"
 
Identifier "Keyboard Default"
 
MatchIsKeyboard "yes"
 
Option "XkbLayout" "<%a language layout from /usr/share/X11/xkb/rules/xorg.lst%>"
 
EndSection}}
 
  
 +
After correct operation is verified, lightdm can be enabled to start up during boot:
 +
{{Cmd|# rc-update add lightdm}}
  
Another way to change the keymap when logging into X is to use ~/.xinitrc.  The following example loads a British keymap, simply add this line to the beginning of the file:
+
=== From the command line ===
<code>setxkbmap gb &</code>
 
  
Note that you will need the "setxkbmap" package for this to work!
+
Xfce may be started with:
In addition you if you need to create the ~/.xinitrc file, add a second line like <code>exec startxfce4</code>
+
{{cmd|startx}}
  
= Create user accounts =
+
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.
Create a normal user account.
 
{{Cmd|adduser -g 'Natanael Copa' ncopa}}
 
  
Optionally, give that user sudo permissions in /etc/sudoers. When doing so, it is important to use the command: {{Cmd|visudo}} This ensures that only one user is changing the file at any given time.  Visudo has two modes: Command mode and Insert mode.  To edit the file, use the arrows to navigate to the appropriate line and enter Insert mode by pressing the 'i' key.  To save and exit, enter Command mode by pressing the 'Esc' key, then ':w' + 'enter' to save, and finally ':q' + 'enter' to quit.
+
== Localized keyboard layout ==
 +
<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.
  
= Start and enable dbus =
+
== Allowing shut down and reboot ==
Depending on your setup procedure dbus probably isn't running at this point, which will lead to issues like missing icons and keyboard shortcuts.
 
  
Start dbus first.
+
To enable users to shut down the machine or reboot, the packages {{Pkg|elogind}} and {{Pkg|polkit-elogind}} need to be installed.
{{Cmd|rc-service dbus start}}
 
You will likely also want dbus to start on boot.
 
{{Cmd|rc-update add dbus}}
 
  
= Start your desktop =
+
{{Cmd|# apk add elogind polkit-elogind}}
Start lxdm and log in with your new user.
 
{{Cmd|rc-service lxdm start}}
 
  
Once you have verified that it actually works you can make lxdm start up at boot:
+
A reboot is required to let it take effect.
{{Cmd|rc-update add lxdm}}
+
{{Cmd|lbu commit  # if running in diskless mode, to save state
 +
reboot
 +
}}
  
= Troubleshooting =
+
== Auto-mounting USB drives ==
If you are unable to login, check /var/log/lxdm.log, there may be output there from X to indicate failed modules, etc.
 
  
If your mouse / keyboard is not responding, try to install xf86-input-evdev (that will appeared in lxdm.log if you lack it). Or you can try to disable hotplug.
+
To enable automatic mounting of USB drives, install these packages:
 +
{{Cmd|# apk add gvfs udisks2}}
 +
 +
Depending on what devices you intend to mount, some additional packages may be needed:
 +
{{Cmd|ntfs-3g        NTFS support
 +
gvfs-cdda      audio CDs
 +
gvfs-mtp      media players and mobile devices that use MTP
 +
gvfs-gphoto2  digital cameras and mobile devices that use PTP
 +
gvfs-afc      Apple mobile devices}}
 +
 
 +
To list descriptions of all gvfs- packages:
 +
{{cmd|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:
 +
{{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:)
 +
 
 +
{{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}}
 +
 
 +
== Desktop Applications ==
 +
 
 +
Completing the Xfce setup usually encompasses installing a number of desktop applications.
 +
 
 +
Some applications that should fit well for a light-weight Xfce desktop may be found at [[Xfce_Desktop]].
 +
 
 +
== Theme installation (optional) ==
 +
 
 +
All this is optional.
 +
 
 +
Example of installing and enabling a different theme.
 +
* apk add paper-gtk-theme    # gtk2 !?
 +
* change xfce4 style/icons to paper: Settings -> Appearance -> Style and Icons
 +
* change window manager theme to Paper: Settings -> Window Manager -> Style
 +
* set custom desktop background picture, to see the transparency effects
 +
* Settings - > Appearance -> Fonts: Turn on Anti-aliasing (is the default) and enable Sub-Pixel order -> RGB
 +
 
 +
 
 +
Example of changing to another icon theme.
 +
* apk add paper-icon-theme  # ~125MB
 +
* Change mouse Theme to Paper: Settings -> Mouse and Trackpad -> Theme
 +
* enable all Composer Shadows: Settings -> Window Manager Tweaks -> Composer
 +
 
 +
 
 +
Example of changing to another font, e.g. the international font Noto.
 +
* apk add font-noto
 +
* Settings - > Appearance -> Fonts: Set to Noto Sans UI
 +
 
 +
== 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"
 
   Section "ServerFlags"
Line 90: Line 144:
 
   EndSection
 
   EndSection
  
If you Xorg server segfaults in kvm/qemu then add ''nomodeset'' as a boot option when booting up.
+
=== 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:
 +
 
 +
{{Cmd|$ 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:
 +
 
 +
{{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.
 +
 
 +
== Related ==
  
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 boot into 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:
+
* Some notes of older custom configurations: [[Desktop-notes]]
  
{{Cmd|touch ~/.xinitrc && echo "exec startxfce4" >> ~/.xinitrc}}
+
* [http://troglobit.com/2017/09/10/install-x-window-in-alpine-linux/ Install X-Window in Alpine Linux] Joachim Nilsson 2017
  
= Screenshot =
+
[[Category:Xfce]]
[[{{ns:image}}:XFCEScreenshot.png|alt text]]
 
[[Category:Desktop]]
 

Latest revision as of 03:37, 18 August 2021


Xfce screenshot.

Prerequisites


Basic Xfce desktop installation

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. The theme that would otherwise be included by default may be added with adwaita-gtk2-theme adwaita-icon-theme.

Starting dbus (desktop bus) service:

# rc-service dbus start

Enabling dbus to start on boot:

# rc-update add dbus

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

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:

ntfs-3g NTFS support gvfs-cdda audio CDs gvfs-mtp media players and mobile devices that use MTP gvfs-gphoto2 digital cameras and mobile devices that use PTP gvfs-afc Apple mobile devices

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

Desktop Applications

Completing the Xfce setup usually encompasses installing a number of desktop applications.

Some applications that should fit well for a light-weight Xfce desktop may be found at Xfce_Desktop.

Theme installation (optional)

All this is optional.

Example of installing and enabling a different theme.

  • apk add paper-gtk-theme # gtk2 !?
  • change xfce4 style/icons to paper: Settings -> Appearance -> Style and Icons
  • change window manager theme to Paper: Settings -> Window Manager -> Style
  • set custom desktop background picture, to see the transparency effects
  • Settings - > Appearance -> Fonts: Turn on Anti-aliasing (is the default) and enable Sub-Pixel order -> RGB


Example of changing to another icon theme.

  • apk add paper-icon-theme # ~125MB
  • Change mouse Theme to Paper: Settings -> Mouse and Trackpad -> Theme
  • enable all Composer Shadows: Settings -> Window Manager Tweaks -> Composer


Example of changing to another font, e.g. the international font Noto.

  • apk add font-noto
  • Settings - > Appearance -> Fonts: Set to Noto Sans UI

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

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.

Related