Knowledge Base

Preserving for the future: Shell scripts, AoC, and more

Gxkb is replacing fbxkb in my workflows, and GTK2 status in Devuan

The story

I use a patched Fluxbox as my window manager. I use fbxkb as a system tray icon to show me quickly which keyboard layout is active in X11.

I was reading on Ludditus about how Debian is working even harder to remove gtk2 more. I remember when some of the gtk2 dev packages were first removed from Debian, because I had to switch to using gtk3 to build Palemoon web browser and FreeFileSync. But this recent conversation from Ludditus was the first I'd heard of this recent change, which was a week after the original announcement by a guy to the debian-devel mailing list who is not even subscribed to the mailing list. I seem to recall that most mailing lists are set up so you must subscribe in order to send to it. I wonder if this user who started the conversation was abusing permissions or taking advantage of a bad configuration. There's a whole thread you could read for more info on the thunderous applause leading to the death of liberty.

Anyway, trying to get back to the topic at hand, I discovered that my workflows still dependent on the "offensive" package include the following.

$ sudo apt-get remove libgtk2.0-0t64 libgtk2.0-0
The following packages will be REMOVED:
asunder fbxkb gtk-chtheme libgail-common libgail18t64 libgtk2.0-0t64 libgtk2.0-bin libgtkspell0 palemoon pidgin
0 upgraded, 0 newly installed, 10 to remove and 265 not upgraded.

I have yet to address pidgin, which I actively use. I have found GTK3 forks for asunder: GrimRipper and asunder-gtk3. I have yet to address Palemoon, but I think that one already was using gtk3 also, so I hope it was just an optional dependency on gtk2. I haven't used it in a while; I'll have to grab Steven Pusser's latest palemoon work.

Gxkb and Fbxkb

Gxkb is already very similar to fbxkb, but it already uses gtk3. I started testing it, and had to poke around for quite a while before I realized the solution for my needs is very simple! All I need to do is set up my {country_code}_{variant}.png in the correct directory.

mkdir -p ~/.local/share/gxkb/flags
cp -pi /mnt/public/Support/Programs/gxkb/us_dvorak.png ~/.local/share/gxkb/flags/

That's it. I used ImageMagick (or whatever has supplanted it, et al) convert to invert the colors so Dvorak shows up as an inverted-color US flag. That is all.

I had forked fbxkb to add some features, but I need zero customization of gxkb! This simplifies my maintenance efforts, not that I had to rebuild fbxkb ever once I built it the way I liked. Here are the customizations I had added to fbxkb, and the current resolution for gxkb:

  • Display menu on left click, and increment input method on middle click: Can live without the menu; I have only 2 variants for now. If that changes, I might have to implement a menu.
  • Enable rotating input methods on scrollwheel scrolling action: Already have this feature.
  • Add variant support, e.g., dvorak: Already have this feature.
  • Add tooltip: Already have this feature!

References and additional reading

Weblinks

There might be additional or repeated entries in-line in the post.

  1. Debian -- Details of package gxkb in sid
  2. Debian -- Details of package fbxkb in bullseye
  3. Show home:bgstack15 / fbxkb - openSUSE Build Service
  4. #967337 - fbxkb: depends on deprecated GTK 2 - Debian Bug report logs
  5. Debian has its retards too: they plan to kill GTK2! – Homo Ludditus

Files

  1. file:///mnt/public/Support/Programs/gxkb/gxkb-keyboard-layout-indicator.md

Comments