The FreeBSD Xfce Project

Xfce is a complete graphical desktop environment based ont the GTK+ toolkit. It aims to be fast, lightweight and easy-to-use.

Any questions regarding Xfce on FreeBSD should be address to the freebsd-xfce mailing list, or FreeBSD forums (Other Window Manager subforum).

Resources

Frequently Asked Questions

Contents

  1. How is Xfce installed?
  2. How is Xfce started?
  3. What about localization?
  4. How can unified themes be used with GTK3 and GTK2?
  5. How can keyboard shortcuts be changed in GTK2 applications ?
  6. How can menu items be hidden?
  7. How can the panel be hidden with fullscreen applications?
  8. How can double title bars be removed in some applications?
  9. How is windows preview displayed in TabWin widget?
  10. How are elements displayed in TabWin widget?
  11. How is zoom effect enabled?
  12. How can we adopt the same behavior as Thunar in GtkFileChooserDialog widget?
  13. How can xfdashboard be lauched at startup?
  14. How can PulseAudio be disabled?

Full text

  1. How is Xfce installed?

    There are two ways to install Xfce. One ways is to use pkg(8):

    # pkg install xfce

    More information on using pkg(8) is available in the FreeBSD Handbook.

    The other way is to use ports:

    # cd /usr/ports/x11-wm/xfce4
    # make instll clean
  2. How is Xfce started?

    There are several different ways to start Xfce:

    Firstly, .xinitrc file must be created.

    Note: x11-wm/xfce4-session provides this file.

    % cp /usr/local/etc/xdg/xfce4/xinitrc ~/.xinitrc

    Using startx or Xdm, .xsession file is also required.

    % ln -sf ~/.xinitrc ~/.xsession

    To use Xdm, apply the following patch. It fixes a well-known bug PR191296.

    % patch --posix < dot.xinitrc.diff
  3. What about localization?

    Xfce supports different langages (internationalization). Even if the system has already been configured for localization, additional settings must be added to .xinitrc file.

    The variables, LANG and LC_CTYPE control locale settings.

    For instance, for French users using latin-9 encoding, these environments variables will be defined like:

    #!/bin/sh
    
    export LANG="fr_FR.ISO8859-15"
    export LC_CTYPE="fr_FR.ISO8859-15"
    [...]

    Users with no UTF-8 encoding must also define new variable G_FILENAME_ENCODING (avoid warning in some GTK applications).

    Add following lines in .xinitrc file.

    [...]
    # set $G_FILENAME_ENCODING to @locale and/or UTF-8.
    if test "x$G_FILENAME_ENCODING" = "x"; then
      G_FILENAME_ENCODING="@locale,UTF-8"
      export G_FILENAME_ENCODING
    fi
    [...]
  4. How can unified themes be used with GTK3 and GTK2?

    Install x11-themes/gnome-themes-standard, and change the value of /Net/ThemeName property:

    % xfconf-query -c xsettings -p /Net/ThemeName -t string -s Adwaita

    Or use xfce4-appearance-settings.

  5. How can keyboard shortcuts be changed in GTK2 applications?

    /Gtk/CanChangeAccels must be enabled.

    To check its value:

    % xfconf-query -c xsettings -p /Gtk/CanChangeAccels

    If it is false, value must be changed.

    % xfconf-query -c xsettings -p /Gtk/CanChangeAccels -T

    When the item menu is active (hightlighted), keyboard shortcut can be directly changed by pressing the desired key combination.

    Note: This settings is deprecated since GTK >= 3.10.

  6. How can menu items be hidden?

    Launch xfce4-appfinder and right-click on one item in the right pane, then select Hidden.

  7. How can the panel be hidden with fullscreen applications?

    Sometimes when applications are in full-screen mode, panels are not hidden. The value of autohide-behavior can be changed.

    % xfconf-query -c xfce4-panel -p /panels/panels-id/autohide-behavior -n -t int -s 1

    Possible values are:

    Where id is integer, it represents panel.

    Or go to Panel Preferences.

  8. How can double title bars be removed in some applications?

    They appear often with GTK3 applications, because they use new method for decorating windows, calls CSD.

    To avoid this artifact, compositing must be enabled.

    Launch xfwm4-teaks-settings, and go to the Compositor tab.

    Or change the value of /general/use_compositing:

    % xfconf-query -c xfwm4 -p /general/use_compositing -n -t bool -s true
  9. How is windows preview displayed in TabWin widget?

    TabWin widget is little window which appears, when we toggle between open applications (Alt+Tab).

    The value of /general/cycle_preview can be changed, if compositing is enabled.

    % xfconf-query -c xfwm4 -p /general/cycle_preview -T

    Note: If the value of /general/cycle_tabwin_mode is 1 previews are not displayed.

  10. How are elements displayed in TabWin widget?

    By default in TabWin widget, open applications are symbolized by previews list.

    Another view is also possible (like in Xfce <= 4.10).

    % xfconf-query -c xfwm4 -p /general/cycle_tabwin_mode -n -t int -s 1

    Possible values are:

  11. How is zoom effect enabled?

    If compositing is enabled and the value of /general/zoom_desktop is true. Zoom effect is active.

    % xfconf-query -c xfwm4 -p /general/zoom_desktop

    Alt+Scroll-wheel to zoom in/out anywhere inside desktop.

  12. How can we adopt the same behavior as Thunar in GtkFileChooserDialog widget?

    By default, Thunar displays directories first, then files. This behaviour is managed by /misc-folders-first property.

    To adopt the same behavior when GTK3 applications use GtkFileChooserDialog widget, the value of sort-directories-first must be changed.

    % gsettings set org.gtk.Settings.FileChooser sort.directories-first true
  13. How can xfdashboard be launched at startup?

    Launch xfce4-session-settings, and go to Application Autostart tab. Select xfdashboard.

    To define keyboard shortcuts, launch xfce4-keyboard-settings, and go to Application Shortcuts tab.

  14. How can PulseAudio be disabled?

    In ~/.config/pulse/client.conf replace these lines:

    ; autospawn = yes
    ; daemon-binary = /usr/local/bin/pulseaudio

    by

    autospawn = no
    daemon-binary =