XRDP在Windows下用远程桌面连接,键盘失效问题

情况如下:

使用 windows远程linux图形化界面键盘乱序

大概是如下这样的情况

1 2 3 4 5 6 7 8 9 z y
正常情况 ! @ # $ % ^ & * ( z y
乱码情况 ~ " à é . . . . . y z

处理办法:

第一步

桌面远程上不去

ssh 可以登录,直接连接IP地址

上去之后输出命令查看 xrdp对应的keymap文件

bash 复制代码
先找到keymap文件位置
默认是在/etc/xrdp/目录下

find / -name 'km*.ini'
find: '/proc/608932': No such file or directory
find: '/proc/609143': No such file or directory
/etc/xrdp/km-0000040a.ini
/etc/xrdp/km-0000040b.ini
/etc/xrdp/km-0000040c.ini
/etc/xrdp/km-00000410.ini
/etc/xrdp/km-00000411.ini
/etc/xrdp/km-00000412.ini
/etc/xrdp/km-00000414.ini
/etc/xrdp/km-00000419.ini
/etc/xrdp/km-0000041d.ini
/etc/xrdp/km-00000807.ini
/etc/xrdp/km-0000080c.ini
/etc/xrdp/km-00000813.ini
/etc/xrdp/km-00000816.ini
/etc/xrdp/km-19360409.ini
/etc/xrdp/km-00000804.ini
/etc/xrdp/km-00000406.ini
/etc/xrdp/km-00000407.ini
/etc/xrdp/km-00000409.ini
/etc/xrdp/km-00000415.ini
/etc/xrdp/km-00000416.ini
/etc/xrdp/km-00000809.ini
/etc/xrdp/km-0000080a.ini
/etc/xrdp/km-0000100c.ini
/etc/xrdp/km-00010409.ini
这些就是具体的输入法对应的编码

第二步

查看 windows 输入法(编码) 顺序

win + R 输入:REGEDIT

找到 "HKEY_CURRENT_USER\Keyboard Layout\Preload"分支

bash 复制代码
E0200804 代表的是搜狗输入法
E0200804 紫光输入法*①
E00E0804 微软拼音输入法
E0040804 智能abc输入法
E0050804 区位码输入法
E0010804 全拼输入法
E0100804 五笔输入法
00000409 英文输入法
E0030804 郑码输入法
E0020804 双拼输入法
00000804 中文输入法(简体)-美式键盘

E0200804这个不一定是紫光的,他可能是谷歌、搜狗、智能陈桥、拼音加加Plus、紫光中的任一种
(还可能是与这些输入法输入状态栏一样的其他拼音输入法),
这个取决于你系统先安装这几个输入法中的哪一个,那个就是E0200804

通过上面,知道了我的windows系统第一输入法是E0200804, 而在Linux系统下Xrdp默认的keymap文件中,是没有"km-E0200804.ini"这个文件的,这就导致xrdp无法读取keymap文件,无法进行键盘映射,从而导致了我们无法再xrdp界面中输入且输入乱序。

通过修改windows本机的注册表配置对应的编码即可

bash 复制代码
win + R 输入:REGEDIT
找到 "HKEY_CURRENT_USER\Keyboard Layout\Preload"分支

我们把windows注册表中HKEY_CURRENT_USER\Keyboard Layout\Preload中的默认或者1,
编辑成00000409, 即英文输入法,
这样,xrdp就会去读取"/etc/xrdp/km-00000409.ini" keymap文件,然后就可以输入了。
 

需要注意的是,修改注册表之后,记得重启系统。或者是注销一下,让其起作用。

相关推荐
CodeOfCC3 小时前
c语言 封装跨平台线程头文件
linux·c语言·windows
momo卡3 小时前
MinGW-w64的安装详细步骤(c_c++的编译器gcc、g++的windows版,win10、win11真实可用)
c语言·c++·windows
南林yan15 小时前
DLL动态库实现文件遍历功能(Windows编程)
windows
Mike_66615 小时前
win10安装WSL2、Ubuntu24.04
windows·ubuntu·wsl2
liulun16 小时前
Skia如何绘制几何图形
c++·windows
old_power16 小时前
UCRT 和 MSVC 的区别(Windows 平台上 C/C++ 开发相关)
c语言·c++·windows
扛枪的书生17 小时前
AD 提权-CVE-2022-26923: CertiFried
windows·渗透·kali·提权·域渗透
面朝大海,春不暖,花不开18 小时前
Python 文件操作与输入输出:从基础到高级应用
windows·python·microsoft
染指111020 小时前
35.x64汇编写法(二)
汇编·windows·x64游戏·x64汇编·游戏攻防
新兴AI民工21 小时前
windows上的visual studio2022的项目使用jenkins自动打包
windows·jenkins·visual studio