PhoneRC icon

PhoneRC

Turn your Android phone into a Bluetooth remote control for TVs, computers, and streaming devices. Touchpad, D-pad, media controls, keyboard, and app shortcuts — no apps needed on the receiving device.

Getting Started

Requirements

  • Android phone running Android 10 (API 29) or later
  • A target device with Bluetooth (TV, computer, streaming box, etc.)
  • For Unicode text input: a computer running the PhoneRC Companion (see Companion Setup)

Install & Launch

  1. Install PhoneRC from the Google Play Store.
  2. On first launch, the app will request Bluetooth permissions. Grant all requested permissions — the app needs these to function as a Bluetooth keyboard and mouse.
  3. The app will start its Bluetooth HID service automatically. You'll see a persistent notification indicating PhoneRC is active.

Pairing Your Phone

  1. On your target device (computer, TV, streaming box, etc.), open Bluetooth settings.
  2. Make sure Bluetooth is enabled and set to discoverable/scanning.
  3. Look for your device name in the list of available devices.
  4. Select it to pair. Accept any pairing confirmation on both devices.
  5. Once paired, PhoneRC connects automatically. The top bar shows the connected device name.
Connected top bar showing device name

PhoneRC top bar showing the connected device name.

App Overview

The app is laid out like a physical TV remote control:

┌─────────────────────────────┐ │ Top Bar │ Power, Connection Status, Settings ├─────────────────────────────┤ │ Swipeable Pages (1-6) │ Swipe left/right │ + Page Indicator Dots │ ├─────────────────────────────┤ │ Touchpad or D-Pad │ + Edge Sliders ├─────────────────────────────┤ │ Mouse Buttons │ Left Click / Right Click ├─────────────────────────────┤ │ Bottom Bar │ Back / Home └─────────────────────────────┘
Full app overview

Full-screen capture showing the main layout with the App Shortcuts page visible.

Top Bar

ButtonAction
Red circle (Power)Sends power/logout command (Ctrl+Cmd+Q on Mac, Power key on Windows/Linux)
Connection StatusShows the name of the currently connected device
Gear iconOpens Settings dialog

Bottom Bar

ButtonAction
BackSends ESC key
HomeSends Home key

Page Indicator

The row of dots between the swipeable pages and the touchpad shows which page you're on. Swipe left or right to navigate between 6 available pages.

TV Remote Pages

Page 1: App Shortcuts

A grid of streaming app launcher buttons with brand colors. Tap a button to launch the corresponding app or website on your connected device.

ButtonDefault Action
TV+Apple TV+
Disney+Disney+
NetflixNetflix
PrimePrime Video
YouTubeYouTube
SpotifySpotify
HuluHulu
HBOHBO Max
IPTVLaunches IPTV player (Kodi by default in Companion config)

These buttons send keyboard shortcuts (Ctrl+Shift+Alt + a key) that the Companion maps to URLs. See Companion Setup for details.

The page also includes a + tile for adding your own app shortcut buttons. Custom buttons appear in the same grid and can be edited or deleted later.

IPTV Shortcut (Kodi Default)

PhoneRC includes a dedicated IPTV shortcut that sends Ctrl+Shift+Alt+I.

  • In the default Companion configuration, this shortcut launches Kodi as the IPTV app.
  • macOS default command: open -a Kodi
  • Windows default command: start "" "C:\Program Files\Kodi\kodi.exe"
  • Linux default command: kodi

If Kodi is installed in a non-default location, update the IPTV entry in shortcut-launcher/config.json.

Long-press any existing button to customize its label, key, and modifiers. Tap the + tile to add a new custom app button. See Customizing Buttons.

App Shortcuts page

App Shortcuts page showing streaming app buttons, brand colors, and the + tile for adding custom shortcuts.

Page 2: Channel & Media Controls

Designed for TV and media player control with an all-in-one media layout:

  • Top Row Controls123 (Channel) opens a 0-9 overlay for entering TV channel numbers, FULL (Fullscreen) sends fullscreen toggle, Subs (CC Icon) sends subtitle toggle, and Info (i Icon) sends info overlay.
  • Middle Section — Additional customizable channel shortcut tiles
  • Bottom Row (Playback) — Previous Track, Play/Pause, Next Track rocker buttons
Channel Controls page

Channel Controls page showing number pad button, fullscreen, subs, info, and playback controls.

Number pad overlay

The number pad overlay dialog with 0-9 buttons.

Keyboard Pages

Page 3: Text Input

Type or paste text on your phone, then send it to the connected device.

Text Input page

Text Input page showing the text field, mode toggle, and send button.

ControlDescription
Text fieldType or paste the text you want to send
Clear (X) buttonClears all text in the field
Eye iconToggle text visibility (useful for passwords)
Mode toggleSwitch between Unicode Companion and HID Keyboard modes
"Clear after send"Automatically clears the text field after a successful send
Send buttonSends the text to the connected device

HID Keyboard mode sends text as individual key presses. It works without companion software but only supports ASCII characters such as A-Z, 0-9, and basic punctuation. Emojis and international characters are not supported.

Unicode Companion mode sends text through a Bluetooth companion channel. It supports all Unicode characters including emojis, accented letters, and international scripts. This mode requires the Companion to be running on the host computer.

Page 4: Common Keys

Essential keyboard keys for navigation and editing.

KeyAction
ESCEscape
TABTab
BackspaceDelete backward
DELDelete forward
Arrow keysUp, Down, Left, Right
EnterEnter/Return
SearchCmd+Space (Mac), Win+S (Windows), Super (Linux)
Command toggleHold to combine with other keys (e.g., Cmd+Tab)
Common Keys page

Page 5: Function Keys

A grid of F1 through F12 keys.

Function Keys page

Page 6: Keyboard Shortcuts

Pre-programmed shortcuts that automatically adapt to your selected platform (Mac/Windows/Linux):

CategoryShortcuts
EditSelect All, Find, Replace, Copy, Cut, Paste, Undo, Redo
TabsNew Tab, Close Tab, Reopen Tab, Next Tab, Prev Tab
DesktopNext Desktop, Prev Desktop
NavigationBack, Forward, Refresh, Hard Refresh
WindowZoom In, Zoom Out, Fullscreen, Quit
SystemPrevious App, Find App, Lock Screen
Keyboard Shortcuts page

Touchpad & D-Pad

The lower section has two modes, toggled by a small icon button at the bottom-left corner. It also features Edge Sliders for quick adjustments:

  • Left Edge (Vertical) — Scroll slider
  • Right Edge (Vertical) — Volume slider (HID consumer reports)
  • Bottom Edge (Horizontal) — Zoom slider

Touchpad Mode (Default)

GestureAction
Single-finger dragMove mouse cursor
TapLeft click
Two-finger vertical dragScroll up/down
Two-finger pinchZoom in/out
Touchpad mode

D-Pad Mode

A directional pad for arrow-key navigation, ideal for TVs and media interfaces.

ButtonAction
CenterSelect / Enter
Up/Down/Left/RightArrow key navigation
D-Pad mode

Mouse Buttons

ButtonAction
Left ClickLeft mouse click. Press and hold, then drag on the touchpad to perform a drag operation. The button changes its label to "Dragging" and becomes highlighted when active.
Right ClickRight mouse click (context menu)

Settings

Tap the gear icon in the top bar to open Settings.

Devices

  • Refresh — Rescan for paired and saved Bluetooth devices
  • Clear Saved — Remove all previously saved device records
  • Device list — Shows all discovered devices with connection status. Tap a device to connect, or use the disconnect/remove buttons.

Platform

Select the operating system of your connected device: Mac, Windows, or Linux. This affects which keyboard shortcuts are sent (e.g., Cmd vs Ctrl). The platform setting is saved per device.

Scroll Settings

SettingDescriptionRange
FrictionHow quickly scrolling decelerates0.7 – 0.98
SensitivityCursor responsiveness0.1 – 1.0
Max SpeedMaximum scroll velocity cap1 – 20
Input ScaleTouch deltas to scroll distance0.05 – 1.0
Max Events/secThrottle scroll events1 – 50
Velocity-sensitivePhysics-based accelerationOn/Off

Presets: Slow, Normal, Fast, and Reset (restore defaults).

Companion Setup (Unicode Text Input)

The PhoneRC Companion is a Python script that runs on your computer. It enables two features:

  1. App Shortcut Launching — Maps the keyboard shortcuts from the App Shortcuts page to open streaming websites in your browser
  2. Unicode Text Input — Receives full Unicode text (including emojis) from the phone's Text Input page via Bluetooth RFCOMM

Prerequisites

  • Python 3.8 or later
  • Your phone already paired with the computer via Bluetooth

Installation

Download the companion for your platform from the Downloads section below, extract, then run:

bash
cd shortcut-launcher
pip install -r requirements.txt

Verify the installation:

bash
python shortcut_launcher.py --self-test
text
python shortcut_launcher.py --self-test
PhoneRC Launcher Self-Test
============================================================
Platform: Darwin
pynput: available
companion backend: macos-helper
companion supported: yes
companion detail: Swift helper includes an RFCOMM service skeleton and structured stdio bridge
macOS helper path: /Users/U1/shortcut-launcher/macos-helper/.build/release/PhoneRCCompanionHelper
macOS helper present: yes
macOS helper runnable: yes
macOS helper stdio bridge: yes
macOS helper IPC protocol: 1
pybluez-compatible bluetooth: missing
python executable: /Users/U1/shortcut-launcher/.venv/bin/python
pyperclip: available
xdotool: not-applicable
config.json: present
AutoHotkey launcher file: present

Running the Companion

bash
# App shortcut hotkeys only
python shortcut_launcher.py

# Unicode text companion only
python shortcut_launcher.py --companion

# Both hotkeys and Unicode text (recommended)
python shortcut_launcher.py --both
text
python shortcut_launcher.py --both --verbose
Loaded config from: /Users/U1/shortcut-launcher/config.json

Registered shortcuts:
------------------------------------------------------------
  CTRL + SHIFT + ALT + 1         -> Apple TV+ (https://tv.apple.com)
  CTRL + SHIFT + ALT + 2         -> Disney+ (https://www.disneyplus.com)
  CTRL + SHIFT + ALT + N         -> Netflix (https://www.netflix.com)
  CTRL + SHIFT + ALT + 4         -> Prime Video (https://www.amazon.com/gp/video/storefront)
  CTRL + SHIFT + ALT + T         -> YouTube (https://www.youtube.com)
  CTRL + SHIFT + ALT + 6         -> Spotify (https://www.spotify.com)
  CTRL + SHIFT + ALT + 7         -> Hulu (https://www.hulu.com)
  CTRL + SHIFT + ALT + 8         -> HBO Max (https://play.max.com)
  CTRL + SHIFT + ALT + I         -> IPTV ()
------------------------------------------------------------

9 shortcut(s) active.
  [companion:listening] RFCOMM service published on channel 1
  [companion:ready] stdio bridge ready on RFCOMM channel 1
  [companion:listening] macOS companion helper started from /Users/U1/shortcut-launcher/macos-helper/.build/release/PhoneRCCompanionHelper
Companion listener started alongside hotkeys.

Running on: Darwin
Note (macOS): You may need to grant Accessibility access
  System Settings -> Privacy & Security -> Accessibility

Listening for shortcuts... Press Ctrl+C to quit.

How It Works

  1. When you tap an App Shortcut button (e.g., Netflix), the phone sends a keyboard shortcut (Ctrl+Shift+Alt+N) over Bluetooth HID.
  2. The companion's hotkey listener intercepts this shortcut and opens the corresponding URL in your default browser.
  3. When you send text from the Text Input page in Unicode mode, the phone connects via Bluetooth RFCOMM to the companion, which pastes the text using the clipboard.

IPTV Integration Details

  • IPTV is configured as a command shortcut rather than a URL in shortcut-launcher/config.json.
  • The default command target is Kodi on all supported desktop platforms.
  • You can replace the command with any IPTV player executable or script if you prefer another app.

Platform-Specific Notes

macOS

  • For RFCOMM support, build the native macOS helper:
bash
cd shortcut-launcher/macos-helper
swift build -c release
  • Alternatively, install native shortcuts: python shortcut_launcher.py --install
  • The companion needs Accessibility permission: System Settings > Privacy & Security > Accessibility
macOS Accessibility settings

Windows

  • Install AutoHotkey v2 for native shortcut support, then run python shortcut_launcher.py --install
  • Double-click phonerc_shortcuts.ahk to start. Copy it to your Startup folder for auto-start.
  • Without AutoHotkey, keep python shortcut_launcher.py --both running.

Linux

  • GNOME: Shortcuts are installed via dconf: python shortcut_launcher.py --install
  • Other DEs (KDE, XFCE): Desktop files are created in ~/.local/share/applications/. Add custom keyboard shortcuts in your DE's settings pointing to ~/.local/bin/phonerc-* scripts.

Customizing Shortcuts

Edit shortcut-launcher/config.json to change URLs, add new shortcuts, or modify key combinations:

json
{
    "shortcuts": [
        {
            "name": "Netflix",
            "keys": ["ctrl", "shift", "alt", "n"],
            "url": "https://www.netflix.com"
        },
        {
            "name": "IPTV",
            "keys": ["ctrl", "shift", "alt", "i"],
            "command": {
                "darwin": "open -a Kodi",
                "windows": "start \"\" \"C:\\Program Files\\Kodi\\kodi.exe\"",
                "linux": "kodi"
            }
        }
    ]
}

After editing, re-run --install to update native shortcuts.

Companion Text Input Limitations

  • Unicode Companion mode uses the clipboard to paste text, so it cannot type into secure fields (e.g., password prompts). Use HID Keyboard mode for those.
  • The companion connection has a 10-second timeout. If it can't connect, the app falls back to HID Keyboard mode automatically.

Companion Downloads

Download the PhoneRC Companion for your platform. Each archive contains the Python scripts, configuration file, and platform-specific helpers. Binaries will be included in future releases.

macOS

Includes macOS helper source, RFCOMM support, and Automator integration

Download macOS

Windows

Includes AutoHotkey script and batch launcher for native shortcuts

Download Windows

Linux

Python scripts with GNOME dconf integration and desktop file support

Download Linux
Note: All platforms require Python 3.8+. After extracting, run pip install -r requirements.txt to install dependencies, then python shortcut_launcher.py --self-test to verify the setup.

Customizing Buttons

Many buttons on PhoneRC can be customized by long-pressing them.

PageCustomizable Buttons
App ShortcutsAll built-in app launcher buttons, plus any custom buttons you add from the + tile
Channel ControlsSubs, Info, and channel buttons

On the App Shortcuts page, you can also tap the + tile to create a new shortcut button.

How to Customize

  1. Long-press any customizable button, or tap the + tile on the App Shortcuts page to create a new one.
  2. In the dialog that appears:
    • Label — Enter a custom name or emoji
    • Key — Type the key name (A-Z, 0-9, F1-F12, Enter, Space, etc.). Auto-complete suggestions appear as you type.
    • Modifiers — Comma-separated list: Ctrl, Shift, Alt, Cmd, RCtrl, RShift, RAlt, RCmd
    • Color — For custom app buttons, choose one of the built-in swatch colors: Gray, Red, Blue, Green, Orange, Purple, Teal, or Pink.
  3. Tap Save to update an existing button, or Add to create a new custom app shortcut.
  4. For custom app buttons, use Delete Button to remove them from the grid.

Example: To make a button send Ctrl+Shift+Alt+S for Spotify: Label = Spotify, Key = S, Modifiers = Ctrl,Shift,Alt

Customizations are saved and persist between app sessions, including the selected color for custom app buttons.

Troubleshooting

Phone won't pair

  • Make sure Bluetooth is enabled on both devices.
  • Ensure the target device is in pairing/discoverable mode.
  • Try removing PhoneRC from the target's paired devices list and pairing again.
  • Restart the PhoneRC app.

"Disconnected" in the top bar

  • Open Settings (gear icon) and tap Refresh to rescan.
  • Make sure the target device's Bluetooth is on and within range.
  • Check that PhoneRC is still listed as a paired device on the target.

Keys not working correctly

  • Check the Platform setting in Settings. Make sure it matches your target device's OS (Mac/Windows/Linux).

App shortcuts don't open websites

  • The App Shortcuts page needs the Companion running on the target computer. See Companion Setup.
  • Run python shortcut_launcher.py --self-test to verify the companion is configured correctly.
  • If using native shortcuts (--install), verify with python shortcut_launcher.py --status.

IPTV/Kodi doesn't launch

  • Verify Kodi is installed on the target computer.
  • Check the IPTV shortcut entry in shortcut-launcher/config.json and confirm the platform command path is valid.
  • Run python shortcut_launcher.py --both --verbose and confirm the CTRL + SHIFT + ALT + I -> IPTV mapping appears.

Unicode text not working

  • Make sure the Companion is running with --companion or --both flag.
  • Switch to Unicode Companion mode using the mode toggle on the Text Input page.
  • Run --self-test to check Bluetooth RFCOMM support.
  • If the companion can't connect, the app falls back to HID Keyboard mode (ASCII only).

Scrolling feels too fast/slow

  • Open Settings and adjust the Scroll settings, or try a preset (Slow/Normal/Fast).

Privacy Policy

PhoneRC does not collect, store, or transmit any personal data. The application operates entirely locally on your device. All Bluetooth permissions are used solely for HID functionality.

Read Full Privacy Policy