LCDPossible can run as a background service that starts automatically with your system.
# Install as Windows Service
lcdpossible service install
# Start the service
lcdpossible service start
# Check status
lcdpossible service status# Install as systemd service
sudo lcdpossible service install
# Start the service
sudo systemctl start lcdpossible
# Enable on boot
sudo systemctl enable lcdpossible# Install as Launch Agent
lcdpossible service install
# Load the agent
launchctl load ~/Library/LaunchAgents/com.devpossible.lcdpossible.plist| Command | Description |
|---|---|
service install |
Install as system service |
service remove |
Remove the service |
service start |
Start the service |
service stop |
Stop the service |
service restart |
Restart the service |
service status |
Show service status |
service help |
Show service commands |
# Install with default settings
lcdpossible service install
# The service is installed as:
# - Name: LCDPossible
# - Display Name: LCDPossible Display Service
# - Startup Type: Automatic# Start
lcdpossible service start
# or: sc start LCDPossible
# or: Start-Service LCDPossible
# Stop
lcdpossible service stop
# or: sc stop LCDPossible
# or: Stop-Service LCDPossible
# Restart
lcdpossible service restart
# or: Restart-Service LCDPossible
# Status
lcdpossible service status
# or: sc query LCDPossible
# or: Get-Service LCDPossible# Stop and remove
lcdpossible service stop
lcdpossible service removeView Windows Event Log:
Get-EventLog -LogName Application -Source LCDPossible -Newest 50Or use Event Viewer: Applications and Services Logs > LCDPossible
# USB device access (required for HID communication)
# Create udev rules for your devices
# Thermalright devices
sudo tee /etc/udev/rules.d/99-lcdpossible.rules << 'EOF'
SUBSYSTEM=="usb", ATTR{idVendor}=="0416", ATTR{idProduct}=="5302", MODE="0666"
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0416", MODE="0666"
EOF
# Reload udev rules
sudo udevadm control --reload-rules
sudo udevadm trigger# Install as systemd service (requires root)
sudo lcdpossible service install
# The service file is installed to:
# /etc/systemd/system/lcdpossible.serviceThe generated service file:
[Unit]
Description=LCDPossible Display Service
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/lcdpossible serve
Restart=always
RestartSec=5
User=root
[Install]
WantedBy=multi-user.target# Start
sudo systemctl start lcdpossible
# Stop
sudo systemctl stop lcdpossible
# Restart
sudo systemctl restart lcdpossible
# Enable on boot
sudo systemctl enable lcdpossible
# Disable on boot
sudo systemctl disable lcdpossible
# Status
sudo systemctl status lcdpossible
# View logs
sudo journalctl -u lcdpossible -fsudo systemctl stop lcdpossible
sudo systemctl disable lcdpossible
sudo lcdpossible service remove# Install as Launch Agent (user service)
lcdpossible service install
# The plist is installed to:
# ~/Library/LaunchAgents/com.devpossible.lcdpossible.plistThe generated plist file:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.devpossible.lcdpossible</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/lcdpossible</string>
<string>serve</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
</dict>
</plist># Load (start)
launchctl load ~/Library/LaunchAgents/com.devpossible.lcdpossible.plist
# Unload (stop)
launchctl unload ~/Library/LaunchAgents/com.devpossible.lcdpossible.plist
# Status (macOS 10.10+)
launchctl list | grep lcdpossible
# View logs
tail -f ~/Library/Logs/lcdpossible.loglaunchctl unload ~/Library/LaunchAgents/com.devpossible.lcdpossible.plist
lcdpossible service removeFor testing or temporary use, run in the foreground:
# Start display service in foreground
lcdpossible serve
# With debug output
lcdpossible serve --debug
# With specific profile
lcdpossible serve --profile my-profile
# Press Ctrl+C to stopWhile the service is running, use these commands:
# Navigate slides
lcdpossible next
lcdpossible previous
lcdpossible goto 3
# Reload profile
lcdpossible profile reload
# Stop service gracefully
lcdpossible stopService won't start:
- Check Event Viewer for errors
- Verify USB device is connected
- Run
lcdpossible listto check device detection - Try running in foreground:
lcdpossible serve --debug
Permission denied:
- Run PowerShell as Administrator for service installation
Service fails with permission error:
- Check udev rules are installed
- Verify user permissions:
ls -la /dev/hidraw* - Try running as root:
sudo lcdpossible serve
USB device not found:
# Check HID devices
ls -la /dev/hidraw*
# Check USB devices
lsusb | grep -i 0416
# Reload udev rules
sudo udevadm control --reload-rules
sudo udevadm triggerPermission denied on USB:
- macOS may require additional USB permissions
- Check System Preferences > Security & Privacy
Launch Agent not starting:
# Check for errors
launchctl error system/com.devpossible.lcdpossible
# View system log
log show --predicate 'process == "lcdpossible"' --last 1hWhen using multiple LCD devices:
- Each device is identified by VID:PID
- Configure per-device settings in
appsettings.json - Service manages all detected devices automatically
{
"LCDPossible": {
"Devices": {
"0416:5302": {
"Mode": "slideshow",
"Brightness": 100
},
"0416:5304": {
"Mode": "panel",
"Panel": "clock"
}
}
}
}