Skip to content

fix: disable Hold mode on Linux when /dev/input permissions are missing#680

Open
xAlcahest wants to merge 1 commit intoOpenWhispr:mainfrom
xAlcahest:fix/linux-hold-mode-permissions
Open

fix: disable Hold mode on Linux when /dev/input permissions are missing#680
xAlcahest wants to merge 1 commit intoOpenWhispr:mainfrom
xAlcahest:fix/linux-hold-mode-permissions

Conversation

@xAlcahest
Copy link
Copy Markdown
Collaborator

Summary

On Linux, Hold mode (push-to-talk) requires read access to /dev/input/event* devices via the input group. Previously, Hold mode was always selectable even when the user lacked permissions, resulting in a broken hotkey with no feedback. Now the app proactively checks /dev/input permissions at startup and disables the Hold button when access is missing, showing setup instructions inline instead of waiting for the error to happen.

Changes

  • src/helpers/linuxKeyManager.js added hasInputPermissions() that checks if any /dev/input/event* file is readable by the process
  • src/helpers/ipcHandlers.js supportsPushToTalk now requires both binary availability and input device permissions
  • src/components/ui/ActivationModeSelector.tsx added pushDisabled prop to grey out the Hold button when unsupported
  • src/components/SettingsPage.tsx proactive permission check on mount, auto-revert to Tap on permission-denied, LinuxPttSetupInfo shown when Hold is disabled
  • src/components/OnboardingFlow.tsx same proactive check and disabled Hold button during onboarding
  • main.js auto-reverts activation mode to Tap on permission-denied to prevent the hotkey from staying broken

Fixes #611

@xAlcahest xAlcahest requested a review from gabrielste1n April 28, 2026 08:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Hold mode not working ZorinOS

1 participant