diff --git a/.gitignore b/.gitignore index 1736dd1..30acc99 100755 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,9 @@ !.zshenv !.hushlogin !arty.yml +!triggershell.yml +!scripts/ +!scripts/openrgb-hue-apply.sh !bin/ !bin/arty !bin/stacks diff --git a/scripts/openrgb-hue-apply.sh b/scripts/openrgb-hue-apply.sh new file mode 100755 index 0000000..fa86b3f --- /dev/null +++ b/scripts/openrgb-hue-apply.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +set -euo pipefail + +exec /home/valknar/Projekte/openrgb-hue/.venv/bin/openrgb-hue apply "$SCENE" "$@" diff --git a/triggershell.yml b/triggershell.yml new file mode 100644 index 0000000..2344c5e --- /dev/null +++ b/triggershell.yml @@ -0,0 +1,284 @@ +# TriggerShell configuration. +# Full reference: https://dev.pivoine.art/valknar/triggershell.git (see docs/CONFIG_REFERENCE.md) + +server: + host: 0.0.0.0 + port: 4173 + +auth: + enabled: true + # Must be >= 32 characters if auth is enabled. Kept out of this file - `triggershell init` + # generated one into .env (TRIGGERSHELL_SESSION_SECRET) alongside this config. + sessionSecret: "${TRIGGERSHELL_SESSION_SECRET}" + sessionTtlHours: 12 + users: + - username: admin + passwordHash: ${TRIGGERSHELL_USER_ADMIN_PASSWORD_HASH} + # Add a user with: triggershell users add + tokens: + - name: test-verification + tokenHash: ${TRIGGERSHELL_TOKEN_TEST_VERIFICATION_HASH} + # Add an API token with: triggershell users add-token + +database: + path: .triggershell/triggershell.db + +logs: + dir: .triggershell/logs + retentionDays: 30 + +scripts: + - id: openrgb-hue-apply + name: "OpenRGB: Apply Hue Scene" + description: Apply a Philips Hue scene as a static color gradient across OpenRGB-controlled lights (motherboard, GPU, RAM, etc). + command: bash + args: ["./scripts/openrgb-hue-apply.sh"] + cwd: ./ + timeoutSeconds: 30 + variables: + - name: scene + label: Scene + description: Philips Hue scene to render as a gradient. + type: enum + required: true + control: select + passAs: env + envName: SCENE + choices: + - "Tropical twilight" + - "Blossom" + - "Bright" + - "Savanna sunset" + - "Relax" + - "Energize" + - "Dreamy dusk" + - "Concentrate" + - "Warm embrace" + - "Golden pond" + - "Honolulu" + - "Rest" + - "Ruby glow" + - "Rolling hills" + - "Precious" + - "Cool bright" + - "Mountain breeze" + - "Read" + - "Dimmed" + - "Narcissa" + - "Crocus" + - "Nightlight" + - "São Paulo" + - "Ruby romance" + - "Sunset allure" + - "Smitten" + - "Promise" + - "City of love" + - "Lovebirds" + - "Glitz and glam" + - "Nighttime" + - "Unwind" + - "Shine" + - "Sleepy" + - "Storybook" + - "Arise" + - "Baby's breath" + - "Malibu pink" + - "Rio" + - "Ibiza" + - "Tokyo" + - "Fairfax" + - "Cancun" + - "Chinatown" + - "Osaka" + - "Motown" + - "Galaxy" + - "Blood moon" + - "Moonlight" + - "Starlight" + - "Arctic aurora" + - "Nebula" + - "Ocean dawn" + - "Sunday morning" + - "Spring blossom" + - "Lake mist" + - "Frosty dawn" + - "Emerald isle" + - "Beginnings" + - "Horizon" + - "Sunflare" + - "First light" + - "Valley dawn" + - "Emerald flutter" + - "Memento" + - "Resplendent" + - "Scarlet dream" + - "Amethyst valley" + - "Hazy days" + - "Autumn gold" + - "Winter mountain" + - "Misty ridge" + - "Midsummer sun" + - "Spring lake" + - "Midwinter" + - "Amber bloom" + - "Painted sky" + - "Orange fields" + - "Blue Planet" + - "Lily" + - "Winter beauty" + - "Forest adventure" + - "Meriete" + - "Soho" + - "Magneto" + - "Disturbia" + - "Vapor wave" + - "Tyrell" + - "Hal" + - "Still waters" + - "Pensive" + - "Sundown" + - "Palm Beach" + - "Adrift" + - "Majestic morning" + - "Blue lagoon" + - "Lake Placid" + - "Zandvoort" + - "Miami" + - "Bahrain" + - "Singapore" + - "Silverstone" + - "Suzuka" + + - name: mapping + label: Mapping Mode + description: How the gradient is laid out across your LEDs. + type: enum + choices: [sequence, per-device, per-zone, matrix, mirror, shuffle] + default: per-zone + control: select + passAs: arg + argName: --mapping + + - name: direction + label: Matrix Direction + description: Only used when mapping is "matrix". + type: enum + choices: [left-right, top-bottom, diagonal, radial] + default: left-right + control: select + passAs: arg + argName: --direction + + - name: deviceType + label: Device Type + description: Limit to devices of this type. Leave unset to target every device. + type: enum + required: false + choices: [DRAM, GPU, MOTHERBOARD] + control: select + passAs: arg + argName: --device-type + + - name: device + label: Device + description: Limit to a single device by name. Leave unset to target every device. + type: enum + required: false + choices: + - "Corsair Vengeance RGB DDR5" + - "Gigabyte GeForce RTX 3060 Gaming OC" + - "MSI MYSTIC LIGHT" + control: select + passAs: arg + argName: --device + + - name: zone + label: Zone + description: Limit to a single zone by name. Leave unset to target every zone. + type: enum + required: false + choices: + - "Corsair DRAM" + - "GPU Zone" + - "JAF" + - "JARGB 1" + - "JARGB 2" + - "JARGB 3" + control: select + passAs: arg + argName: --zone + + - name: seed + label: Shuffle Seed + description: Only used when mapping is "shuffle". + type: number + default: 0 + passAs: arg + argName: --seed + + - name: interpolation + label: Interpolation + description: Color space used to interpolate between gradient stops. + type: enum + choices: [rgb, hsv] + default: hsv + control: select + passAs: arg + argName: --interpolation + + - name: dim + label: Dim + description: Global brightness multiplier (0-1), independent of the scene's own brightness. + type: number + default: 1.0 + min: 0 + max: 1 + step: 0.05 + control: slider + passAs: arg + argName: --dim + + - name: noDedupe + label: Disable Color Deduping + description: Keep consecutive duplicate colors instead of collapsing them into one gradient stop. + type: boolean + default: false + control: switch + passAs: flag + argName: --no-dedupe + + - name: noBrightness + label: Ignore Scene Brightness + description: Don't scale each gradient stop by the scene's recorded light brightness. + type: boolean + default: false + control: switch + passAs: flag + argName: --no-brightness + + - name: fast + label: Fast Mode + description: Use OpenRGB's no-readback fast update mode. + type: boolean + default: false + control: switch + passAs: flag + argName: --fast + + - name: dryRun + label: Dry Run + description: Preview the result without touching real hardware. + type: boolean + default: false + control: switch + passAs: flag + argName: --dry-run + + - name: dryRunLeds + label: Dry Run LED Count + description: Number of synthetic flat LEDs to use for Dry Run. Ignored otherwise. + type: number + required: false + min: 1 + passAs: arg + argName: --dry-run-leds