+'pactl wrappers.'
+from json import loads as json_loads
+from subprocess import CompletedProcess, run as subprocess_run
+from typing import Any
+
+
+def pactl(
+ *args,
+ **kwargs
+ ) -> CompletedProcess:
+ 'Run pactl command via subprocess_run.'
+ return subprocess_run(('pactl', *args), check=True, **kwargs)
+
+
+def pactl_info_default_dev(
+ device_type: str
+ ) -> dict[str, Any]:
+ "Get pactl 'list' info on device_type's ('sink'/'source') default dev."
+ def pactl_json(
+ *args
+ ) -> Any:
+ return json_loads(
+ pactl('-f', 'json', *args, capture_output=True, text=True).stdout)
+ default_name = pactl_json('info')[f'default_{device_type}_name']
+ return next(dev for dev in pactl_json('list', f'{device_type}s')
+ if dev['name'] == default_name)