桌面概率长按键盘无法连续输入问题

问题描述:概率性长按键盘无法连续输入文本

问题定位:

  1. 系统按键流程分析

图一 系统按键流程

  1. 按键是由X Server接收的,这一点只要明白了X Window的工作机制就不难理解了。
  2. X Server在接收到按键后,会转发到相应程序的窗口中。在窗口的处理函数中,可以选择是否响应按键等,这里假定窗口是可输入的。
  3. 这时窗口将收到的按键回传给X Server,询问X Server关于XIM Server的相关信息。倘若输入法是打开的。
  4. X Server会将事件发送给XIM Server(也就是输入法)去处理。XIM Server通过某种方式(例如,查码表)将按键转换成特定的字符串
  5. 之后返回给X Server
  6. X Server得到字符串后,再通知窗口输出字符串。
  1. 搜狗输入法输入法介绍
  1. 搜狗输入法CS模型

图二 搜狗输入法CS模型

  1. fcitx输入法框架接受到按键事件传给注册的fcitx搜狗输入法模块即sogouimeclient
  2. Sogouimeclient通过sogouIPC传给sogouimeservice,soouimeservice收到消息处理完后返回消息给sogouimeclient
  1. 搜狗输入法按键流程

图三 搜狗输入法按键流程

现场测试:验证发现出现这种情况时是开了多个vnc远程桌面服务导致,通过反复测试测试,发现输入法在多vnc服务远程桌面情况下存在watchdog检查失败,导致误关闭/opt/sogouimebs/files/bin/sogouImeService进程,如图三所示如果sogouimeservice进程不存在,则无法回复IPC:postMessage给sogouimeclient, sogouimebsclient则不会及时反馈给app,则表现为不能连续按键。

问题解决方案:

如上代码段,pidof sogouImeService的结果在vnc下会有多个进程,之前只考虑了非vnc情况,任务多的进程是异常,所以会杀死。通过修订搜狗输入法watchdog检查逻辑,支持vnc多桌面情况解决该问题,输入法版本号为sogouimebs_2.3.0.2793_amd64.deb

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/229996.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

重启docker容器后,ssh无法访问且浏览器无法访问

今天把云服务器中的docker容器重启一遍后,发现里面的项目访问不到了,而且也无法ssh访问。 改了一天,终于还是改好了。 一 .首先是无法ssh访问, 我无法ssh连接的原因是因为我容器的重启之后sshd没有了,然后重新下载了…

助力智能人群检测计数,基于YOLOv5全系列模型【n/s/m/l/x】开发构建通用场景下人群检测计数识别系统

在一些人流量比较大的场合,或者是一些特殊时刻、时段、节假日等特殊时期下,密切关注当前系统所承载的人流量是十分必要的,对于超出系统负荷容量的情况做到及时预警对于管理团队来说是保障人员安全的重要手段,本文的主要目的是想要…

SpringIOC之作用域Scope

博主介绍:✌全网粉丝5W+,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验✌ 博主作品:《Java项目案例》主要基于SpringBoot+MyBatis/MyBatis-plus+…

设计模式之创建型设计模式(一):单例模式 原型模式

单例模式 Singleton 1、什么是单例模式 在软件设计中,单例模式是一种创建型设计模式,其主要目的是确保一个类只有一个实例,并提供一个全局访问点。 这意味着无论何时需要该类的实例,都可以获得相同的实例,而不会创建…

使用VBA快速统计词组词频(多单词组合)(2/2)

实例需求:产品清单如A列所示,现在如下统计多单词组合词组词频。 在上一篇博客中《使用VBA快速统计词组词频(多单词组合)(1/2)》讲解了如何实现双词的词频统计。 本文将讲解如何实现3词的词频统计,掌握实现方法之后&a…

前端Vue必问面试题

1,Vue3.0 为什么要使用 proxy 在 Vue2 中, 0bject.defineProperty 会改变原始数据,而 Proxy 是创建对象的虚拟表示,并提供 set 、get 和 deleteProperty 等处理器,这些处理器可在访问或修改原始对象上的属性时进行拦截,有以下特点∶ 不需用使用 Vue. s e t 或 V u e . s…

硬件编程语言

硬件画板说白了就是电气的连接,相较于PCB连接在2.5D中完成(有些大佬们是直接3D设计)考虑的东西会更多,原理图的抽象使得硬件思路更加简单。 就算是这样, 增加到上千门器件后的大工程是非常难以进行的编辑和检查的&…

Mac如何安装stable diffusion

今天跟大家一起在Mac电脑上安装下stable diffusion,在midjourney等模型收费的情况下如何用自己的电脑算力用上免费的画图大模型呢?来吧一起实操起来 一、安装homebrew 官网地址:Homebrew — The Missing Package Manager for macOS (or Lin…

认识Trino

认识Trino 一、Trino二、结构三、集群四、coordinator五、Worker六、数据源七、连接器八、目录九、架构十、表十一、查询执行模型十二、陈述十三、查询十四、阶段十五、任务十六、分隔十七、Driver十八、Operator十九、Exchange 一、Trino Trino(前身为PrestoSQL&a…

conda和pip配置国内镜像源

1、conda配置镜像源: 使用conda进行安装时,访问的是国外的网络,所以下载和安装包时会特别慢。我们需要更换到国内镜像源地址,这里我更换到国内的清华大学地址。(永久添加镜像) Windows和Linux 对于conda修…

SQL进阶理论篇(十):数据库中的锁

文章目录 简介按照锁的粒度进行划分从数据库管理的角度进行划分从程序员的角度进行划分为什么共享锁会发生死锁?参考文献 简介 索引和锁,是数据库中的两个核心知识点。 索引的相关知识点,在之前的几章里我们已经介绍的差不多了。接下来我们…

[pasecactf_2019]flask_ssti proc ssti config

其实这个很简单 Linux的/proc/self/学习-CSDN博客 首先ssti 直接fenjing一把锁了 这里被加密后 存储在 config中了 然后我们去config中查看即可 {{config}} 可以获取到flag的值 -M7\x10wd94\x02!-\x0eL\x0c;\x07(DKO\r\x17!2R4\x02\rO\x0bsT#-\x1cZ\x1dG然后就可以写代码解…

MNIST内置手写数字数据集的实现

torchvision库 torchivision库是PyTorch中用来处理图像和视频的一个辅助库,接下来我们就会使用torchvision库加载内置的数据集进行分类模型的演示 为了统一数据加载和处理代码,PyTorch提供了两个类用于处理数据加载,他们分别是torch.utils.…

leetcode:641. 设计循环双端队列

设计循环双端队列 实现 MyCircularDeque 类: MyCircularDeque(int k) :构造函数,双端队列最大为 k 。 boolean insertFront():将一个元素添加到双端队列头部。 如果操作成功返回 true ,否则返回 false 。 boolean insertLast() :…

机器视觉技术与应用实战(开运算、闭运算、细化)

开运算和闭运算的基础是膨胀和腐蚀,可以在看本文章前先阅读这篇文章机器视觉技术与应用实战(Chapter Two-04)-CSDN博客 开运算:先腐蚀后膨胀。开运算可以使图像的轮廓变得光滑,具有断开狭窄的间断和消除细小突出物的作…

饥荒Mod 开发(十五):小地图显示物品

饥荒Mod 开发(十四):制作屏幕弹窗 本篇源码 饥荒中按下Tab键可以显示地图,刚开始进入游戏的时候地图是未探索状态,所以我们并不知道地图上面的物品分布情况。并且地图上只会显示很少一部分的物品,比如树枝,草&#xf…

C++二维数组(4)

蛇形遍历 题目描述:用数字1,2,3,4,...,n*n这n2个数蛇形填充规模为n*n的方阵。 蛇形填充方法为: 对于每一条左下-右上的斜线,从左上到右下依次编号1,2,...,2n-1;按编号从小到大的顺序,将数字从小到大填入各 条斜线&…

【Linux】操作文件和目录

简介 常见的一些对文件和目录操作的命令如下: cp:复制文件和目录。mv:移动/重命名文件和目录。mkdir:创建目录。rm:删除文件和目录。ln:创建硬链接和符号链接。 用图形文件管理器来完成一些由这些命令执…

Debezium发布历史11

原文地址: https://debezium.io/blog/2016/10/25/Debezium-0-3-4-Released/ Debezium 0.3.4 发布 2016 年 10 月 25 日 作者: Randall Hauch 发布 mysql docker 欢迎关注留言,我是收集整理小能手,工具翻译,仅供参考&…

链表基础知识(二、双向链表头插、尾插、头删、尾删、查找、删除、插入)

目录 一、双向链表的概念 二、 双向链表的优缺点分析​与对比 2.1双向链表特点: 2.2双链表的优劣: 2.3循环链表的优劣 2.4 顺序表和双向链表的优缺点分析​ 三、带头双向循环链表增删改查实现 3.1SList.c 3.2创建一个新节点、头节点 3.3头插 3.…