itchef/cookbooks/cpe_chrome/files/default/chromium1238517workaround.py (26 lines of code) (raw):

#!/usr/bin/env fbpython # Original: https://github.com/microsoft/vscode/issues/125666#issuecomment-1016945678 # Bug is in upstream: https://bugs.chromium.org/p/chromium/issues/detail?id=1238517 # Issue affects many statically built packages, notably: # * VS Code @ FB - Insiders # Mattermost # Element # Use those strings as parameters if they do not honor repeat rate in the normal way. # import json import subprocess import sys if len(sys.argv) < 3: print(f"Usage {sys.argv[0]} repeats_per_second 'window 1' 'window 2'") sys.exit(1) swaymsg = subprocess.Popen( ["swaymsg", "-t", "subscribe", "-m", '[ "window" ]'], stdout=subprocess.PIPE ) target = int(sys.argv[1]) windows = sys.argv[2:] prev = target try: for line in swaymsg.stdout: j = json.loads(line) if j["container"]["app_id"] in windows: rate = 1000 // target else: rate = target if rate != prev: subprocess.run( ["swaymsg", f"input type:keyboard repeat_rate {rate}"], check=True ) prev = rate finally: swaymsg.kill()