id = "streamdeck" name = "Elgato Stream Deck" homepage = "https://www.elgato.com/stream-deck" description = "Stream Deck gives you fully customizable LCD keys to control your apps and tools." # The Elgato mark the product is sold under: elgato.com publishes photographs # of the hardware and the marketplace's own icon, but no square mark for the # Stream Deck software itself. icon = "SimpleIcons:elgato" # The Stream Deck app ships no command-line tool of its own — the @elgato/cli # used to build plugins is a separate npm package — so `detect` carries the # bundle identifier. It is the one the Homebrew cask quits and names its # LaunchAgent after (https://formulae.brew.sh/api/cask/elgato-stream-deck.json: # quit "com.elgato.StreamDeck", ~/Library/LaunchAgents/com.elgato.StreamDeck.plist). executables = [] platforms = ["macos", "windows"] [installation] macos_bundle_ids = ["com.elgato.StreamDeck"] [dotfiles] # The description is trimmed from Elgato's own product page. # # Elgato's SDK names the data directory on both platforms. In the official CLI, # elgatosf/streamdeck packages/cli/src/stream-deck.ts: # # if (os.platform() === "darwin") { # return join(os.homedir(), "Library/Application Support/com.elgato.StreamDeck/Plugins"); # } # const appData = process.env.APPDATA ?? join(os.homedir(), "AppData/Roaming"); # return resolve(join(appData, "Elgato/StreamDeck/Plugins")); # # and elgatosf/streamdeck-cpu Sources/StreamDeckSDK.cmake sets the same macOS # path, "$ENV{HOME}/Library/Application Support/com.elgato.StreamDeck/Plugins". # The parent of that Plugins folder is the app's data directory, which is where # the user's profiles and key assignments are kept. # # The two locations are genuinely different places rather than one place under # two names — macOS uses the bundle identifier as the folder name while Windows # uses "Elgato\StreamDeck" — so each is spelled out and a consumer skips the # one that is absent. A named base directory would have claimed # %APPDATA%\com.elgato.StreamDeck, which does not exist. paths = [ "~/Library/Application Support/com.elgato.StreamDeck/", "%APPDATA%/Elgato/StreamDeck/", ] # Plugins/ is where the SDK installs .sdPlugin bundles — downloaded software, # re-installable from the Marketplace, and the largest thing in the directory. # Both spellings, or the carve-out only applies on one platform. exclude = [ "~/Library/Application Support/com.elgato.StreamDeck/Plugins/", "%APPDATA%/Elgato/StreamDeck/Plugins/", ] # No whole-file credential named above. A plugin that signs into a service of # its own keeps that inside its own .sdPlugin folder, which is excluded. secret = [] # No machine_lines: the profiles, key assignments and icons are the whole # reason to carry this directory.