在给自带的 Dictionary 导入了 1 个 G 的词典后,遇到陌生的单词直接 Force Click 就能快速找到释义,整个人都舒适了,但也 macOS 本身没有好的解决方案,就结合 BTT 自己设计一个,当然不一定要依赖于 BTT,可以自己构建一个。
通过 BTT 创建一个触发器,当执行时,模拟鼠标双击选中文本 -> 将所选文本储存至变量 selected_text ->运行 Apple 脚本 -> (可选)最后可以触发 Look Up 或者 /词典完成对陌生单词的学习
因为一些原因暂时没有学习 Apple Script,所以这里就只用 apple script 获取 BTT 的变量 selected_text 并传递给 python,如果没有 BTT 的话,可以通过 apple script 读取选中的文本或者是剪切板。
注意如果要使用这些代码要对 python 程序的位置的变量进行修改
这里给出 Apple Script 代码
tell application "BetterTouchTool"
set seletedText to get_string_variable "selected_text"
end tell
set location to "python3 #############Python Script Location "
do shell script location & seletedText
同时这里也给一段 python 生成单词本的示范代码,可以直接使用,只实现了基本的写入和防重复功能,并且可以调用 macOS 的通知功能完成程序状态的反馈
import sys, os
glossaryLocation = '/'
def notify(title, text):
os.system("""
osascript -e 'display notification "{}" with title "{}"'
""".format(text, title))
# Check if word already appended
try :
file = open(glossaryLocation + 'AutomatedGlossary.txt')
for word in file:
if sys.argv[1].lower() == word.rstrip():
notify('Word already existed','😅')
bypass = True
sys.exit()
except OSError:
notify('First time?😘','Creating a new Automated Glossary in ' + glossaryLocation)
os.system('sleep 4')
# Append Word
file = open(glossaryLocation + 'AutomatedGlossary.txt','a')
file.write(sys.argv[1].lower()+'\n')
notify(sys.argv[1].capitalize() + '🥳','Successfully add to Automated Glossary')