Buttons & actions¶
Each button runs one action. Pick it under Action in the button editor; the fields below change with the type. Every action runs on the PC, except Open profile and Back, which run on the phone.
Besides the normal tap, a button can have a long-press and a double-tap action, be a two-state button, show information (clock, weather, what's playing, a slider, AI usage...), take more than one cell and be pressed by an automation.
Keyboard shortcut, Open program, Script and HTTP request are created on the PC
For security, buttons that send keys, open programs, run scripts or make HTTP requests (including multi-actions with those steps) can only be created or changed in the configurator on the PC. The phone runs them normally.
Action types¶
On the PC¶
Send keys, open things and script Windows itself.
| Action | What it does |
|---|---|
| Keyboard shortcut | Sends a key combination to the focused window. |
| Open program | Opens a program, file, folder or URL. |
| Multi-action | Runs several steps in sequence, with delays and conditions. |
| Script | Runs a PowerShell or Python script or a .bat file, with arguments. |
| HTTP request | Calls a webhook or any API. |
| Windows | Switches the default audio device, locks, sleeps or turns the screen off. |
| Steam game | Opens an installed game, with its cover on the button. |
Media and audio¶
Control what's playing and how loud it is.
| Action | What it does |
|---|---|
| Media | Play/pause, next, previous, stop. |
| Mixer | Mutes apps; mutes or changes the volume of audio devices. |
| Spotify | Player, like, shuffle, playlists and the cover on the button. |
| Voicemeeter | Mute and gain of strips and buses, Macro Buttons, parameters. |
| Soundboard | Plays a sound into your mic. |
Streaming¶
Voice chat, your stream and the tools around it. Each one needs its integration set up once.
| Action | What it does |
|---|---|
| Discord | Voice controls and soundboard. |
| OBS | Scenes, recording, streaming and more. |
| Twitch | Marker, clip, ad, chat, poll and title. |
| YouTube | Live chat and viewers. |
| Streamer.bot | Runs a Streamer.bot action, with arguments. |
| VTube Studio | Triggers model hotkeys or loads a model. |
Lights and smart home¶
Devices on your network or in your smart-home hub.
| Action | What it does |
|---|---|
| Tuya | Smart Life lights, plugs and switches. |
| Home Assistant | Lights, plugs, scenes, scripts and sensors. |
| Philips Hue | Lights, rooms and scenes through the Hue Bridge. |
| Elgato Key Light | On/off, brightness and temperature of Elgato lights. |
| Govee | Govee lights over the LAN API. |
| MQTT | Publishes a message to your broker. |
Timers and navigation¶
| Action | What it does |
|---|---|
| Timer, pomodoro & counter | A live clock or count on the button. |
| Open profile | Opens another profile as a folder (on the phone). |
| Back | Returns from a folder (on the phone). |
Keyboard shortcut¶
Sends keys to the window that has focus on the PC, using the Windows SendKeys syntax plus #
for the Windows key: ^c is Ctrl+C, ^+s is Ctrl+Shift+S, %{F4} is Alt+F4, #d shows the
desktop. The full syntax, special keys and limitations are on Keyboard shortcuts.
Open program¶
Path accepts anything you could open from Run (Win+R): an .exe
(C:\Windows\System32\notepad.exe), a document, a folder or a URL (https://…, steam://…).
Multi-action¶
Runs several steps one after the other, each with a delay, and each optionally only when a condition holds (the stream is live, an app is open, it's a weekday...). You can also record the steps from the keyboard. See Multi-action.
Media¶
Controls the media session Windows is showing in its media overlay: Spotify, browsers, players.
Command: Play / Pause (default), Next track, Previous track, Stop. A play/pause button switches its icon live between ▶ and ⏸.
Mixer¶
| Operation | App target | Device target |
|---|---|---|
| Toggle mute / Mute / Unmute | ✓ | ✓ |
| Set volume (0–100) | — | ✓ |
| Volume up / down (step) | — | ✓ |
- App target: the process name without
.exe, e.g.Spotifyorchrome. It affects every audio stream of that app. Per-app volume is available on the phone's Audio tab. - Device target: Default follows Windows' current default device (choose output or input, i.e. speakers or microphone), or pick a specific device. Turning the volume up also unmutes the device.
Set an active colour to light the button up while the target is muted.
Open profile and back¶
Open profile shows another profile on top of the current one, like a folder. Folders can be nested. Back closes the current folder; the title-bar arrow does the same. Both actions run on the phone only.
Timer, pomodoro & counter¶
The button shows the time live. The clock runs on the PC, so every phone sees the same time and the end of a countdown is caught even with the phone's screen off.
| Type | Tap | At the end |
|---|---|---|
| Timer (countdown) | Start / pause. After it ends, a tap resets it. | Sound on the PC, vibration on the phone, and the button lights up in its active colour. |
| Stopwatch | Start / pause. | — |
| Pomodoro (focus and break) | Start / pause. Focus and break alternate on their own and the button counts cycles. | Alert at every phase change. |
| Counter | Adds the step. | — |
On tap changes what a tap does: Reset, Skip to the next phase (pomodoro), Add (counter) / Subtract (counter). With Controlled timer a button acts on another button's timer, for example a "reset" button next to the clock. Counters survive a PC restart.
Windows¶
| Action | What it does |
|---|---|
| Change the default audio device | Sets Windows' default output (or input). With Toggle with (optional) set, each tap switches between the two, e.g. headphones ↔ speakers. The button lights up while the chosen device is the default. |
| Lock the computer | Same as Win+L. |
| Sleep | Puts the PC to sleep. |
| Turn off the display | Turns the monitors off; moving the mouse turns them back on. |
HTTP request¶
Calls a URL from the PC: n8n, Home Assistant or IFTTT webhooks, or any API. Pick the method, the
URL, the headers (one per line, Name: value) and, for POST/PUT/PATCH, the body and its
format (JSON, form or text). The request has 10 seconds to answer; the result goes to DroidDeck's log.
Script¶
Runs a script on the PC, with no window. Script picks where it comes from:
- Written here: pick the Language (PowerShell, Python or Command Prompt
.bat) and type the Code in the button. DroidDeck saves it to%LocalAppData%\DroidDeck\scripts\and runs it from there. - A file on the PC: the File path of a
.ps1,.py,.bator.cmd.
Arguments (optional) are separated by spaces; use quotes for an argument with spaces
("my game" 2). They arrive in $args (PowerShell), sys.argv (Python) or %1, %2… (.bat), so one
script file can serve several buttons, each with its own arguments.
How scripts run
- PowerShell runs with
-NoProfile -ExecutionPolicy Bypass. Python uses thepylauncher from the official installer, orpythonfrom thePATH. The working folder is the script's folder. - A script that runs for more than 5 minutes is stopped.
- Output isn't shown on the button. Errors (non-zero exit code) go to DroidDeck's log. To show a value on a button, use the Command output info instead.
Created on the PC only
A script can do anything your Windows account can, so, like keyboard shortcuts, script buttons can only be created or changed in the configurator on the PC. The phone and browser decks run them normally.
Steam game¶
Lists the games installed in the PC's Steam (every library). Picking one gives the button the game's name and cover; tapping it launches the game through Steam. The cover comes from Steam's cache: if a game shows no image, open your Steam library once so it downloads the covers.
Size¶
Under Size in the editor, Width (cells) and Height (cells) make a button span up to 4 × 4 cells: a big mute button, a tall slider, a wide clock. The button's position is its top-left cell.
A large button never covers other buttons: it stops where another button is, and it's cut at the edge of the grid. To make room, move the neighbours first.
Long press and double tap¶
Besides the normal tap, a button can have one action for holding and another for double tapping (the editor's Long press and double tap section). They take the same action types as the tap.
- Example: a timer that starts on tap and resets on long press; an OBS scene on tap and recording on double tap.
- Only buttons with a double-tap action wait a moment (~0.3 s) before running the single tap, to tell them apart. Every other button reacts right away.
- On a button with a long-press action, holding runs it; to edit that button on the phone, use edit mode.
Two states¶
In the editor's Two states section:
- Toggle on each tap turns the button on with one tap and off with the next, for actions with no state of their own (a hotkey that toggles something in a game, for example). The state lives on the PC: every phone shows the same one and it survives a restart.
- Action when on (optional) runs on the tap that turns the button off. Example: one tap starts recording with a hotkey and the next sends the stop hotkey. Without it, the same action runs every time.
- Label when active and Icon when active change the look while the button is active, through the toggle or through the action's own state (Discord mute, OBS recording, a light on...). The active colour sits with the button's colours.
Button state¶
Some buttons reflect live state:
| Action | State shown |
|---|---|
| Media play/pause | ▶ / ⏸ icon |
| Mixer (app mute) | Volume icon and active colour while muted |
| Discord | Active colour while you are muted/deafened |
| OBS | Lit for the current scene, or while recording/streaming/virtual cam/replay buffer is on |
| Tuya | On/off, brightness level and the lamp's real colour |
| Timer | Time left or elapsed, pomodoro phase and active colour at the end |
| Windows (audio) | Active colour while the device is the default |
| Home Assistant | Lit while the entity is on (with the light's brightness and colour), or the sensor value |
| Spotify | Play/pause, liked, shuffle and repeat; the cover on "show what's playing" |
| Twitch / YouTube | Live and viewers, on "status only" |
| Two states | Active colour, label and icon while on |