通过terminal命令或Applescript更改桌面位置

时间:2013-05-29 19:12:24

标签: terminal applescript osx-lion plist defaults

我主要使用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机器上将桌面大小调整为“拉伸到填充屏幕”。

我怀疑有很多Unix命令可以通过ARD发送来改变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

这非常方便。

我使用过“defaults read com.apple.desktop”,发现说我的笔记本电脑上的Placement是“Placement = Crop;”。

(顺便说一下,当你使用defaults命令时,你是为每个用户设置它们吗?)

我甚至下载了一个Property List Converter来将com.apple.desktop.plist转换成我能读的XML文件,我发现了这样的东西:

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

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

我尝试使用我喜欢的设置覆盖我机器上的com.apple.desktop.plist文件,但发现它什么都没做,它没有改变桌面,即使我退出并且没有客户端计算机,或重新启动。

我正在努力避免使用GUI脚本编写系统首选项,因为我知道它的格式不好,而且我也无法解决这个问题。虽然我确实尝试过,通过安装Xcode并查看Accessibility测试的东西来找出哪个窗口的哪个窗格......并且无法编写脚本。

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

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

P.P.S。我从未成功使用过Automator。

1 个答案:

答案 0 :(得分:0)

您可以单击弹出按钮,然后单击菜单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

更改~/Library/Preferences/com.apple.desktop.plist中的展示位置键并退出并重新登录为10.8中的我工作。另一种编辑plist的方法:

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