Files
streamdeck-go/config.example.yaml

64 lines
1.9 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
icons_dir: ./icons
brightness: 70
# Device USB IDs — defaults match Stream Deck XL v2.
# Run `lsusb | grep Elgato` to confirm yours.
device:
vendor_id: 0x0fd9
product_id: 0x00ba
# Keys are 0-indexed, left-to-right, top-to-bottom.
# Stream Deck XL layout (8 columns × 4 rows):
#
# 0 1 2 3 4 5 6 7
# 8 9 10 11 12 13 14 15
# 16 17 18 19 20 21 22 23
# 24 25 26 27 28 29 30 31
#
# icon: filename inside icons_dir (PNG or JPEG)
# command: any shell command
keys:
# Regular key: show an icon and run a command on press.
0:
icon: ghostty.png
command: ghostty
1:
icon: terminal.png
command: alacritty
2:
icon: files.png
command: nautilus
# Toggle/status key: polls a command to determine state and shows one of two
# icons. Pressing the button runs `command` and the icon updates automatically.
#
# `match` is a substring to find in the poll command's stdout.
# If match is found → icon_on is shown; otherwise → icon_off.
# Omit `match` entirely to use exit code instead (0 = on, non-zero = off).
#
# Examples:
# Microphone mute:
# command: pactl set-source-mute @DEFAULT_SOURCE@ toggle
# poll.command: pactl get-source-mute @DEFAULT_SOURCE@
# poll.match: "yes" # "Mute: yes" → muted → show icon_on (mic-muted.png)
#
# VPN toggle:
# command: nmcli connection up my-vpn / nmcli connection down my-vpn
# poll.command: nmcli connection show --active my-vpn
# (no match — uses exit code: 0 = connected)
#
# Systemd service:
# command: systemctl --user toggle my-service
# poll.command: systemctl --user is-active my-service
# (no match — uses exit code)
#
# 3:
# command: pactl set-source-mute @DEFAULT_SOURCE@ toggle
# icon_true: mic-muted.png
# icon_false: mic-active.png
# poll:
# command: pactl get-source-mute @DEFAULT_SOURCE@
# interval: 2s
# match: "yes"