#qxmoji — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #qxmoji, aggregated by home.social.
-
Ok, I couldn't resist any more. Here's #French #qXmoji. Or, something like that ...? 🙈
Dear native-speakers, if I messed up TOO badly, help me out and send patches / pull requests 🤣🍻
(edit: ah great, I directly spot the first typo in this screenshot ... gonna fix immediately. Still, the hardest thing is to express technical things in french, I guess that counts as "domain specific language" and I really have NO idea how to do it)
-
I have one little piece of custom platform-specific code in #qXmoji.
Background is that #Qt's QFileSystemWatcher doesn't work correctly on #NFS (and probably other network filesystems). It uses some platform mechanism (e.g. inotify on #Linux, kqueue on #FreeBSD) internally, so exact behavior probably depends on the platform. On FreeBSD, it *seemed* to work, but only when the change to the file on NFS is done from the local machine. 🙄
Now regarding this code:
https://github.com/Zirias/qxmoji/blob/master/src/bin/qxmoji/nfsdetect.c
-- I still have doubts.▪ Should it check for other filesystems as well? Which ones?
▪ Will this construct checking for 'BSD4_4' in <sys/param.h> reliably detect every OS derived from 4.4BSD (assuming a POSIXy system that *has* sys/param.h)?
▪ Should it have implementations for *other* POSIXy systems than 4.4BSD-descendants and Linux?
▪ Why the hell is there no standard for checking the *filesystem* a file resides on? 🧐😁 -
#qXmoji v0.7 released!
https://github.com/Zirias/qxmoji/releases/tag/v0.7
This brings several improvements, mainly in the build system, but the major change is support for localization, with translated Emoji names imported from #Unicode #CLDR. I added a German translation, see screenshot. Once again, I'd appreciate more translations, the process to translate is documented here:
https://github.com/Zirias/qxmoji/blob/master/TRANSLATE.mdUpdated FreeBSD port:
https://people.freebsd.org/~zirias/patches/0001-x11-qxmoji-Add-new-port.patch -
If there are no takers, I might be seduced to add #French myself.
TBH, this is kind of a threat to all french-speaking ppl. It's the only language I ever learned besides German and English, and school is a *very* long time ago. It will probably end up somewhat similar to your typical chinese user's manual 😂
-
#qXmoji is now completely translatable, and fully localized for 🇩🇪.
So, here comes a request for contributions 😁 (pretty please 🙃):
More languages would be nice! Therefore I documented the process to add them here:
https://github.com/Zirias/qxmoji/blob/master/TRANSLATE.md -
Got a vertical prototype working, the tooltips in the "normal" emoji tabs are translated 🥳
🍺o'clock, later ... 🍻
-
Adding features in a module with clear boundaries is so much more fun!
I just added different modes for using #Qt's #moc to my new USES=qt in my #gmake framework ... Testing it with #qXmoji (my new #X11 #emoji #keyboard) in the mode that just includes moc-generated stuff, and it works like a charm. No more extra compilation steps for moc, this whole build log now looks nicely short (screenshot: build from entirely clean git checkout) 🥳
https://github.com/Zirias/qxmoji/commit/928bc8a1cc0fd1a54908bda13ba31042ed6b1471
-
@peterkotrcka Qt isn't *that* huge ... built it e.g. for my cross-toolchain, so I could produce #Windows binaries on #FreeBSD (not #qXmoji of course, this would make little sense for Windows).
But then, there's little difference for qXmoji either. Most notably the format of the history in the settings file (because Qt5 can't correctly produce emojis in utf8, while utf8 is the default for settings in Qt6 and works fine there).
Regarding Ubuntu, well, the packages are there. Just without the .pc files for pkg-config. Probably worth a bug report, but I won't create it, I don't even use any Linux 😉
It should build with Qt6 after installing qt6-base-dev and qt6-base-dev-tools, getting the .pc files I added to the repo and pointing PKG_CONFIG_PATH to them 🙈
-
I now added a screenshot of #qXmoji on github. People need to see screenshots for some reason (I'm no exception) 😄
I wanted "default looks", so, disabled any #Qt theming and thought #fvwm3 with default config should be a very nice match for a tool targeting "plain #X11", and firing up a #Xephyr session, I was quite surprised how polished fvwm3's default config looks nowadays, even integrating #stalonetray when available 👍
I still prefer my custom config, but nevertheless, great job 🙂
-
In case you wondered: Why another #emoji input tool?
As far as I know, #qXmoji is the *only* one working with "pure" #X11, acting like a virtual #keyboard. It *does* need the "Xtest" extension to fake "real" key presses, but that's (almost?) always available. It does *not* need other X clients to use some specific GUI toolkit (Qt, GTK, ...) or be at least XIM (input-method) aware. Instead, ANY X client works as the target – whether it can properly display emojis is another topic of course. 🤡
So, that's why. Well, I found the "x11-emoji-picker" project, but this one relies on some external tool to inject the events, so it's not self-contained and less robust. Do you know of any other similar projects? Then let me know 😎
Who said X11 was dead? It's a lie! 🐸
-
#qXmoji v0.6 released!
https://github.com/Zirias/qxmoji/releases/tag/v0.6
This brings a *lot* of improvements and fixes, the most relevant being immediate persistence of settings and watching the settings file for external changes. To make this feasible also for restoring the history, a lot of work went into generating static emoji data that can be used efficiently (e.g. containing a hash table to find an emoji quickly).
BTW, this even works on #NFS, so if you have your home shared and you're running qXmoji on two machines as the same user, the history will auto-update in both instances 🥳
-
Working on improving performance for the next #qXmoji release. This will require pre-generating stuff during build (different string formats and probably static hashtables), so doing this in #POSIX #shell script isn't feasible any more, therefore working on a data generation tool in #C now.
I'm amazed how #lldb shows me my #Emoji structs while debugging this 😂
-
#qXmoji v0.5 released!
https://github.com/Zirias/qxmoji/releases/tag/v0.5This brings a *few* of the ideas I had:
🔹Add a "single instance" mode (configurable)
🔹Add a "tray icon" (configurable behavior)
🔹Add an "About" dialog
🔹Enforce using Qt's "xcb" platform
🔹Fix detaching on startup, add a flag (-d) to prevent itPretty usable as it is I hope ... although one could of course improve a lot (but have you heard of the 80-20-rule?) 🫣
Screenshot from #KDE this time, no particular reason, I'm still running #fvwm here 😎
-
Guess I *did* enter "shady areas" writing commit messages like this:
https://github.com/Zirias/qxmoji/commit/2a404cd195619265559f9cced21f89ce3d129f40
In theory, all #EWMH window managers should behave the same, I thought ... 😂🙈
-
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? 😖❓
-
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 🙃
-
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 😉
-
🥳 #qXmoji v0.3 released 🍻🍕
Now there are the "basic" features you'd expect from an emoji keyboard:
✅ Search as you type
✅ Recently used -
#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 😎
-
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!)