본문 바로가기

프로그래밍/기타

SoftDeck — An Open-Source App That Turns Your Numpad Into a Personal Stream Deck

 

 

 

Download: https://github.com/LEEASIMIR/SoftDeck/releases/tag/0.1.1

 

Want a Stream Deck but don’t want to buy extra hardware? What if you could turn the numpad you already have into one?

SoftDeck is a Windows desktop app that turns your numpad into a custom button deck. Launch apps, send hotkeys, control media, record macros, monitor your system — all from a single numpad key. Zero install — just double-click SoftDeck.bat and you’re done.


Why I Built This

We all have repetitive tasks we do constantly. Adjusting volume, skipping tracks, launching frequently-used apps, typing common shortcuts… Hunting through menus or memorizing complex key combos every time is tedious.

Dedicated devices like Stream Deck exist, but they cost money and take up desk space. So I decided to repurpose the numpad that’s already on your keyboard. Num Lock OFF = button deck, Num Lock ON = normal number input — one keyboard, two purposes.

Prefer mouse-only? Widget Mode has you covered. Even without a numpad, you can click the on-screen buttons to do everything.


Key Features

Two Input Modes

Widget Mode (default) — Mouse-only widget. The window stays visible at all times. No numpad capture — just click. Works on laptops and tenkeyless keyboards too.

Shortcut Mode — Direct numpad control. Num Lock OFF shows the window and maps numpad keys to buttons. Num Lock ON hides the window and restores normal number input.

Numpad = Button Deck (Shortcut Mode)

The physical numpad layout maps 1:1 to the on-screen button grid.

Toggle Num Lock to switch modes instantly. Need to type numbers? Just turn Num Lock on.

12 Action Types

Each button can do a different thing.

Action What it does
Launch App Open any program (searchable from running processes or Start Menu)
Hotkey Send keyboard shortcuts (Ctrl+C, Alt+F4, etc.)
Text Input Auto-type text (clipboard paste mode supported)
Open URL Open a website in your default browser
Open Folder Open a folder in File Explorer
Run Command Execute a shell command
Macro Run multiple actions in sequence (with recording)
System Monitor Live CPU/RAM usage display
Navigate Folder / Parent / Back Move between folders
Media Control 10 commands: play/pause, volume, mute, mic, device switch, and more

Macro Recording

Automate complex, repetitive workflows. Hit the Record button and your keyboard + mouse inputs are captured automatically, including timing delays. Supports 8 step types: key press/release, mouse click, scroll, and more.

Media Control

Full media control via the plugin system. 10 commands:

  • Play/Pause, Next/Previous track, Stop
  • Volume Up/Down, Mute toggle
  • Microphone Mute toggle
  • Now Playing — shows current track info
  • Audio Device Switch — cycle through audio output devices

Play/Pause, Mute, and Mic Mute buttons automatically change icons based on current state.

Infinite Nested Folders

9 buttons not enough? Create folders. Folders inside folders, as deep as you want — unlimited buttons. The left tree panel shows the full folder structure at a glance, and you can drag-and-drop to reorder.

Auto Folder Switch

Map apps to folders. When a mapped app gets focus, the folder switches automatically. For example, create a Photoshop folder and map photoshop.exe — the moment you click into Photoshop, its shortcuts appear.

App Finder

No need to manually type exe paths when setting up Launch App. Click Find App to browse running processes or Start Menu shortcuts. Path, working directory, and icon are filled in automatically.

10 Themes

Dark, Light, Solarized Light, Midnight, Emerald, Violet, Nord, Dracula, Amber, Cyber — 10 built-in themes, switchable instantly from Settings.

Never Steals Focus

Clicking a SoftDeck button doesn’t steal focus from your active app. Adjust volume mid-game, fire hotkeys while writing a document — your workflow stays uninterrupted. Works perfectly with borderless windowed games too.

Export / Import

Export your entire config as JSON. You can also export/import individual folders — share button setups with others or move them between PCs. Icon files are embedded as base64, so everything is self-contained in a single file.


Installation & Running

No Install Required — One Bat File

  1. Download or clone the repository
  2. Double-click SoftDeck.bat

On first run, it automatically downloads an embedded Python distribution + all dependencies. After that, it launches instantly. No Python installation needed.

Running from Source

If you already have Python installed:

pip install -r requirements.txt

python main.py

Windows only (uses pywin32, pycaw, and other Windows APIs).

Default Config Preview

Works out of the box with a pre-configured default setup.

Root (Main Screen)

Media controls + system monitor + folder navigation, ready to go.

Apps Folder

Calculator, Notepad, File Explorer, Task Manager, Snipping Tool, Command Prompt, YouTube, Google — common apps and sites, pre-configured.

Shortcuts Folder

Copy, Paste, Undo, Cut, Select All, Save, Screenshot, Lock PC — everyday shortcuts, one key away.

Example Folders (auto-added)

These example folders are automatically added on first launch:

  • Media — Media controls (play/volume/mute/mic/now playing/device switch)
  • Folders — Quick-open common folders (Pictures/Documents/Downloads/Desktop)
  • Virtual Desktop — Windows virtual desktop shortcuts (switch/create/close/task view)


Button Customization

Set custom icons, label colors, and font sizes per button. Labels overlay on top of icons, and text that overflows auto-scrolls with a marquee effect. Drag-and-drop to swap button positions, or copy/paste to quickly duplicate setups.


Tech Stack

Component Technology
UI Framework PyQt6
Keyboard Hook Custom C DLL (numpad_hook.dll) hosted via rundll32
Media Control pycaw (volume/mute) + WinRT SMTC (playback state)
System Info psutil (CPU/RAM)
Macro Recording pynput (keyboard/mouse events)
Window Management Win32 API (ctypes + pywin32)
Plugins pkgutil-based auto-discovery system

Why a DLL for Numpad Hooking?

In PyInstaller-built executables, WH_KEYBOARD_LL hook key suppression is silently ignored by Windows (unsigned exe security restriction). So we use rundll32.exe — a trusted Windows system binary — to host the DLL. This also solves the issue where corporate security software deletes newly-created exe files but leaves DLLs alone.


Wrap Up

SoftDeck turns the numpad you already own into a free Stream Deck. No numpad? Widget Mode works with just your mouse.

  • Zero install (just double-click the bat)
  • 12 action types + macro recording
  • Infinite nested folders + auto-switch
  • 10 themes
  • Never steals focus
  • Full config export/import
  • Extensible via plugins

GitHub — SoftDeck