Selecting default window manager in LXQt 0.13.0


(José Romildo Malaquias) #1

I am updating LXQt on NixOS to the recently released version 0.13.0.

When starting LXQt for the first time a dialog window appears asking to select the default Window Manager. It seems that this is a new behavior in this release.

The list is empty on my test system, although openbox is installed, and I cannot start the desktop environment. Probably it has to do with the non conventional way files are layout on NixOS.

How is LXQt getting the list of window managers to present in this dialog window?


(Alf Gaida) #2

Not really a LXQt problem - just make sure that the xdg-pathes are set right, we moved the upstream configurations to /usr/share/lxqt - they should be picked up.


(José Romildo Malaquias) #3

Is it possible to set those paths dynamically, at run time?

Let me shortly explains how package files are installed in NixOS. Each package is installed in a subdirectory of /nix/store with read only permissions and they are isolated from each other. Therefore two or more packages cannot install files into a common directory, like /usr/share/lxqt, for instance.

When files from different packages should be in a common directory, typically a new directory is created and populated with symbolic links to the original files from those packages. Then applications can access them through this common directory.

Because of that it is desirable to be able to set this common directory dynamically. It can be for instance through an environment variable.

In NixOS usually this common directory is /run/current-system/sw. LXQt data files would be found at /run/current-system/sw/share/lxqt as symbolic links to files in /nix/store/<package id>/share/lxqt.


(palinek) #4

Yes, you can override the default XDG_* env variables provided by startlxqt (see here https://github.com/lxqt/lxqt-session/blob/master/startlxqt.in)… if the env vars are already set startlxqt will not strip their values.


(Alf Gaida) #5

or just put configuration files into a XDG place like /etc/xdg


(José Romildo Malaquias) #6

LXQt is still failing to show the available window managers.

The environment just before exec lxqt-session in the script startlxqt is:

BASH=/nix/store/xn5gv3lpfy91yvfy9b0i7klfcxh9xskz-bash-4.4-p19/bin/sh
BASHOPTS=cmdhist:extquote:interactive_comments:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_LINENO=([0]="0")
BASH_SOURCE=([0]="/nix/store/hz77l9ilf76h38xkss9d6920yy3pspn1-lxqt-session-0.13.0/bin/startlxqt")
BASH_VERSINFO=([0]="4" [1]="4" [2]="19" [3]="1" [4]="release" [5]="x86_64-unknown-linux-gnu")
BASH_VERSION='4.4.19(1)-release'
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-QjxVFRcI23,guid=e6637f1fdea6b9210084147c5b06066a
DESKTOP_SESSION=/nix/store/6wr6sj2drxamy4d2frypx9wl1rk5v75j-desktops/lxqt
DIRSTACK=()
DISPLAY=:0
EDITOR=nano
EUID=1100
GIO_EXTRA_MODULES=/nix/store/pqkilkckav0d6vz9xrcj2ysgyqx2q6q1-gvfs-1.36.2/lib/gio/modules
GROUPS=()
GTK_PATH=/home/guest/.nix-profile/lib/gtk-2.0:/home/guest/.nix-profile/lib/gtk-3.0:/nix/var/nix/profiles/default/lib/gtk-2.0:/nix/var/nix/profiles/default/lib/gtk-3.0:/run/current-system/sw/lib/gtk-2.0:/run/current-system/sw/lib/gtk-3.0:/etc/profiles/per-user/guest/lib/gtk-2.0:/etc/profiles/per-user/guest/lib/gtk-3.0
HOME=/home/guest
HOSTNAME=nixos
HOSTTYPE=x86_64
IFS=' 	
'
INFOPATH=/home/guest/.nix-profile/info:/home/guest/.nix-profile/share/info:/nix/var/nix/profiles/default/info:/nix/var/nix/profiles/default/share/info:/run/current-system/sw/info:/run/current-system/sw/share/info:/etc/profiles/per-user/guest/info:/etc/profiles/per-user/guest/share/info
KDEDIRS=/home/guest/.nix-profile:/nix/var/nix/profiles/default:/run/current-system/sw:/etc/profiles/per-user/guest
LANG=en_US.UTF-8
LD_LIBRARY_PATH=/run/opengl-driver/lib
LIBEXEC_PATH=/home/guest/.nix-profile/lib/libexec:/nix/var/nix/profiles/default/lib/libexec:/run/current-system/sw/lib/libexec:/etc/profiles/per-user/guest/lib/libexec
LOCALE_ARCHIVE=/run/current-system/sw/lib/locale/locale-archive
LOGNAME=guest
MACHTYPE=x86_64-unknown-linux-gnu
MOZ_PLUGIN_PATH=/home/guest/.nix-profile/lib/mozilla/plugins:/nix/var/nix/profiles/default/lib/mozilla/plugins:/run/current-system/sw/lib/mozilla/plugins:/etc/profiles/per-user/guest/lib/mozilla/plugins
NIXPKGS_CONFIG=/etc/nix/nixpkgs-config.nix
NIX_PATH=/home/guest/.nix-defexpr/channels:nixpkgs=/nix/var/nix/profiles/per-user/root/channels/nixos:nixos-config=/etc/nixos/configuration.nix:/nix/var/nix/profiles/per-user/root/channels
NIX_PROFILES='/etc/profiles/per-user/guest /run/current-system/sw /nix/var/nix/profiles/default /home/guest/.nix-profile'
NIX_USER_PROFILE_DIR=/nix/var/nix/profiles/per-user/guest
NO_AT_BRIDGE=1
OLDPWD=/home/guest
OPTERR=1
OPTIND=1
OSTYPE=linux-gnu
PAGER='less -R'
PATH=/home/guest/bin:/run/wrappers/bin:/home/guest/.nix-profile/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin:/etc/profiles/per-user/guest/bin
PERL5LIB=/home/guest/.nix-profile/lib/perl5/site_perl:/nix/var/nix/profiles/default/lib/perl5/site_perl:/run/current-system/sw/lib/perl5/site_perl:/etc/profiles/per-user/guest/lib/perl5/site_perl
PIPESTATUS=([0]="0")
PKG_CONFIG_PATH=/home/guest/.nix-profile/lib/pkgconfig:/nix/var/nix/profiles/default/lib/pkgconfig:/run/current-system/sw/lib/pkgconfig:/etc/profiles/per-user/guest/lib/pkgconfig
POSIXLY_CORRECT=y
PPID=719
PS4='+ '
PWD=/home/guest
QTWEBKIT_PLUGIN_PATH=/home/guest/.nix-profile/lib/mozilla/plugins/:/nix/var/nix/profiles/default/lib/mozilla/plugins/:/run/current-system/sw/lib/mozilla/plugins/:/etc/profiles/per-user/guest/lib/mozilla/plugins/
QT_PLATFORM_PLUGIN=lxqt
QT_PLUGIN_PATH=/home/guest/.nix-profile/lib/qt4/plugins:/home/guest/.nix-profile/lib/kde4/plugins:/nix/var/nix/profiles/default/lib/qt4/plugins:/nix/var/nix/profiles/default/lib/kde4/plugins:/run/current-system/sw/lib/qt4/plugins:/run/current-system/sw/lib/kde4/plugins:/etc/profiles/per-user/guest/lib/qt4/plugins:/etc/profiles/per-user/guest/lib/kde4/plugins
QT_QPA_PLATFORMTHEME=lxqt
SAL_USE_VCLPLUGIN=kde4
SHELL=/run/current-system/sw/bin/bash
SHELLOPTS=braceexpand:hashall:interactive-comments:posix
SHLVL=1
SSH_ASKPASS=/nix/store/jgx9mwzwq6r1ww0l1vf6s5ydd7f4nwhz-x11-ssh-askpass-1.2.4.1/libexec/x11-ssh-askpass
STRIGI_PLUGIN_PATH=/home/guest/.nix-profile/lib/strigi/:/nix/var/nix/profiles/default/lib/strigi/:/run/current-system/sw/lib/strigi/:/etc/profiles/per-user/guest/lib/strigi/
TERM=dumb
TERMINFO_DIRS=/home/guest/.nix-profile/share/terminfo:/nix/var/nix/profiles/default/share/terminfo:/run/current-system/sw/share/terminfo:/etc/profiles/per-user/guest/share/terminfo
TZDIR=/etc/zoneinfo
UID=1100
USER=guest
XAUTHORITY=/home/guest/.Xauthority
XCURSOR_PATH=/home/guest/.icons:/home/guest/.nix-profile/share/icons:/nix/var/nix/profiles/default/share/icons:/run/current-system/sw/share/icons:/etc/profiles/per-user/guest/share/icons
XDG_CACHE_HOME=/home/guest/.cache
XDG_CONFIG_DIRS=/home/guest/.nix-profile/etc/xdg:/nix/var/nix/profiles/default/etc/xdg:/run/current-system/sw/etc/xdg:/etc/profiles/per-user/guest/etc/xdg:/nix/store/95yp6xwxm04jbcqhrlf6aahlhg3l7520-lxqt-build-tools-0.5.0/etc/xdg
XDG_CONFIG_HOME=/home/guest/.config
XDG_CURRENT_DESKTOP=LXQt
XDG_DATA_DIRS=/run/opengl-driver/share:/home/guest/.nix-profile/share:/nix/var/nix/profiles/default/share:/run/current-system/sw/share:/etc/profiles/per-user/guest/share:/nix/store/95yp6xwxm04jbcqhrlf6aahlhg3l7520-lxqt-build-tools-0.5.0/share
XDG_DATA_HOME=/home/guest/.local/share
XDG_DESKTOP_DIR=/home/guest/
XDG_DOCUMENTS_DIR=/home/guest/
XDG_DOWNLOAD_DIR=/home/guest/
XDG_MENU_PREFIX=lxqt-
XDG_MUSIC_DIR=/home/guest/
XDG_PICTURES_DIR=/home/guest/
XDG_PUBLICSHARE_DIR=/home/guest/
XDG_RUNTIME_DIR=/run/user/1100
XDG_SEAT=seat0
XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
XDG_SESSION_CLASS=user
XDG_SESSION_DESKTOP=
XDG_SESSION_ID=2
XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session1
XDG_SESSION_TYPE=x11
XDG_TEMPLATES_DIR=/home/guest/
XDG_VIDEOS_DIR=/home/guest/
XDG_VTNR=7
_===========================
__ETC_PROFILE_DONE=1

The LXQt shared dir is /run/current-system/sw/share/lxqt/. It has the following files:

$ ls -l /run/current-system/sw/share/lxqt/
total 40
lrwxrwxrwx 1 root root 82 Dec 31  1969 graphics -> /nix/store/q2npns117a03zma1ddcx0m6h0p0pp8q9-lxqt-themes-0.13.0/share/lxqt/graphics
lrwxrwxrwx 1 root root 79 Dec 31  1969 icons -> /nix/store/xrxv2fxwfrmah7yjc4a1mx4yx688fwl7-lxqt-config-0.13.0/share/lxqt/icons
lrwxrwxrwx 1 root root 84 Dec 31  1969 lxqt.conf -> /nix/store/bssxhy6vmfbyzxwlblh7gz4fnvzq78pk-lxqt-session-0.13.0/share/lxqt/lxqt.conf
lrwxrwxrwx 1 root root 83 Dec 31  1969 lxqt-panel -> /nix/store/pbgd4dzfmp4i6ksbvx5vg8g3wavxc3dl-lxqt-panel-0.13.0/share/lxqt/lxqt-panel
lrwxrwxrwx 1 root root 83 Dec 31  1969 panel.conf -> /nix/store/pbgd4dzfmp4i6ksbvx5vg8g3wavxc3dl-lxqt-panel-0.13.0/share/lxqt/panel.conf
lrwxrwxrwx 1 root root 80 Dec 31  1969 power.conf -> /nix/store/5cy2mqmivbgc817rn99hkbriv0mzlq7z-liblxqt-0.13.0/share/lxqt/power.conf
lrwxrwxrwx 1 root root 87 Dec 31  1969 session.conf -> /nix/store/bssxhy6vmfbyzxwlblh7gz4fnvzq78pk-lxqt-session-0.13.0/share/lxqt/session.conf
lrwxrwxrwx 1 root root 80 Dec 31  1969 themes -> /nix/store/q2npns117a03zma1ddcx0m6h0p0pp8q9-lxqt-themes-0.13.0/share/lxqt/themes
lrwxrwxrwx 1 root root 84 Dec 31  1969 translations -> /nix/store/lgr335wj3sg4xmlzpp9aaxds5k76cmb9-lxqt-l10n-0.13.0/share/lxqt/translations
lrwxrwxrwx 1 root root 94 Dec 31  1969 windowmanagers.conf -> /nix/store/bssxhy6vmfbyzxwlblh7gz4fnvzq78pk-lxqt-session-0.13.0/share/lxqt/windowmanagers.conf

Notice that XDG_CONFIG_DIRS contains /run/current-system/sw/share.

So in my understanding windowmanagers.conf should be found and the list of window managers sould not be empty.

Any clues?


(Alf Gaida) #7

yes - you seem to misunderstand an elementary part - this window should never pop up - so it would be a good idea to configure your default window manager. We have done that - but if our default configuration isn’t readed the distribution in charge should provide a valid configuration file in a xdg-place where the session can read from. ‘/etc/xdg/lxqt’ would be a good place.

a simple ‘/etc/xdg/lxqt/session.conf’

[General]
leave_confirmation=false
window_manager=xfwm4

[Environment]
BROWSER=qupzilla
TERM=qterminal
XDG_CURRENT_DESKTOP=LXQt

[Keyboard]
delay=500
interval=30
beep=false

[Font]
antialias=true
hinting=true
dpi=96

[Mouse]
cursor_theme=breeze_cursors

and a simple /etc/xdg/lxqt/lxqt.conf

[General]
icon_theme=Faenza-Ambiance
theme=patience

[Environment]
XCURSOR_THEME=breeze_cursors

[Qt]
font="Noto Sans,10,-1,5,50,0,0,0,0,0"

should be sufficient (ok - only an example, taking it from my machine)


(Antonio) #8

For ubuntu 18.04 my steps:

apt install lxqt openbox

cp /usr/share/lxqt/.conf /etc/xdg/lxqt/.*

(sorry my poor english, and i can’t use * in that forum =C )


(Alf Gaida) #9

setting the search path right should be sufficient - ok, the right search path is still under discussion :stuck_out_tongue: