Atom / VS Code 在不重新编译的情况下启用 MacType

现已将更多软件的最新解决方案整理至 Github:wspl/mactype-hack,以下教程方法在新版本中已失效!

很多使用 Atom / Visual Studio Code 的朋友会发现 MacType 无法正常地渲染,其原因和 Chrome 37+ 失去渲染功能一样,是因为 Chromium 默认开启了 DirectWrite 字体渲染功能,所以就造成了 MacType 失效的后果。
  通过谷歌参阅了很多资料,Github 上全都是推荐用开启 CSS3 抗锯齿的方法,但是我尝试后效果并不明显。还有一种办法就是 Clone 一份源码主动修改 Flags 的设置,然后重新编译,我觉得太麻烦就先不考虑这种做法了。返回搜索结果,有一篇日语的搜索结果吸引了我的注意:

谷歌搜索结果

原文如下:(地址 http://silight.hatenablog.jp/entry/2015/07/02/001518

2015年6月26日に1.0.0が公開されたAtom Editorですが、WindowsではDirectWriteがデフォルトで有効になっており、MacTypeなどのgdi++系ソフトとの相性が良くありません。

一応DirectWriteを無効にする方法があるのでここに書いておきます。

Atom Editorは終了しておきます。
「app.asar」をバイナリエディタ(Stirlingがオススメ)で開きます。
場所はC:\Users\(ユーザー名)\AppData\Local\atom\app-1.0.0\resources\app.asar
「'direct-write': true,」で検索し、「'direct-write':false,」に書き換えます。
trueの前の半角スペースは無くてもいいので、半角スペース+trueをfalseに書き換えます。
残念なことに、app.asarファイルはバージョンアップで更新されるので、バージョンアップの度に毎回やらなければいけません。

一応Atom Editorのソースコードを(Electronも含めて)読みましたが、現時点ではこれ以外に方法は無さそうです。

翻译后,大概是这样的流程(Atom 的解决方案):

  • 下载一个 16进制编辑器,原文推荐 Stirling 但是我没有搜索到,所以我就用了 UltraEdit。
  • 用 16进制编辑器 打开 Atom 安装目录下的 /app-1.0.3/resources/app.asar (版本号自己替换),如果显示的是一堆16进制文本,请按快捷键 Ctrl+H 切换至字符串编辑模式。
  • 搜索 'direct-write': true, ,修改为 'direct-write':false,,其中,false:冒号之间不能留有空格,要保持字符数目一样,不然会导致 Atom无法启动。
    (具体原因我也不确定,以前用不同长度的字符串 Hex 替换过 Java 的 Class 文件并没有出现过类似的问题,可能是因为有类似 Java 的 META-INF 的完整性检验机制吧)。

之后就可以启动 Atom,会发现 MacType 已经生效了,效果如下:

开启了 MacType 的 Atom

以下是 VSCode 旧版本的解决方案,新版本请参考文章开头的 Github 仓库地址。

然而 Visual Studio Code 就更简单了,连 16进制编辑器 都不用了!

  • 退出 Visual Studio Code
  • 用合适的代码编辑器(VSCode 自己也可以 _(:з」∠)_)打开 VSCode 安装目录下的 /app-0.5.0/resources/app/window.js,找到 TicinoWindow 这个函数,其中有个叫 options 的变量。我们只需要在这个 Object 类型变量的根节点加上:
'web-preferences': {
    'direct-write': false
}

修改后这个变量的效果就像这样子(缩进我也懒得删了/ω\):

        var options = {
            width: this.windowState.width,
            height: this.windowState.height,
            x: typeof this.windowState.x === 'number' ? this.windowState.x : undefined,
            y: typeof this.windowState.x === 'number' ? this.windowState.y : undefined,
            'min-width': 200,
            'min-height': 80,
            show: showDirectly,
            title: env.appNameLong,
            'web-preferences': {
              'direct-write': false
            }
        };

然后保存退出,启动 Visual Studio Code,MacType 可以正常渲染了,效果和 Atom 的一样。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,706评论 4 366
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,002评论 1 301
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 110,462评论 0 250
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,375评论 0 216
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,763评论 3 294
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,849评论 1 224
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,033评论 2 317
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,768评论 0 204
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,490评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,734评论 2 253
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,204评论 1 264
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,566评论 3 260
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,227评论 3 241
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,137评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,934评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,926评论 2 283
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,774评论 2 274

推荐阅读更多精彩内容

  • 1.暗闇より夜魔来たる-1あなたはきっとこんな私をお許しにはならないでしょう…ですが、私はあなたを守る以外の何かを...
    波沙诺瓦阅读 3,225评论 0 7
  • 1.暗闇より夜魔来たる-1あなたはきっとこんな私をお許しにはならないでしょう…ですが、私はあなたを守る以外の何かを...
    波沙诺瓦阅读 1,897评论 1 2
  • 陽の光 闇の月 陽も月も異なれど、同じように地上を照らす。けれど、両者は決してまみえることはない。陽が輝くとき月は...
    波沙诺瓦阅读 2,232评论 0 7
  • 薛宝钗在《红楼梦》中出现以后,作者就很是随意的在宝钗与周嫂子的闲聊中交代了一味药方——宝钗因为胎生的热毒无法医治,...
    泠泠水润阅读 2,353评论 0 3
  • 我们生来就是孤独 我们生来就是孤单 渐渐的,我们发现,其实我们身边除了父母也就只剩下了自己,一个人孤单的生活在这个...
    一只红色的花阅读 219评论 0 0