2026-04-24

Tutorial: Automating OBS with Arduino on Ubuntu (KDE/Wayland)

This guide explains how to set up OBS Studio to launch on startup and run a background Python watchdog script that listens for Arduino serial commands to toggle projectors.

Prerequisites

  • OBS Studio installed.

  • obs-websocket enabled in OBS (Tools > obs-websocket Settings).

  • Python libraries: pip install obsws-python pyserial.

  • User Groups: Ensure your user can access serial ports: sudo usermod -a -G dialout $USER (Log out and back in after running).


1. Create the OBS Startup Service

We use a systemd user service to ensure OBS starts after the graphical interface is ready and restarts automatically if it crashes.

File: ~/.config/systemd/user/obs-autostart.service

Ini, TOML
[Unit]
Description=OBS Startup Projector
After=graphical-session.target

[Service]
Type=simple
ExecStart=/usr/bin/obs --scene "Scene" --startprojector preview --projector-monitor 0 --minimize-to-tray
Restart=always
RestartSec=5

[Install]
WantedBy=graphical-session.target

2. Create the Python Watchdog Service

This service runs your obsarduino.py script. It includes environment variables necessary for Python to communicate with the Wayland display and KDE's shortcut system (qdbus).

File: ~/.config/systemd/user/obs-python.service

Ini, TOML
[Unit]
Description=OBS Arduino Python Script
# Wait for OBS to be up before starting the script
After=obs-autostart.service

[Service]
Type=simple
WorkingDirectory=%h/Documents
ExecStart=/usr/bin/python3 %h/Documents/obsarduino.py

# Critical for Wayland/KDE API access
Environment=DISPLAY=:0
Environment=XDG_RUNTIME_DIR=/run/user/1000
Environment=XDG_SESSION_TYPE=wayland

Restart=always
RestartSec=5

[Install]
# Using default.target avoids "ordering cycles" with the graphical session
WantedBy=default.target

Note: %h is a shortcut for your home directory. If your User ID is not 1000, check it by running id -u and update the XDG_RUNTIME_DIR accordingly.


3. The Python Logic (obsarduino.py)

Ensure your script is saved in ~/Documents/obsarduino.py. The script handles:

  1. Opening the Projector: Via obsws_python.

  2. Closing the Projector: Via qdbus by triggering the "Window Close" shortcut in KDE.

Python
import serial
import obsws_python as obs
import time
import subprocess

SERIAL_PORT = '/dev/ttyACM0'
BAUD_RATE = 9600

cl = obs.ReqClient(host="localhost", port=4455, auth="")

def close_projector_window():
    try:
        # Triggers KDE global 'Window Close' shortcut
        subprocess.run([
            "qdbus", "org.kde.kglobalaccel", "/component/kwin", 
            "org.kde.kglobalaccel.Component.invokeShortcut", "Window Close"
        ], check=True)
    except Exception as e:
        print(f"Error closing window: {e}")

def handle_projector(val):
    try:
        if val == "1":
            cl.open_video_mix_projector(
                video_mix_type="OBS_WEBSOCKET_VIDEO_MIX_TYPE_PROGRAM",
                monitor_index=0 
            )
        elif val == "0":
            time.sleep(0.2)
            close_projector_window()
    except Exception as e:
        print(f"OBS Error: {e}")

try:
    ser = serial.Serial(SERIAL_PORT, BAUD_RATE, timeout=1)
    time.sleep(2)
except Exception:
    exit() # Systemd will restart the script automatically

while True:
    if ser.in_waiting > 0:
        line = ser.readline().decode('utf-8').strip()
        if line in ["1", "0"]:
            handle_projector(line)

4. Activation and Commands

Run these commands to register and start your new automation:

ActionCommand
Reload Systemdsystemctl --user daemon-reload
Enable Servicessystemctl --user enable obs-autostart.service obs-python.service
Start Nowsystemctl --user start obs-autostart.service obs-python.service
Check Logsjournalctl --user -u obs-python.service -f
Restart Scriptsystemctl --user restart obs-python.service

Troubleshooting Tips

  • Ordering Cycle Error: If the services refuse to start due to a "cycle," ensure the Python script [Install] section uses WantedBy=default.target and not graphical-session.target.

  • Arduino Path: If your Arduino changes address (e.g., to /dev/ttyUSB0), update the SERIAL_PORT variable in your .py file and run the restart command.

  • KDE Shortcuts: Ensure your KDE system actually has a "Window Close" shortcut defined (default is usually Alt+F4).


2012-12-20

Mari menyanyi dengan Mini Lyric


Assalamualaikum
Pada kali ini, the bAdh ada satu perisian yang ingin dikongsikan kepada anda semua. Mungkin ramai yang dah tahu atau memilikinya iaitu perisian Mini Lyric. Jadi macam mana dan apakah kegunaan perisiaan ini. Anda ingin menyanyi, tetapi tidak tahu/ingat lirik. Dengan perisian ini akan membantu anda “mengingat” semula lirik, ala-ala karoake
screenshot4

2012-12-19

Windows 8 Screen Hack


Assalamualaikum dan salam sejahtera keatas anda semua,
Sebenarnya, entri ini pada kali ini tidak merujuk kepada “Hack”, ianya lebih kepada modifikasi sistem sahaja. Bagi pengguna windows 8 terutama yang menggunakan Netbook kebiasaanya mempunyai sistem resolusi hanya setinggi 1024 X 600 , Dengan resolusi semaksima ini pengguna Netbook tidak dapat menikmati fungsi metro atau kata lain funsi minima bagi metro style adalah serendah 1024 X 700. Ianya amat menyedihkan, tetapi jangan risau pada kali ini th3bAdh ingin mengajar modifikasi atau “hack screen” supaya pengguna netbook dapat merasai pengalaman menggunakan Windows 8 Metro.
Untitled

Tutorial : Memasang Windows 8 Melalui Pendrive


Sekarang hangat dan heboh tentang Sistem Operasi (OS) yang terbaru iaitu Windows 8 yang sedang dibincangkan dan dikomesialkan secara besar-besaran melalui media arus perdana, internet dan juga akhbar. Kedai kedai komputer pula menawarkan promosi pemasangan sistem operasi dengan harga yang rendah. Tahukah anda anda juga boleh memasang Sistem operasi yang terbaru tanpa sebarang caj .(untuk pemasangan begini no siri tidak disediakan, sendiri buat, sendiri tanggung.he3)
application-management

2012-12-17

Memasang WordPress Pada XAMPP


Kita sedia maklum, perisian XAMPP adalah satu perisan yang membolehkan untuk pembangun-pembangun laman web untuk menguji laman web nya atau sekadar menguji keselamatan atau untuk membuat web server dirumah. Dengan perisian XAMPP ini juga kita mampu untuk mempelajari asas asas pembangunan tanpa perlu membeli web hosting yang mahal, cukup sekadar kita melakukan nya di rumah dan tentu sekali lah, ianya percuma, kerana xampp dilengkapi Panel yang tidak asing lagi seperti cPanel, membolehkan kerja kita dilakukan tanpa atas talian. Rujuk Sini untuk pemasangan.

Menulis Blog Secara Offline (Windows Live Writter)


Menulis blog secara offline mungkin sedikit rumit sekiranya berada diluar  talian kerana tetapan tulisan tidak seperti yang kita inginkan atau tidak sejajar apa yang kita kehendaki.
Perisan dari pengeluar Sistem Operasi yang tidak asing lagi, Window mengeluarkan satu perisian yang memudahkan kerja kita dengan fungsi menulis artikel secara offline iaitu Windows Live Writter. Boleh dapatkan nya disini

2012-08-15

Tutorial Metasploit Menggunakan Backtrack (Remote Exploit)

Assalamualaikum semua,

th3bAdh pernah membaca artikel tentang metasploit di OMG! Hacker yang dikarang oleh Abg Saki, dan macam ada sesuatu yang tertinggal pada artikel tersebut, Jadi tutorial pada kali akan menyambung sedikit tentang Metasploit, bagi yang belum baca sila dapatkan kan kefahaman terlebih dahulu atau boleh rujuk disini,(karangan Abg Saki)

Hack & Defcon : Sejarah dan Sumbangan Kepada Kita



Salam dan selamat sejahtera. Bulan puasa yang kini semakin menutup tirai. Pasti nya ia akan menjadi sejarah seperti sejarah - sejayah  yang terdahulu. Bercakap mengenai sejarah ni, tak ramai yang tahu akan sejarah mengenai Hack . Kali ini th3bAdh off topic dahulu mengenai hack dan backtrack. Mari kita baca satu tajuk yang boleh dikatakan hebat juga la dalam dunia hack-hack ni iaitu Defcon.

2011-12-28

Apa Itu IP (Internet Protocol)


Assalamualaikum semua, telah banyak yang kita pelajari. Tetapi tahukah anda semua, tentang perkara asas, iaitu Ip. Ini bukan lah cerita ipman atau apa, tiada kaitan dengan nama filem atau yang hidup. Sekiranya yang telah tahu apa itu ip pasti terfikir tentang alamat. Ya, betullah apa yang beliau fikirkan.

2011-12-22

Memecah WEP : Backtrack

Assalamualaikum semua bagi yang beragama islam,anda sudah membaca tutorial asas bagi back backtrack [rujuk disini]dan [disini],
Ok,yang dah baca topik asas itu dan telah sedia pasang padang komputer anda kita boleh bergerak ke pembelajaran yang seterusnya. 

Stress Testing : MDK3 (Backtrack)

Salam pertemuan,Ok, nampaknya artikel sebelum ini disambung pula kepada artikel tentang backtrack, anda sudah baca tutorial asas tentang backtrack. sekiranya tidak saya syorkan kepada anda supaya untuk membaca terlebih dahulu[Rujuk Sini]

2011-12-21

Hack Untuk Duit?



Wah...tajuk diatas memang gempak kan,sebenarnya benda ini sudah lama,tapi just nak kongsi ilmu untuk korang semua,  Pengalaman penulis, telah memecah banyak akaun facebook orang lain, tapi, adakah ia berbaloi,? dapat duitkah kalau aku ceroboh akaun facebook orang lain, setelah aku jumpa benda ini, aku terus rasa berbaloi, mana tak nya,Dapat ganjaran,Walaupun tak banyak tapi oklah simpan lama-lama jadi bukit

Hack Facebook : Phishing Method

PENGENALAN DAN OBJEKTIF


Salam semua,tujuan penulisan ini adalah hanya untuk pembelajaran. Dan tH3 bAdh tidak tidak bertanggung jawab atas apa yang anda buat. Sebenarnya objektif utama didalam ini adalah untuk meninggkat ilmu pengetahuan  tentang keselamatan, jikalau anda yang lakukan, sudah pasti anda tahu langkah untuk  cegah nya kan, tak gitu. Kaedah yang akan th3 bAdh ajarkan tentang hack facebook adalah dengan cara phising. Sebelum pergi lebih lanjut, apakah yang anda faham tentang phising ni. Disini th3 bAdh ambil sedikit sedutan yang diambil dari Wikipedia tentang phsing.

Menggodam Laman Web : Fck Editor Vunerability


Kaedah ini juga dekenali  " Open Cart OpenCart CMS (Web shop) Exploit”, ianya sudah lama tapi ramai yang masih tak tahu,jadi aku buat kan tutorial

2011-12-20

Tm WiFi Cracker beta (Windows)

Okey,anda telah mencuba tutorial untuk memecah TM WiFi [Rujuk disini]


2011-12-19

Belajar C++ Di Dalam Bahasa Melayu [Rip Buku]

Memahami apa itu ARP Spoofing


Ehem, bertemu kita lagi dalam blog ni,(macam dalam rancangan memasak chef wan la pulak) kita teruskan artikel kita yang diberi tajuk ARP spoofing,

Apa itu Backtrack



Salam semua, sebelum kita perlu lebih jauh tentang ilmu godam ini perlulah kita mengetahui dulu asas, bak kata orang putih nak ejas anak,kena pikat mak dulu,x begitu,pokoknya,kita perlulah mengetahui asas sesuatu perkara,kalau dah tahu asas,mudah la kita hendak melakukan tugas nya.Membebel dengan lebih panjang pun x guna kalau korang sendiri yang tidak faham pada mula. Ok,kita kembali semula kepada tajuk asal kita,"Apa itu Backtrack". Ni nak cerita sedikit, baca selur-selur,tak perlu kalut.

Ubuntu : Bermain drum pada komputer

Assalamualaikum dan salam sejahtera kepada semua, hari ini kita stop dulu tentang hack menghack ni, saya ada sesuatu yang hendak ditunjukkan kepada anda.


LinkWithin

Related Posts Plugin for WordPress, Blogger...