Skip to content

Commit f4fb02b

Browse files
committed
emoji picker
1 parent 7856931 commit f4fb02b

3 files changed

Lines changed: 7 additions & 1 deletion

File tree

content/projects/kde/wayland-emoji-picker.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
title: "KWin Plugin: Emoji Picker"
33
date: 2026-04-18
4+
image: "/images/projects/kde/kwin-emoji-chooser-2.png"
45
type: "kde"
56
status: "Work in Progress"
67
tags: ["KDE", "KWin", "Wayland", "Emoji"]
@@ -9,7 +10,7 @@ merge_requests:
910
status: "Work in Progress"
1011
---
1112

12-
I wanted to easily type emojis on my laptop and noticed that the current `plasma-emojier` is a standalone application which only copies the emoji to the clipboard. My goal was to type emojis directly into the application I'm using. This is a much faster and more seamless workflow.
13+
I want to easily type emojis on my laptop and noticed that the current `plasma-emojier` is a standalone application which only copies the emoji to the clipboard. My goal was to type emojis directly into the application I'm using. This is a much faster and more seamless workflow.
1314

1415
To achieve this goal I looked into preexisting solutions in KDE and found KEmoji, a KDE Frameworks library for emojis. I also looked into how other compositors handle this and found that implementing it as a KWin plugin would be a good solution.
1516

@@ -22,3 +23,8 @@ By moving the emoji picker into KWin, we can safely bypass Wayland's strict inpu
2223
2. **kemoji Library**: We've adopted the new KDE Frameworks library, `kemoji`, for the backend. This provides unified models and data for emojis, search, and history.
2324
3. **Secure Injection**: Upon selection, KWin calls `InputMethod::commitString()` to safely inject the emoji into the active text buffer.
2425
4. **Input Interception**: Keyboard events are temporarily routed to the overlay's search field without stealing focus from the target application, preventing flicker or glitches.
26+
27+
28+
![kwin-emoji-chooser-1](/images/projects/kde/kwin-emoji-chooser-1.png)
29+
30+
![kwin-emoji-chooser-2](/images/projects/kde/kwin-emoji-chooser-2.png)
91.6 KB
Loading
74.2 KB
Loading

0 commit comments

Comments
 (0)