Browse Source

Add id-wise list short

Fn. get_list_short(id) is added because it outputs simpler syntax and
per-case output.
pull/2/head
Ali Hatami Tajik 2 years ago
parent
commit
c42fd13145
  1. 29
      src/scripts/python/xutil/common.py

29
src/scripts/python/xutil/common.py

@ -1,10 +1,39 @@
import subprocess
from typing import List
from multipledispatch import dispatch
ENCODING = 'utf-8'
@dispatch()
def get_list_short():
"""Returns string output of the `xinput --list --short` command encoded as
UTF-8"""
completed = subprocess.run(
['xinput', '--list', '--short'], capture_output=True)
return completed.stdout.decode(ENCODING)
@dispatch(int)
def get_list_short(id):
"""Short List of the id
Args:
id (int): id registered in xinput
Rises:
ValueError: in case of id not found in devices
"""
completed = subprocess.run(
['xinput', '--list', '--short', str(id)], capture_output=True)
if completed.returncode == 0:
return completed.stdout.decode(ENCODING)
else:
ValueError(f'id[{id}] is not registered')
def get_ids() -> List[int]:
"""returns list of ids registered in xinput"""
completed = subprocess.run(
['xinput', '--list', '--id-only'], capture_output=True)
return list(map(int), completed.decode(ENCODING))
Loading…
Cancel
Save