This is an old revision of the document!
Probleme mit Kernel 5.8.0-48 und 5.8.0-45
Probleme mit Kernel 5.8.0-48 und 5.8.0-45
Das Problem hast sich mit dem neuesten Update gelöst. Alles funktioniert wieder besten.
Mir hat ein Downgrade auf Kernel 5.8.0-30 geholfen. Das Problem ist offenbar bekannt und in neueren Kerneln gelöst. Sollte in zukünftigen Kerneln behoben sein. Für das Downgrade sind folgende 3 Packages zu installieren:
linux-headers-5.8.0-34 linux-image-5.8.0-34-generic linux-modules-5.8.0-34-generic linux-modules-extra-5.8.0-34-generic
Beim Booten muss der korrekte Kernel in “Advanced Options” ausgewählt werden. Man kann den auch fest verdrahten, ist es mir im Moment aber nicht wert.
Stift bei mehreren Bildschirmen
Öhhmm… Im System Settings gibt es dazu Einstellung inklusive Keyboard-Shortcuts…
Alter Hack meinerseits
Alter Hack meinerseits
Der Stift wird über die kombinierte Bildschirmbreite gemappt, was natürlich Mist ist.
Folgendes Ruby-Script behebt das Problem, wenn der externe Bildschirm rechts vom Laptopbildschirm mit gleicher (Full-HD) Auflösung ist: (mit Option –u aufrufen, um wieder auf einem Bildschirm zu arbeiten): adjust-pen-for-double-screen.rb.
Neuerer Hack andererseits
Neuerer Hack andererseits
Der Stift wird über die kombinierte Bildschirmbreite/~höhe gemappt, was natürlich Mist ist.
Folgendes Python-Script behebt das Problem, indem es den Stift nur auf den TouchScreen des Laptops (eDP-1) mapped:
#!/usr/bin/python3 import subprocess import re import sys displayId = "eDP-1" devNames = ["Pen stylus", "Finger touch", "Pen eraser"] verbose = False def cmd(c): print(c) if verbose else None res = subprocess.check_output(c, shell=True).decode() print(res) if verbose else None return res def getIDs(dev): id = re.search( r"id=(\d+)", [l for l in cmd("xinput").split("\n") if re.search(dev, l)][0] ).group(1) return id def setXinputMap(devId, displayId): cmd(f"xinput map-to-output {devId} {displayId}") if __name__ == "__main__": args = sys.argv[1:] if len(args) > 0 and ("-v" in args or "--verbose" in args): verbose = True else: print("Use -v or --verbose to see xinput output\nSet mappings:") for devName in devNames: devId = getIDs(devName) print(f"Map '{devName}' with Id={devId:02} to '{displayId}'") setXinputMap(devId, displayId) print("fiin.")
.
Mit –verbose (oder -v) aufrufen, um xinput Ausgaben zu zeigen.