프로그래밍 방식으로 터미널의 글꼴을 변경하지 않고 다시 시작


6

집에서는 불행히도 내 망막 맥북과 같은 해상도를 가지지 않는 멋진 큰 디스플레이가 있습니다.

저해상도 화면에서 픽셀 글꼴을 사용하고 망막 화면에서 멋진 글꼴을 사용하고 싶습니다. 이렇게하려면 디스플레이가 연결될 때 이벤트를 수신하는 스크립트를 설정했습니다.

Terminal.app에 두 개의 프로파일을 설정했습니다. 하나는 저해상도 화면 용이고 다른 하나는 망막 스크린 용입니다.

Terminal.app를 다시 시작하지 않고 프로필을 "기본"프로필 (예 : AppleScript 사용)로 설정하는 방법이 있습니까 (그렇지 않으면 defaults com.apple.terminal ... 그것을했을 것입니다)

다음 스크립트는 현재 기본 프로필을 변경하여 작동합니다 (필요로하는 것이 전부는 아니지만 변경하려는 모든 설정의 이름을 찾으면 작동 할 수 있음).

#!/usr/bin/env osascript -l JavaScript
function run (argv) {
  var terminal = Application('Terminal');

  terminal.defaultSettings.fontName = 'creep';
  terminal.defaultSettings.fontSize = 16;

  // these don't seem to work
  // because I do not know their names, and it's hard to debug guessing them
  // terminal.defaultSettings.fontAntialiasing = false;
  // terminal.defaultSettings.fontHeigthSpacing = 0.8;
}

변경 사항을 되돌리려면 스크립트를 작성해야합니다.


호기심에서 연결된 이벤트를 듣기 위해 어떤 방법을 사용하고 있습니까? 올바른 AppleEvent의 이름을 알 수 있다면 launchd를 통해이 작업을 수행 할 수 있습니다.
phobox

@ phobox 특정 USB 장치가 연결될 때마다 스크립트를 트리거하는 iokit 수신기를 사용하고 있습니다. 이 대답 . 나는 HDMI 장치를 위해 그것을하는 방법을 결코 결코 발견하지 않았다, 그래서 나는 디스플레이 (디스플레이는 USB 허브를 가지고있다)를 연결하는 동일한 허브에 플러그 된 FLIRC usb 장치를 가지고 있다는 사실에 의지한다. 다른 클래스의 장치를들을 수 있어야합니다. IOUSBDevice 하나. 또는 디스플레이가 2 초마다 연결되는지 확인하는 스크립트를 실행할 수도 있습니다 (예 : using ioreg -p IODisplayConnect ).
romeovs

답변:


5

좋아, AppleScript 편집기에서 주위를 속일 때 (이 좋은 것을 불렀다. 사전 그것은 당신에게 주어진 App을위한 모든 사용 가능한 명령들을 보여줍니다) 나는이 스크립트를 위해 정착했다 :

#!/usr/bin/env osascript
on run {name}
  tell application "Terminal"
    set default settings to settings set name
    set current settings of tabs of windows to settings set name
  end tell
end run

실행 가능하게 만들기 ( chmod u+x change.applescript )을 실행하고 프로필 이름을 전달하여 활성화하십시오.

./change.applescript creep

이것은 :

  • 기본 프로필을 변경하면 모든 새 창에서 기본 프로필을 사용합니다.
  • 모든 창의 모든 탭의 프로파일을 새 프로파일로 변경하십시오. 따라서 열린 터미널도이 프로파일을 사용하게됩니다!
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.