Just emojis

This commit is contained in:
David Heinemeier Hansson
2026-05-20 14:12:06 +02:00
parent b7c0e10288
commit ed3320cb8d
12 changed files with 30 additions and 28 deletions
+2 -2
View File
@@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
# omarchy:summary=Launch the emoji picker # omarchy:summary=Launch emojis
# omarchy:group=menu # omarchy:group=menu
# omarchy:examples=omarchy menu emoji # omarchy:examples=omarchy menu emoji
omarchy-shell shell toggle omarchy.emoji-picker "{}" omarchy-shell shell toggle omarchy.emojis
+1 -1
View File
@@ -461,7 +461,7 @@ prioritize_entries() {
if (match(line, /Audio controls/)) prio = 18 if (match(line, /Audio controls/)) prio = 18
if (match(line, /Bluetooth controls/)) prio = 19 if (match(line, /Bluetooth controls/)) prio = 19
if (match(line, /Wifi controls/)) prio = 20 if (match(line, /Wifi controls/)) prio = 20
if (match(line, /Emoji picker/)) prio = 21 if (match(line, /Emojis/)) prio = 21
if (match(line, /Color picker/)) prio = 22 if (match(line, /Color picker/)) prio = 22
if (match(line, /Screenshot/)) prio = 23 if (match(line, /Screenshot/)) prio = 23
if (match(line, /Screenrecording/)) prio = 24 if (match(line, /Screenrecording/)) prio = 24
+2 -2
View File
@@ -5,8 +5,8 @@
-- Keep the bar instant: no layer-shell fade/slide animation. -- Keep the bar instant: no layer-shell fade/slide animation.
hl.layer_rule({ match = { namespace = "omarchy-bar" }, no_anim = true, animation = "none" }) hl.layer_rule({ match = { namespace = "omarchy-bar" }, no_anim = true, animation = "none" })
-- Launcher, image selector, emoji picker, and clipboard overlays should also pop without animation. -- Launcher, image selector, emojis, and clipboard overlays should also pop without animation.
hl.layer_rule({ match = { namespace = "^(omarchy-menu|omarchy-launcher|omarchy-image-selector|omarchy-emoji-picker|omarchy-clipboard)$" }, no_anim = true, animation = "none" }) hl.layer_rule({ match = { namespace = "^(omarchy-menu|omarchy-launcher|omarchy-image-selector|omarchy-emojis|omarchy-clipboard)$" }, no_anim = true, animation = "none" })
-- Bar settings floats centered with a sensible default size instead of -- Bar settings floats centered with a sensible default size instead of
-- tiling — it's a transient dialog, not a workspace surface. -- tiling — it's a transient dialog, not a workspace surface.
+1 -1
View File
@@ -1,5 +1,5 @@
o.bind("SUPER + SPACE", "Launch apps", "omarchy-shell shell toggle omarchy.launcher \"{}\"") o.bind("SUPER + SPACE", "Launch apps", "omarchy-shell shell toggle omarchy.launcher \"{}\"")
o.bind("SUPER + CTRL + E", "Emoji picker", "omarchy-shell shell toggle omarchy.emoji-picker \"{}\"") o.bind("SUPER + CTRL + E", "Emojis", "omarchy-shell shell toggle omarchy.emojis")
o.bind("SUPER + CTRL + C", "Capture menu", "omarchy-shell menu toggle capture") o.bind("SUPER + CTRL + C", "Capture menu", "omarchy-shell menu toggle capture")
o.bind("SUPER + CTRL + O", "Toggle menu", "omarchy-shell menu toggle toggle") o.bind("SUPER + CTRL + O", "Toggle menu", "omarchy-shell menu toggle toggle")
o.bind("SUPER + CTRL + H", "Hardware menu", "omarchy-shell menu toggle hardware") o.bind("SUPER + CTRL + H", "Hardware menu", "omarchy-shell menu toggle hardware")
+1 -1
View File
@@ -148,7 +148,7 @@ selected-border-alpha = 0.25
[menu] [menu]
# Cards, rows, and selected-row treatment. Alpha companions (where present) # Cards, rows, and selected-row treatment. Alpha companions (where present)
# go from 0 (invisible) to 1 (opaque). scrim is the full-screen dim layer # go from 0 (invisible) to 1 (opaque). scrim is the full-screen dim layer
# behind the card. The clipboard and emoji pickers inherit these tokens. # behind the card. Clipboard and emojis inherit these tokens.
background = "{{ background }}" background = "{{ background }}"
background-alpha = 1.0 background-alpha = 1.0
text = "{{ foreground }}" text = "{{ foreground }}"
+1 -1
View File
@@ -117,7 +117,7 @@ The shell exposes these tokens to QML via two singletons in
and per-surface roles (`Color.bar.*`, `Color.popups.*`, and per-surface roles (`Color.bar.*`, `Color.popups.*`,
`Color.tooltip.*`, `Color.notifications.*`, `Color.menu.*`, `Color.tooltip.*`, `Color.notifications.*`, `Color.menu.*`,
`Color.launcher.*`, `Color.imagePicker.*`, `Color.polkit.*`, `Color.launcher.*`, `Color.imagePicker.*`, `Color.polkit.*`,
`Color.lock.*`). The clipboard and emoji pickers share `Color.menu.*`. `Color.lock.*`). Clipboard and emojis share `Color.menu.*`.
- `Style` — structural tokens (`cornerRadius`), shared interactive - `Style` — structural tokens (`cornerRadius`), shared interactive
state tokens/helpers, spacing (`Style.spacing.*` / `Style.space(px)`), state tokens/helpers, spacing (`Style.spacing.*` / `Style.space(px)`),
the type scale (`Style.font.*`), and bar dimensions the type scale (`Style.font.*`), and bar dimensions
+2
View File
@@ -14,9 +14,11 @@ for config_file in "${config_files[@]}"; do
-e 's/omarchy\.app-launcher/omarchy.launcher/g' \ -e 's/omarchy\.app-launcher/omarchy.launcher/g' \
-e 's/omarchy\.battery-monitor/omarchy.battery/g' \ -e 's/omarchy\.battery-monitor/omarchy.battery/g' \
-e 's/omarchy\.clipboard-picker/omarchy.clipboard/g' \ -e 's/omarchy\.clipboard-picker/omarchy.clipboard/g' \
-e 's/omarchy\.emoji-picker/omarchy.emojis/g' \
-e 's/omarchy-app-launcher/omarchy-launcher/g' \ -e 's/omarchy-app-launcher/omarchy-launcher/g' \
-e 's/omarchy-battery-monitor/omarchy-battery/g' \ -e 's/omarchy-battery-monitor/omarchy-battery/g' \
-e 's/omarchy-clipboard-picker/omarchy-clipboard/g' \ -e 's/omarchy-clipboard-picker/omarchy-clipboard/g' \
-e 's/omarchy-emoji-picker/omarchy-emojis/g' \
-e 's/\[app-launcher\]/[launcher]/g' \ -e 's/\[app-launcher\]/[launcher]/g' \
-e 's/app-launcher\./launcher./g' \ -e 's/app-launcher\./launcher./g' \
"$config_file" "$config_file"
+1 -1
View File
@@ -15,7 +15,7 @@ User-installed plugins live alongside these conceptually but on disk under
| Bar settings | `omarchy.settings` | `panel` | `settings/SettingsPanel.qml` | | Bar settings | `omarchy.settings` | `panel` | `settings/SettingsPanel.qml` |
| Launcher | `omarchy.launcher` | `overlay` | `launcher/Launcher.qml` | | Launcher | `omarchy.launcher` | `overlay` | `launcher/Launcher.qml` |
| Image picker | `omarchy.image-picker` | `overlay` | `image-picker/ImagePicker.qml` | | Image picker | `omarchy.image-picker` | `overlay` | `image-picker/ImagePicker.qml` |
| Emoji picker | `omarchy.emoji-picker` | `overlay` | `emoji-picker/EmojiPicker.qml` | | Emojis | `omarchy.emojis` | `overlay` | `emojis/Emojis.qml` |
| Clipboard mgr | `omarchy.clipboard` | `overlay` | `clipboard/Clipboard.qml` | | Clipboard mgr | `omarchy.clipboard` | `overlay` | `clipboard/Clipboard.qml` |
| Omarchy menu | `omarchy.menu` | `menu` | `menu/Menu.qml` | | Omarchy menu | `omarchy.menu` | `menu` | `menu/Menu.qml` |
| Notifications | `omarchy.notifications` | `service` | `notifications/Service.qml` | | Notifications | `omarchy.notifications` | `service` | `notifications/Service.qml` |
-15
View File
@@ -1,15 +0,0 @@
{
"schemaVersion": 1,
"id": "omarchy.emoji-picker",
"name": "Emoji picker",
"version": "1.0.0",
"author": "Omarchy",
"description": "An emoji picker to copy or type emojis",
"kinds": [
"overlay"
],
"keepLoaded": true,
"entryPoints": {
"overlay": "EmojiPicker.qml"
}
}
@@ -19,7 +19,7 @@ Item {
property var filteredEmojis: [] property var filteredEmojis: []
// Shares the [menu] surface tokens themes that style the menu also // Shares the [menu] surface tokens themes that style the menu also
// style the emoji picker. Selected-cell colors composed in the // style emojis. Selected-cell colors composed in the
// singleton so consumers drop them straight into Rectangle bindings. // singleton so consumers drop them straight into Rectangle bindings.
property color background: Color.menu.background property color background: Color.menu.background
property color foreground: Color.menu.text property color foreground: Color.menu.text
@@ -56,7 +56,7 @@ Item {
function dismiss() { function dismiss() {
root.opened = false root.opened = false
if (root.shell && typeof root.shell.hide === "function") if (root.shell && typeof root.shell.hide === "function")
root.shell.hide((root.manifest && root.manifest.id) || "omarchy.emoji-picker") root.shell.hide((root.manifest && root.manifest.id) || "omarchy.emojis")
} }
function toggle() { function toggle() {
@@ -165,7 +165,7 @@ Item {
ListModel { id: displayModel } ListModel { id: displayModel }
FileView { FileView {
path: root.omarchyPath + "/shell/plugins/emoji-picker/emojis.json" path: root.omarchyPath + "/shell/plugins/emojis/emojis.json"
onLoaded: root.loadEmojis(text()) onLoaded: root.loadEmojis(text())
} }
PanelWindow { PanelWindow {
@@ -173,7 +173,7 @@ Item {
visible: root.opened visible: root.opened
anchors { top: true; bottom: true; left: true; right: true } anchors { top: true; bottom: true; left: true; right: true }
color: "transparent" color: "transparent"
WlrLayershell.namespace: "omarchy-emoji-picker" WlrLayershell.namespace: "omarchy-emojis"
WlrLayershell.layer: WlrLayer.Overlay WlrLayershell.layer: WlrLayer.Overlay
WlrLayershell.keyboardFocus: WlrKeyboardFocus.Exclusive WlrLayershell.keyboardFocus: WlrKeyboardFocus.Exclusive
exclusionMode: ExclusionMode.Ignore exclusionMode: ExclusionMode.Ignore
+15
View File
@@ -0,0 +1,15 @@
{
"schemaVersion": 1,
"id": "omarchy.emojis",
"name": "Emojis",
"version": "1.0.0",
"author": "Omarchy",
"description": "Search, copy, and type emojis",
"kinds": [
"overlay"
],
"keepLoaded": true,
"entryPoints": {
"overlay": "Emojis.qml"
}
}