diff --git a/obsws_cli/__about__.py b/obsws_cli/__about__.py index 7ccc259..7fcb8d8 100644 --- a/obsws_cli/__about__.py +++ b/obsws_cli/__about__.py @@ -1,4 +1,4 @@ # SPDX-FileCopyrightText: 2025-present onyx-and-iris # # SPDX-License-Identifier: MIT -__version__ = "0.10.5" +__version__ = "0.11.0" diff --git a/obsws_cli/app.py b/obsws_cli/app.py index 0a7d827..d503a67 100644 --- a/obsws_cli/app.py +++ b/obsws_cli/app.py @@ -7,6 +7,7 @@ import typer from . import ( group, + hotkey, input, profile, record, @@ -24,6 +25,7 @@ from .alias import AliasGroup app = typer.Typer(cls=AliasGroup) for module in ( group, + hotkey, input, profile, record, diff --git a/obsws_cli/hotkey.py b/obsws_cli/hotkey.py new file mode 100644 index 0000000..81549e0 --- /dev/null +++ b/obsws_cli/hotkey.py @@ -0,0 +1,43 @@ +"""module containing commands for hotkey management.""" + +import typer + +from .alias import AliasGroup + +app = typer.Typer(cls=AliasGroup) + + +@app.callback() +def main(): + """Control hotkeys in OBS.""" + + +@app.command('list | ls') +def list( + ctx: typer.Context, +): + """List all hotkeys.""" + resp = ctx.obj.get_hotkey_list() + typer.echo('\n'.join(resp.hotkeys)) + + +@app.command('trigger | tr') +def trigger( + ctx: typer.Context, + hotkey: str = typer.Argument(..., help='The hotkey to trigger'), +): + """Trigger a hotkey by name.""" + ctx.obj.trigger_hotkey_by_name(hotkey) + + +@app.command('trigger-sequence | trs') +def trigger_sequence( + ctx: typer.Context, + shift: bool = typer.Option(False, help='Press shift when triggering the hotkey'), + ctrl: bool = typer.Option(False, help='Press control when triggering the hotkey'), + alt: bool = typer.Option(False, help='Press alt when triggering the hotkey'), + cmd: bool = typer.Option(False, help='Press cmd when triggering the hotkey'), + key_id: str = typer.Argument(..., help='The hotkey to trigger'), +): + """Trigger a hotkey by sequence.""" + ctx.obj.trigger_hotkey_by_key_sequence(key_id, shift, ctrl, alt, cmd)