Trinity Desktop Environment — 2

Some Slackware Trinity Desktop Environment (TDE) build scripts are available online. The packages compile but the scripts are unorthodox:

  • Modifying /etc/profile.
  • Modifying .bashrc to source the modified /etc/profile.
  • Modifying the stock /etc/profile.d/pkgconfig.[c]sh.
  • Using inline EOF to create support files and patches.

Alarm bells triggered after the first round of building the packages, such as the terminal command line prompt changing. An orthodox or traditional approach is the changes to /etc/profile and /etc/profile.d/pkgconfig.[c]sh should be part of a separate /etc/profile.d/tde.[c]sh script. Modifying patches requires fiddling with EOF markers rather than source files. The build scripts are functional but complex and messy.

TDE still requires building large mega packages. The design of the build scripts does not seem to lend well with splitting the mega packages into modules. One wish is that TDE could be compiled as smaller modules.

Running ldd against some binaries indicates some packages can be compiled without the standard full suite of “core” packages. For example, for the venerable Amarok, looks like a minimal build requires tqt3, tqinterface, dbus-1-tqt, arts, and tdelibs. A minimal build means certain features might be missing, but the idea is this could be a way to install software without a boat load of dependencies.

Initial testing indicates TDE still has much to offer but not without paper cuts. Ideally TDE should be robust and solid after a dozen years of mostly bug patching and refinements. Cursory browsing of a Bugzilla indicates perhaps not. Local testing soon found bugs. For example:

  • The starttde script does not export the XDG_CURRENT_DESKTOP environment variable. Oddly this support has been added only to TDM. The script exports DESKTOP_SESSION=trinity.
  • User config files are stored orderly in $TDEHOME, but TDE is not XDG compliant. Rather than using a directory in $HOME/.config ($XDG_CONFIG_HOME), TDE still defaults to a user configuration location of $HOME/.trinity ($TDEHOME), rather than $HOME/.config/trinity or $HOME/.config/tde.
  • When TDE is the desktop environment the NotShowIn and OnlyShowIn directives in the user’s $HOME/.config/autostart files seem to be ignored (xfce4-power-manager, parcellite, nm-applet). Digging deep into this issue reveals the root cause is the way duplicate autostart files are managed.
  • TDE does not support mimeapps.list files. TDE uses a complex approach to determine file associations. This is disorienting when toggling between different DEs because the file associations are different.
  • Installing the gtk-qt-engine and gtk3-tqt-engine packages cause issues in other desktop environments. For example, the MATE window manager seemed confused with windows freezing. Some binaries in $HOME/.config/autostart (artha, parcellite) do not launch or launch but do not appear in the MATE system tray. MATE always hung on logout. TDE always timed out during log out when there is an active GTK3 tool running, such as nm-applet. Removing the gtk3-tqt-engine package resolves much but not all of the GTK related misbehavior. Removing both packages seems to be the only cure but then GTK software looks horrible in TDE.
  • In the Xfce desktop menu several TDE *.desktop files were dumped into the Other category. This is fixed by updating the Categories entry in the respective TDE desktop files.
  • kbookreader still opens epub files as gobbledygook.
  • In Slackware 14.2, unlocking the screen was broken with a repeatable kcheckpass segfault. A missing include (crypt.h) patch in checkpass_shadow.c resolved the problem. (This bug will not appear in PAM systems.)
  • Increasing the panel height caused task bar buttons to stack. Deep digging found some default config files missing important options. This required several nominal patches.
  • When selecting not to use a login splash there is nonetheless some kind of startup dialog. The dialog does not appear when using a splash. None should mean none. More deep digging found the hidden config option showFancyLogin that controls the dialog.
  • The Control Center Device Manager is unusable and the entire desktop crawls to a halt.
  • With both Slackware 14.2 and 15.0 there are [FIXME] UNCLASSIFIED DEVICE name entries in the .xsession-errors log, but with 15.0 there is a significant spew of the errors.
  • The $HOME/.xsession-errors log always showed Loading of khotkeys module failed yet keyboard shortcuts function fine.
  • Kate and KWrite do not provide easy or built-in ways for word counts or sorting selected text. There is a broken Kate sort plugin in the tdeaddons package.

Noting the bugs when using the TDE GTK theme engines might seem unfair. On a multiple user machine, mixing-and-matching desktop environments is common. Possibly this is a misconfiguration here, but hunting around the web indicates the gtk3-tqt-engine package always has been problematic. Possibly many TDE users never see these types of bugs because TDE is their sole desktop environment. Perhaps part of the problem is a full DE should be installed in /usr rather than being relegated to /opt purgatory and trying to avoid issues with environment variables.

Some of these paper cut issues have been resolved locally. Some are nitpicks. Eventually the bugs will be reported, but the TDE folks have rendered participation cumbersome by limiting access to mailing lists and IRC. Browsing the user and developer discussion lists is challenging. Bug reporting is inconvenient with a gitea portal. There is no open online forum.

TDE installs and runs on two vintage single core computers in the house network. Nothing is expected to be snappy with such hardware but everything runs.

In some ways TDE looks like a throwback desktop, but that kind of appearance is accepted here. Important is the desktop is mostly functional with no direct dependencies on GTK. There is no overhead with backend tools such as Akonadi or Baloo.

Most notable is TDE is fast. Truly fast. Even on dual core systems.

Posted: Category: Usability Tagged: General

Next: LXQt

Previous: Trinity Desktop Environment — 1