5
17
2015
12

Linux 下在 Minecraft 里输入中文

本文来自依云'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)

顺便在弹出的对话框里把输入法切换到了中文模式~(完整的配置文件在这里

Category: Linux | Tags: 中文支持 minecraft | Read Count: 6282
greatghoul 说:
May 17, 2015 09:28:01 AM

依云大哥你玩 MC 真是够拼的。

reverland 说:
May 17, 2015 05:18:00 PM

用linux就够拼了。。。

anne 说:
May 19, 2015 12:50:10 AM

sublime 全是乱码...听别人说得重新装系统....

尹良灿 说:
May 19, 2015 08:36:41 PM

哈哈,你终于也玩 MC 了,那天在服务器看到你吓到了

Avatar_small
依云 说:
May 20, 2015 05:34:12 PM

啊你也在喵窝呀 0.0

尹良灿 说:
May 21, 2015 01:08:14 PM

是啊,我 ID 是 WheelyX

youngershen 说:
May 25, 2015 08:58:37 AM

请问可以邀请我进服嘛?

Avatar_small
依云 说:
May 25, 2015 01:37:14 PM

请看这里: http://nyaa.cat/joinus.html

LibraK 说:
Jun 25, 2015 08:48:46 PM

大神请教如何在特定窗口绑定快捷键?我在网上搜了好久都没找到相关的信息。我想在telegram里绑定一个脚本的快捷键额。

LibraK 说:
Jun 25, 2015 08:54:02 PM

我的系统是ubuntu,桌面是unity

Avatar_small
依云 说:
Jun 25, 2015 11:34:13 PM

我没用过 Unity 啦。

FiveYellowMice 说:
Nov 26, 2016 05:58:08 PM

噫, KDE 已经沦为「定制性比较差的窗口管理器/桌面环境」了啊,小白瑟瑟发抖……


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter

部分静态文件存储由又拍云存储提供。 | Theme: Aeros 2.0 by TheBuckmaker.com