【问题标题】:Change the desktop placement via terminal command or Applescript通过终端命令或 Applescript 更改桌面位置
【发布时间】:2013-05-29 19:12:23
【问题描述】:

我主要使用 Apple 远程桌面 (ARD) 管理一些计算机实验室。我一直在尝试通过使用终端的命令行或使用 Applescript 来调整桌面的大小。

我找到了这个方便的更改桌面的脚本:

tell application "System Events"
-- SET DESKTOP TO SPECIFIC PICTURE
tell current desktop
    set picture rotation to 0 -- (0=off, 1=interval, 2=login, 3=sleep)
    set picture to file "Mac OS X:Library:Desktop Pictures:Plants:Agave.jpg"
end tell 

这可以改变桌面,但我需要在我的 OSX 10.7 机器上将桌面大小调整为“拉伸以填充屏幕”。

我怀疑我可以通过 ARD 发送很多 Unix 命令来更改 com.apple.desktop.plist 设置。你知道,像 pmset 这样的东西:

pmset -a  hibernatemode 0 disksleep 10 womp 1 networkoversleep 0 sleep 180 powerbutton 0 ttyskeepawake 1 autorestart 0 panicrestart 157680000 displaysleep 18

这很方便。

我使用“默认读取 com.apple.desktop”并发现说,我笔记本电脑上的放置是“放置 = 裁剪;”。

(顺便说一句,当您使用默认命令时,您是否为每个用户都设置了它们?)

我什至下载了一个属性列表转换器来将 com.apple.desktop.plist 转换为我可以阅读的 XML 文件,我发现了这样的东西:

                    <key>Placement</key>
                <string>FillScreen</string>

但我不知道如何使用这些信息。

我尝试用我喜欢的设置覆盖我机器上的 com.apple.desktop.plist 文件,但发现这根本没有任何作用,它没有改变桌面,即使我注销并重新登录客户端计算机,或重新启动。

我正在努力避免在系统偏好设置中编写 GUI 脚本,因为我知道它的格式不好,而且我也无法弄清楚。虽然我确实尝试过,但通过安装 Xcode 并查看辅助功能测试以找出哪个窗口的哪个窗格......但未能编写脚本。

我发现 this website 有人在做类似于我正在做的事情,但它是德语的,而且谷歌翻译并不完美。

附:我从来没有写过 Python 脚本,而且我是一个初学者。

附言我从来没有成功使用过 Automator。

【问题讨论】:

标签: terminal applescript osx-lion plist defaults


【解决方案1】:

您可以单击弹出按钮,然后单击菜单 1 的某个菜单项:

tell application "System Preferences"
    reveal anchor "DesktopPref" of pane id "com.apple.preference.desktopscreeneffect"
end tell
tell application "System Events" to tell process "System Preferences"
    tell pop up button 2 of tab group 1 of window 1
        click
        click menu item "Stretch to Fill Screen" of menu 1
    end tell
end tell

在 10.8 中更改 ~/Library/Preferences/com.apple.desktop.plist 中的放置键并注销并重新登录对我有用。编辑 plist 的另一种方法:

f=~/Library/Preferences/com.apple.desktop.plist; plist=$(plutil -convert xml1 $f -o - | awk '/&lt;key&gt;Placement&lt;\/key&gt;/{print;getline;sub(/&gt;.*&lt;\//,"&gt;FillScreen&lt;/")}1'); printf %s "$plist" &gt; "$f"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-18
    • 2022-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多