🚦πŸš₯ ... ok it works πŸŒ‹

A super-simple #emoji keyboard for #x11.

Well, I *did* have to fiddle with the keymap.

And I had to add delays πŸ€―πŸ‘Ή (otherwise there are races between keymap changes and keyboard events).

And I had to misuse the #Xtest extension, cause applications ignore "synthetic" events. πŸ«₯😣

But hey, it works πŸ•Ί

Now needs some basic, uhm, "features" (like recently used, like search by name).

https://github.com/Zirias/qxmoji
#BSD #FreeBSD #Linux

GitHub - Zirias/qxmoji: Barebones X11 emoji keyboard with Qt GUI

Barebones X11 emoji keyboard with Qt GUI. Contribute to Zirias/qxmoji development by creating an account on GitHub.

GitHub

Fixed build with #Qt6 now (and defaulting to that, but #Qt5 still supported).

I also added a README.md explaining the uglyness of what it does with #X11 / #xcb. But again, hey, it works πŸ™ˆπŸ„πŸΈπŸ¦‰ (lots of emojis for no purpose, sorry πŸ˜‚)

The looks with completely unconfigured #Qt6 tell me it needs yet another feature: Configurable scale factor. These emojis are just TOO small 🧌

https://github.com/Zirias/qxmoji
#emoji #keyboard

GitHub - Zirias/qxmoji: Barebones X11 emoji keyboard with Qt GUI

Barebones X11 emoji keyboard with Qt GUI. Contribute to Zirias/qxmoji development by creating an account on GitHub.

GitHub

First "features" added ...

* Can now select 5 "scale factors" for the size of the emojis, "Tiny" being the same size as default window text (which is normally indeed tiny for emojis)

* Auto-stores these settings as well as the window dimensions (not position!)

#qxmoji #qt #x11 #emoji #keyboard

#qXmoji v0.1 and v0.2 released 😎

Functionally the same (just clickable emojis in tabbed groups, display size and wait-time for restoring the X11 keyboard map configurable), but v0.2 has correct README info and build-fixes, so Qt tools are found without fiddling with make variables πŸ™ˆ so, use v0.2 😎

https://github.com/Zirias/qxmoji/releases/tag/v0.2

#X11 #emoji #keyboard #Linux #FreeBSD

Release qxmoji-0.2 Β· Zirias/qxmoji

Fix README.md (typos and outdated info) Improve build system, properly find required Qt utilities

GitHub

πŸ₯³ #qXmoji v0.3 released πŸ»πŸ•

Now there are the "basic" features you'd expect from an emoji keyboard:

βœ… Search as you type
βœ… Recently used

https://github.com/Zirias/qxmoji/releases/tag/v0.3

#X11 #emoji #keyboard #Linux #FreeBSD

Release qxmoji-0.3 Β· Zirias/qxmoji

Add "search as you type" feature Add list of recently used emojis

GitHub

Found a small bug, #xcb requests were synchronously checked, but this only works when calling the _checked() flavor of them ... πŸ™ˆ

Fixed in #qXmoji v0.4

Also added a clear button to the search field, this seems somewhat useful πŸ˜‰

https://github.com/Zirias/qxmoji/releases/tag/v0.4

#X11 #emoji #keyboard #Linux #FreeBSD

Release qxmoji-0.4 Β· Zirias/qxmoji

Bugfix: used checked xcb requests Add a clear button to the search field

GitHub

Thinking about what to include in #qxmoji v0.5. Many questions in mind...

I'll definitely "outscope" #l10n. Would be nice, but would also mean to import localized emoji names somehow (and, where to find them? πŸ€”)

For now:

πŸ”ΉUnify persisting settings. history and window size are persisted on exit, wait time and display scale on every change. Not sure which one is the "better" approach...
πŸ”ΉShould it be "single instance"? Should it offer an option for a "tray icon"?
πŸ”ΉAdd an "About dialog". Cause that's what you always do. πŸ™ˆ
πŸ”ΉMaybe find a way to speed up initial creation of the Emoji buttons?
πŸ”ΉAnything else ...❓

Please comment if you have thoughts to share πŸ™ƒ

#emoji #keyboard #X11 #Linux #FreeBSD

Deep down the #X11 (#xcb) rabbit hole now.

I decided to add a tray icon. I want it optional, with configurable behavior (minimize-to-tray, close-to-tray, no-tray).

Adding this thing was super simple with Qt. Getting anything other than the default behavior ... not so much. Doing lots of things with plain #xcb now.

I'm stuck at hiding the tool from a taskbar. #EWMH has _NET_WM_STATE_SKIP_TASKBAR. In #fvwm (#fvwm3), this works when setting it before the window gets mapped. Sending it as a "client message" when the window is already mapped seems to be just ignored 😠

I then tried #KDE (#kwin). Hm well, doesn't even honor the _NET_WM_STATE property set on the window before mapping it, IOW, it's *always* shown in the taskbar.

WTF? πŸ˜–β“

#qxmoji #emoji #keyboard

@thomasadam does #fvwm intentionally ignore a client-message attempting to set (or clear) _NET_WM_STATE_SKIP_TASKBAR?

In general, _NET_WM_STATE messages are processed (I checked by setting _NET_WM_STATE_MAXIMIZE_VERT instead, this works ...)

@zirias I’m not near my computer right now, but I believe so. I don’t think for nefarious reasons. If I recall correctly, there’s a comment in the code mentioning that it’s either deliberate or not yet implemented.

File a bug on GH for me. I’ll probably just fix it for you.

@zirias I’m referring to fvwm3 here. Fvwm2 will also have this issue, but I’m less concerned there.

@thomasadam Maybe I should search for that comment myself ... if, after all, there *is* a good reason to ignore it ... πŸ€·β€β™‚οΈ

Otherwise, I'll try to hack a minimal reproducer first (my Qt application probably won't qualify πŸ˜‚)

@zirias Sweet. Should you get stuck, let me know. The guts of controlling this setting outside of EWMH already exist, so it should be fairly straightforward.

@thomasadam Well, the comment tells something else πŸ˜‚
https://github.com/fvwmorg/fvwm3/blob/main/fvwm/ewmh_events.c#L1199

maybe it isn't worth implementing after all if #fvwm3 would be the only wm doing so ... am I the first crazy guy contradicting this comment? 🀑

although I think my usecase makes some sense, I have a toggle for the "tray icon" and think as long as this icon is shown, taskbar is kind of redundant πŸ™ˆ

fvwm3/fvwm/ewmh_events.c at main Β· fvwmorg/fvwm3

FVWM version 3 -- the successor to fvwm2. Contribute to fvwmorg/fvwm3 development by creating an account on GitHub.

GitHub

@thomasadam Issue created:
https://github.com/fvwmorg/fvwm3/issues/1011

Let's see whether I can wrap my head around #fvwm3 inner workings to do this myself πŸ˜‰

Handle _NET_WM_STATE_SKIP_TASKBAR in _NET_WM_STATE client messages Β· Issue #1011 Β· fvwmorg/fvwm3

There's a stub here: https://github.com/fvwmorg/fvwm3/blob/main/fvwm/ewmh_events.c#L1199 Implementing this would allow changing taskbar visibility of a mapped window. Here's a simple tester program...

GitHub

@thomasadam PR created to address this:

https://github.com/fvwmorg/fvwm3/pull/1012/files

Those are just a few lines of code. Still took me hours, because I did have a hard time to understand enough of #fvwm3's code (and, still unsure whether I did it correctly...) πŸ™ˆ

Well, maybe this can help me if I ever want to add/fix another thing in fvwm3 πŸ˜‚

EWMH Events: more _NET_WM_STATE client messages by Zirias Β· Pull Request #1012 Β· fvwmorg/fvwm3

Handle client messages for modifying _NET_WM_STATE_SKIP_PAGER and _NET_WM_STATE_SKIP_TASKBAR on mapped windows: Update the window property and broadcast the change for modules. Both are mapped to t...

GitHub
@zirias Thanks. I’m away for the day, but will check later on this evening.
@zirias Thank you -- and good job! This has now been merged. :)