Occasional keyboard micro-stutter, then double-click on Gnome

Hi,

After a recent update, I started running into issues with my laptop’s (Razer Blade Pro 17 '19 Model) keyboard.
Whenever I stop typing for more than ~5s, it will lag for about 1-2s and then register the last input as a double click.
For example, if I start writing a word it would look something like “MManjaro”, with the first “M” appearing on-screen with 1-2s delay.

I tried looking through the journal but could not find anything. However, I noticed that when I connect to the external monitor the issue disappears. Because of this, I suspect there is an issue with either X11 setup or some Nvidia driver settings.

I’m not sure if this will be useful or not, but from what I understand the built-in display is connected to integrated intel graphics, while all display port/hdmi connections are run through discrete nvidia gpu. Again, not sure if this might be the cause of the issue, but since there is weird behavior with connecting external display I thought it might be important.

inxi -Fazy

System:
  Kernel: 5.10.19-1-MANJARO x86_64 bits: 64 compiler: gcc v: 10.2.1 
  parameters: BOOT_IMAGE=/boot/vmlinuz-5.10-x86_64 
  root=UUID=6e95cc28-0294-481f-b4d7-5957bfcfddb3 rw quiet apparmor=1 
  security=apparmor resume=UUID=8c65b7ac-c936-4668-a90c-996aa1d919a8 
  udev.log_priority=3 button.lid_init_state=open acpi=on usbhid.kbpoll=1 
  usbhid.mousepoll=1 
  Desktop: GNOME 3.38.3 tk: GTK 3.24.26 wm: gnome-shell dm: GDM 3.38.2.1 
  Distro: Manjaro Linux 
Machine:
  Type: Laptop System: Razer product: Blade Pro 17 (Fall 2019) v: 3.04 
  serial: <filter> Chassis: type: 10 serial: <filter> 
  Mobo: Razer model: DA730 serial: <filter> UEFI: Razer v: 1.02 
  date: 08/22/2019 
Battery:
  ID-1: BAT0 charge: 67.5 Wh condition: 70.3/70.6 Wh (100%) volts: 17.6/15.4 
  model: Razer Blade type: Unknown serial: <filter> status: Charging 
  Device-1: hidpp_battery_0 model: Logitech MX Ergo Multi-Device Trackball 
  serial: <filter> charge: 100% (should be ignored) rechargeable: yes 
  status: Discharging 
CPU:
  Info: 6-Core model: Intel Core i7-9750H bits: 64 type: MT MCP 
  arch: Kaby Lake note: check family: 6 model-id: 9E (158) stepping: A (10) 
  microcode: DE L2 cache: 12 MiB 
  flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx 
  bogomips: 62431 
  Speed: 800 MHz min/max: 800/4500 MHz Core speeds (MHz): 1: 800 2: 800 3: 800 
  4: 800 5: 800 6: 800 7: 800 8: 800 9: 800 10: 800 11: 800 12: 800 
  Vulnerabilities: Type: itlb_multihit status: KVM: VMX disabled 
  Type: l1tf 
  mitigation: PTE Inversion; VMX: conditional cache flushes, SMT vulnerable 
  Type: mds mitigation: Clear CPU buffers; SMT vulnerable 
  Type: meltdown mitigation: PTI 
  Type: spec_store_bypass 
  mitigation: Speculative Store Bypass disabled via prctl and seccomp 
  Type: spectre_v1 
  mitigation: usercopy/swapgs barriers and __user pointer sanitization 
  Type: spectre_v2 mitigation: Full generic retpoline, IBPB: conditional, 
  IBRS_FW, STIBP: conditional, RSB filling 
  Type: srbds mitigation: Microcode 
  Type: tsx_async_abort status: Not affected 
Graphics:
  Device-1: Intel UHD Graphics 630 vendor: Razer USA driver: i915 v: kernel 
  bus ID: 00:02.0 chip ID: 8086:3e9b class ID: 0300 
  Device-2: NVIDIA TU104M [GeForce RTX 2080 Mobile] vendor: Razer USA 
  driver: nvidia v: 460.56 alternate: nouveau,nvidia_drm bus ID: 01:00.0 
  chip ID: 10de:1e90 class ID: 0300 
  Device-3: IMC Networks Integrated Camera type: USB driver: uvcvideo 
  bus ID: 1-7:3 chip ID: 13d3:56d5 class ID: 0e02 serial: <filter> 
  Display: x11 server: X.org 1.20.10 compositor: gnome-shell driver: 
  loaded: modesetting,nvidia resolution: <missing: xdpyinfo> 
  OpenGL: renderer: GeForce RTX 2080 with Max-Q Design/PCIe/SSE2 
  v: 4.6.0 NVIDIA 460.56 direct render: Yes 
Audio:
  Device-1: Intel Cannon Lake PCH cAVS vendor: Razer USA driver: snd_hda_intel 
  v: kernel alternate: snd_soc_skl,snd_sof_pci bus ID: 00:1f.3 
  chip ID: 8086:a348 class ID: 0403 
  Sound Server: ALSA v: k5.10.19-1-MANJARO 
Network:
  Device-1: Realtek RTL8125 2.5GbE vendor: Razer USA driver: r8169 v: kernel 
  port: 3000 bus ID: 3d:00.0 chip ID: 10ec:8125 class ID: 0200 
  IF: enp61s0 state: down mac: <filter> 
  Device-2: Intel Wi-Fi 6 AX200 driver: iwlwifi v: kernel port: 3000 
  bus ID: 3f:00.0 chip ID: 8086:2723 class ID: 0280 
  IF: wlp63s0 state: up mac: <filter> 
Bluetooth:
  Device-1: Intel AX200 Bluetooth type: USB driver: btusb v: 0.8 
  bus ID: 1-14:5 chip ID: 8087:0029 class ID: e001 
  Message: Required tool hciconfig not installed. Check --recommends 
Drives:
  Local Storage: total: 1.4 TiB used: 127.45 GiB (8.9%) 
  SMART Message: Required tool smartctl not installed. Check --recommends 
  ID-1: /dev/nvme0n1 maj-min: 259:1 vendor: Samsung model: MZVLB512HAJQ-00000 
  size: 476.94 GiB block size: physical: 512 B logical: 512 B speed: 31.6 Gb/s 
  lanes: 4 rotation: SSD serial: <filter> rev: EXA7301Q temp: 46.9 C 
  scheme: GPT 
  ID-2: /dev/nvme1n1 maj-min: 259:0 vendor: Sabrent model: N/A 
  size: 953.87 GiB block size: physical: 512 B logical: 512 B speed: 31.6 Gb/s 
  lanes: 4 rotation: SSD serial: <filter> rev: ECFM12.3 temp: 27.9 C 
  scheme: GPT 
Partition:
  ID-1: / raw size: 944.77 GiB size: 928.94 GiB (98.32%) 
  used: 127.45 GiB (13.7%) fs: ext4 dev: /dev/nvme1n1p2 maj-min: 259:3 
  ID-2: /boot/efi raw size: 300 MiB size: 299.4 MiB (99.80%) 
  used: 316 KiB (0.1%) fs: vfat dev: /dev/nvme1n1p1 maj-min: 259:2 
Swap:
  Kernel: swappiness: 60 (default) cache pressure: 100 (default) 
  ID-1: swap-1 type: partition size: 8.8 GiB used: 0 KiB (0.0%) priority: -2 
  dev: /dev/nvme1n1p3 maj-min: 259:4 
Sensors:
  System Temperatures: cpu: 61.0 C mobo: N/A gpu: nvidia temp: 51 C 
  Fan Speeds (RPM): N/A 
Info:
  Processes: 354 Uptime: 24m wakeups: 3 Memory: 15.54 GiB 
  used: 4.14 GiB (26.7%) Init: systemd v: 247 Compilers: gcc: 10.2.0 
  clang: 11.1.0 Packages: 1483 pacman: 1471 lib: 458 flatpak: 0 snap: 12 
  Shell: Zsh v: 5.8 running in: tilix inxi: 3.3.01 

I’m also attaching X11 xorg conf file: /etc/X11/xorg.conf

Section "ServerLayout"
    Identifier "layout"
    Screen 0 "intel"
    Inactive "nvidia"
    Option "AllowNVIDIAGPUScreens"
EndSection

Section "Device"
    Identifier "nvidia"
    Driver "nvidia"
EndSection

Section "Screen"
    Identifier "nvidia"
    Device "nvidia"
EndSection

Section "Device"
    Identifier "intel"
    Driver "modesetting"
    BusID "<BusID for Intel device here>"
EndSection

Section "Screen"
    Identifier "intel"
    Device "intel"
EndSection

Nowadays, the xorg.conf is broken up in multiple files in /etc/X11/xorg.conf.d/ and I have the following info in 00-keyboard.conf:

Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout" "us"
        Option "XkbModel" "pc105"
EndSection

Note however that I don’t have your hardware nor keyboard layout, so you should look up the exact parameters for your hardware and add the above section to your xorg.conf if you’re still using the old system.

:crossed_fingers:

I looked up 00-keyboard.conf and I already had the exact same input class configuration in it.

Though this post made me realize that I updated the system with an external keyboard plugged in (I don’t know if this might affect this files).

Is there a place I can look up “XkbModel”? I tried using lshw, and manjaro setting but couldn’t locate that parameter.

If an external keyboard: on the sticker on the underside of the keyboard. :man_shrugging:

It’s something you need to tell the system and as you’re on Gnome, I don’t remember from back when I was using that, but on KDE it’s in System SettingsHardwareKeyboardKeyboard Model (Which is different from Keyboard Layout)

:frowning:

1 Like

On gnome it’s SettingsRegion & LanguageInput Sources

Another place to look for clues might be dmesg.
sudo dmesg --follow will show a live feed of all messages
sudo dmesg -l emerg,alert,crit,err,warn --follow will show only more important entries

2 Likes

Thank you for such a fast reply! I first went into gnome settings and the layout matched one on both laptop and external keyboard.

However, later on, I also found Manjaro SettingsKeyboard Settings, which contained the same information but also allowed me to change delay and rate. It seems that delay had little to no effect on the issue, but rate changing rate from 33 to 25 made it much less common.

I’m going to see if I didn’t just get lucky for few minutes and play around with rate parameter to see if maybe that’s where the issue was. Hopefully by tomorrow I will have definite answer.

I also have sudo dmesg -l emerg,alert,crit,err,warn --follow running during this whole time, but it didn’t catch anything, despite a few stutters.

Look up the exact model of your keyboard on-line if it doesn’t contain a sticker with the model, because this really smells like a keyboard definition mismatch…

:man_shrugging: