Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Buy Me A Coffee   Asteria

Multi-User Input Manager — MouseMux V3-style multi-cursor for Windows

Turn one Windows PC into a multi-user workstation. Each mouse controls its own cursor, each keyboard types into its own active window. Built in C# on .NET Framework 4.7.2 with WinForms.


What's Working

  • Per-device mouse tracking — WH_MOUSE_LL hook captures raw input from each physical mouse independently. Mouse 1 → User 1, Mouse 2 → User 2
  • Input injection — mouse_event for clicks/wheel, SetCursorPos for cursor movement
  • DWM overlay — hardware-accelerated UpdateLayeredWindow renders colored ring cursors with user labels and color tags (MouseMux style)
  • Full virtual screen support — cursors move freely across all monitors
  • Keyboard focus locking — clicking into a window routes that user's keyboard input to that window
  • Device detection — RawInput WM_INPUT identifies devices by hDevice handle. Devices appear as they're used
  • Device drag-and-drop — drag devices into user boxes, between boxes, or back to the pool
  • Per-user cursor settings — color picker, size, opacity
  • Debug logging — writes to asteria_debug.log next to the exe
  • App icon — BiRefNet-processed Asteria logo

What's Not Working Yet

  • Start button hangs/crashes — showing the overlay window on large virtual screens causes DWM to hang or crash with AccessViolation
  • Default cursor sometimes visibleShowCursor(false) doesn't always persist through SetCursorPos calls from hooks
  • No support for more than 2 users yet — device-to-user mapping is sequential but unverified beyond 2 devices
  • Click injection may be unreliablemouse_event is deprecated; SendInput had struct marshaling issues
  • No daemon/service mode — app must stay open for multi-cursor to work
  • Overlay bitmap rendering — GDI+ on large virtual screens (>3 monitors) may be slow

Tech Stack

Component Tech
Framework .NET Framework 4.7.2
UI Windows Forms (dark theme)
Window overlay Win32 UpdateLayeredWindow / DWM
Input hooks Win32 SetWindowsHookEx (WH_MOUSE_LL, WH_KEYBOARD_LL)
Input injection Win32 mouse_event, SetCursorPos
Device detection Win32 RegisterRawInputDevices + WM_INPUT
Background removal BiRefNet via rembg (Python)

Build

msbuild Asteria.csproj /t:Build /p:Configuration=Release

Requires .NET Framework 4.7.2 SDK or MSBuild 4.0.


License

MIT — see LICENSE


Work in progress. Built as an alternative to MouseMux V3 for local multi-user input on Windows.

About

Multi-User Input Manager — MouseMux V3-style multi-cursor for Windows

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages