-
Notifications
You must be signed in to change notification settings - Fork 0
Mini Launcher
Michael Sprick edited this page Sep 26, 2025
·
25 revisions
A compact, always-on-top Windows panel for quick access to streaming and recording controlsβideal for live events, church services, or theater productions. This launcher lets you trigger OBS actions without showing the full OBS interface, keeping your workflow clean and distraction-free.
- β Always-on-top control panel
- π₯ One-click buttons for OBS streaming and recording
- π§ Positioned neatly in the corner of your screen
- π±οΈ Built with AutoHotkey v2 for lightweight automation
- Go to the AutoHotkey website
- Click Download
- Install both versions (v1 and v2) if you're unsureβthis launcher uses v2
- Open Notepad or VS Code
- Paste the launcher code (see below)
- Save the file with a
.ahkextension (e.g.,AVLauncher.ahk) - Double-click the file to run it
const OBSWebSocket = require('obs-websocket-js');
const obs = new OBSWebSocket();
obs.connect('ws://localhost:4455', 'your_password').then(() => {
console.log('Connected to OBS');
});myGui := Gui("+AlwaysOnTop +ToolWindow -Caption +Owner")
myGui.BlackColor := "Black"
myGui.SetFont("s10", "Segoe UI")
WinSetTransparent(100, myGui.Hwnd)- Always-on-top: stays visible over all windows
- ToolWindow: removes taskbar icon
- No caption: hides title bar for a sleek look
- Transparent: adds subtle overlay effect
monitorWidth := SysGet(78)
guiWidth := 50
guiHeight := 240
guiX := monitorWidth - guiWidth - 10
guiY := 10; Streaming
myGui.Add("Button", "x10 y20 w30 h30", "βΆ").OnEvent("Click", StartStreaming)
myGui.Add("Button", "x10 y60 w30 h30", "X").OnEvent("Click", StopStreaming)
; Recording
myGui.Add("Button", "x10 y110 w30 h30", "β·").OnEvent("Click", StartRecording)
myGui.Add("Button", "x10 y150 w30 h30", "||").OnEvent("Click", PauseRecording)
myGui.Add("Button", "x10 y190 w30 h30", "X").OnEvent("Click", StopRecording)
myGui.Show("x" guiX " y" guiY " w" guiWidth " h" guiHeight")StartStreaming(*) {
; Add your streaming logic here
}
StopStreaming(*) {
; Add your stop streaming logic here
}
StartRecording(*) {
; Add your recording logic here
}
PauseRecording(*) {
; Add your pause logic here
}
StopRecording(*) {
; Add your stop recording logic here
}π‘ You can connect these functions to OBS via command-line, WebSocket, or other automation tools.
- Change button icons or labels to match your workflow
- Adjust
guiWidth,guiHeight, and positions for different screen setups - Add more buttons for scene switching, muting, or overlays
- Integrate with OBS WebSocket for full remote control
myGui := Gui("+AlwaysOnTop +ToolWindow -Caption +Owner")
myGui.BlackColor := "Black"
myGui.SetFont("s10", "Segoe UI")
WinSetTransparent(100, myGui.Hwnd)
monitorWidth := SysGet(78)
guiWidth := 50
guiHeight := 240
guiX := monitorWidth - guiWidth - 10
guiY := 10
; Streaming buttons
myGui.Add("Button", "x10 y20 w30 h30", "βΆ").OnEvent("Click", StartStreaming)
myGui.Add("Button", "x10 y60 w30 h30", "X").OnEvent("Click", StopStreaming)
; Recording buttons
myGui.Add("Button", "x10 y110 w30 h30", "β·").OnEvent("Click", StartRecording)
myGui.Add("Button", "x10 y150 w30 h30", "||").OnEvent("Click", PauseRecording)
myGui.Add("Button", "x10 y190 w30 h30", "X").OnEvent("Click", StopRecording)
myGui.Show("x" . guiX . " y" . guiY . " w" . guiWidth . " h" . guiHeight)
StartStreaming(*) {
; Start streaming logic
}
StopStreaming(*) {
; Stop streaming logic
}
StartRecording(*) {
; Start recording logic
}
PauseRecording(*) {
; Pause recording logic
}
StopRecording(*) {
; Stop recording logic
}