Control your Razer Stream Controller from the terminal while the app is running.
dotnet run
# Or if you built it:
./bin/Debug/net9.0/LoupixDeck./loupixdeck-cli off
# or
./bin/Debug/net9.0/LoupixDeck offEffect: Loads config_razer_off.json - turns off display, all LEDs black, screen clears
./loupixdeck-cli on
# or
./bin/Debug/net9.0/LoupixDeck onEffect: Reloads config_razer.json - restores brightness, buttons, everything
./loupixdeck-cli on-offEffect: Toggles device state - if OFF turns ON, if ON turns OFF
./loupixdeck-cli wakeupEffect: Reconnects the device (useful after system suspend/resume) and turns it ON
./loupixdeck-cli toggle
# or
./loupixdeck-cli show
# or
./loupixdeck-cli hideEffect: Shows window if hidden, hides if shown
Update text, colors, and images on touch buttons:
# Update button text
./loupixdeck-cli updateButton 0 text=Hello
# Text with spaces (underscores become spaces)
./loupixdeck-cli updateButton 0 text=Hello_World
# Update text and text color
./loupixdeck-cli updateButton 0 text=Status textColor=Red
# Update background color
./loupixdeck-cli updateButton 0 backColor=Blue
# Update with image (use full path)
./loupixdeck-cli updateButton 0 image=/path/to/image.png
# Update multiple properties at once
./loupixdeck-cli updateButton 0 text=Status textColor=White backColor=#00FF00
# Clear the image
./loupixdeck-cli updateButton 0 image=clearSupported properties:
text=...- Button text (use underscores for spaces: text=Hello_World)textColor=...- Text color (named colors like Red, Blue, or hex like #FF0000)backColor=...- Background color (named colors or hex)image=...- Path to image file, or "clear" to remove image
Notes:
- Button index is 0-based (0, 1, 2, etc.)
- For text with spaces, use underscores:
text=Hello_World - Separate multiple properties with spaces
Go to Specific Touch Page:
./loupixdeck-cli page1 # Go to touch page 1
./loupixdeck-cli page2 # Go to touch page 2
./loupixdeck-cli page3 # Go to touch page 3
# etc...Go to Specific Rotary Page:
./loupixdeck-cli rotaryPage1 # Go to rotary page 1
./loupixdeck-cli rotaryPage2 # Go to rotary page 2
# etc...Navigate Pages:
./loupixdeck-cli nextPage # Next touch page
./loupixdeck-cli previousPage # Previous touch page
./loupixdeck-cli nextRotaryPage # Next rotary page
./loupixdeck-cli previousRotaryPage # Previous rotary page./loupixdeck-cli quitEffect: Applies OFF config, then exits (device goes dark)
Turn off device when locking screen:
# Add to ~/.config/systemd/user/loupixdeck-lock.service
./loupixdeck-cli offTurn on device when unlocking:
./loupixdeck-cli onReconnect device after system suspend/resume:
# Add to wakeup script or systemd resume service
./loupixdeck-cli wakeupBind to keyboard shortcuts in your DE:
Super+L→./loupixdeck-cli off(turn off device)Super+O→./loupixdeck-cli on(turn on device)Super+D→./loupixdeck-cli toggle(show/hide GUI)
Auto-start on boot:
# Create ~/.config/systemd/user/loupixdeck.service
[Unit]
Description=LoupixDeck Razer Stream Controller
[Service]
ExecStart=/home/ovehbe/Code/LoupixDeck-master/bin/Debug/net9.0/LoupixDeck
Restart=always
[Install]
WantedBy=default.targetThen:
systemctl --user enable loupixdeck
systemctl --user start loupixdeckControl from terminal anytime:
./loupixdeck-cli off # Turn device off
./loupixdeck-cli on # Turn device onAll commands return a response:
OK: System.GotoPage(1) executed- Command successfulERROR: ...- Command failedUnknown command. Available: on, off, on-off, wakeup, page<N>, rotaryPage<N>, nextPage, previousPage, nextRotaryPage, previousRotaryPage, toggle, show, hide, quit- Invalid command
mkdir -p ~/bin
ln -s /home/ovehbe/Code/LoupixDeck-master/loupixdeck-cli ~/bin/loupixdeck
# Add ~/bin to PATH if not already
export PATH="$HOME/bin:$PATH"Then use anywhere:
loupixdeck off
loupixdeck on
loupixdeck toggleecho 'alias loupixdeck="/home/ovehbe/Code/LoupixDeck-master/loupixdeck-cli"' >> ~/.bashrc
source ~/.bashrcThen:
loupixdeck off
loupixdeck on- Start the app first:
dotnet runor./bin/Debug/net9.0/LoupixDeck
- App crashed or exited
- Check if socket exists:
ls -la /tmp/loupixdeck_app.sock
- Make sure CLI wrapper is executable:
chmod +x loupixdeck-cli - Try direct binary:
./bin/Debug/net9.0/LoupixDeck off
While app is running, control it from terminal:
Device Control:
./loupixdeck-cli on- Turn device ON./loupixdeck-cli off- Turn device OFF./loupixdeck-cli on-off- Toggle device ON/OFF./loupixdeck-cli wakeup- Reconnect device and turn ON (for suspend/resume)
Button Control:
./loupixdeck-cli updateButton <index> text=... textColor=... backColor=... image=...- Update button display
Page Navigation:
./loupixdeck-cli page1,page2, etc. - Go to specific touch page./loupixdeck-cli rotaryPage1,rotaryPage2, etc. - Go to specific rotary page./loupixdeck-cli nextPage- Next touch page./loupixdeck-cli previousPage- Previous touch page./loupixdeck-cli nextRotaryPage- Next rotary page./loupixdeck-cli previousRotaryPage- Previous rotary page
Window & App:
./loupixdeck-cli toggle- Show/Hide window./loupixdeck-cli quit- Exit app (with device clear)
Perfect for automation, scripts, and keyboard shortcuts! 🚀