Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
lehrkraefte:blc:plg:stift [2023/11/03 10:48] Karlheinz Schubert |
lehrkraefte:blc:plg:stift [2024/01/20 10:56] Karlheinz Schubert |
||
---|---|---|---|
Line 19: | Line 19: | ||
Der Stift wird über die kombinierte Bildschirmbreite/ | Der Stift wird über die kombinierte Bildschirmbreite/ | ||
- | Folgendes Python-Script behebt das Problem, indem es den Stift nur auf den TouchScreen des Laptops (eDP-1) mapped: {{lehrkraefte: | + | Folgendes Python-Script behebt das Problem, indem es den Stift nur auf den TouchScreen des Laptops (eDP-1) mapped: |
+ | |||
+ | {{lehrkraefte: | ||
+ | <code python> | ||
+ | # | ||
+ | |||
+ | import subprocess | ||
+ | import re | ||
+ | import sys | ||
+ | |||
+ | # configure you devices: | ||
+ | display_id_wayland = " | ||
+ | device_names_wayland = [" | ||
+ | display_id_x11 = " | ||
+ | device_names_x11 = [" | ||
+ | # end configure | ||
+ | |||
+ | verbose = False | ||
+ | |||
+ | |||
+ | def is_wayland(): | ||
+ | """ | ||
+ | ret_value = cmd(" | ||
+ | return ret_value == " | ||
+ | |||
+ | |||
+ | def cmd(c): | ||
+ | """ | ||
+ | print(c) if verbose else None | ||
+ | res = subprocess.check_output(c, | ||
+ | print(res) if verbose else None | ||
+ | return res | ||
+ | |||
+ | |||
+ | def get_device_id(device_name): | ||
+ | """ | ||
+ | id = re.search(r" | ||
+ | return int(id) if id else 0 | ||
+ | |||
+ | |||
+ | def set_xinput_mapping(device_id, | ||
+ | cmd(f" | ||
+ | |||
+ | |||
+ | if __name__ == " | ||
+ | try: | ||
+ | args = sys.argv[1: | ||
+ | if len(args) > 0 and (" | ||
+ | verbose = True | ||
+ | else: | ||
+ | print(" | ||
+ | is_wayland() | ||
+ | if is_wayland(): | ||
+ | display_id = display_id_wayland | ||
+ | device_names = device_names_wayland | ||
+ | else: | ||
+ | display_id = display_id_x11 | ||
+ | device_names = device_names_x11 | ||
+ | name_length = max([len(n) for n in device_names]) | ||
+ | for device_name in device_names: | ||
+ | device_id = get_device_id(device_name) | ||
+ | print(f" | ||
+ | set_xinput_mapping(device_id, | ||
+ | except Exception as e: | ||
+ | print(e) | ||
+ | print("" | ||
+ | input(" | ||
+ | |||
+ | </ | ||
Mit --verbose (oder -v) aufrufen, um //xinput// Ausgaben zu zeigen. | Mit --verbose (oder -v) aufrufen, um //xinput// Ausgaben zu zeigen. | ||
</ | </ |