Skip to content

josephdadams/screendeck

Repository files navigation

ScreenDeck

Logo

ScreenDeck is a virtual on-screen stream deck for Bitfocus Companion, built with Electron and TypeScript. This application allows you to create a customizable keypad interface that can send button presses to Companion, enabling you to control various applications, and perform automated tasks, all from an easily accessible on-screen interface.

Watch the demo on YouTube

Features

Multi-Deck Support: Create as many decks as you need, each with independent layouts and settings.

  • Show or hide each deck as needed
  • quickly "identify" each deck from the tray menu to find it if needed

Per-Deck Configuration:

  • Number of columns and rows
  • Key size (bitmap size)
  • Always-on-top toggle
  • Movable toggle (lock window in place)
  • Window position automatically saved and recalled
  • Option to disable button presses per deck

Encoders (Rotary Support):

  • Right-click any key to toggle encoder mode
  • Drag left/right to send rotate commands (rotateLeft/rotateRight)

Companion Integration:

  • Connect to Companion over TCP (IP/Port configurable in settings)
  • Reconnect logic built-in

Profile System:

  • Save and load entire ScreenDeck layouts as profiles and easily switch between them

Lightweight UI:

  • Transparent, floating decks that stay on top of other windows (optional)
  • Minimalistic, responsive design

How to Use ScreenDeck

  1. Download and Install: Download the latest release here: https://github.com/josephdadams/screendeck/releases

    Windows users can install using winget: winget install josephadams.screendeck

  2. Run from Source: Clone the repository and install dependencies using Yarn:

    git clone https://github.com/josephdadams/screendeck
    cd screendeck
    yarn
    yarn start

    Configure Your Settings: Open the settings window to set up the Companion IP, port, and keypad layout. Connect to Bitfocus Companion: Once configured, ScreenDeck will connect to your Companion setup and allow you to control your configured buttons. Assign Commands: Use Bitfocus Companion to map specific commands or actions to each button on the ScreenDeck interface.

Contributing

Contributions are welcome! To contribute to the development of ScreenDeck:

  1. Fork the Repository: Create a fork of the main repository to your GitHub account.

  2. Create a Branch: Create a new branch for your feature or bug fix:

    git checkout -b feature-name
  3. Make Changes: Implement your changes and test them thoroughly.

  4. Submit a Pull Request: Once your changes are ready, submit a pull request to the main repository with a clear description of your changes.

Development

To develop ScreenDeck, you will need to have Node.js and Yarn installed. Follow these steps to set up your development environment.

  1. Clone the Repository:

    git clone https://github.com/josephdadams/screendeck
    cd ScreenDeck
  2. Install Dependencies:

    yarn
  3. Run the Application:

    yarn start
  4. Build the Application:

    yarn build
  5. Package the Application using electron-builder:

    yarn dist
    

License

ScreenDeck is an open-source project licensed under the MIT License. Feel free to use, modify, and distribute this software as per the terms of the license. Contact

For any questions or support, feel free to reach out through GitHub Issues.

About the Author

Made with 💻 and ☕ by Joseph Adams
Visit josephadams.dev to learn more about my work and to inquire about custom app development for your team or organization.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

No packages published

Contributors 3

  •  
  •  
  •