바탕 화면 배경 위치를 변경하는 AppleScript (예 : 화면 채우기


0

나는 대본을 가지고있다.

tell application "System Events"
    tell every desktop
        set picture to "/Users/jackson/Pictures/Backgrounds/backpic.jpg"
    end tell
end tell

그러면 바탕 화면 배경이 특정 이미지로 바뀝니다. 기본값은 내가 싫어하는 "채우기 화면"입니다. 그러나 치수를 스크립팅 할 수는 없습니다.

편집 : 기본값은 무엇이든간에 마지막으로 설정 한 것으로 보이지만 여전히 AppleScript에서 제어 할 수 있는지 알고 싶습니다.

나는 읽었다. 이리 (그 이후로 변경되었을 수도 있지만) 대답을 직접 스크립트로 작성하는 것이 가능하지 않을 수도 있지만, GUI 스크립트 작성이 가능할 것이라고 생각했습니다. 누구든지 아이디어가 있으십니까?


사용중인 OS X / macOS 버전을 모르지만 macOS High Sierra에는 전체 화면, 화면에 맞추기 등의 배경 화면 표시 방법에 대한 GUI 설정이 없습니다.
user3439894

흥미로운 작업 ... 화면을 채우지 않으면 축소 된 배경 뒤에 무엇이 생깁니 까?
Buscar웃

@Buscar 웃 당신이 화면에 맞으면 사진이없는 곳에 단색을 보여줍니다 (예를 들어, 검은 색을 선택하고 옆에 검은 색 상자가 있거나 옆에 선이 있음).
Talos Potential

@ user3439894 저는 모하비에 있습니다. 화면 보호기로 가십시오. GUI에서 옵션을 선택할 수 있습니다.
Talos Potential

@ TalosPotential 아래 스크립트를 사용해 보셨습니까?
CJK

답변:


0

나는 이것을 잠시 생각하고 연구했다. 이 대답은 여기에 , 나는 AppleScriptObjc 스크립트를 고안했다. 하이 시에라 적어도 (또한 작동해야합니다. 모하비 )는 데스크탑 배경 이미지가 (주) 화면으로 확장되는 방식에 대해 몇 가지 사용자 정의를 허용합니다.

use framework "AppKit"
--------------------------------------------------------------------------------
# PROPERTY DECLARATIONS:
property this : a reference to current application

property NSWorkspace : a reference to NSWorkspace of this
property NSScreen : a reference to NSScreen of this
property NSColor : a reference to NSColor of this
property NSDictionary : a reference to NSDictionary of this

property fit : 1 -- NSImageScaleAxesIndependently (will never clip)
property centre : 2 -- NSImageScaleNone (will never clip)
property best : 3 -- NSImageScaleProportionallyUpOrDown (no clipping)
property fill : 3.1 -- NSImageScaleProportionallyUpOrDown (clipping)

property black : {0, 0, 0}
property white : {100, 100, 100}
property grey50 : {50, 50, 50}
property red : {100, 0, 0}
property green : {0, 100, 0}
property blue : {0, 0, 100}
--------------------------------------------------------------------------------
# IMPLEMENTATION:
on run
    scaleDesktopImage to fill over blue
end run
--------------------------------------------------------------------------------
# HANDLERS:
to scaleDesktopImage to scalingOption over {r, g, b} : {50, 50, 50}
    local scalingOption -- fit, centre, fill
    local r, g, b -- 0 to 100

    set clipping to false
    if scalingOption is not in [fit, centre, best, fill] then return false
    if scalingOption = fill then set clipping to true

    set sharedWorkspace to NSWorkspace's sharedWorkspace()
    set mainScreen to NSScreen's mainScreen()

    set options to {NSWorkspaceDesktopImageScalingKey:scalingOption ¬
        , NSWorkspaceDesktopImageAllowClippingKey:clipping ¬
        , NSWorkspaceDesktopImageFillColorKey:RGB(r, g, b)}

    set imageURL to sharedWorkspace's desktopImageURLForScreen:mainScreen

    set [success, E] to sharedWorkspace's setDesktopImageURL:imageURL ¬
        forScreen:mainScreen options:options |error|:(reference)

    if E = missing value then return success
    E's localizedDescription() as text
end scaleDesktopImage


on RGB(r as real, g as real, b as real)
    NSColor's colorWithCalibratedRed:r / 100 ¬
        green:g / 100 ¬
        blue:b / 100 ¬
        alpha:1.0
end RGB
---------------------------------------------------------------------------❮END❯

AppleScriptObjC에 익숙하지 않다면 스크립트가 세 부분으로 나뉘어져 있음을 확인하십시오. PROPERTY DECLARATIONS, IMPLEMENTATION, 및 HANDLERS, 첫 번째와 마지막으로 나는 학습 운동으로 사용하지 않는 한, 너무 많이 조정하거나 전혀 조정하지 말 것을 제안합니다.

즉, 자신 만의 맞춤 색상 속성을 그룹의 그룹에 추가하기로 결정하면 크게 잘못하지 않을 것입니다. PROPERTY DECLARATIONS 섹션 각각은 단순히 0 (기여도)에서 100 (전체 기여도) 사이의 값을 갖는 빨강, 녹색 및 파랑 색 구성 요소를 지정하는 3 가지 항목 목록 일뿐입니다.

스크립트의 두 번째 섹션 IMPLEMENTATION, 명확하게 선언 된 (명확성을 위해서만) run 매니저. 단일 명령은 처리기에 대한 호출입니다. scaleDesktopImage귀하의 필요에 가장 잘 부응 할 수있는 라인입니다.

그것은 두 가지 형식을 취하는데, 예제를 통해 설명 할 것입니다.

scaleDesktopImage to fill over blue

또는:

scaleDesktopImage to fill

즉, 바탕 화면 이미지가 놓여지는 색 (즉, 배경색)을 지정하는 것은 선택 사항입니다. 생략하면 배경색은 기본적으로 50 % 회색으로 설정됩니다. 물론 배경색을 지정하기 위해 미리 선언 된 속성을 사용할 필요는 없습니다. RGB 값 목록을 직접 제공 할 수 있습니다.

scaleDesktopImage to best over {100, 25, 50}

나머지 매개 변수 ~이다. 필수이며 네 개의 가능한 명명 된 값이 있습니다.

  • fit: 바탕 화면의 너비 및 높이에 맞게 이미지를 늘립니다.
  • centre: 그러나 이미지를 확대하지 않고 센터링합니다. 의지 바탕 화면 경계 밖으로 유출되는 이미지의 크기를 줄입니다.
  • best: 데스크탑의 가능한 최대 영역을 차지하도록 이미지의 크기를 확대하거나 축소합니다. 없이 데스크탑 경계 외부로 나가고 이미지의 종횡비, 즉 비례 크기 조정을 보존하는 것;
  • fill: 가로 세로 비율을 유지하면서 바탕 화면의 전체 영역을 덮도록 이미지의 크기를 조정하지만 배경을 커버하기 위해 필요한 경우 해당 축 중 하나를 따라 바탕 화면의 경계 너머로 확장합니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.