本文来自依云's Blog,转载请注明。
Linux 下各种奇怪的地方总是会遇到输入启用不了的情况,比如 Sublime Text 就需要打补丁版。Teewords 以前能好好地使用输入法的,不知从什么时候起,启用输入法输入时,直接从键盘输入的编码和输入法提交的字符串都会被 teewords 接收并显示(teewords 版本号 0.6.3)。最近换了新本子,跑起 Minecraft 终于不那么卡了,所以也研究了一下怎么在 mc 里输入中文。
喵窝 wiki 里给出了一个脚本,是通过外部程序输入中文,然后粘贴到 mc 里来达到输入中文的效果的。然而粘贴功能在我的 mc 里是无效的。不过照着这思路,改进一下发现也能用。
首先,需要 xdotools。其次,需要一个输入文本的程序。我使用的是 zentiy,当然还有 kdialog、gdialog 之类的也可以用。最后,需要设置快捷键。
我的脚本如下:
#!/bin/bash -e chars=$(zenity --title 中文输入 --text 中文输入 --width 500 --entry 2>/dev/null) sleep 0.1 xdotool key --delay 150 Escape t sleep 0.2 xdotool type --delay 150 "$chars" xdotool key Return
原理很简单,在这个脚本被调用时,弹出一个对话框让用户输入文字。对话框关闭后,焦点应该回到 mc。发送 Escape 键「回到游戏」,然后发送「t」开启聊天。然后把文字发送过去并按回车。
很神奇,原来可以直接向它发送中文字符。不过那些延迟是需要的,不然会接收不完整。所以使用效果就是,对话框关闭之后,可以看到程序在往 mc 里一个个地输入文本并发送~
至于绑定快捷键,作为 Awesome 用户,可以做到只在 mc 的窗口绑定。定制性比较差的窗口管理器/桌面环境可能只能全局绑定了,会占用掉一个全局快捷键。
相关代码如下:
elseif c.class and c.class:match('^Minecraft ') then local keys = c:keys() local mykey = awful.key({'Control'}, 't', function(c) awful.util.spawn('zhinput') end) keys = awful.util.table.join(keys, mykey) c:keys(keys) elseif c.name == '中文输入' then awful.util.spawn_with_shell('sleep 0.05 && fcitx-remote -T', false)
顺便在弹出的对话框里把输入法切换到了中文模式~(完整的配置文件在这里)
2019年01月02日更新:Minecraft 已经可以直接输入中文了(虽然有些类似于 teeworlds / DDNet 的 bug)。
May 17, 2015 09:28:01 AM
依云大哥你玩 MC 真是够拼的。
May 17, 2015 05:18:00 PM
用linux就够拼了。。。
May 19, 2015 12:50:10 AM
sublime 全是乱码...听别人说得重新装系统....
May 19, 2015 08:36:41 PM
哈哈,你终于也玩 MC 了,那天在服务器看到你吓到了
May 20, 2015 05:34:12 PM
啊你也在喵窝呀 0.0
May 21, 2015 01:08:14 PM
是啊,我 ID 是 WheelyX
May 25, 2015 08:58:37 AM
请问可以邀请我进服嘛?
May 25, 2015 01:37:14 PM
请看这里: http://nyaa.cat/joinus.html
Jun 25, 2015 08:48:46 PM
大神请教如何在特定窗口绑定快捷键?我在网上搜了好久都没找到相关的信息。我想在telegram里绑定一个脚本的快捷键额。
Jun 25, 2015 08:54:02 PM
我的系统是ubuntu,桌面是unity
Jun 25, 2015 11:34:13 PM
我没用过 Unity 啦。
Nov 26, 2016 05:58:08 PM
噫, KDE 已经沦为「定制性比较差的窗口管理器/桌面环境」了啊,小白瑟瑟发抖……
Mar 16, 2018 12:38:58 PM
HI~ 发现404
Mar 16, 2018 01:59:59 PM
好几年过去啦,你访问 https://nyaa.cat/ 啦。
Jun 09, 2018 04:50:49 PM
给这个脚本做了些小改进qwq,依云你可以去看看:https://blog.zacco.site/2018/06/09/minecraft-linux-input/
Jun 09, 2018 06:04:40 PM
呀,我都好久没玩 mc 了呢。一个人玩没意思,喵窝他们又都太厉害了跟不上。
Jun 10, 2018 12:05:28 PM
萌新看大佬,大佬望巨佬。
Jul 30, 2018 01:01:44 PM
3年前
Aug 11, 2018 01:36:12 PM
重装在BIOS 开个AICH模式如何
Jul 05, 2021 08:36:59 AM
似乎mc 1.17下输入法又不能用了的样子?(
Jul 07, 2021 05:56:43 PM
没有啊,还是老样子。
不过我用这个 mod 了: https://www.curseforge.com/minecraft/mc-mods/cocoainput
不用时不时想跑的时候只会喊 www 了~
Oct 13, 2021 09:40:47 PM
现在似乎还是不能用。。。请问还有啥解决方案吗()
1.12版本的
Oct 13, 2021 10:19:59 PM
1.12 好老了哦。这篇文章的方案也用不了吗?