Proof Portal

Project overview

Omarchy

ProbeLabs65 findings · 95 requirements

A proof layer — requirements, tests and verified fixes — for two of Omarchy's subsystems: the application menu (launcher scripts, QML model, JSONC config, search and selection) and the lock screen (lock scripts, QML, PAM authentication). Scope is deliberately limited to those components of omacom/omarchy; the rest of the distribution is not covered.

Inbox
ReportR-5311GitHub issuePublicReceived

ChatGPT popup shortcut rejected by portal: “An app id is required”; transparent popup receives border

Reported by warpek · filed Oct 10, 2026Closed upstream on 2026-10-10 by its own reporter warpek. GitHub close reason: completed. Closed by its own reporter — not by itself evidence of a fix.

Received and recorded verbatim. Nothing has been checked yet.

At a glance

1 · What is claimed?
Only the report text below — no validator has restated it as checkable claims yet.
2 · What does it affect?
Not yet mapped to any requirement or component.
3 · Is it reproducible?
No validation has been run yet.
4 · What remains unclear?
  • Not validated yet: no claims, no reproducer.
5 · What happens next?
Our staff decide whether the report is valid. Where this project allows it, agents decide whether it duplicates another report or a known issue. No decision has been recorded yet.

Original report

ChatGPT popup shortcut rejected by portal: “An app id is required”; transparent popup receives borderrevision 1 · captured 2026-10-10 18:05 UTC via poll

System details

  • Omarchy 4.0.4-1
  • Package: openai-codex-desktop 26.1007.21434-1 (provides chatgpt; packager: Omarchy)
  • Hyprland 0.56.2-2, native Wayland session
  • xdg-desktop-portal 1.22.1-2
  • xdg-desktop-portal-hyprland 1.4.1-2
  • Kernel 7.2.5-3-omarchy, x86_64
  • Intel Core i5-5250U; Intel HD Graphics 6000

What's wrong?

The ChatGPT desktop popup shortcut saves in Settings but pressing it does nothing. On this installation, the app's GlobalShortcuts portal session was rejected with “An app id is required”. After working around the identity problem and adding the Hyprland global binding, the popup works, but its transparent outer surface receives a large rectangular compositor border.

This report concerns the packaged desktop application's integration. The portal rejection and local workaround are verified; whether the permanent identity fix belongs in Omarchy packaging or the upstream runtime needs maintainer investigation.

Reproduction

  1. Launch the packaged chatgpt application on Omarchy/Hyprland.
  2. Assign the popup shortcut to Ctrl+Alt+Shift+G in Keyboard Shortcuts.
  3. Confirm the saved entry in ~/.codex/keybindings.json:
   [{"command":"hotkeyWindow","key":"Ctrl+Alt+Shift+G"}]
  1. Press the shortcut. No popup appears.
  2. Fully quit and relaunch with chatgpt --ozone-platform=x11; the shortcut still does nothing. The XWayland window was verified, so this was not merely a second launch handing off to an existing Wayland process.
  3. Temporarily changing the shortcut to Ctrl+Shift+G also failed. The original binding was restored.

Expected: the popup opens, or Settings reports a registration failure and any required compositor configuration.

Captured registration failure

A session-bus trace captured requests from the actual ChatGPT process, with the sender associated with that process through D-Bus. Relevant excerpt, with transient identifiers omitted:

interface=org.freedesktop.portal.GlobalShortcuts
member=CreateSession
session_handle_token="chromium_global_shortcuts"

error_name=org.freedesktop.portal.Error.NotAllowed
"An app id is required"

The error reply matched the CreateSession request serial, and it occurred on repeated registration attempts.

The app process was in a systemd user scope named app-org.chromium.Chromium-<pid>.scope. The installed desktop entries included chatgpt.desktop and chromium.desktop, but there was no org.chromium.Chromium.desktop.

This is consistent with the portal's host-app lookup: it derives the app ID from the systemd unit and requires the corresponding desktop entry. See xdg-desktop-portal 1.22.1, get_app_from_pid.

No conflicting Hyprland binding was found for Ctrl+Alt+Shift+G before the workaround; an X11 probe also found the combination ungrabbed.

Verified local workaround

  1. Add a hidden compatibility entry at ~/.local/share/applications/org.chromium.Chromium.desktop:
   [Desktop Entry]
   Name=Chromium
   Type=Application
   Exec=/usr/bin/chromium %U
   Icon=chromium
   NoDisplay=true
  1. Fully quit ChatGPT and reopen normally, using native Wayland.
  2. The popup action then appears in hyprctl -j globalshortcuts.
  3. Bind Ctrl+Alt+Shift+G to that action in ~/.config/hypr/bindings.lua:
   o.bind("CTRL + ALT + SHIFT + G", "ChatGPT popup",
     hl.dsp.global("<name returned by hyprctl globalshortcuts>"))
  1. Reload Hyprland and verify there are no config errors. The user confirmed that the shortcut now opens the popup.

The placeholder above must be replaced with the registered action's actual name. This binding step follows Hyprland's documented global-shortcut procedure; it is separate from the identity rejection.

The hidden Chromium entry is a compatibility workaround, not a proposed permanent application identity. Ideally the runtime and installed desktop entry should agree on a ChatGPT-specific identity.

Popup appearance after registration is fixed

The native Wayland popup is a floating 470×290 window. Its visible rounded composer occupies the lower part; the rest of the surface is transparent. Hyprland outlines the entire surface with its normal border.

Both the main window and popup report class chatgpt, title ChatGPT, and empty xdgTag/xdgDescription, so they cannot be distinguished by those identifiers.

This user-level rule fixed the appearance:

o.window({ class = "^(chatgpt|Chatgpt)$", float = true }, {
  border_size = 0,
  no_shadow = true,
  no_blur = true,
})

After reload, the live popup properties were border_size=0, no_shadow=true, and no_blur=true; the main tiled window retained border_size=2. The user confirmed the appearance was fixed. Limitation: this rule also affects any other floating ChatGPT window. A distinct popup identifier upstream would enable a narrower rule.

Related reports / duplicate check

Searched Omarchy issues for ChatGPT, hotkeyWindow, the exact portal error, and org.chromium.Chromium; no matching report found.

Related upstream reports, with different documented failure modes:
- https://github.com/openai/codex/issues/38126 — voice shortcut registration failures on earlier builds; no matching portal identity error in the report/comments.
- https://github.com/openai/codex/issues/45300 — hotkeyWindow causes SIGTRAP, whereas this case silently fails registration.

Targeted diagnostic evidence is included above. The original screenshot and full app logs contain unrelated desktop/conversation content and are omitted.

Filed with Codex at the user's explicit request after local diagnosis and verification.

View raw text
### System details

- Omarchy `4.0.4-1`
- Package: `openai-codex-desktop 26.1007.21434-1` (provides `chatgpt`; packager: Omarchy)
- Hyprland `0.56.2-2`, native Wayland session
- `xdg-desktop-portal 1.22.1-2`
- `xdg-desktop-portal-hyprland 1.4.1-2`
- Kernel `7.2.5-3-omarchy`, x86_64
- Intel Core i5-5250U; Intel HD Graphics 6000

### What's wrong?

The ChatGPT desktop popup shortcut saves in Settings but pressing it does nothing. On this installation, the app's GlobalShortcuts portal session was rejected with **“An app id is required”**. After working around the identity problem and adding the Hyprland global binding, the popup works, but its transparent outer surface receives a large rectangular compositor border.

This report concerns the packaged desktop application's integration. The portal rejection and local workaround are verified; whether the permanent identity fix belongs in Omarchy packaging or the upstream runtime needs maintainer investigation.

#### Reproduction

1. Launch the packaged `chatgpt` application on Omarchy/Hyprland.
2. Assign the popup shortcut to `Ctrl+Alt+Shift+G` in Keyboard Shortcuts.
3. Confirm the saved entry in `~/.codex/keybindings.json`:
   ```json
   [{"command":"hotkeyWindow","key":"Ctrl+Alt+Shift+G"}]
   ```
4. Press the shortcut. No popup appears.
5. Fully quit and relaunch with `chatgpt --ozone-platform=x11`; the shortcut still does nothing. The XWayland window was verified, so this was not merely a second launch handing off to an existing Wayland process.
6. Temporarily changing the shortcut to `Ctrl+Shift+G` also failed. The original binding was restored.

Expected: the popup opens, or Settings reports a registration failure and any required compositor configuration.

#### Captured registration failure

A session-bus trace captured requests from the actual ChatGPT process, with the sender associated with that process through D-Bus. Relevant excerpt, with transient identifiers omitted:

```text
interface=org.freedesktop.portal.GlobalShortcuts
member=CreateSession
session_handle_token="chromium_global_shortcuts"

error_name=org.freedesktop.portal.Error.NotAllowed
"An app id is required"
```

The error reply matched the CreateSession request serial, and it occurred on repeated registration attempts.

The app process was in a systemd user scope named `app-org.chromium.Chromium-<pid>.scope`. The installed desktop entries included `chatgpt.desktop` and `chromium.desktop`, but there was no `org.chromium.Chromium.desktop`.

This is consistent with the portal's host-app lookup: it derives the app ID from the systemd unit and requires the corresponding desktop entry. See [xdg-desktop-portal 1.22.1, get_app_from_pid](https://github.com/flatpak/xdg-desktop-portal/blob/1.22.1/src/xdp-app-info-host.c#L151-L181).

No conflicting Hyprland binding was found for Ctrl+Alt+Shift+G before the workaround; an X11 probe also found the combination ungrabbed.

#### Verified local workaround

1. Add a hidden compatibility entry at `~/.local/share/applications/org.chromium.Chromium.desktop`:
   ```ini
   [Desktop Entry]
   Name=Chromium
   Type=Application
   Exec=/usr/bin/chromium %U
   Icon=chromium
   NoDisplay=true
   ```
2. Fully quit ChatGPT and reopen normally, using native Wayland.
3. The popup action then appears in `hyprctl -j globalshortcuts`.
4. Bind Ctrl+Alt+Shift+G to that action in `~/.config/hypr/bindings.lua`:
   ```lua
   o.bind("CTRL + ALT + SHIFT + G", "ChatGPT popup",
     hl.dsp.global("<name returned by hyprctl globalshortcuts>"))
   ```
5. Reload Hyprland and verify there are no config errors. The user confirmed that the shortcut now opens the popup.

The placeholder above must be replaced with the registered action's actual name. This binding step follows [Hyprland's documented global-shortcut procedure](https://wiki.hypr.land/configuring/core/binds/globals/); it is separate from the identity rejection.

The hidden Chromium entry is a compatibility workaround, not a proposed permanent application identity. Ideally the runtime and installed desktop entry should agree on a ChatGPT-specific identity.

#### Popup appearance after registration is fixed

The native Wayland popup is a floating 470×290 window. Its visible rounded composer occupies the lower part; the rest of the surface is transparent. Hyprland outlines the entire surface with its normal border.

Both the main window and popup report class `chatgpt`, title `ChatGPT`, and empty xdgTag/xdgDescription, so they cannot be distinguished by those identifiers.

This user-level rule fixed the appearance:

```lua
o.window({ class = "^(chatgpt|Chatgpt)$", float = true }, {
  border_size = 0,
  no_shadow = true,
  no_blur = true,
})
```

After reload, the live popup properties were `border_size=0`, `no_shadow=true`, and `no_blur=true`; the main tiled window retained `border_size=2`. The user confirmed the appearance was fixed. Limitation: this rule also affects any other floating ChatGPT window. A distinct popup identifier upstream would enable a narrower rule.

#### Related reports / duplicate check

Searched Omarchy issues for ChatGPT, hotkeyWindow, the exact portal error, and org.chromium.Chromium; no matching report found.

Related upstream reports, with different documented failure modes:
- https://github.com/openai/codex/issues/38126 — voice shortcut registration failures on earlier builds; no matching portal identity error in the report/comments.
- https://github.com/openai/codex/issues/45300 — hotkeyWindow causes SIGTRAP, whereas this case silently fails registration.

Targeted diagnostic evidence is included above. The original screenshot and full app logs contain unrelated desktop/conversation content and are omitted.

Filed with Codex at the user's explicit request after local diagnosis and verification.

Validation

Not checked yet. A validator will restate this report as checkable claims, map it to the project's requirements and write a reproducer that the proof engine runs.

Linked

Not linked to any known issue, other report or change yet.

Decision

Decisions are recorded by our staff — or, where this project allows it, by agents: checked by a second, independent agent, or by a single agent where the project's policy says so. Any decision reached so far is shown below.

No decision has been recorded yet.