Project Zebra: ''Noddy and I are just good friends,'' said Florence. ►

◄ Books round-up: The Watch series, Trek, crossover, 40K, etc

2019-11-30Project Zebra: I am not a messiah sent to you by the Dark Powers

Tags All Linux Tech Personal

This entry is part of my Project Zebra series covering migration to Linux for personal computing use.

Title reference: the Death House introductory adventure for 5e D&D. I've been watching these folk play through it.

Discovered a handful of app breakages after upgrading to Xubuntu 19.10, including DragonDisk, MComix and GIMP. GIMP I'd already more or less replaced with Krita, which is a capable general image editor as well as painting tool. Atril reads most image-bundling 'comics' formats. DragonDisk doesn't appear to be actively maintained, and I'm not sure the OpenSSL error it gives is distro related or related to the comment on its homepage that "this software doesn't support AWS V4 Authentification". S3 Browser, which I'm familiar with, does run under Wine, as does WinSCP.

Troubleshooting GIMP by running it from a terminal gave; "error while loading shared libraries: libjson-c.so.3: cannot open shared object file: No such file or directory" and https://forum.artixlinux.org/index.php/topic,544.0.html provides a clue, except under this distro it's a case of symlinking or copying /usr/lib/x86_64-linux-gnu/libjson-c.so as libjson-c.so.3

Not so long ago I checked out the Destination Linux podcast with Simon Steinbeiß guesting https://www.youtube.com/watch?v=ur-1Ogq6eBw with the irony of DL praising Xfce for consistency in that chat when Simon seems to be the person pushing for client-side window decoration to ignore what the user has configured in Xfwm (the Xfce window manager). But I'll come back to that later. First let's focus on GTK2 deprecation;

https://www.phoronix.com/forums/forum/software/distributions/995172-ubuntu-developers-working-towards-the-eventual-demotion-of-gtk2
https://www.phoronix.com/forums/forum/software/desktop-linux/1133756-xfce-4-16-to-drop-gtk2-support-explore-some-client-side-decorations

Setting aside a lot of other background involving the Wayland protocol* and players such as Canonical, Red Hat, the Gnome Foundation, and with the caveat that Wayland has been trying to gain traction for over a decade whilst X has been around since the 80s, the chances are that there'll gradually be less support of GTK2 in all desktop environments.

* Reasonable summary: http://www.linux-magazine.com/Online/Features/What-s-Taking-Wayland-So-Long

So I figured I'd take stock of what GTK2 is left among things I'm using, and consider any easy switches. As a bit of a guide you can do 'apt-get remove -s libgtk2.0-0' to try to pick up instances of direct dependencies. It includes more well-known applications than you might think, although often isn't cut and dried since an app that can be compiled against either GTK2 or 3 might use either in a particular distro's repositories.

dvd95 (utility) → switched to DVD Shrink under Wine
bless (hex editor) → switched, ghex is a fair substitute
bleachbit (cleaning) → from Ubuntu repositories, expect update
gparted (partitions) → from Ubuntu repositories, should be available in 1.0 onwards when added
gimp (image editor) → is targeting 3.0 release
clamtk (A/V) → from Ubuntu repositories, expect updatev freefilesync (syncing) → manual install, but 10.17 appears to still be GTK 2.0
filezilla (FTP) → from Ubuntu repositories, expect update
pinta (image editor) → removed as it's hardly used and unlikely to be maintained
gshutdown (utility) → removed as haven't used and can do with bash commands
xfburn (disc burning) → switched to Brasero, although xfburn is part of the Xfce goodies package
truecrypt (encrypted volumes)→ switched to veracrypt, an almost drop-in continuation

LibreOffice currently does its own thing but will be using GTK in future; https://www.omgubuntu.co.uk/2019/11/libreoffice-gtk-dialogs-update

In gradual preparation for someone deciding that Xfwm themes are redundant, and being driven to jump ship from Xfce, to facilitate getting used to others I've moved some currently globally applied hacks into a ~/.themes copy of my Xfce-saltlake edit. There's not a lot there, in practice most of it fell back to Adwaita, so it's a case of

@import url("resource:///org/gtk/libgtk/theme/Adwaita/gtk-contained.css");

and reading https://gitlab.gnome.org/GNOME/gtk/blob/master/gtk/theme/Adwaita/gtk-contained.css for the bits to override. It's also worth installing the gtk-3-examples package to use gtk3-widget-factory and see how controls will be styled.

Due to the fetishistic extent Adwaita uses rounded corners it's still easier to put * { border-radius: 0; } in ~/.config/gtk-3.0/gtk.css than find all of the uses. Similarly ~/.config/gtk-3.0/settings.ini is still the place for global settings.ini changes such as gtk-recent-files-max-age, gtk-recent-files-limit and gtk-primary-button-warps-slider.

As a point of interest https://wiki.archlinux.org/index.php/GTK suggests that "Legacy scrolling behaviour can be achieved reliably simply by using right click instead of left click." although this doesn't appear to work in Xfce.

It also notes "GTK 4 will no longer support GTK_OVERLAY_SCROLLING. It has already been dropped from master. As of GTK 4, the overlay nature of the scrollbars is part of the toolkit. The blanket toggle has been removed to prevent developers from breaking applications that haven't been tested with both combinations. To allow application developers to decide what their applications should look like, the toolkit instead provides a mechanism to opt-out or add a setting for users."

I'd suggest not setting GTK_OVERLAY_SCROLLING and not using applications written by people who feel disregarding accessibility features is acceptable. Scrollbars show position within a window and show that part of it isn't currently displayed. Dog only knows why toolkit developers are trying to make this an optional extra, but it's doubtful they work with anyone, children or adults, to whom the lack of a visual indicator is a problem. It's the usual issue of designers tending to be young with 20/20 vision and no mobility problems, and apparently hoping they die before that changes.

In the same vein, trends for border-less windows should be considered harmful;

https://www.reddit.com/r/elementaryos/comments/32m4zc/how_to_change_scroll_bar_and_window_border/ "This is actually a gripe I have with all the linux desktop environments. Whoever started this ridiculous trend of super-thin borders on everything needs to have both hands broken so he can experience what using a computer is like for people with hand injuries."

Minor things dealt with recently include clearing out old /var/crash files to prevent boot questions about reporting crashes, and as a reminder, assuming a .timer and .service pair of units with your systemd scheduled tasks, you can stop or start the timer or start the tasks in the service file on-demand with systemctl stop {name}.timer, systemctl start {name}.timer, and systemctl start {name}.service (handy for pausing a scheduled backup).

Another possible kernel update issue (and/or xfce4-screensaver issue) with resuming from hibernation has surfaced; occasional video output corruption on the desktop (switching to another tty works fine, it's an issue with the restored desktop session);

https://unix.stackexchange.com/questions/14494/screen-corruption-after-hibernate-is-there-another-way-to-refresh-the-x11-disp

Issuing xrandr commands resolves it, so I've bound the three I use for my multi-monitor setup (main monitor, both, side monitor) to keyboard shortcuts.

This is kind of cool, although not developing for Android I'm struggling to think of a use case; https://www.omgubuntu.co.uk/2019/07/scrcpy-mirror-android-to-ubuntu-linux

And since Kali has switched to Xfce (from Gnome) as a default desktop; https://www.kali.org/news/kali-linux-2019-4-release/ they're shipping a Windows 10 theme for "undercover" work, specifically https://github.com/B00merang-Project/Windows-10