关于GoldenDict在MacOS经常失灵的终级解决方案
本帖最后由 我突然想拉屎 于 2019-12-15 14:53 编辑GoldenDict的几个问题已经困扰了MacOS用户很多年,
1. GoldenDict在拖选文字时,经常后退(页)
2. GodenDict在双指滑动,上下快速浏览时,经常会无意地放大放小
3. 其他
有用户在Github抱怨,也没有得到回应
有网友重新编译了MacOS版本的GoldenDict, 但并没有解决以上所有问题
我还一度在虚拟机linux下用goldendict, 但其实非常不方便
现在用wine安装windows版本的GoldenDict, 终于解决了以上所有痛点
wine是什么?开源软件,反编译windows,重写大量的组件,模拟windows的API,使linux/BSD/MacOS可以运行大部分windows软件,虽然有些软件并不完美,用户甚至可以安装windows版本的Mdict, 欧陆, IE, office等软件
安装GoldenDict步骤
1。安装wine (目前还没有支持10.15)
方法A (本教程默认A) :
https://dl.winehq.org/wine-builds/macosx/download.html我安装的是 wine stable稳定版本可能需要安装 XQuartz >= 2.7.7 https://www.xquartz.org/
方法B:
brew cask install wine-stable方法C:
brew install wine
如果你是通过brew install wine安装,wine不会成为MacOS的应用之一,以后只能用wine *.exe来安装或打开
2。
打开 wineHQ应用, 在弹出的 terminal 运行LC_ALL=zh_CN.utf-8 winecfg初始化配置 会自动在本地创建 〜/.wine的文件夹其中的 LC_ALL=zh_CN.utf-8 为设置简体中文环境。 如果你用繁体中文,请修改为TW或者HK
走一遍流程基本什么都不用做
3。 下载windows版本的GoldenDict
https://github.com/goldendict/goldendict/wiki/Early-Access-Builds-for-Windows
我选择的是installer版本,也可以选择其他版本(zip是完整包,无需安装,直接运行)installer版有时候会crash, 后来我还是选择了64位绿色免安装版( *based 64-bit build (7z))。但是下面的路径可能有所不同。
你当然可以同时试用几个版本
下面的教程的路径以installer版默认为准
整个环境都已经搭载好了,下面开始安装windows的exe
4。打开安装好的wineHQ应用 会弹出terminal 暂时不用关闭
5。在Finder找到goldendict.exe,右键,用wine运行。然后就可以一步步安装了。我是安装在默认路径,即C盘
恭喜,你已经安装好了goldendict
6。打开GoldenDict方法(任选其一)
方法A
找到C盘(〜/.wine/drive_c) 的GoldenDict文件夹, 这个就是安装好的GoldenDict, 用wine打开exe即可
方法B
假设第五步是默认路径,可以在terminal输入下面命令
open ~/.wine/drive_c/Program\ Files\ \(x86\)/GoldenDict右键GoldenDict.exe 用wine打开即可
方法C
LC_ALL=zh_CN.utf-8 wine "$HOME/.wine/drive_c/Program Files (x86)/GoldenDict/GoldenDict.exe"
方法D
把GoldenDict.exe创建新链接,放在桌面即可(可以自行设定图标)
方法E (本教程默认E)
打开Mac自带的Automator -> Application -> Run shell srcipt,默认是/bin/bash, 在空白处输入
LC_ALL=zh_CN.utf-8 WINEDEBUG=-all "/Applications/Wine Stable.app/Contents/Resources/wine/bin/wine" "$HOME/.wine/drive_c/Program Files (x86)/GoldenDict/GoldenDict.exe" > /dev/null 2>&1 &保存成GoldenDict.app即可(可以自行设定图标)
LC_ALL=zh_CN.utf-8 为简体中文环境
其中WINEDEBUG=-all是不输出debug消息,
/Applications/Wine Stable.app/Contents/Resources/wine/bin/wine是wine应用版的路径
如果命令行版,/usr/local/bin/wine是默认wine路径,
然后是GoldenDict.exe路径, 最后>.. 是输出为空,去掉任务栏的一个小圈圈
基本安装就成功了。
7。美化待续
【A】 https://wiki.winehq.org/MacOS
本帖最后由 我突然想拉屎 于 2019-10-22 15:45 编辑
关于删除wine和重置
有些小伙伴可能害怕操作错误,产生垃圾文件。下面教大家怎么干净删除wine
删除整个$HOME/.wine
删除$HOME/.local/shares里的
applications
desktop-directories
mime
删除wine
https://wiki.winehq.org/MacOS
本帖最后由 我突然想拉屎 于 2019-12-13 09:13 编辑
关于美化。也就是修复字体问题, ctrl->command拷贝。
大部分可以跳过。我只执行了1,3,10,
我一开始用8,9,现在不用了,改用11
1。
打开terminal 安装winetricksbrew install winetricks
3。安装文泉驿中文字体 (更多字体请看6)
winetricks fakechinesefakechinese是文泉驿的包装,亲测此命令已经包含了winetricks wenquanyi
4。系统设置
将 DirectDrawRenderer 设置为 opengl , 据说会高效一些, 还有开启字体平滑 (非必要,可跳过)
winetricks ddr=opengl
winetricks fontsmooth=rgb
5。把macos系统字体tff otf ttc全部创建软链接到wine里(非必要,可跳过)cd ~/.wine/drive_c/windows/Fonts && for i in /Library/Fonts/*.{ttf,otf,ttc}; do ln -s "$i" ; done默认 〜/.wine/drive_c/windows/Fonts是空文件夹
6。查看或者安装更多的字体 (非必要,可跳过)
brew install zenity
winetricks --gui选择install fonts
7。调整windows系统级别的字体大小(比如窗口菜单字体大小) 非必要 可跳过
winecfg调整DPI。默认是96,菜单字体非常小,根据个人屏幕分辨率和喜好调整。
8。windows默认copy&paste是ctrl, macos默认是command,这里通过修改windows注册表进行整合 (非必要,可跳过)
REGEDIT4
"LeftCommandIsCtrl"="Y"
"RightCommandIsCtrl"="Y"将上述文件保存为任意名,比如 ctrl.reg
打开wineHQ应用,在弹出的terminal中输入
wine regedit ctrl.reg
所以现在在 goldendict里面,
command + c就是copy,
command + shift +c 就是 copy as text,
command +v 就是paste
9. 添加option键,在goldendict应用内变成windows的alt键。操作如8 (非必要,可跳过)
REGEDIT4
"LeftOptionIsAlt"="Y"
"RightOptionIsAlt"="Y"
10. 强制全局,默认字体为微软雅黑,默认字体大小为36px, UI字体为18px (非必要,可跳过)
创建一个文件 article-style.css
* {
font-family: Arial, "Microsoft Yahei" !important;
font-size: 36px !important;
/* background: red !important; */
}
创建一个文件 qt-style.css
* {
font-family: Arial, "Microsoft Yahei" !important;
font-size: 18px !important;
}
我用的是64位绿色版,默认路径为
〜/.wine/drive_c/users/用户名/Application Data/GoldenDict
将上面 qt-style.css 和 article-style.css 保存于上述路径
你的可能不同。可以在GoldenDict -> help -> Configuration Folder看看默认路径,将文件保存于默认路径。
css中的!important 是强制使用这条命令,覆盖所有字典,相当于全局。
可以把36px 18px 改成自己喜欢的默认字体大小
/* */ 为注释,可以去掉
如不明白第10步,请看
https://www.pdawiki.com/forum/thread-23016-1-1.html
11。 用karabiner-elements来交换command和ctrl (可跳过)
因为windows的 ctrl - c 为复制,而macos复制为 command - c, 可以在wine应用中单独交换,而其他应用保持正常激活的组合cmd+c, cmd+v, cmd+f, cmd+shift+f{
"title": "cmd cvfF -> ctrl cvfF in wine",
"rules": [
{
"description": "in wine, command cv -> ctrl cv",
"manipulators": [
{
"type": "basic",
"from": {
"key_code": "c",
"modifiers": {
"mandatory": [
"left_command"
],
"optional": [
"caps_lock"
]
}
},
"to": [
{
"key_code": "c",
"modifiers": [
"left_control"
]
}
],
"conditions": [
{
"type": "frontmost_application_if",
"bundle_identifiers": [
"^$"
],
"file_paths": [
"^/Applications/Wine Stable.app/Contents/Resources/wine/bin/wine-preloader",
"^/Applications/Wine Stable.app/Contents/Resources/wine/bin/wine64-preloader"
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "v",
"modifiers": {
"mandatory": [
"left_command"
],
"optional": [
"caps_lock"
]
}
},
"to": [
{
"key_code": "v",
"modifiers": [
"left_control"
]
}
],
"conditions": [
{
"type": "frontmost_application_if",
"bundle_identifiers": [
"^$"
],
"file_paths": [
"^/Applications/Wine Stable.app/Contents/Resources/wine/bin/wine-preloader",
"^/Applications/Wine Stable.app/Contents/Resources/wine/bin/wine64-preloader"
]
}
]
}
]
},
{
"description": "in wine, command fF -> ctrl fF",
"manipulators": [
{
"type": "basic",
"from": {
"key_code": "f",
"modifiers": {
"mandatory": [
"left_command"
],
"optional": [
"caps_lock"
]
}
},
"to": [
{
"key_code": "f",
"modifiers": [
"left_control"
]
}
],
"conditions": [
{
"type": "frontmost_application_if",
"bundle_identifiers": [
"^$"
],
"file_paths": [
"^/Applications/Wine Stable.app/Contents/Resources/wine/bin/wine-preloader",
"^/Applications/Wine Stable.app/Contents/Resources/wine/bin/wine64-preloader"
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "f",
"modifiers": {
"mandatory": [
"left_command",
"shift"
],
"optional": [
"caps_lock"
]
}
},
"to": [
{
"key_code": "f",
"modifiers": [
"left_control",
"shift"
]
}
],
"conditions": [
{
"type": "frontmost_application_if",
"bundle_identifiers": [
"^$"
],
"file_paths": [
"^/Applications/Wine Stable.app/Contents/Resources/wine/bin/wine-preloader",
"^/Applications/Wine Stable.app/Contents/Resources/wine/bin/wine64-preloader"
]
}
]
}
]
}
]
}
# 修改自 https://github.com/npyl/swap-command-with-control-for-wine 直接交换cmd和ctrl
这karabiner-elements说起来太麻烦。只是简单提一下。给高级用户使用。
关于删除/重置wine, 待续
本帖最后由 我突然想拉屎 于 2019-10-22 20:19 编辑
最后的最后,可以用wineBottler (for Mac OS X)给GoldenDict打包成一个单独goldendict.app
我粗略试了,把.net4.0 200M去掉, 包含整个wine, 加了fakechinese字体,打了几个优化的勾(看美化部分),最后体积是960MB。呃。不含字典。哈哈。有兴趣可以自己试一下。在两台机器实测可用。
安装wineBottler
http://winebottler.kronenberg.org/
測試了一下 建立字體軟鏈接之後goldendict裏面的生僻字還是顯示方塊 cjkfonts裝上之後方塊問題依舊存在
页:
[1]