src/main/java/frc/robot/util/StreamDeckButton.java
/**
   * Starts the given command when the button is first pressed, and cancels it when it is released,
   * but does not start it again if it ends or is otherwise interrupted.  The command is set to be
   * interruptible.
   *
   * @param command the command to start
   * @return this button, so calls can be chained
   */
Starts the given command when the button is first pressed, and cancels it when it is released,
but does not start it again if it ends or is otherwise interrupted.  The command is set to be
interruptible.

@param command the command to start
@return this button, so calls can be chained
Starts the given command when the button is first pressed and cancels it when it is released but does not start it again if it ends or is otherwise interrupted . The command is set to be interruptible . @param command the command to start @return this button so calls can be chained
public StreamDeckButton whenHeld(final Command command) {
    whileActiveOnce(command, true);
    currentCommand = command;
    return this;
  }
public StreamDeckButton whenHeld ( final Command command ) { whileActiveOnce ( command , true ) ; currentCommand = command ; return this ; }
Starts the given command when the button is first pressed, and cancels it when it is released,
 but does not start it again if it ends or is otherwise interrupted.
Starts the given command when the button is first pressed and cancels it when it is released but does not start it again if it ends or is otherwise interrupted .