Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Will there ever be a version to function with German external keyboards? #387

Closed
xaverm opened this issue Jul 21, 2023 · 46 comments
Closed

Comments

@xaverm
Copy link

xaverm commented Jul 21, 2023

I've been testing new versions from this repo for several months now ... many really nice improvements!

But the 1st and foremost thing one would like to do, i.e., type in stuff into desktop apps from an external keyboard - which is a K810 with German layout in my case - has never ever worked for me, regarding the complete symbol set. I've tried myriads of combinations of Android internal standard keyboards, xfce keyboard settings, and termux-x11 preferences. It just won't work. At the end there are always a few keys remaining, that function incorrect, if at all.

If in principle termux-x11 is not only meant for people with US system localization US keyboards, then it might of great help for potential users, if on termux-x11 repo's front page there would be a description for some tested and working setups using some typical external keyboards with international layouts (obviously including a German one ;) )

@twaik
Copy link
Member

twaik commented Jul 21, 2023

There are two options for using German layout.

  1. Termux-x11 with Prefer scancodes when possible and DE with german layout set with setxkbmap or with DE settings.
  2. Using text field of additional key bar (swipe it to the right). It is possible to switch extra key bar with three-finger swipe down or with volume down key (with enabled preference of cource).

@twaik twaik closed this as completed Jul 21, 2023
@RalfWerner
Copy link

I am still testing too and in 54 I will describe my knowledge in comparison to 1.02.04 when I'm done.

I have a question about the problem here:

  1. I found the choice Prefer scancodes when possible, just no instructions for occupancy the buttons
  2. The EK (additional key bar) are on the screen and an input would then have to be made by constantly changing between external KB and this EK. I replaced END/HOME-Key (should be symbols as in 1.02.04) by [] to check.

I make a little video with the often used german keys 7089 and toggle keys (shift/altgr) to get {}[] ()
It is displayed here xterm with fluxbox, whereby the Taskbar is covered by EK - that was better at 1.02.04!

DE-Keys.mp4

@xaverm
Copy link
Author

xaverm commented Jul 22, 2023

@twaik
There are two options for using German layout.

I'm sorry, but even if this request was closed, I beg to differ.

1. Termux-x11 with `Prefer scancodes when possible` and DE with german layout set with `setxkbmap` or with DE settings.

Before posting I certainly tested (also) the Prefer scancodes when possible preference setting.
For me, this option does not work. Let me describe:

The closest I can get to a working external (Logitech K810) DE keyboard in termux-x11 is (i) using the Prefer scancodes when possible settings, (ii) a German (no dead keys) keyboard layout in xfce4 settings, and (iii) the tablet's manufacturer (Samsung) internal keyboard with German language set as standard keyboard.

But even then, the "<, >, |" key behaves incorrect. I.e. it produces single quotation marks. Even worse, in this situation, the "<, >, |" characters have disappeared from the keyboard completely.

Let me also mention, that it is absolutely confusing, that there seems to be an erratic correlation between the internal keyboard, I mean the soft-keyboard of the Android device, set to be the standard keyboard, and the degree to which the external keyboard will eventually function with termux-x11. I.e., say, a 'Hackers keyboard' set to 'Standard' will lead to less correct keys than an 'External Keyboard Helper Pro', a.s.o. There should be some statement for users: "You should set your internal soft-keyboard to xyz with abc language". I'm also missing that.

2. Using text field of additional key bar (swipe it to the right). It is possible to switch extra key bar with three-finger swipe down or with volume down key (with enabled preference of course).

Even if this may work (I will test), this is not really a reasonable 'option': Keys like "<, >, |" are bread-n-butter keys for various coding tasks. Your are certainly not suggesting, we should physically switch back and fro on a once-per-second basis between an external keyboard and an on-screen key bar, while working?

Let me just state once more, that with all this hard and fantastic work on termux-x11, it is such a pity that many potential users will be excluded, simply because we cannot properly interface to it.

@twaik
Copy link
Member

twaik commented Jul 22, 2023

Let me also mention, that it is absolutely confusing, that there seems to be an erratic correlation between the internal keyboard, I mean the soft-keyboard of the Android device, set to be the standard keyboard, and the degree to which the external keyboard will eventually function with termux-x11. I.e., say, a 'Hackers keyboard' set to 'Standard' will lead to less correct keys than an 'External Keyboard Helper Pro', a.s.o. There should be some statement for users: "You should set your internal soft-keyboard to xyz with abc language". I'm also missing that.

Unfortunately there is no way to achieve better accuracy in getting scancodes on Android devices. You can try to change keyboard maps in /data/data/com.termux/usr/share/X11/xkb or use xmodmap for this.

@twaik
Copy link
Member

twaik commented Jul 22, 2023

@agnostic-apollo maybe you know the way to get correct symbols when View.OnKeyListener is applied to SurfaceView? For some reason some keyboards do not send correct symbols and scancodes when SurfaceView is focused.

@RalfWerner
Copy link

@xaverm You are right with "Fantastic Work on Termux-X11" by @twaik. The keys <|> are on my Logitech-BT-KB right next to Shift and Ctrl -so easy to reach. If an XClient does not depend on the implementation of the WM=Window Managers, this can also be done by the key code, which I do in some cases of my own developments.

As I said above, I am not yet finished with my comparison check. The three-finger campaign for EK can also be done by the Vol-Down button. Three finger can also be four or more, which bothers in direct mode, because EK is constantly switched on/off and I can no longer see my taskbar (or anything else is hidden). ...OnKey... by @agnostic-apollo is a good idea! If in return he takes over the Fullscreen function of x11 in app, both APK profit of it :)

@agnostic-apollo
Copy link
Member

If hardware keyboard or android is sending wrong keycodes, then an app cannot just guess the correct keycodes. The user would have to define a mapping somehow. You can try looking into custom keyboard layouts.

termux/termux-app#2237 (comment)

@twaik
Copy link
Member

twaik commented Jul 22, 2023

If hardware keyboard or android is sending wrong keycodes, then an app cannot just guess the correct keycodes.

xaverm says that keycodes/scancodes sent by Android depend on current IME. For some reasons IME behaviour when it sends events to SurfaceView differs from behaviour when it sends events to EditText. Is there a way to make it behave the same way?

@agnostic-apollo
Copy link
Member

I haven't looked into how android behaves internally but there is indeed some influence of the soft keyboard on the hardware keyboard. For termux-app, it gets solved by disabling the software keyboard for the activity. I don't know if this applies to termux-x11.

termux/termux-app#3265

https://github.com/termux/termux-app/blob/master/app/src/main/java/com/termux/app/terminal/TermuxTerminalViewClient.java#L537

https://github.com/termux/termux-app/blob/master/termux-shared/src/main/java/com/termux/shared/view/KeyboardUtils.java#L81

https://developer.android.com/reference/android/view/WindowManager.LayoutParams#FLAG_ALT_FOCUSABLE_IM

@twaik
Copy link
Member

twaik commented Jul 22, 2023

I think a problem appears because SurfaceView is not recognised as a text editor. When I set german layout on my phone it sends hardware keyboard events corresponding to english layout. Is there a way to override this behaviour?

@agnostic-apollo
Copy link
Member

I assume you mean Language and Input -> Physical keyboards -> Specific Keyboard -> Set up keyboard layouts. If you setup German as the language and switch to it with ctrl+space, then on an english QWERTY keyboard, the letter y should type z for the german layout since it should default t to QWERTZ.

The layouts listed are provided by individual apps, which mainly may be the default system keyboard or gboard, etc. Like Japanese 109A is provided by gboard for me and all others by Android keyboard.

Gboard also prevents language change of even the softkeyboard with the earth key and says to use ctrl+space if a hardware keyboard is connected, so there is some additional inter-linkage.

If layout change is not working for you, then could be your device bug.

https://xiaomi.eu/community/threads/change-physical-keyboard-layout.60396/

I think a problem appears because SurfaceView is not recognised as a text editor.

You may try overriding View.onCreateInputConnection() like termux does and implement it properly, but hardware keyboard events are generally not sent to commitText().

https://developer.android.com/reference/android/view/View#onCreateInputConnection(android.view.inputmethod.EditorInfo)

https://github.com/termux/termux-app/blob/v0.118.0/terminal-view/src/main/java/com/termux/view/TerminalView.java#L258

@xaverm
Copy link
Author

xaverm commented Jul 22, 2023

@agnostic-apollo

If hardware keyboard or android is sending wrong keycodes, then an app cannot just guess the correct keycodes.

In post on keyboard issues in termux-x11, I occasionally read similar statements. I just never understand what to make out of them.

  1. Regarding the 1st part, i.e., that the "hardware keyboard might be sending wrong keycodes":
    Every external keyboard can be hooked up onto a "real" linux machine and be tested with xev for what keycodes it emits.
    Certainly, before bugging people with posts on keyboard issues, I do test that my external keyboard does work flawlessly on common linux boxes.
    I also did that before posting here. So once again: The Logitech K810 DE keyboard works like a charm on any linux machine I've ever used it on and xev show that it emits proper keycodes on those machines for the key which I have mentioned here, i.e., the <>| key.

That is why I am posting here, and that is why I am asking for when termux-x11 might eventually also work with external DE keyboards.

  1. Regarding the 2nd part, i.e., your statement that "android might be sending wrong keycodes":
    Can you pls. explain, how an average-ball-cap-user can determine if this issue is indeed happening(?), and even more so how to fix it without screwing up once Android device?

Finally one less related thing:

  • All the issues my external keyboard has are only within termux-x11. In the standard termux terminal app all is fine. Sigh.

@twaik
Copy link
Member

twaik commented Jul 22, 2023

Every external keyboard can be hooked up onto a "real" linux machine and be tested with xev for what keycodes it emits.

I can not force keyboard mapping to replace symbols. It seems like there are some different "wrong keycodes" sent on different devices and different IME.

@xaverm
Copy link
Author

xaverm commented Jul 22, 2023

Every external keyboard can be hooked up onto a "real" linux machine and be tested with xev for what keycodes it emits.

I can not force keyboard mapping to replace symbols. It seems like there are some different "wrong keycodes" sent on different devices and different IME.

So you are suggesting, that there will be certain Android devices and certain IMEs which will just not allow termux-x11 to be used with DE external keyboards?

While this is beyond me, it would certainly be a grim perspective. Hopefully you will find a solution down the line. I'll keep my fingers crossed.

@twaik
Copy link
Member

twaik commented Jul 22, 2023

There is a hope that android sends right symbols to InputConnection so I'll be able to intercept them and override symbols I get from KeyEvent.

@RalfWerner
Copy link

RalfWerner commented Jul 23, 2023

In the standard termux terminal app all is fine hier means @xaverm.

I cannot confirm that except for one (SM-A33) of my 5 Android devices. If I use an ssh terminal, a TeamViewer connection or a scrcpy copy of the device on my Win-PC, the 9=6+3 buttons (above{[]}()+<|>) are correctly reproduced above.
However, if I try coupling the KB with Bluetooth, I am also wrong in the termux app with 4 devices. In all cases I use the newest version 0.118.0+d7bab73. With regard to x11 there are all 5 wrong.

@xaverm
Copy link
Author

xaverm commented Jul 23, 2023

In the standard termux terminal app all is fine

I cannot confirm that except for one (SM-A33)

Weird?

But anyway, this is a plain termux issue for you then, and not a termux-x11 issue, as for me. For me and for many years and on several different Samsung tablets (currently SM-X906B), using Logitech and Pearl external DE bluetooth keyboards has never caused a single glitch for any key. And since I mainly use termux for typing math documents with Emacs and LaTeX on the go, you can rest assured that practically any crazy combination of all possible symbol keys on the keyboard arise while typing.

I'd like to have this functionality also on termux-x11 + xfce4 running. That's why I'm posting here ... and maybe @twaik can get it done.

@RalfWerner
Copy link

RalfWerner commented Jul 23, 2023

The development of the app is operated by @agnostic-apollo and x11 by @twaik . If the two can agree on common functions in the two APK and that works correctly on all devices would be helped.

My Samsung Pad is an SM-P610 with stylus. Unfortunately, even without a chance to use my BT keyboard Logitech K370/K375-DE for the 9=6+3 keys. Only my SM-A33-5G cell phone and only app is ok.

But we also have different XClients as the goal. I try to develop "WM-free ones", that work exclusively with fingers on a small display. The detours described above to use my BT-KB, are also ok for me and on the Pad I use often pop view for both apps on one display, which leads to double EK but only one On-Screen-KB. Here also the two APK do not work well together.

@agnostic-apollo
Copy link
Member

Regarding the 1st part, i.e., that the "hardware keyboard might be sending wrong keycodes":

This situation is less likely for decent brands but termux app does have at least one fix for this situation.

termux/termux-app@913c474

Regarding the 2nd part, i.e., your statement that "android might be sending wrong keycodes":

This can happen too, depending on the key character map files that are installed in the /system partition of the android build. Different vendors could have their own specific mappings for regions, etc. Then there is also the user selecting a layout that is not "desired" or correct in android language and input settings. Accessibility services may also filter but not modify key events (also done by x11).

https://source.android.com/docs/core/interaction/input/key-character-map-files

https://developer.android.com/reference/android/accessibilityservice/AccessibilityService#onKeyEvent(android.view.KeyEvent)

public boolean onKeyEvent(KeyEvent event) {

Can you pls. explain, how an average-ball-cap-user can determine if this issue is indeed happening(?),

Normal apps have no control over such preprocessing before events are delivered. For termux app at least, you can enable Terminal View Key Logging in termux app settings and then run logcat command in terminal to see the events being received.

https://github.com/termux/termux-app#debugging

https://github.com/termux/termux-app/blob/v0.118.0/terminal-view/src/main/java/com/termux/view/TerminalView.java#L701

x11 seems to log codes too.

log(DEBUG, "Sending key: %d", code + 8);

All the issues my external keyboard has are only within termux-x11. In the standard termux terminal app all is fine. Sigh.

Then issue is with x11 app and you shouldn't have to fix anything. x11 app will need fixing. But then again ralf is getting issues on both.

Termux terminal overrides onKeyUp and onKeyDown for hardware events instead of onKey via View.OnKeyListener, although may not make a difference if handled properly.

lorieView.setOnKeyListener(mLorieKeyListener);

https://github.com/termux/termux-app/blob/6e2689f55295fa444be8ac8592c527c2c5ef3253/terminal-view/src/main/java/com/termux/view/TerminalView.java#L602

You could still play around with custom layouts as mentioned in termux/termux-app#2237 (comment).

https://github.com/ris58h/custom-keyboard-layout

https://github.com/abbeyanke/se_sv_dvorak

https://stackoverflow.com/questions/7846050/difference-between-onkey-onkeydown-and-dispatchkeyevent-methods-provided

@twaik
Copy link
Member

twaik commented Jul 28, 2023

It is pretty much weird. When I set German (CH) layout on my phone it sends events of external keyboard correctly, but if I set Schwiizerdütsch it sends events of last selected layout (russian in my case). The same situation happens to EditText, not only LorieView.

@agnostic-apollo I tried to override onCreateInputConnection method. It sends correct symbols to InputConnection.commitText() method, but when I am typing with external keyboard it sends regular KeyEvents and does not invoke any InputConnection's methods.

@agnostic-apollo
Copy link
Member

Are you using Ctrl + space to switch to correct layout?

Its' not going to, it's meant for soft keyboard events, hardware keyboard events are normally only sent to onKey*() methods, other than possible bugs termux/termux-app#3265

@twaik
Copy link
Member

twaik commented Jul 28, 2023

Are you using Ctrl + space to switch to correct layout?

Yes.

Its' not going to, it's meant for soft keyboard events, hardware keyboard events are normally only sent to onKey*()

I've set OnKeyListener on my view so it is catching all possible events.

@twaik
Copy link
Member

twaik commented Jul 28, 2023

I am using KeyEvent.getUnicodeChar() in key handling function here. But it still happens.

@agnostic-apollo
Copy link
Member

Does it happen in termux app?

@twaik
Copy link
Member

twaik commented Jul 28, 2023

I am not sure. I did not check thi since I do not speak any languages which alphabet uses dead keys.

@agnostic-apollo
Copy link
Member

agnostic-apollo commented Jul 28, 2023

If everyone could just use ASCII, that would be great, make all our lives so much easier.

@twaik
Copy link
Member

twaik commented Jul 28, 2023

Also weird thing. When I hold AltGr+LeftAlt and trying to send ä key or ö Android simply does not send KeyEvent. It is pretty sad...

@agnostic-apollo
Copy link
Member

Maybe your or some other accessibility service is messing things up, turn them off. Also dumpsys input should print your keyboard config and getevent should print events.

https://source.android.com/docs/core/interaction/input/getevent

https://stackoverflow.com/questions/12280657/does-anyone-know-what-the-output-from-getevent-means

@twaik
Copy link
Member

twaik commented Jul 28, 2023

Maybe your or some other accessibility service is messing things up, turn them off.

I did not enable any.

Also dumpsys input should print your keyboard config

INPUT MANAGER (dumpsys input)

Input properties:
  persist.input.velocitytracker.strategy = default

Input Manager State:
  Interactive: false
  InteractiveInternalDisplay: false
  System UI Lights Out: true
  Pointer Speed: 0
  Pointer Acceleration: 3.000
  Pointer Gestures Enabled: true
  Show Touches: false
  Pointer Capture: Disabled, seq=0
  System UI Lights Out on Dex: false
  DeX Mode: 0
  DeX DisplayType: -1
  VirtualTouchpad: false
  VirtualTouchpadType: 0
  VirtualTouchpadRegion: <empty>
  LimitCoordinateY: -1.000
  Show All Touches: false
  xdpi: 272.955
  ydpi: 270.933
  Show Hovering: false
  Pen Hovering: false
  KisMode: false
  Primary Mouse Button Location: 0
  Scroll speed: 1
  Use mouse acceleration: true
  Mouse button behavior(S/T/B/F): (1/3/7/4)
  Force Hide Cursor: false
  Multi Control out of focus: false

Event Hub State:
  BuiltInKeyboardId: -2
  Devices:
    21: 
      Classes: CURSOR | EXTERNAL
      Path: /dev/input/event6
      Enabled: true
      Descriptor: 7160d84618ef844cedbce657f1846696d71909ca
      Location: 
      ControllerNumber: 0
      UniqueId: 
      Identifier: bus=0x0003, vendor=0xffff, product=0xffff, version=0x0000
      KeyLayoutFile: 
      KeyCharacterMapFile: 
      ConfigurationFile: 
      VideoDevice: <none>
    20: 
      Classes: KEYBOARD | ALPHAKEY | EXTERNAL
      Path: /dev/input/event5
      Enabled: true
      Descriptor: e0a64cf073fe65701d1f13bc0b96bd55bed4f6d6
      Location: 
      ControllerNumber: 0
      UniqueId: 
      Identifier: bus=0x0003, vendor=0xffff, product=0xffff, version=0x0000
      KeyBitmask: (0:fffffffe) (32:ffffffff) (64:1cfffff) (96:e080ffdf) 
      KeyLayoutFile: /system/usr/keylayout/Generic.kl
      KeyCharacterMapFile: /system/usr/keychars/Generic.kcm
      ConfigurationFile: 
      VideoDevice: <none>
    1: mtk-tpd
      Classes: KEYBOARD | TOUCH | TOUCH_MT
      Path: /dev/input/event4
      Enabled: true
      Descriptor: 84931e976ab60191371c1c95baf408538ca4c4c5
      Location: 
      ControllerNumber: 0
      UniqueId: 
      Identifier: bus=0x0000, vendor=0x0000, product=0x0000, version=0x0000
      KeyBitmask: (128:8000) (320:400) 
      KeyLayoutFile: /system/usr/keylayout/Generic_internal.kl
      KeyCharacterMapFile: /system/usr/keychars/Generic.kcm
      ConfigurationFile: 
      VideoDevice: <none>
    2: sardsi_irq
      Classes: KEYBOARD
      Path: /dev/input/event2
      Enabled: true
      Descriptor: dcb7453b43365f0adbf5add703a9f50f5a51f71a
      Location: 
      ControllerNumber: 0
      UniqueId: 
      Identifier: bus=0x0000, vendor=0x0000, product=0x0000, version=0x0000
      KeyBitmask: (736:c000) 
      KeyLayoutFile: /system/usr/keylayout/Generic_internal.kl
      KeyCharacterMapFile: /system/usr/keychars/Generic.kcm
      ConfigurationFile: 
      VideoDevice: <none>
    3: mt-snd-card Headset Jack
      Classes: KEYBOARD | SWITCH
      Path: /dev/input/event3
      Enabled: true
      Descriptor: 87c4378ff4077a7e39b84c778d87c1c8d1390a88
      Location: ALSA
      ControllerNumber: 0
      UniqueId: 
      Identifier: bus=0x0019, vendor=0x0000, product=0x0000, version=0x0000
      KeyBitmask: (96:c0000) (224:04) (576:40) 
      KeyLayoutFile: /system/usr/keylayout/Generic_internal.kl
      KeyCharacterMapFile: /system/usr/keychars/Generic.kcm
      ConfigurationFile: 
      VideoDevice: <none>
    -1: Virtual
      Classes: KEYBOARD | ALPHAKEY | DPAD | VIRTUAL
      Path: <virtual>
      Enabled: true
      Descriptor: a718a782d34bc767f4689c232d64d527998ea7fd
      Location: 
      ControllerNumber: 0
      UniqueId: <virtual>
      Identifier: bus=0x0000, vendor=0x0000, product=0x0000, version=0x0000
      KeyBitmask: 
      KeyLayoutFile: /system/usr/keylayout/Generic_internal.kl
      KeyCharacterMapFile: /system/usr/keychars/Virtual.kcm
      ConfigurationFile: 
      VideoDevice: <none>
    4: mtk-pmic-keys
      Classes: KEYBOARD
      Path: /dev/input/event1
      Enabled: true
      Descriptor: 485d69228e24f5e46da1598745890b214130dbc4
      Location: 
      ControllerNumber: 0
      UniqueId: 
      Identifier: bus=0x0019, vendor=0x0001, product=0x0001, version=0x0001
      KeyBitmask: (96:140000) 
      KeyLayoutFile: /system/usr/keylayout/Generic_internal.kl
      KeyCharacterMapFile: /system/usr/keychars/Generic.kcm
      ConfigurationFile: 
      VideoDevice: <none>
    5: mtk-kpd
      Classes: KEYBOARD
      Path: /dev/input/event0
      Enabled: true
      Descriptor: f0d2e427e7a05eb6d316f5e14800c5ac7b6aee79
      Location: 
      ControllerNumber: 0
      UniqueId: 
      Identifier: bus=0x0019, vendor=0x2454, product=0x6500, version=0x0010
      KeyBitmask: (96:80000) 
      KeyLayoutFile: /system/usr/keylayout/Generic_internal.kl
      KeyCharacterMapFile: /system/usr/keychars/Generic.kcm
      ConfigurationFile: 
      VideoDevice: <none>
  Unattached video devices:
    <none>

Input Reader State (Nums of device: 8):
  Device 18: 
    EventHub Devices: [ 21 ] 
    Generation: 472
    IsExternal: true
    AssociatedDisplayPort: <none>
    AssociatedDisplayUniqueId: <none>
    HasMic:     false
    Sources: 0x00002002
    KeyboardType: 0
    ControllerNum: 0
    Motion Ranges:
      X: source=0x00002002, min=0.000, max=719.000, flat=0.000, fuzz=0.000, resolution=0.000
      Y: source=0x00002002, min=0.000, max=1599.000, flat=0.000, fuzz=0.000, resolution=0.000
      PRESSURE: source=0x00002002, min=0.000, max=1.000, flat=0.000, fuzz=0.000, resolution=0.000
      VSCROLL: source=0x00002002, min=-1.000, max=1.000, flat=0.000, fuzz=0.000, resolution=0.000
    Cursor Input Mapper:
      Parameters:
        HasAssociatedDisplay: true
        Mode: pointer
        OrientationAware: false
      XScale: 1.000
      YScale: 1.000
      XPrecision: 1.000
      YPrecision: 1.000
      HaveVWheel: true
      HaveHWheel: false
      VWheelScale: 1.000
      HWheelScale: 1.000
      Orientation: 0
      ButtonState: 0x00000000
      Down: false
      DownTime: 1909625164017000
  Device 17: 
    EventHub Devices: [ 20 ] 
    Generation: 471
    IsExternal: true
    AssociatedDisplayPort: <none>
    AssociatedDisplayUniqueId: <none>
    HasMic:     false
    Sources: 0x00000101
    KeyboardType: 2
    ControllerNum: 0
    Keyboard Input Mapper:
      Parameters:
        OrientationAware: false
        HandlesKeyRepeat: false
        NeedChangeKeyCode: false
      KeyboardType: 2
      Orientation: 0
      KeyDowns: 2 keys currently down
          (scancode=56, downTime=1909664402861000)
          (scancode=100, downTime=1909664402861000)
      MetaState: 0x32
      DownTime: 1909683090453000
  Device 6: mtk-tpd
    EventHub Devices: [ 1 ] 
    Generation: 473
    IsExternal: false
    AssociatedDisplayPort: <none>
    AssociatedDisplayUniqueId: <none>
    HasMic:     false
    Sources: 0x00001103
    KeyboardType: 1
    ControllerNum: 0
    Motion Ranges:
      X: source=0x00001002, min=0.000, max=719.000, flat=0.000, fuzz=0.000, resolution=0.000
      Y: source=0x00001002, min=0.000, max=1599.000, flat=0.000, fuzz=0.000, resolution=0.000
      PRESSURE: source=0x00001002, min=0.000, max=1.000, flat=0.000, fuzz=0.000, resolution=0.000
      SIZE: source=0x00001002, min=0.000, max=1.000, flat=0.000, fuzz=0.000, resolution=0.000
      TOUCH_MAJOR: source=0x00001002, min=0.000, max=1754.537, flat=0.000, fuzz=0.000, resolution=0.000
      TOUCH_MINOR: source=0x00001002, min=0.000, max=1754.537, flat=0.000, fuzz=0.000, resolution=0.000
      TOOL_MAJOR: source=0x00001002, min=0.000, max=1754.537, flat=0.000, fuzz=0.000, resolution=0.000
      TOOL_MINOR: source=0x00001002, min=0.000, max=1754.537, flat=0.000, fuzz=0.000, resolution=0.000
    Keyboard Input Mapper:
      Parameters:
        OrientationAware: false
        HandlesKeyRepeat: false
        NeedChangeKeyCode: false
      KeyboardType: 1
      Orientation: 0
      KeyDowns: 0 keys currently down
      MetaState: 0x0
      DownTime: 0
    Touch Input Mapper (mode - DIRECT):
      Parameters:
        GestureMode: MULTI_TOUCH
        DeviceType: TOUCH_SCREEN
        AssociatedDisplay: hasAssociatedDisplay=true, isExternal=false, displayId=''
        OrientationAware: true
        Orientation: ORIENTATION_0
      Raw Touch Axes:
        X: min=0, max=720, flat=0, fuzz=0, resolution=0
        Y: min=0, max=1600, flat=0, fuzz=0, resolution=0
        Pressure: min=0, max=255, flat=0, fuzz=0, resolution=0
        TouchMajor: min=0, max=100, flat=0, fuzz=0, resolution=0
        TouchMinor: min=0, max=100, flat=0, fuzz=0, resolution=0
        ToolMajor: unknown range
        ToolMinor: unknown range
        Orientation: unknown range
        Distance: unknown range
        TiltX: unknown range
        TiltY: unknown range
        TrackingId: min=0, max=10, flat=0, fuzz=0, resolution=0
        Slot: min=0, max=9, flat=0, fuzz=0, resolution=0
      Calibration:
        touch.size.calibration: GEOMETRIC
        touch.pressure.calibration: physical
        touch.orientation.calibration: none
        touch.distance.calibration: none
        touch.coverage.calibration: none
      Affine Transformation:
        X scale: 1.000
        X ymix: 0.000
        X offset: 0.000
        Y xmix: 0.000
        Y scale: 1.000
        Y offset: 0.000
      Viewport INTERNAL: displayId=0, uniqueId=local:0, port=0, orientation=0, logicalFrame=[0, 0, 720, 1600], physicalFrame=[0, 0, 720, 1600], deviceSize=[720, 1600], isActive=[0]
      DisplayWidth: 720px
      DisplayHeight: 1600px
      PhysicalWidth: 720px
      PhysicalHeight: 1600px
      PhysicalLeft: 0
      PhysicalTop: 0
      InputDeviceOrientation: 0
      Translation and Scaling Factors:
        XScale: 0.999
        YScale: 0.999
        XPrecision: 1.001
        YPrecision: 1.001
        GeometricScale: 0.999
        PressureScale: 0.004
        SizeScale: 0.010
        OrientationScale: 0.000
        DistanceScale: 0.000
        HaveTilt: false
        TiltXCenter: 0.000
        TiltXScale: 0.000
        TiltYCenter: 0.000
        TiltYScale: 0.000
      Last Raw Button State: 0x00000000
      Last Raw Touch: pointerCount=0
      Last Cooked Button State: 0x00000000
      Last Cooked Touch: pointerCount=0
      Stylus Fusion:
        ExternalStylusConnected: false
        External Stylus ID: -1
        External Stylus Data Timeout: 9223372036854775807
      External Stylus State:
        When: 9223372036854775807
        Pressure: 0.000000
        Button State: 0x00000000
        Tool Type: 0
      DPI x: 0.000, y: 0.000
    Multi Touch Input Mapper:
      Slot  0: inUse=false, x= 375, y= 683, trackingId=  482, touchMajor=   0, pressure=   1, toolType=0, grip=0, palm=0
      Slot  1: inUse=false, x= 344, y= 952, trackingId=  480, touchMajor=   0, pressure=   2, toolType=0, grip=0, palm=0
      Slot  2: inUse=false, x= 575, y= 766, trackingId=  481, touchMajor=   0, pressure=   2, toolType=0, grip=0, palm=0
      Slot  3: inUse=false, x= 577, y= 676, trackingId=  473, touchMajor=   0, pressure=   4, toolType=0, grip=0, palm=0
      Slot  4: inUse=false, x=   0, y=   0, trackingId=   -1, touchMajor=   0, pressure=   0, toolType=0, grip=0, palm=0
      Slot  5: inUse=false, x=   0, y=   0, trackingId=   -1, touchMajor=   0, pressure=   0, toolType=0, grip=0, palm=0
      Slot  6: inUse=false, x=   0, y=   0, trackingId=   -1, touchMajor=   0, pressure=   0, toolType=0, grip=0, palm=0
      Slot  7: inUse=false, x=   0, y=   0, trackingId=   -1, touchMajor=   0, pressure=   0, toolType=0, grip=0, palm=0
      Slot  8: inUse=false, x=   0, y=   0, trackingId=   -1, touchMajor=   0, pressure=   0, toolType=0, grip=0, palm=0
      Slot  9: inUse=false, x=   0, y=   0, trackingId=   -1, touchMajor=   0, pressure=   0, toolType=0, grip=0, palm=0
      PalmBit = 0x0
  Device 5: sardsi_irq
    EventHub Devices: [ 2 ] 
    Generation: 15
    IsExternal: false
    AssociatedDisplayPort: <none>
    AssociatedDisplayUniqueId: <none>
    HasMic:     false
    Sources: 0x00000101
    KeyboardType: 1
    ControllerNum: 0
    Keyboard Input Mapper:
      Parameters:
        OrientationAware: false
        HandlesKeyRepeat: false
        NeedChangeKeyCode: false
      KeyboardType: 1
      Orientation: 0
      KeyDowns: 0 keys currently down
      MetaState: 0x0
      DownTime: 0
  Device 4: mt-snd-card Headset Jack
    EventHub Devices: [ 3 ] 
    Generation: 12
    IsExternal: false
    AssociatedDisplayPort: <none>
    AssociatedDisplayUniqueId: <none>
    HasMic:     false
    Sources: 0x80000101
    KeyboardType: 1
    ControllerNum: 0
    Switch Input Mapper:
      SwitchValues: 0
      SwitchValid:  d4
    Keyboard Input Mapper:
      Parameters:
        OrientationAware: false
        HandlesKeyRepeat: false
        NeedChangeKeyCode: false
      KeyboardType: 1
      Orientation: 0
      KeyDowns: 0 keys currently down
      MetaState: 0x0
      DownTime: 0
  Device 3: mtk-pmic-keys
    EventHub Devices: [ 4 ] 
    Generation: 9
    IsExternal: false
    AssociatedDisplayPort: <none>
    AssociatedDisplayUniqueId: <none>
    HasMic:     false
    Sources: 0x00000101
    KeyboardType: 1
    ControllerNum: 0
    Keyboard Input Mapper:
      Parameters:
        OrientationAware: false
        HandlesKeyRepeat: false
        NeedChangeKeyCode: false
      KeyboardType: 1
      Orientation: 0
      KeyDowns: 0 keys currently down
      MetaState: 0x0
      DownTime: 1909982051361000
  Device 2: mtk-kpd
    EventHub Devices: [ 5 ] 
    Generation: 6
    IsExternal: false
    AssociatedDisplayPort: <none>
    AssociatedDisplayUniqueId: <none>
    HasMic:     false
    Sources: 0x00000101
    KeyboardType: 1
    ControllerNum: 0
    Keyboard Input Mapper:
      Parameters:
        OrientationAware: false
        HandlesKeyRepeat: false
        NeedChangeKeyCode: false
      KeyboardType: 1
      Orientation: 0
      KeyDowns: 0 keys currently down
      MetaState: 0x0
      DownTime: 0
  Device -1: Virtual
    EventHub Devices: [ -1 ] 
    Generation: 3
    IsExternal: false
    AssociatedDisplayPort: <none>
    AssociatedDisplayUniqueId: <none>
    HasMic:     false
    Sources: 0x00000301
    KeyboardType: 2
    ControllerNum: 0
    Keyboard Input Mapper:
      Parameters:
        OrientationAware: false
        HandlesKeyRepeat: false
        NeedChangeKeyCode: false
      KeyboardType: 2
      Orientation: 0
      KeyDowns: 0 keys currently down
      MetaState: 0x0
      DownTime: 0
  Configuration:
    ExcludedDeviceNames: []
    VirtualKeyQuietTime: 0.0ms
    PointerVelocityControlParameters: scale=1.000, lowThreshold=500.000, highThreshold=3000.000, acceleration=3.000
    WheelVelocityControlParameters: scale=1.000, lowThreshold=15.000, highThreshold=50.000, acceleration=4.000
    PointerGesture:
      Enabled: true
      QuietInterval: 100.0ms
      DragMinSwitchSpeed: 50.0px/s
      TapInterval: 150.0ms
      TapDragInterval: 300.0ms
      TapSlop: 20.0px
      MultitouchSettleInterval: 100.0ms
      MultitouchMinDistance: 5.0px
      SwipeTransitionAngleCosine: 0.3
      SwipeMaxWidthRatio: 0.2
      MovementSpeedRatio: 0.8
      ZoomSpeedRatio: 0.3
      pointerGestureRightClickSetInterval: 150.0ms
      TapActionInterval: 20.0ms
      TapMoveInterval: 300.0ms
      TapMoveSlop: 15.0px
      Viewports:
        Viewport INTERNAL: displayId=0, uniqueId=local:0, port=0, orientation=0, logicalFrame=[0, 0, 720, 1600], physicalFrame=[0, 0, 720, 1600], deviceSize=[720, 1600], isActive=[0]
  Cover State:
    Verifier type: none, Verified: false
    Cover type: -1, Front: opened, Back: detached
    Test mode enabled: false, type: -1
    Front state change time: 0
    Glove mode enabled: false

UnwantedInteractionBlocker:
  mPreferStylusOverTouchBlocker:
    mActiveStyli: {}
    mLastTouchEvents: 
    mDevicesWithMixedToolType: {}
    mCanceledDevices: {}
  mEnablePalmRejection: false
  isPalmRejectionEnabled (flag value): false
  mPalmRejectors: None

Input Classifier State:
  Motion Classifier:
    <nullptr>

Input Dispatcher State:
  DispatchEnabled: true
  DispatchFrozen: false
  InputFilterEnabled: false
  FocusedDisplayId: 0
  FocusedApplications:
    displayId=0, name='ActivityRecord{79339f3 u0 com.termux.x11/.MainActivity} t5709}', dispatchingTimeout=10000ms
  FocusedWindows:
    displayId=0, name='491cfcf NotificationShade'
  FocusRequests:
    displayId=0, name='491cfcf NotificationShade' result='OK'
  Pointer Capture Requested: false
  Current Window with Pointer Capture: None
  TouchStates: <no displays touched>
  Display: 0
    logicalSize=720x1600
        transform (ROT_0) (IDENTITY)
    Windows:
      0: name='ColorFade BLAST_d0#25954', id=25954, displayId=0, inputConfig=NO_INPUT_CHANNEL, alpha=1.00, frame=[0,0][720,1600], globalScale=1.000000, samsungFlags=0x0, applicationInfo.name=, applicationInfo.token=<null>, touchableRegion=<empty>, pTouchableRegion=<empty>, 1HXY=[0.0, 0.0, 0.000], ownerPid=1265, ownerUid=1000, dispatchingTimeout=5000ms, hasToken=false, touchOcclusionMode=BLOCK_UNTRUSTED
        transform (ROT_0) (IDENTITY)
      1: name='[Gesture Monitor] PalmMotion', id=84, displayId=0, inputConfig=NOT_FOCUSABLE | TRUSTED_OVERLAY | SPY, alpha=1.00, frame=[0,0][0,0], globalScale=1.000000, samsungFlags=0x0, applicationInfo.name=[Gesture Monitor] PalmMotion, applicationInfo.token=<null>, touchableRegion=[-7199,-15999][7200,16000], pTouchableRegion=<empty>, 1HXY=[0.0, 0.0, 0.000], ownerPid=1265, ownerUid=1000, dispatchingTimeout=10000ms, hasToken=true, touchOcclusionMode=BLOCK_UNTRUSTED
        transform (ROT_0) (IDENTITY)
      2: name='10d0c42 NavigationBar0', id=78, displayId=0, inputConfig=NOT_VISIBLE | NOT_FOCUSABLE | TRUSTED_OVERLAY | WATCH_OUTSIDE_TOUCH | SLIPPERY, alpha=1.00, frame=[0,1600][720,1690], globalScale=1.000000, samsungFlags=0x0, applicationInfo.name=, applicationInfo.token=<null>, touchableRegion=[0,1600][720,1690], pTouchableRegion=<empty>, 1HXY=[0.0, 0.0, 1.000], ownerPid=1624, ownerUid=10045, dispatchingTimeout=10000ms, hasToken=true, touchOcclusionMode=BLOCK_UNTRUSTED
        transform (ROT_0) (TRANSLATE)
            1.0000  -0.0000  0.0000
            -0.0000  1.0000  -1600.0000
            0.0000  0.0000  1.0000
      3: name='491cfcf NotificationShade', id=25956, displayId=0, inputConfig=TRUSTED_OVERLAY | WATCH_OUTSIDE_TOUCH | DISABLE_USER_ACTIVITY, alpha=1.00, frame=[0,0][720,1600], globalScale=1.000000, samsungFlags=0x40000, applicationInfo.name=, applicationInfo.token=<null>, touchableRegion=[-720,-1600][1440,3200], pTouchableRegion=<empty>, 1HXY=[0.0, 0.0, 1.000], ownerPid=1624, ownerUid=10045, dispatchingTimeout=10000ms, hasToken=true, touchOcclusionMode=BLOCK_UNTRUSTED
        transform (ROT_0) (IDENTITY)
      4: name='d24d3db StatusBar', id=83, displayId=0, inputConfig=NOT_FOCUSABLE | PREVENT_SPLITTING | TRUSTED_OVERLAY, alpha=1.00, frame=[0,0][720,49], globalScale=1.000000, samsungFlags=0x0, applicationInfo.name=, applicationInfo.token=<null>, touchableRegion=[0,0][720,49], pTouchableRegion=<empty>, 1HXY=[0.0, 0.0, 1.000], ownerPid=1624, ownerUid=10045, dispatchingTimeout=10000ms, hasToken=true, touchOcclusionMode=BLOCK_UNTRUSTED
        transform (ROT_0) (IDENTITY)
      5: name='recents_animation_input_consumer', id=100, displayId=0, inputConfig=NOT_VISIBLE | TRUSTED_OVERLAY, alpha=1.00, frame=[0,0][720,1600], globalScale=1.000000, samsungFlags=0x0, applicationInfo.name=recents_animation_input_consumer, applicationInfo.token=0xb400006ebf148c20, touchableRegion=[0,0][720,1600], pTouchableRegion=<empty>, 1HXY=[0.0, 0.0, 0.000], ownerPid=1265, ownerUid=1000, dispatchingTimeout=10000ms, hasToken=true, touchOcclusionMode=BLOCK_UNTRUSTED
        transform (ROT_0) (IDENTITY)
      6: name='a5a9462 ActivityRecordInputSink com.termux.x11/.MainActivity', id=25942, displayId=0, inputConfig=NO_INPUT_CHANNEL | NOT_VISIBLE | NOT_FOCUSABLE, alpha=1.00, frame=[0,0][0,0], globalScale=0.000000, samsungFlags=0x0, applicationInfo.name=, applicationInfo.token=<null>, touchableRegion=[-7199,-15999][7200,16000], pTouchableRegion=<empty>, 1HXY=[0.0, 0.0, 0.000], ownerPid=1265, ownerUid=1000, dispatchingTimeout=0ms, hasToken=false, touchOcclusionMode=BLOCK_UNTRUSTED
        transform (ROT_0) (IDENTITY)
      7: name='6526d56 ActivityRecordInputSink com.termux/.app.TermuxActivity', id=13603, displayId=0, inputConfig=NO_INPUT_CHANNEL | NOT_VISIBLE | NOT_FOCUSABLE | NOT_TOUCHABLE, alpha=1.00, frame=[0,0][0,0], globalScale=0.000000, samsungFlags=0x0, applicationInfo.name=, applicationInfo.token=<null>, touchableRegion=[-7199,-15999][7200,16000], pTouchableRegion=<empty>, 1HXY=[0.0, 0.0, 0.000], ownerPid=1265, ownerUid=1000, dispatchingTimeout=0ms, hasToken=false, touchOcclusionMode=BLOCK_UNTRUSTED
        transform (ROT_0) (IDENTITY)
      8: name='6275fbb ActivityRecordInputSink com.samsung.android.calendar/com.samsung.android.app.calendar.activity.MainActivity', id=8584, displayId=0, inputConfig=NO_INPUT_CHANNEL | NOT_VISIBLE | NOT_FOCUSABLE | NOT_TOUCHABLE, alpha=1.00, frame=[0,0][0,0], globalScale=0.000000, samsungFlags=0x0, applicationInfo.name=, applicationInfo.token=<null>, touchableRegion=[-7199,-15999][7200,16000], pTouchableRegion=<empty>, 1HXY=[0.0, 0.0, 0.000], ownerPid=1265, ownerUid=1000, dispatchingTimeout=0ms, hasToken=false, touchOcclusionMode=BLOCK_UNTRUSTED
        transform (ROT_0) (IDENTITY)
      9: name='a3c0b58 ActivityRecordInputSink com.google.chromeremotedesktop/org.chromium.chromoting.Chromoting', id=7034, displayId=0, inputConfig=NO_INPUT_CHANNEL | NOT_VISIBLE | NOT_FOCUSABLE | NOT_TOUCHABLE, alpha=1.00, frame=[0,0][0,0], globalScale=0.000000, samsungFlags=0x0, applicationInfo.name=, applicationInfo.token=<null>, touchableRegion=[-7199,-15999][7200,16000], pTouchableRegion=<empty>, 1HXY=[0.0, 0.0, 0.000], ownerPid=1265, ownerUid=1000, dispatchingTimeout=0ms, hasToken=false, touchOcclusionMode=BLOCK_UNTRUSTED
        transform (ROT_0) (IDENTITY)
      10: name='a9c932 ActivityRecordInputSink org.pocketworkstation.pckeyboard/.Main', id=9308, displayId=0, inputConfig=NO_INPUT_CHANNEL | NOT_VISIBLE | NOT_FOCUSABLE | NOT_TOUCHABLE, alpha=1.00, frame=[0,0][0,0], globalScale=0.000000, samsungFlags=0x0, applicationInfo.name=, applicationInfo.token=<null>, touchableRegion=[-7199,-15999][7200,16000], pTouchableRegion=<empty>, 1HXY=[0.0, 0.0, 0.000], ownerPid=1265, ownerUid=1000, dispatchingTimeout=0ms, hasToken=false, touchOcclusionMode=BLOCK_UNTRUSTED
        transform (ROT_0) (IDENTITY)
      11: name='ac70f77 ActivityRecordInputSink com.android.chrome/org.chromium.chrome.browser.ChromeTabbedActivity', id=16736, displayId=0, inputConfig=NO_INPUT_CHANNEL | NOT_VISIBLE | NOT_FOCUSABLE | NOT_TOUCHABLE, alpha=1.00, frame=[0,0][0,0], globalScale=0.000000, samsungFlags=0x0, applicationInfo.name=, applicationInfo.token=<null>, touchableRegion=[-7199,-15999][7200,16000], pTouchableRegion=<empty>, 1HXY=[0.0, 0.0, 0.000], ownerPid=1265, ownerUid=1000, dispatchingTimeout=0ms, hasToken=false, touchOcclusionMode=BLOCK_UNTRUSTED
        transform (ROT_0) (IDENTITY)
      12: name='d3363b0 ActivityRecordInputSink com.sec.android.app.launcher/com.android.launcher3.uioverrides.QuickstepLauncher', id=109, displayId=0, inputConfig=NO_INPUT_CHANNEL | NOT_VISIBLE | NOT_FOCUSABLE | NOT_TOUCHABLE, alpha=1.00, frame=[0,0][0,0], globalScale=0.000000, samsungFlags=0x0, applicationInfo.name=, applicationInfo.token=<null>, touchableRegion=[-7199,-15999][7200,16000], pTouchableRegion=<empty>, 1HXY=[0.0, 0.0, 0.000], ownerPid=1265, ownerUid=1000, dispatchingTimeout=0ms, hasToken=false, touchOcclusionMode=BLOCK_UNTRUSTED
        transform (ROT_0) (IDENTITY)
      13: name='Wallpaper BBQ wrapper#77', id=77, displayId=0, inputConfig=NO_INPUT_CHANNEL | NOT_VISIBLE, alpha=1.00, frame=[-439,0][1160,1600], globalScale=1.000000, samsungFlags=0x0, applicationInfo.name=, applicationInfo.token=<null>, touchableRegion=<empty>, pTouchableRegion=<empty>, 1HXY=[0.0, 0.0, 0.000], ownerPid=1624, ownerUid=10045, dispatchingTimeout=5000ms, hasToken=false, touchOcclusionMode=BLOCK_UNTRUSTED
        transform (ROT_0) (TRANSLATE)
            1.0000  -0.0000  440.0000
            -0.0000  1.0000  0.0000
            0.0000  0.0000  1.0000
      14: name='8aec8f6 com.android.systemui.ImageWallpaper', id=76, displayId=0, inputConfig=NOT_VISIBLE | NOT_FOCUSABLE | NOT_TOUCHABLE | PREVENT_SPLITTING | IS_WALLPAPER, alpha=1.00, frame=[-439,0][-439,0], globalScale=1.000000, samsungFlags=0x8, applicationInfo.name=, applicationInfo.token=<null>, touchableRegion=<empty>, pTouchableRegion=<empty>, 1HXY=[0.0, 0.0, 1.000], ownerPid=1624, ownerUid=10045, dispatchingTimeout=10000ms, hasToken=true, touchOcclusionMode=BLOCK_UNTRUSTED
        transform (ROT_0) (TRANSLATE)
            1.0000  -0.0000  440.0000
            -0.0000  1.0000  0.0000
            0.0000  0.0000  1.0000
  Global monitors on display 0:
    0: 'PointerEventDispatcher0 (server)', 
  RecentQueue: length=10
    MotionEvent, age=826165ms
    MotionEvent, age=826148ms
    KeyEvent, age=825872ms
    MotionEvent, age=825864ms
    MotionEvent, age=825714ms
    KeyEvent, age=825707ms
    MotionEvent, age=825681ms
    DeviceResetEvent(deviceId=6), policyFlags=0x00000000, age=825171ms
    FocusEvent(hasFocus=false), age=824981ms
    FocusEvent(hasFocus=true), age=824356ms
  PendingEvent: <none>
  InboundQueue: <empty>
  ReplacedKeys: <empty>
  CommandQueue: <empty>
  Connections:
    814: channelName='6cfb9ba com.termux.x11/com.termux.x11.MainActivity (server)', windowName='6cfb9ba com.termux.x11/com.termux.x11.MainActivity (server)', filter=0xffff, status=NORMAL, monitor=false, responsive=true
      OutboundQueue: <empty>
      WaitQueue: <empty>
    634: channelName='b07206e InputMethod (server)', windowName='b07206e InputMethod (server)', filter=0xffff, status=NORMAL, monitor=false, responsive=true
      OutboundQueue: <empty>
      WaitQueue: <empty>
    845: channelName='897c131 com.termux/com.termux.app.TermuxActivity (server)', windowName='897c131 com.termux/com.termux.app.TermuxActivity (server)', filter=0xffff, status=NORMAL, monitor=false, responsive=true
      OutboundQueue: <empty>
      WaitQueue: <empty>
    668: channelName='491cfcf NotificationShade (server)', windowName='491cfcf NotificationShade (server)', filter=0xffff, status=NORMAL, monitor=false, responsive=true
      OutboundQueue: <empty>
      WaitQueue: <empty>
    661: channelName='10d0c42 NavigationBar0 (server)', windowName='10d0c42 NavigationBar0 (server)', filter=0xffff, status=NORMAL, monitor=false, responsive=true
      OutboundQueue: <empty>
      WaitQueue: <empty>
    674: channelName='d24d3db StatusBar (server)', windowName='d24d3db StatusBar (server)', filter=0xffff, status=NORMAL, monitor=false, responsive=true
      OutboundQueue: <empty>
      WaitQueue: <empty>
    636: channelName='8aec8f6 com.android.systemui.ImageWallpaper (server)', windowName='8aec8f6 com.android.systemui.ImageWallpaper (server)', filter=0xffff, status=NORMAL, monitor=false, responsive=true
      OutboundQueue: <empty>
      WaitQueue: <empty>
    681: channelName='[Gesture Monitor] PalmMotion (server)', windowName='[Gesture Monitor] PalmMotion (server)', filter=0x   1, status=NORMAL, monitor=false, responsive=true
      OutboundQueue: <empty>
      WaitQueue: <empty>
    820: channelName='recents_animation_input_consumer (server)', windowName='recents_animation_input_consumer (server)', filter=0xffff, status=NORMAL, monitor=false, responsive=true
      OutboundQueue: <empty>
      WaitQueue: <empty>
    259: channelName='PointerEventDispatcher0 (server)', windowName='PointerEventDispatcher0 (server)', filter=0xffff, status=NORMAL, monitor=true, responsive=true
      OutboundQueue: <empty>
      WaitQueue: <empty>
    666: channelName='53110fc LockscreenShortcutBlur (server)', windowName='53110fc LockscreenShortcutBlur (server)', filter=0xffff, status=NORMAL, monitor=false, responsive=true
      OutboundQueue: <empty>
      WaitQueue: <empty>
    823: channelName='ab6d10f com.sec.android.app.launcher/com.sec.android.app.launcher.activities.LauncherActivity (server)', windowName='ab6d10f com.sec.android.app.launcher/com.sec.android.app.launcher.activities.LauncherActivity (server)', filter=0xffff, status=NORMAL, monitor=false, responsive=true
      OutboundQueue: <empty>
      WaitQueue: <empty>
    584: channelName='85ae6e9 ShellDropTarget (server)', windowName='85ae6e9 ShellDropTarget (server)', filter=0xffff, status=NORMAL, monitor=false, responsive=true
      OutboundQueue: <empty>
      WaitQueue: <empty>
  AppSwitch: not pending
  Configuration:
    KeyRepeatDelay: 50ms
    KeyRepeatTimeout: 400ms
    LatencyTracker:
      mTimelines.size() = 6
      mEventTimes.size() = 6
    LatencyAggregator:
      Sketches:
        mDownSketches[0]->num_values = 334 size = 0.4KB mMoveSketches[0]->num_values = 19666 size = 1.4KB
        mDownSketches[1]->num_values = 85 size = 0.1KB mMoveSketches[1]->num_values = 1656 size = 0.9KB
        mDownSketches[2]->num_values = 85 size = 0.1KB mMoveSketches[2]->num_values = 1656 size = 1.0KB
        mDownSketches[3]->num_values = 85 size = 0.1KB mMoveSketches[3]->num_values = 1656 size = 1.5KB
        mDownSketches[4]->num_values = 85 size = 0.2KB mMoveSketches[4]->num_values = 1656 size = 1.7KB
        mDownSketches[5]->num_values = 85 size = 0.2KB mMoveSketches[5]->num_values = 1656 size = 1.7KB
        mDownSketches[6]->num_values = 85 size = 0.2KB mMoveSketches[6]->num_values = 1656 size = 1.7KB
      mNumSketchEventsProcessed=20000
      mLastSlowEventTime=1909504454355887
      mNumEventsSinceLastSlowEventReport = 233
      mNumSkippedSlowEvents = 1

Input Dispatcher State at time of last ANR:
  ANR:
    Time: 2023-07-26 19:05:30
    Reason: 14e0e20 com.termux.x11/com.termux.x11.MainActivity (server) is not responding. Waited 10009ms for MotionEvent
    Window: ActivityRecord{a3e48cd u0 com.termux.x11/.MainActivity} t5471} - 14e0e20 com.termux.x11/com.termux.x11.MainActivity
  DispatchEnabled: true
  DispatchFrozen: false
  InputFilterEnabled: false
  FocusedDisplayId: 0
  FocusedApplications:
    displayId=0, name='ActivityRecord{a3e48cd u0 com.termux.x11/.MainActivity} t5471}', dispatchingTimeout=10000ms
  FocusedWindows:
    displayId=0, name='14e0e20 com.termux.x11/com.termux.x11.MainActivity'
  FocusRequests:
    displayId=0, name='14e0e20 com.termux.x11/com.termux.x11.MainActivity' result='OK'
  Pointer Capture Requested: false
  Current Window with Pointer Capture: None
  TouchStates: <no displays touched>
  Display: 0
    logicalSize=720x1600
        transform (ROT_0) (IDENTITY)
    Windows:
      0: name='[Gesture Monitor] PalmMotion', id=84, displayId=0, inputConfig=NOT_FOCUSABLE | TRUSTED_OVERLAY | SPY, alpha=1.00, frame=[0,0][0,0], globalScale=1.000000, samsungFlags=0x0, applicationInfo.name=[Gesture Monitor] PalmMotion, applicationInfo.token=<null>, touchableRegion=[-7199,-15999][7200,16000], pTouchableRegion=<empty>, 1HXY=[0.0, 0.0, 0.000], ownerPid=1265, ownerUid=1000, dispatchingTimeout=10000ms, hasToken=true, touchOcclusionMode=BLOCK_UNTRUSTED
        transform (ROT_0) (IDENTITY)
      1: name='10d0c42 NavigationBar0', id=78, displayId=0, inputConfig=NOT_FOCUSABLE | TRUSTED_OVERLAY | WATCH_OUTSIDE_TOUCH | SLIPPERY, alpha=1.00, frame=[0,1510][720,1600], globalScale=1.000000, samsungFlags=0x0, applicationInfo.name=, applicationInfo.token=<null>, touchableRegion=[0,1510][720,1600], pTouchableRegion=<empty>, 1HXY=[0.0, 0.0, 1.000], ownerPid=1624, ownerUid=10045, dispatchingTimeout=10000ms, hasToken=true, touchOcclusionMode=BLOCK_UNTRUSTED
        transform (ROT_0) (TRANSLATE)
            1.0000  -0.0000  0.0000
            -0.0000  1.0000  -1510.0000
            0.0000  0.0000  1.0000
      2: name='d24d3db StatusBar', id=83, displayId=0, inputConfig=NOT_FOCUSABLE | PREVENT_SPLITTING | TRUSTED_OVERLAY, alpha=1.00, frame=[0,0][720,49], globalScale=1.000000, samsungFlags=0x0, applicationInfo.name=, applicationInfo.token=<null>, touchableRegion=[0,0][720,49], pTouchableRegion=<empty>, 1HXY=[0.0, 0.0, 1.000], ownerPid=1624, ownerUid=10045, dispatchingTimeout=10000ms, hasToken=true, touchOcclusionMode=BLOCK_UNTRUSTED
        transform (ROT_0) (IDENTITY)
      3: name='recents_animation_input_consumer', id=100, displayId=0, inputConfig=NOT_VISIBLE | TRUSTED_OVERLAY, alpha=1.00, frame=[0,0][720,1600], globalScale=1.000000, samsungFlags=0x0, applicationInfo.name=recents_animation_input_consumer, applicationInfo.token=0xb400006ebf148c20, touchableRegion=[0,0][720,1600], pTouchableRegion=<empty>, 1HXY=[0.0, 0.0, 0.000], ownerPid=1265, ownerUid=1000, dispatchingTimeout=10000ms, hasToken=true, touchOcclusionMode=BLOCK_UNTRUSTED
        transform (ROT_0) (IDENTITY)
      4: name='14e0e20 com.termux.x11/com.termux.x11.MainActivity', id=17107, displayId=0, inputConfig=0x0, alpha=1.00, frame=[0,0][720,1600], globalScale=1.000000, samsungFlags=0x0, applicationInfo.name=ActivityRecord{a3e48cd u0 com.termux.x11/.MainActivity} t5471}, applicationInfo.token=0xb400006db71d4470, touchableRegion=[0,0][720,1600], pTouchableRegion=<empty>, 1HXY=[0.0, 0.0, 1.000], ownerPid=29708, ownerUid=10303, dispatchingTimeout=10000ms, hasToken=true, touchOcclusionMode=BLOCK_UNTRUSTED
        transform (ROT_0) (IDENTITY)
      5: name='SurfaceView[com.termux.x11/com.termux.x11.MainActivity]@0(BLAST)#17111', id=17111, displayId=0, inputConfig=NO_INPUT_CHANNEL, alpha=1.00, frame=[0,49][720,1510], globalScale=1.000000, samsungFlags=0x0, applicationInfo.name=, applicationInfo.token=<null>, touchableRegion=<empty>, pTouchableRegion=<empty>, 1HXY=[0.0, 0.0, 0.000], ownerPid=29708, ownerUid=10303, dispatchingTimeout=5000ms, hasToken=false, touchOcclusionMode=BLOCK_UNTRUSTED
        transform (ROT_0) (TRANSLATE)
            1.0000  -0.0000  0.0000
            -0.0000  1.0000  -49.0000
            0.0000  0.0000  1.0000
      6: name='6038e64 ActivityRecordInputSink com.termux.x11/.MainActivity', id=17099, displayId=0, inputConfig=NO_INPUT_CHANNEL | NOT_FOCUSABLE, alpha=1.00, frame=[0,0][0,0], globalScale=0.000000, samsungFlags=0x0, applicationInfo.name=, applicationInfo.token=<null>, touchableRegion=[-7199,-15999][7200,16000], pTouchableRegion=<empty>, 1HXY=[0.0, 0.0, 0.000], ownerPid=1265, ownerUid=1000, dispatchingTimeout=0ms, hasToken=false, touchOcclusionMode=BLOCK_UNTRUSTED
        transform (ROT_0) (IDENTITY)
      7: name='b07206e InputMethod', id=17087, displayId=0, inputConfig=NOT_VISIBLE | NOT_FOCUSABLE | TRUSTED_OVERLAY, alpha=1.00, frame=[0,49][720,1600], globalScale=1.000000, samsungFlags=0x0, applicationInfo.name=, applicationInfo.token=<null>, touchableRegion=[0,1010][720,1510], pTouchableRegion=<empty>, 1HXY=[0.0, 0.0, 1.000], ownerPid=17664, ownerUid=10139, dispatchingTimeout=10000ms, hasToken=true, touchOcclusionMode=BLOCK_UNTRUSTED
        transform (ROT_0) (TRANSLATE)
            1.0000  -0.0000  0.0000
            -0.0000  1.0000  -49.0000
            0.0000  0.0000  1.0000
      8: name='6526d56 ActivityRecordInputSink com.termux/.app.TermuxActivity', id=13603, displayId=0, inputConfig=NO_INPUT_CHANNEL | NOT_VISIBLE | NOT_FOCUSABLE | NOT_TOUCHABLE, alpha=1.00, frame=[0,0][0,0], globalScale=0.000000, samsungFlags=0x0, applicationInfo.name=, applicationInfo.token=<null>, touchableRegion=[-7199,-15999][7200,16000], pTouchableRegion=<empty>, 1HXY=[0.0, 0.0, 0.000], ownerPid=1265, ownerUid=1000, dispatchingTimeout=0ms, hasToken=false, touchOcclusionMode=BLOCK_UNTRUSTED
        transform (ROT_0) (IDENTITY)
      9: name='cb2e3c6 ActivityRecordInputSink com.android.settings/.applications.InstalledAppDetailsTop', id=9979, displayId=0, inputConfig=NO_INPUT_CHANNEL | NOT_VISIBLE | NOT_FOCUSABLE | NOT_TOUCHABLE, alpha=1.00, frame=[0,0][0,0], globalScale=0.000000, samsungFlags=0x0, applicationInfo.name=, applicationInfo.token=<null>, touchableRegion=[-7199,-15999][7200,16000], pTouchableRegion=<empty>, 1HXY=[0.0, 0.0, 0.000], ownerPid=1265, ownerUid=1000, dispatchingTimeout=0ms, hasToken=false, touchOcclusionMode=BLOCK_UNTRUSTED
        transform (ROT_0) (IDENTITY)
      10: name='6275fbb ActivityRecordInputSink com.samsung.android.calendar/com.samsung.android.app.calendar.activity.MainActivity', id=8584, displayId=0, inputConfig=NO_INPUT_CHANNEL | NOT_VISIBLE | NOT_FOCUSABLE | NOT_TOUCHABLE, alpha=1.00, frame=[0,0][0,0], globalScale=0.000000, samsungFlags=0x0, applicationInfo.name=, applicationInfo.token=<null>, touchableRegion=[-7199,-15999][7200,16000], pTouchableRegion=<empty>, 1HXY=[0.0, 0.0, 0.000], ownerPid=1265, ownerUid=1000, dispatchingTimeout=0ms, hasToken=false, touchOcclusionMode=BLOCK_UNTRUSTED
        transform (ROT_0) (IDENTITY)
      11: name='a3c0b58 ActivityRecordInputSink com.google.chromeremotedesktop/org.chromium.chromoting.Chromoting', id=7034, displayId=0, inputConfig=NO_INPUT_CHANNEL | NOT_VISIBLE | NOT_FOCUSABLE | NOT_TOUCHABLE, alpha=1.00, frame=[0,0][0,0], globalScale=0.000000, samsungFlags=0x0, applicationInfo.name=, applicationInfo.token=<null>, touchableRegion=[-7199,-15999][7200,16000], pTouchableRegion=<empty>, 1HXY=[0.0, 0.0, 0.000], ownerPid=1265, ownerUid=1000, dispatchingTimeout=0ms, hasToken=false, touchOcclusionMode=BLOCK_UNTRUSTED
        transform (ROT_0) (IDENTITY)
      12: name='c14082c ActivityRecordInputSink com.android.settings/.SubSettings', id=6703, displayId=0, inputConfig=NO_INPUT_CHANNEL | NOT_VISIBLE | NOT_FOCUSABLE | NOT_TOUCHABLE, alpha=1.00, frame=[0,0][0,0], globalScale=0.000000, samsungFlags=0x0, applicationInfo.name=, applicationInfo.token=<null>, touchableRegion=[-7199,-15999][7200,16000], pTouchableRegion=<empty>, 1HXY=[0.0, 0.0, 0.000], ownerPid=1265, ownerUid=1000, dispatchingTimeout=0ms, hasToken=false, touchOcclusionMode=BLOCK_UNTRUSTED
        transform (ROT_0) (IDENTITY)
      13: name='6be2f88 ActivityRecordInputSink com.android.settings/.homepage.SettingsHomepageActivity', id=576, displayId=0, inputConfig=NO_INPUT_CHANNEL | NOT_VISIBLE | NOT_FOCUSABLE | NOT_TOUCHABLE, alpha=1.00, frame=[0,0][0,0], globalScale=0.000000, samsungFlags=0x0, applicationInfo.name=, applicationInfo.token=<null>, touchableRegion=[-7199,-15999][7200,16000], pTouchableRegion=<empty>, 1HXY=[0.0, 0.0, 0.000], ownerPid=1265, ownerUid=1000, dispatchingTimeout=0ms, hasToken=false, touchOcclusionMode=BLOCK_UNTRUSTED
        transform (ROT_0) (IDENTITY)
      14: name='a9c932 ActivityRecordInputSink org.pocketworkstation.pckeyboard/.Main', id=9308, displayId=0, inputConfig=NO_INPUT_CHANNEL | NOT_VISIBLE | NOT_FOCUSABLE | NOT_TOUCHABLE, alpha=1.00, frame=[0,0][0,0], globalScale=0.000000, samsungFlags=0x0, applicationInfo.name=, applicationInfo.token=<null>, touchableRegion=[-7199,-15999][7200,16000], pTouchableRegion=<empty>, 1HXY=[0.0, 0.0, 0.000], ownerPid=1265, ownerUid=1000, dispatchingTimeout=0ms, hasToken=false, touchOcclusionMode=BLOCK_UNTRUSTED
        transform (ROT_0) (IDENTITY)
      15: name='ac70f77 ActivityRecordInputSink com.android.chrome/org.chromium.chrome.browser.ChromeTabbedActivity', id=16736, displayId=0, inputConfig=NO_INPUT_CHANNEL | NOT_VISIBLE | NOT_FOCUSABLE | NOT_TOUCHABLE, alpha=1.00, frame=[0,0][0,0], globalScale=0.000000, samsungFlags=0x0, applicationInfo.name=, applicationInfo.token=<null>, touchableRegion=[-7199,-15999][7200,16000], pTouchableRegion=<empty>, 1HXY=[0.0, 0.0, 0.000], ownerPid=1265, ownerUid=1000, dispatchingTimeout=0ms, hasToken=false, touchOcclusionMode=BLOCK_UNTRUSTED
        transform (ROT_0) (IDENTITY)
      16: name='d3363b0 ActivityRecordInputSink com.sec.android.app.launcher/com.android.launcher3.uioverrides.QuickstepLauncher', id=109, displayId=0, inputConfig=NO_INPUT_CHANNEL | NOT_VISIBLE | NOT_FOCUSABLE | NOT_TOUCHABLE, alpha=1.00, frame=[0,0][0,0], globalScale=0.000000, samsungFlags=0x0, applicationInfo.name=, applicationInfo.token=<null>, touchableRegion=[-7199,-15999][7200,16000], pTouchableRegion=<empty>, 1HXY=[0.0, 0.0, 0.000], ownerPid=1265, ownerUid=1000, dispatchingTimeout=0ms, hasToken=false, touchOcclusionMode=BLOCK_UNTRUSTED
        transform (ROT_0) (IDENTITY)
      17: name='Wallpaper BBQ wrapper#77', id=77, displayId=0, inputConfig=NO_INPUT_CHANNEL | NOT_VISIBLE, alpha=1.00, frame=[-439,0][1160,1600], globalScale=1.000000, samsungFlags=0x0, applicationInfo.name=, applicationInfo.token=<null>, touchableRegion=<empty>, pTouchableRegion=<empty>, 1HXY=[0.0, 0.0, 0.000], ownerPid=1624, ownerUid=10045, dispatchingTimeout=5000ms, hasToken=false, touchOcclusionMode=BLOCK_UNTRUSTED
        transform (ROT_0) (TRANSLATE)
            1.0000  -0.0000  440.0000
            -0.0000  1.0000  0.0000
            0.0000  0.0000  1.0000
      18: name='8aec8f6 com.android.systemui.ImageWallpaper', id=76, displayId=0, inputConfig=NOT_VISIBLE | NOT_FOCUSABLE | NOT_TOUCHABLE | PREVENT_SPLITTING | IS_WALLPAPER, alpha=1.00, frame=[-439,0][-439,0], globalScale=1.000000, samsungFlags=0x8, applicationInfo.name=, applicationInfo.token=<null>, touchableRegion=<empty>, pTouchableRegion=<empty>, 1HXY=[0.0, 0.0, 1.000], ownerPid=1624, ownerUid=10045, dispatchingTimeout=10000ms, hasToken=true, touchOcclusionMode=BLOCK_UNTRUSTED
        transform (ROT_0) (TRANSLATE)
            1.0000  -0.0000  440.0000
            -0.0000  1.0000  0.0000
            0.0000  0.0000  1.0000
  Global monitors on display 0:
    0: 'PointerEventDispatcher0 (server)', 
  RecentQueue: length=10
    MotionEvent, age=9495ms
    MotionEvent, age=9491ms
    MotionEvent, age=9483ms
    MotionEvent, age=9474ms
    MotionEvent, age=9467ms
    MotionEvent, age=9459ms
    MotionEvent, age=9450ms
    MotionEvent, age=9442ms
    MotionEvent, age=9437ms
    MotionEvent, age=9408ms
  PendingEvent: <none>
  InboundQueue: <empty>
  ReplacedKeys: <empty>
  CommandQueue: <empty>
  Connections:
    817: channelName='14e0e20 com.termux.x11/com.termux.x11.MainActivity (server)', windowName='14e0e20 com.termux.x11/com.termux.x11.MainActivity (server)', filter=0xffff, status=NORMAL, monitor=false, responsive=false
      OutboundQueue: <empty>
      WaitQueue: length=74
        MotionEvent, seq=300436, targetFlags=0x00000105, resolvedAction=0, age=10017ms, wait=10013ms
        MotionEvent, seq=300439, targetFlags=0x00000105, resolvedAction=2, age=10007ms, wait=10005ms
        MotionEvent, seq=300442, targetFlags=0x00000105, resolvedAction=2, age=10002ms, wait=10001ms
        MotionEvent, seq=300445, targetFlags=0x00000105, resolvedAction=2, age=9995ms, wait=9993ms
        MotionEvent, seq=300448, targetFlags=0x00000105, resolvedAction=2, age=9987ms, wait=9985ms
        MotionEvent, seq=300451, targetFlags=0x00000105, resolvedAction=2, age=9978ms, wait=9976ms
        MotionEvent, seq=300454, targetFlags=0x00000105, resolvedAction=2, age=9971ms, wait=9969ms
        MotionEvent, seq=300457, targetFlags=0x00000105, resolvedAction=2, age=9952ms, wait=9950ms
        MotionEvent, seq=300460, targetFlags=0x00000105, resolvedAction=2, age=9950ms, wait=9947ms
        MotionEvent, seq=300463, targetFlags=0x00000105, resolvedAction=2, age=9946ms, wait=9945ms
        MotionEvent, seq=300466, targetFlags=0x00000105, resolvedAction=2, age=9941ms, wait=9938ms
        MotionEvent, seq=300469, targetFlags=0x00000105, resolvedAction=2, age=9933ms, wait=9931ms
        MotionEvent, seq=300472, targetFlags=0x00000105, resolvedAction=2, age=9925ms, wait=9923ms
        MotionEvent, seq=300475, targetFlags=0x00000105, resolvedAction=2, age=9917ms, wait=9915ms
        MotionEvent, seq=300478, targetFlags=0x00000105, resolvedAction=2, age=9911ms, wait=9909ms
        MotionEvent, seq=300481, targetFlags=0x00000105, resolvedAction=2, age=9903ms, wait=9901ms
        MotionEvent, seq=300484, targetFlags=0x00000105, resolvedAction=2, age=9895ms, wait=9893ms
        MotionEvent, seq=300487, targetFlags=0x00000105, resolvedAction=2, age=9887ms, wait=9885ms
        MotionEvent, seq=300490, targetFlags=0x00000105, resolvedAction=2, age=9879ms, wait=9877ms
        MotionEvent, seq=300493, targetFlags=0x00000105, resolvedAction=2, age=9871ms, wait=9869ms
        MotionEvent, seq=300496, targetFlags=0x00000105, resolvedAction=2, age=9863ms, wait=9861ms
        MotionEvent, seq=300499, targetFlags=0x00000105, resolvedAction=2, age=9857ms, wait=9855ms
        MotionEvent, seq=300502, targetFlags=0x00000105, resolvedAction=2, age=9848ms, wait=9847ms
        MotionEvent, seq=300505, targetFlags=0x00000105, resolvedAction=2, age=9840ms, wait=9838ms
        MotionEvent, seq=300508, targetFlags=0x00000105, resolvedAction=2, age=9833ms, wait=9831ms
        <skipped 24 entries>
        MotionEvent, seq=300583, targetFlags=0x00000105, resolvedAction=2, age=9641ms, wait=9639ms
        MotionEvent, seq=300586, targetFlags=0x00000105, resolvedAction=2, age=9633ms, wait=9631ms
        MotionEvent, seq=300589, targetFlags=0x00000105, resolvedAction=2, age=9624ms, wait=9622ms
        MotionEvent, seq=300592, targetFlags=0x00000105, resolvedAction=2, age=9617ms, wait=9615ms
        MotionEvent, seq=300595, targetFlags=0x00000105, resolvedAction=2, age=9609ms, wait=9607ms
        MotionEvent, seq=300598, targetFlags=0x00000105, resolvedAction=2, age=9601ms, wait=9599ms
        MotionEvent, seq=300601, targetFlags=0x00000105, resolvedAction=2, age=9595ms, wait=9593ms
        MotionEvent, seq=300604, targetFlags=0x00000105, resolvedAction=2, age=9587ms, wait=9585ms
        MotionEvent, seq=300607, targetFlags=0x00000105, resolvedAction=2, age=9578ms, wait=9577ms
        MotionEvent, seq=300610, targetFlags=0x00000105, resolvedAction=2, age=9567ms, wait=9565ms
        MotionEvent, seq=300613, targetFlags=0x00000105, resolvedAction=2, age=9536ms, wait=9535ms
        MotionEvent, seq=300616, targetFlags=0x00000105, resolvedAction=2, age=9528ms, wait=9526ms
        MotionEvent, seq=300619, targetFlags=0x00000105, resolvedAction=2, age=9521ms, wait=9519ms
        MotionEvent, seq=300622, targetFlags=0x00000105, resolvedAction=2, age=9513ms, wait=9511ms
        MotionEvent, seq=300625, targetFlags=0x00000105, resolvedAction=2, age=9505ms, wait=9503ms
        MotionEvent, seq=300628, targetFlags=0x00000105, resolvedAction=2, age=9495ms, wait=9494ms
        MotionEvent, seq=300631, targetFlags=0x00000105, resolvedAction=2, age=9491ms, wait=9489ms
        MotionEvent, seq=300634, targetFlags=0x00000105, resolvedAction=2, age=9483ms, wait=9481ms
        MotionEvent, seq=300637, targetFlags=0x00000105, resolvedAction=2, age=9474ms, wait=9473ms
        MotionEvent, seq=300640, targetFlags=0x00000105, resolvedAction=2, age=9467ms, wait=9465ms
        MotionEvent, seq=300643, targetFlags=0x00000105, resolvedAction=2, age=9459ms, wait=9457ms
        MotionEvent, seq=300646, targetFlags=0x00000105, resolvedAction=2, age=9450ms, wait=9449ms
        MotionEvent, seq=300649, targetFlags=0x00000105, resolvedAction=2, age=9442ms, wait=9440ms
        MotionEvent, seq=300652, targetFlags=0x00000105, resolvedAction=2, age=9437ms, wait=9435ms
        MotionEvent, seq=300655, targetFlags=0x00000105, resolvedAction=1, age=9408ms, wait=9405ms
    793: channelName='a305772 com.android.chrome/org.chromium.chrome.browser.ChromeTabbedActivity (server)', windowName='a305772 com.android.chrome/org.chromium.chrome.browser.ChromeTabbedActivity (server)', filter=0xffff, status=NORMAL, monitor=false, responsive=true
      OutboundQueue: <empty>
      WaitQueue: <empty>
    634: channelName='b07206e InputMethod (server)', windowName='b07206e InputMethod (server)', filter=0xffff, status=NORMAL, monitor=false, responsive=true
      OutboundQueue: <empty>
      WaitQueue: <empty>
    911: channelName='6410ae5 org.pocketworkstation.pckeyboard/org.pocketworkstation.pckeyboard.Main (server)', windowName='6410ae5 org.pocketworkstation.pckeyboard/org.pocketworkstation.pckeyboard.Main (server)', filter=0xffff, status=NORMAL, monitor=false, responsive=true
      OutboundQueue: <empty>
      WaitQueue: <empty>
    845: channelName='897c131 com.termux/com.termux.app.TermuxActivity (server)', windowName='897c131 com.termux/com.termux.app.TermuxActivity (server)', filter=0xffff, status=NORMAL, monitor=false, responsive=true
      OutboundQueue: <empty>
      WaitQueue: <empty>
    720: channelName='242dd6c com.android.settings/com.android.settings.applications.InstalledAppDetails (server)', windowName='242dd6c com.android.settings/com.android.settings.applications.InstalledAppDetails (server)', filter=0xffff, status=NORMAL, monitor=false, responsive=true
      OutboundQueue: <empty>
      WaitQueue: <empty>
    856: channelName='c3b975b com.samsung.android.calendar/com.samsung.android.app.calendar.activity.MainActivity (server)', windowName='c3b975b com.samsung.android.calendar/com.samsung.android.app.calendar.activity.MainActivity (server)', filter=0xffff, status=NORMAL, monitor=false, responsive=true
      OutboundQueue: <empty>
      WaitQueue: <empty>
    668: channelName='491cfcf NotificationShade (server)', windowName='491cfcf NotificationShade (server)', filter=0xffff, status=NORMAL, monitor=false, responsive=true
      OutboundQueue: <empty>
      WaitQueue: <empty>
    661: channelName='10d0c42 NavigationBar0 (server)', windowName='10d0c42 NavigationBar0 (server)', filter=0xffff, status=NORMAL, monitor=false, responsive=true
      OutboundQueue: <empty>
      WaitQueue: <empty>
    674: channelName='d24d3db StatusBar (server)', windowName='d24d3db StatusBar (server)', filter=0xffff, status=NORMAL, monitor=false, responsive=true
      OutboundQueue: <empty>
      WaitQueue: <empty>
    636: channelName='8aec8f6 com.android.systemui.ImageWallpaper (server)', windowName='8aec8f6 com.android.systemui.ImageWallpaper (server)', filter=0xffff, status=NORMAL, monitor=false, responsive=true
      OutboundQueue: <empty>
      WaitQueue: <empty>
    681: channelName='[Gesture Monitor] PalmMotion (server)', windowName='[Gesture Monitor] PalmMotion (server)', filter=0x   1, status=NORMAL, monitor=false, responsive=true
      OutboundQueue: <empty>
      WaitQueue: <empty>
    820: channelName='recents_animation_input_consumer (server)', windowName='recents_animation_input_consumer (server)', filter=0xffff, status=NORMAL, monitor=false, responsive=true
      OutboundQueue: <empty>
      WaitQueue: <empty>
    259: channelName='PointerEventDispatcher0 (server)', windowName='PointerEventDispatcher0 (server)', filter=0xffff, status=NORMAL, monitor=true, responsive=true
      OutboundQueue: <empty>
      WaitQueue: <empty>
    666: channelName='53110fc LockscreenShortcutBlur (server)', windowName='53110fc LockscreenShortcutBlur (server)', filter=0xffff, status=NORMAL, monitor=false, responsive=true
      OutboundQueue: <empty>
      WaitQueue: <empty>
    823: channelName='ab6d10f com.sec.android.app.launcher/com.sec.android.app.launcher.activities.LauncherActivity (server)', windowName='ab6d10f com.sec.android.app.launcher/com.sec.android.app.launcher.activities.LauncherActivity (server)', filter=0xffff, status=NORMAL, monitor=false, responsive=true
      OutboundQueue: <empty>
      WaitQueue: <empty>
    584: channelName='85ae6e9 ShellDropTarget (server)', windowName='85ae6e9 ShellDropTarget (server)', filter=0xffff, status=NORMAL, monitor=false, responsive=true
      OutboundQueue: <empty>
      WaitQueue: <empty>
  AppSwitch: not pending
  Configuration:
    KeyRepeatDelay: 50ms
    KeyRepeatTimeout: 400ms
    LatencyTracker:
      mTimelines.size() = 5
      mEventTimes.size() = 5
    LatencyAggregator:
      Sketches:
        mDownSketches[0]->num_values = 334 size = 0.4KB mMoveSketches[0]->num_values = 19666 size = 1.4KB
        mDownSketches[1]->num_values = 85 size = 0.1KB mMoveSketches[1]->num_values = 1656 size = 0.9KB
        mDownSketches[2]->num_values = 85 size = 0.1KB mMoveSketches[2]->num_values = 1656 size = 1.0KB
        mDownSketches[3]->num_values = 85 size = 0.1KB mMoveSketches[3]->num_values = 1656 size = 1.5KB
        mDownSketches[4]->num_values = 85 size = 0.2KB mMoveSketches[4]->num_values = 1656 size = 1.7KB
        mDownSketches[5]->num_values = 85 size = 0.2KB mMoveSketches[5]->num_values = 1656 size = 1.7KB
        mDownSketches[6]->num_values = 85 size = 0.2KB mMoveSketches[6]->num_values = 1656 size = 1.7KB
      mNumSketchEventsProcessed=20000
      mLastSlowEventTime=1688499012244714
      mNumEventsSinceLastSlowEventReport = 54
      mNumSkippedSlowEvents = 0


Input Manager Service (Java) State:
  Gesture Monitors (implemented as spy windows):
    0: name='[Gesture Monitor] PalmMotion', inputChannelToken=android.os.BinderProxy@bcf759d displayId=0 mInputSurface=Surface(name=[Gesture Monitor] PalmMotion)/@0x9ebd406
  Keyboard Layouts:
    "English (UK), Qwerty style - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_english_uk
    "English (US), Qwerty style - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_english_us
    "English (US), International style - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_english_us_intl
    "English (US), Colemak style - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_english_us_colemak
    "English (US), Dvorak style - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_english_us_dvorak
    "English (US), Workman style - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_english_us_workman
    "German, Qwertz style - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_german
    "French, Azerty style - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_french
    "French (Canada), Qwerty style - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_french_ca
    "Russian - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_russian
    "Russian, Mac style - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_russian_mac
    "Spanish, Qwerty style - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_spanish
    "Swiss French, Qwertz style - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_swiss_french
    "Swiss German, Qwertz style - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_swiss_german
    "Belgian, Azerty style - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_belgian
    "Bulgarian - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_bulgarian
    "Bulgarian, Phonetic - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_bulgarian_phonetic
    "Italian, Qwerty style - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_italian
    "Danish, Qwerty style - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_danish
    "Norwegian, Qwerty style - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_norwegian
    "Swedish, Qwerty style - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_swedish
    "Finnish, Qwerty style - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_finnish
    "Croatian, Qwertz style - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_croatian
    "Czech, Qwerty style - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_czech
    "Estonian, Qwerty style - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_estonian
    "Hungarian, Qwertz style - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_hungarian
    "Icelandic, Qwerty style - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_icelandic
    "Brazilian, Qwerty style - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_brazilian
    "Portuguese, Qwerty style - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_portuguese
    "Slovak, Qwerty style - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_slovak
    "Slovenian, Qwertz style - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_slovenian
    "Turkish, Qwerty style - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_turkish
    "Turkish F - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_turkish_f
    "Ukrainian - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_ukrainian
    "Arabic - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_arabic
    "Greek - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_greek
    "Hebrew - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_hebrew
    "Lithuanian, Qwerty style - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_lithuanian
    "Spanish (Latin), Qwerty style - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_spanish_latin
    "Latvian, Qwerty style - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_latvian
    "Persian - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_persian
    "Azerbaijani - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_azerbaijani
    "Polish, Qwerty style - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_polish
    "Belarusian - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_belarusian
    "Mongolian - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_mongolian
    "Georgian - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_georgian
    "Japanese - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_japanese
    "Czech, Qwertz style - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_czech_qwertz
    "Slovak, Qwertz style - Android keyboard": com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_slovak_qwertz

  PersistentDataStore
    mLoaded=true
    mDirty=false
    InputDeviceStates:
      0: vendor:65535,product:65535
        CurrentKeyboardLayout=com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_german
        UnassociatedKeyboardLayouts=[]
        Subtype to Layout Mappings:
          InputMethodSubtypeHandle{mInputMethodId=com.samsung.android.honeyboard/.service.HoneyBoardService, mLanguageTag=null, mSubtypeId=65537}: com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_english_us
          InputMethodSubtypeHandle{mInputMethodId=com.samsung.android.honeyboard/.service.HoneyBoardService, mLanguageTag=de, mSubtypeId=1048576}: com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_german
          InputMethodSubtypeHandle{mInputMethodId=com.samsung.android.honeyboard/.service.HoneyBoardService, mLanguageTag=de-CH, mSubtypeId=1048632}: com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_german
          InputMethodSubtypeHandle{mInputMethodId=com.samsung.android.honeyboard/.service.HoneyBoardService, mLanguageTag=null, mSubtypeId=3342336}: com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_russian
          InputMethodSubtypeHandle{mInputMethodId=com.samsung.android.honeyboard/.service.HoneyBoardService, mLanguageTag=null, mSubtypeId=4653073}: com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_english_us
          InputMethodSubtypeHandle{mInputMethodId=com.samsung.android.honeyboard/.service.HoneyBoardService, mLanguageTag=null, mSubtypeId=4718592}: com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_hebrew
      1: vendor:1452,product:544
        CurrentKeyboardLayout=null
        UnassociatedKeyboardLayouts=[]
        Subtype to Layout Mappings:
          InputMethodSubtypeHandle{mInputMethodId=com.samsung.android.honeyboard/.service.HoneyBoardService, mLanguageTag=null, mSubtypeId=65537}: com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_english_us
          InputMethodSubtypeHandle{mInputMethodId=com.samsung.android.honeyboard/.service.HoneyBoardService, mLanguageTag=null, mSubtypeId=3342336}: com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_russian
          InputMethodSubtypeHandle{mInputMethodId=com.samsung.android.honeyboard/.service.HoneyBoardService, mLanguageTag=null, mSubtypeId=4521984}: com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_english_us
          InputMethodSubtypeHandle{mInputMethodId=com.samsung.android.honeyboard/.service.HoneyBoardService, mLanguageTag=null, mSubtypeId=4653073}: com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_english_us
          InputMethodSubtypeHandle{mInputMethodId=com.samsung.android.honeyboard/.service.HoneyBoardService, mLanguageTag=null, mSubtypeId=4718592}: com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_hebrew
          InputMethodSubtypeHandle{mInputMethodId=com.samsung.android.honeyboard/.service.HoneyBoardService, mLanguageTag=null, mSubtypeId=4784128}: com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_persian
      2: vendor:1118,product:2087
        CurrentKeyboardLayout=com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_english_us
        UnassociatedKeyboardLayouts=[]
        Subtype to Layout Mappings:
          InputMethodSubtypeHandle{mInputMethodId=com.samsung.android.honeyboard/.service.HoneyBoardService, mLanguageTag=null, mSubtypeId=65537}: com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_english_us
          InputMethodSubtypeHandle{mInputMethodId=com.samsung.android.honeyboard/.service.HoneyBoardService, mLanguageTag=null, mSubtypeId=3342336}: com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_russian
          InputMethodSubtypeHandle{mInputMethodId=com.samsung.android.honeyboard/.service.HoneyBoardService, mLanguageTag=null, mSubtypeId=4521984}: com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_english_us
          InputMethodSubtypeHandle{mInputMethodId=com.samsung.android.honeyboard/.service.HoneyBoardService, mLanguageTag=null, mSubtypeId=4653073}: com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_english_us
          InputMethodSubtypeHandle{mInputMethodId=com.samsung.android.honeyboard/.service.HoneyBoardService, mLanguageTag=null, mSubtypeId=4718592}: com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_hebrew
          InputMethodSubtypeHandle{mInputMethodId=com.samsung.android.honeyboard/.service.HoneyBoardService, mLanguageTag=null, mSubtypeId=4784128}: com.android.inputdevices/com.android.inputdevices.InputDeviceReceiver/keyboard_layout_persian

  Current IME Handle: InputMethodSubtypeHandle{mInputMethodId=com.samsung.android.honeyboard/.service.HoneyBoardService, mLanguageTag=de-CH, mSubtypeId=1048632}
  mAvailableInputMethods: {com.samsung.android.honeyboard/.service.HoneyBoardService=[3342336, 1048632, 65537, 4718592]}
  mBlockDeviceMode=0

@twaik
Copy link
Member

twaik commented Jul 28, 2023

Is there a way to implement process-local IME or test IME in process without enabling it globally?

@RalfWerner
Copy link

RalfWerner commented Jul 28, 2023

If everyone could just use ASCII, that would be great, make all our lives so much easier.

Not realy, the {[(<|>)]} keys has to positioned on every national KB at the same place! These are important for each programmer.

@twaik
Copy link
Member

twaik commented Jul 28, 2023

Not realy, the {[(<>)]} keys has to positioned on every national KB at the same place! These are important for each programmer.

Not really. On russian layout there are Хх(БЮ)ъЪ symbols in place of {[(<>)]}.

twaik added a commit that referenced this issue Aug 15, 2023
@twaik
Copy link
Member

twaik commented Aug 15, 2023

@xaverm @RalfWerner Can you please test the latest build with external keyboard?

@RalfWerner
Copy link

I used my german BT-KB that can be coupled via Special Keys with up to 3 devices. I connected my AM-A33 to PC by ssh, opened there an aterm, entered 9 keys on the PC (top left), then the KB coupled with the SM-A33 and entered the same 9 keys there and finally "hello" typed. Result:

9-keys.mp4

This is done with last artifact (still 1.03.00 but created:‎15. August ‎2023, ‏‎15:12:46). should I try with differend Preferences or with 1.02.04 (ekeys) too?

@twaik
Copy link
Member

twaik commented Aug 15, 2023

@RalfWerner I do not really understand what exactly happens on this video and what keys were pressed...

@RalfWerner
Copy link

RalfWerner commented Aug 15, 2023

I do not really understand what exactly happens on this video and what keys were pressed...

All Steps decribed in the second sentence!

@twaik
Copy link
Member

twaik commented Aug 15, 2023

entered 9 keys

What 9 keys?
Did it work as expected or it was wrong?

@RalfWerner
Copy link

RalfWerner commented Aug 15, 2023

above! it was wrong!

@twaik
Copy link
Member

twaik commented Aug 15, 2023

It was three weeks ago... Ok.

@twaik
Copy link
Member

twaik commented Aug 15, 2023

Does it happen with enabled prefer scancodes preference? What keyboard layout is set in your environment (setxkbmap?)?

@twaik
Copy link
Member

twaik commented Aug 15, 2023

I've checked prefer scancodes and it works fine with setxkbmap de. It fits to this table.

image

@RalfWerner
Copy link

RalfWerner commented Aug 15, 2023

Step pkg install xorg-setxkbmap was not done and I've switchoff prefereces, start setxkbmap and than retype the 9 keys :) looks better! @twaik - you are a genius! Your de-KB looks like mine BT-KB, even without preference prefer scancodes. Not correct is the BT-KB on PC and check on scrcpy mirror on PC but that doesn't matter!

@RalfWerner
Copy link

RalfWerner commented Aug 26, 2023

In the video:26 above with the short description is in addition to aterm also the WM=fluxbox, which also contains feh --bg. In addition to X -keys, this viewer also processes stdin. Xclient aterm support that actually not. If I start this Xclient by ssh (PC) on my SM-A33, the KB input of the 9 keys (above in the video) on the PC would not have been possible, because Xclient feh would use it alternative to the X-keys.
However, since the keyboard is coupled to the PC, xorg-setxkbmap does not have an effect.

The xorg-setxkbmap package should definitely has to be part of OTS and switchoff or removed from the prefereces! I compared this to my other favortite versions basic and ekeys but need some time to complete the comparison, with x11a from which there will some improvement requests.

You don't need to answer here - better in Discord or when I finished comparison with ekeys.

@twaik
Copy link
Member

twaik commented Aug 26, 2023

You are using too much too many abbreviations, I had no success in decrypting it...

@RalfWerner
Copy link

That doesn't matter! You could follow the links to get more information or check the actions by yourself. Only stdin from feh is relevant on the topic here.

With the rest I will continue to annoy you in #54 when I have done something repeatable. I hope a little more understandable. I've deleted the rest above and added a picture of my BT-keyboard and devices.

@termux termux locked and limited conversation to collaborators Jul 17, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants