5
17
2015
23

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)

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


2019年01月02日更新:Minecraft 已经可以直接输入中文了(虽然有些类似于 teeworlds / DDNet 的 bug)。

Category: Linux | Tags: 中文支持 minecraft | Read Count: 16054
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 已经沦为「定制性比较差的窗口管理器/桌面环境」了啊,小白瑟瑟发抖……

Avatar_small
依云 说:
Mar 16, 2018 01:59:59 PM

好几年过去啦,你访问 https://nyaa.cat/ 啦。

c057cl7 说:
Jun 09, 2018 04:50:49 PM

给这个脚本做了些小改进qwq,依云你可以去看看:https://blog.zacco.site/2018/06/09/minecraft-linux-input/

Avatar_small
依云 说:
Jun 09, 2018 06:04:40 PM

呀,我都好久没玩 mc 了呢。一个人玩没意思,喵窝他们又都太厉害了跟不上。

c057cl7 说:
Jun 10, 2018 12:05:28 PM

萌新看大佬,大佬望巨佬。

xfmniao 说:
Aug 11, 2018 01:36:12 PM

重装在BIOS 开个AICH模式如何

Senioria 说:
Jul 05, 2021 08:36:59 AM

似乎mc 1.17下输入法又不能用了的样子?(

Avatar_small
依云 说:
Jul 07, 2021 05:56:43 PM

没有啊,还是老样子。

不过我用这个 mod 了: https://www.curseforge.com/minecraft/mc-mods/cocoainput
不用时不时想跑的时候只会喊 www 了~

Neko 说:
Oct 13, 2021 09:40:47 PM

现在似乎还是不能用。。。请问还有啥解决方案吗()
1.12版本的

Avatar_small
依云 说:
Oct 13, 2021 10:19:59 PM

1.12 好老了哦。这篇文章的方案也用不了吗?


登录 *


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

| Theme: Aeros 2.0 by TheBuckmaker.com