10.10 데스크탑 변경 Python 스크립트 조정

10.10 데스크탑 변경 Python 스크립트 조정

저는 Python에 능숙하지 않으며 현재 다음을 기반으로 하는 스크립트를 사용하고 있습니다.https://gist.github.com/gregneagle/6957826.

다음 스크립트에서 데스크톱 이미지 사전 키 옵션을 한 가지 변경하려고 하는데 올바른 코드가 무엇인지 잘 모르겠습니다.

현재 코드

options = {}

거기에 들어가고 싶은 것은 "NSWorkspaceDesktopImageAllowClippingKey"에 대한 값이 없습니다(참조:https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSWorkspace_Class/index.html#//apple_ref/doc/constant_group/Desktop_Image_Dictionary_Keys)

나의 최종 목표는 이 프로그램이 10.9 및 10.10의 데스크탑 그림을 FILL 화면 대신 FIT 화면으로 설정하도록 하는 것입니다. 이는 항상 기본값으로 설정되어 있는 것 같습니다. 이는 NetRestore 이미지 유틸리티의 일부이므로 해당 정보가 ByHost 기본 설정에 포함되어 있으므로 이를 자동화해야 합니다.

감사합니다!

-rks

필요한 분들을 위한 원본 스크립트는 다음과 같습니다.

#!/usr/bin/python

'''Uses Cocoa classes via PyObjC to set a desktop picture on all screens.
Tested on Mountain Lion and Mavericks. Inspired by Greg Neagle's work: https://gist.github.com/gregneagle/6957826

See:
https://developer.apple.com/library/mac/documentation/cocoa/reference/applicationkit/classes/NSWorkspace_Class/Reference/Reference.html

https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSURL_Class/Reference/Reference.html

https://developer.apple.com/library/mac/documentation/cocoa/reference/applicationkit/classes/NSScreen_Class/Reference/Reference.html
'''

from AppKit import NSWorkspace, NSScreen
from Foundation import NSURL
import argparse
import sys

parser = argparse.ArgumentParser(description='Sets the desktop picture on all screens')
parser.add_argument('--path', help='The path of the image')
args = vars(parser.parse_args())

if args['path']:
    picture_path = args['path']
else:
    print >> sys.stderr, 'You must supply a path for the desktop picture'
    exit(-1)

# generate a fileURL for the desktop picture
file_url = NSURL.fileURLWithPath_(picture_path)

# make image options dictionary
# we just make an empty one because the defaults are fine
options = {}

# get shared workspace
ws = NSWorkspace.sharedWorkspace()

# iterate over all screens
for screen in NSScreen.screens():
    # tell the workspace to set the desktop picture
    (result, error) = ws.setDesktopImageURL_forScreen_options_error_(
                file_url, screen, options, None)
    if error:
        print error
        exit(-1)

관련 정보