我想有一个Hammerspoon wifi观察器,它定期检查,如果没有连接将禁用wifi.
以下脚本执行此操作,
function checkAndDisableWifi()
hs.timer.doAfter(45, function()
local current_network = hs.wifi.currentNetwork()
if current_network == nil then
hs.wifi.setPower(false)
hs.notify.new({title="Hammerspoon",informativeText="Disabling wifi due to inactivity"}):send()
end
end)
end
function wifi_timer_callback()
local wifi_state = hs.wifi.interfaceDetails().power
if wifi_state then
local current_network = hs.wifi.currentNetwork()
if current_network == nil then
hs.wifi.setPower(false)
hs.notify.new({title="Hammerspoon",informativeText="Disabling wifi due to inactivity"}):send()
end
else
hs.wifi.setPower(true)
checkAndDisableWifi()
end
end
local wifi_timer = hs.timer.doEvery((10*60), wifi_timer_callback)
wifi_timer:start()
Run Code Online (Sandbox Code Playgroud)
在这里,我面临一个问题,比如用户是否已通过LAN连接.在这个时间点我不需要启用这个观察者(以便停止开启和关闭wifi).所以我需要的是,是否有任何API可以告诉我用户是通过局域网连接还是至少连接到互联网?
我清楚了吗?
我是一名印刷师,使用许多文件名不正确或不完整的字体.我在Mac上并且一直在使用Hazel,AppleScript和Automator工作流程,试图自动重命名这些文件*.我需要一个脚本来取代现有的文件名ttf,woff或woff2用字体的文件在Finder中postscriptName.我知道的工具(fc-scan/ fontconfig,TTX等),可检索的PostScript名称值我需要,但缺乏编程专有技术,为我的目的编写的脚本.我只设法设置一个可以在添加任何匹配某些参数的文件时运行脚本的监视目录.
*为了澄清,我说的只是更改文件名,而不是存储在字体中的实际名称.此外,我愿意接受任何兼容的语言或脚本如果可能的工作流程,例如一个脚本这个帖子引用嵌入的AppleScript 内通过Shell脚本osascript.
StackExchange帖子我咨询过:
如何从OTF或TTF文件中获取Fontname?
如何在OS X中获取TTF字体的PostScript名称?
如何更改字体名称?
在macOS中自动重命名文件
其他:
https ://github.com/dtinth/JXA-Cookbook/wiki/Using-JavaScript-for-Automation
https://github.com/fonttools/fonttools
https://github.com/devongovett/fontkit
https://www.npmjs.com/package/rename-js
https://opentype.js.org/font-inspector.html
http://www.fontgeek.net/blog/?p=343
https: //www.lantean.co/osx-renaming-fonts-for-free
编辑:按要求添加以下内容.
1)一个典型的webfont的屏幕截图,说明了字体系列和样式名称的表单字段通常是不完整,空白还是包含非法字符.
2)描绘的woff文件(也作为base64).
谢谢大家!
我想在内存非常低的设备中测试我的项目移动应用程序安装。假设大约 1 GB。它xcode带有定义的 RAM 大小。
有什么方法可以xcode像在 Android studio 中那样自定义 RAM 大小。
如果是,怎么办?
如果没有,是否有其他替代方案或模拟器类型可以用于此测试?
我试图从沙盒macOS应用程序打开系统偏好设置,以便用户可以手动启用某个偏好设置.
AppleScript的
activate将应用程序带到前端,必要时启动它.
我正在运行macOS 10.13.6和Xcode 10.0.部署目标设置为OS X 10.11.
我从沙盒应用程序运行以下AppleScript:
let script = """
tell application "System Preferences"
activate
set current pane to pane id "com.apple.preferences.extensions"
end tell
"""
let appleScript = NSAppleScript(source: script)
var errorInfo: NSDictionary? = nil
appleScript?.executeAndReturnError(&errorInfo)
Run Code Online (Sandbox Code Playgroud)
我还添加了一个脚本目标Sandbox Entitlement,使系统首选项能够显示窗格:
<key>com.apple.security.scripting-targets</key>
<dict>
<key>com.apple.systempreferences</key>
<array>
<string>preferencepane.reveal</string>
</array>
</dict>
Run Code Online (Sandbox Code Playgroud)
一旦我添加了权利,这有点起作用.如果关闭系统首选项应用程序,则会启动它并打开正确的窗格.
该errorInfo词典是零,因此不会造成错误信息.
在控制台中,我看到一条消息,可能是不相关的日志垃圾邮件:
AppleEvents:收到mach msg,它不是getMemoryReference中预期的复杂类型.
但是,该应用程序不会激活."系统偏好设置"窗口未出现在前面.该应用程序导航到正确的选项卡,但不会作为activate状态的文档到达前台.它仍然在任何其他前景窗口后面.
在关闭"系统偏好设置"的情况下,应用程序会启动.但是,在您单击停靠图标之前,窗口不会添加到前景或背景中的屏幕上.然后出现窗口,已导航到正确的窗格.
是否还有其他需要的Sandbox Entitlements可以激活"系统偏好设置"窗口?
我希望能够随时知道用户当前在 macOS 10.13 上以编程方式使用哪个任务控制工作区。在搜索过程中我找不到任何有效的答案。任何语言都可以,任何工作区标识符都适合我(uuid、工作区编号...)
感谢您的帮助!
我想知道是否可以修改右键单击 Finder 中任何特定内容时弹出的上下文菜单(如下右侧所示)
我可以轻松地将选项添加到右键单击某个项目(左侧)时弹出的上下文菜单...但是有没有办法将选项添加到右侧的菜单中?
例如,我可以在“新文件夹”下方添加自定义选项“新 Majig”吗?
更多信息:
如果它有用,以下是我创建我想要使用的选项的方法:
细节:
我在莫哈韦 10.14.2
我正在尝试编写一个脚本,将当前+所有下一个选项卡拆分到一个新窗口 \xe2\x80\x94 中,这对于组织非常有用。
\n\n完全有可能获取当前和所有下一个选项卡的 URL,创建一个新窗口并在新选项卡中加载所有这些 URL,然后关闭原始窗口 \xe2\x80\x93 中的选项卡,但这看起来非常麻烦,慢的。
\n\n那么,有没有什么方法可以将一组 Safari 选项卡移动到新窗口,而无需实际重新加载 URL?
\n我想编写一些AppleScript,它会迭代应用程序的(非最小化)窗口,并为每个应用程序将其带到前面并触发另一个应用程序BTT(将移动窗口)中的某些内容。目的是将应用程序的所有窗口移动到同一位置。移动部分已处理(由 BTT),我只需要帮助使这种情况发生在应用程序的所有窗口上。
(这个问题涉及BetterTouchTool,但它并不是真正的问题 - 我认为 - 我怀疑你不需要了解任何有关 BTT 的知识来回答......)
我正在尝试编写一个 AppleScript 脚本(当我将其简化为最简单的版本时)激活一些应用程序,并循环遍历其所有窗口,为每个窗口触发 BetterTouchTool“命名触发器”。指定触发器的工作是将当前窗口移动到某个位置,但其细节并不重要。
我觉得这应该很简单,但我似乎无法找到正确的方法。我已经尝试过对它进行货物崇拜,但我没有取得任何进展(除了怀疑我需要涉及“系统事件”)......我是一名经验丰富的程序员,但我从未深入研究过 AppleScript 和发现它做事的方式相当奇怪/令人困惑。
到目前为止,我正在工作的是一个不会在窗口上循环的版本,因此它只会点击“第一个”(在某种意义上的“第一个”,这似乎是“该应用程序最近活跃的”) )。
例如,以下作品。(我已将其硬编码到 VSCode,尽管在我尝试编写的完整内容中,它会迭代应用程序名称列表以及为它们运行的触发器。)
on run
if application "Visual Studio Code" is running then
tell application "Visual Studio Code" to activate
tell application "BetterTouchTool"
trigger_named "Move window: monitor 4k: core"
end tell
end if
end run
Run Code Online (Sandbox Code Playgroud)
这样就会激活 VSCode,然后告诉 BTT 运行命名触发器以将当前窗口移动到屏幕上的某个位置。效果是最近使用的 VSCode 窗口被移动。
好的,这是一个不错的开始,但我想对所有VSCode 窗口(或者理想情况下,当前可见桌面上的所有非最小化窗口)执行此操作。
BTT 的 AppleScript 界面似乎不支持针对特定窗口 - 它只适用于任何活动的应用程序/窗口,因此我需要以某种方式激活/将窗口置于前面(?),然后调用 BTT 触发器。
我想我需要这样的东西(暂时忽略忽略最小化窗口的问题): …
我对基本的SwiftUI有了更多的了解,但现在我想扩展我的应用程序,为我实际做一些有关系统组件的事情。基本上,我想从我的应用程序内部运行AppleScript,在 Mac Mail 中创建签名。脚本本身非常简单:
// Generates a signature in Mac Mail
tell application "Mail"
set newSig to make new signature with properties {name:"The Signature Name"}
set content of newSig to "My New Signature Content"
end tell
Run Code Online (Sandbox Code Playgroud)
我创建了一个带有按钮的视图,该按钮应该执行脚本:
import SwiftUI
struct SomeView: View {
@State var status = ""
var body: some View {
VStack(alignment: .center) {
Button(action: {
let source = """
tell application \"Mail\"
set newSig to make new signature with properties {name: \"The …Run Code Online (Sandbox Code Playgroud) 当用户按下全局快捷方式时,我试图获取选定的文本。无论当前聚焦的应用程序是 chrome、safari 还是 Microsoft Word,我的应用程序都应该读取当前选择的文本。
我正在尝试使用 AppleScript 来执行此操作,该脚本使用剪贴板进行黑客攻击。但这并不适用于所有应用程序。
func readSelectedText() {
let script = """
-- Back up clipboard contents:
set savedClipboard to the clipboard
-- Copy selected text to clipboard:
tell application "System Events" to keystroke "c" using {command down}
delay 1 -- Without this, the clipboard may have stale data.
set theSelectedText to the clipboard
delay 1 -- Without this delay, may restore clipboard before pasting.
-- Restore clipboard:
set the clipboard to savedClipboard
return theSelectedText
"""
var …Run Code Online (Sandbox Code Playgroud) applescript ×10
macos ×7
automation ×2
cocoa ×2
appium-ios ×1
appkit ×1
automator ×1
contextmenu ×1
entitlements ×1
fontconfig ×1
hammerspoon ×1
ios ×1
macos-mojave ×1
performance ×1
rename ×1
safari ×1
swift ×1
swiftui ×1
tabs ×1
xcode ×1