obs-hotkey-1.0.16 is not a library.
obs-hotkey
A lightweight Rust daemon for controlling OBS Studio with global hotkeys on Wayland and X11.
Works on Wayland! Uses evdev for direct keyboard input capture, bypassing Wayland's security restrictions.
Features
- Wayland & X11 Support - Works on both display servers
- Single Static Binary - No runtime dependencies
- Global Hotkeys - Works even when OBS is not in focus
- Auto-start on Login - systemd user service integration
- Auto-reconnect - Automatically reconnects to OBS if it restarts
- Multi-keyboard - Monitors all connected keyboards
- Low Resource Usage - Minimal RAM and CPU
- F13-F24 Support - Use mouse extra keys as stream deck buttons
Installation
From crates.io
From GitHub Releases
Download a pre-built binary from the Releases page:
# amd64
From source
Setup
1. Enable OBS WebSocket Server
- Open OBS Studio
- Go to Tools → WebSocket Server Settings
- Check "Enable WebSocket server"
- Use default port 4455
- Disable authentication
2. Add yourself to the input group
# Log out and back in for changes to take effect
3. Run setup
This writes and enables the systemd user service.
Usage
obs-hotkey # run the daemon (default)
obs-hotkey setup # enable auto-start on login
obs-hotkey teardown # undo setup (stop + disable + remove service)
obs-hotkey status # show service state and config status
Global flags
--config <path>- Path to config file (all subcommands)
Teardown options
obs-hotkey teardown --purge- Also remove config directory
Default Hotkeys
| Key | Action |
|---|---|
| Scroll Lock | Toggle recording start/stop |
| Pause | Toggle recording pause/resume |
Customizing Hotkeys
Edit ~/.config/obs-hotkey/hotkeys.json:
Supported Keys
- Function keys:
f1throughf24 - Special keys:
scroll lock,pause,home,end,page up,page down,insert,delete
Available Actions
| Action | OBS Request | Notes |
|---|---|---|
toggle_recording |
ToggleRecord |
Start/stop recording |
toggle_pause |
ToggleRecordPause |
Pause/resume recording |
toggle_streaming |
ToggleStream |
Start/stop streaming |
screenshot |
SaveSourceScreenshot |
Saves PNG to screenshot_dir |
toggle_mute_mic |
ToggleInputMute |
Requires mic_name in config |
toggle_studio_mode |
SetStudioModeEnabled |
Toggles studio mode |
toggle_replay_buffer |
ToggleReplayBuffer |
Requires replay buffer enabled |
save_replay |
SaveReplayBuffer |
Saves current replay buffer |
Managing the Service
# Check status
# View live logs
# Restart
# Stop
Building
# Build release binary
# Build with all optimizations
# Cross-compile for ARM64
Requirements
- Linux (Wayland or X11)
- OBS Studio 28+ with WebSocket enabled
- Membership in the
inputgroup
Uninstall
# Stop and disable
# Remove binary
License
MIT