Touch Bar에 창 너비를 화면 너비에 맞추는 동작
조금 역기이지만, 해 보았습니다. JXA*를 Automator의 서비스로 이동하는 사람입니다.
*JXA: JavaScript로 AppleScript 같은 일하는 녀석(←잡)
창을 가로폭 가득 채운다.
필자의 메인 모니터는 FullHD 모니터를 세로 두고 있기 때문에, 가로폭은 1080px입니다.
보통으로 생각하면 현재 윈도우의 X 좌표를 0으로, width를 1080으로 하면 좋을 것 같습니다.
부정확한 코드var app = Application.currentApplication();
var new_bound = app.windows[0].bounds();
new_bound.x = 0;
new_bound.width = 1080;
app.windows[0].bounds = new_bound;
그런데 꽤, 멀티 모니터 환경에서는, 아무래도 「그」모니터의 좌단의 x 좌표가 0 으로는 한정되지 않는 것 같습니다. (가상적으로, 복수의 모니터를 전부 맞춘 큰 구형으로 되어 있다?)
그래서 "그"모니터의 좌단의 x좌표를 어떻게든 지정하지 않으면 안됩니다.
하지만, 그것을 스크립트로 취득하는 것은 의외로 귀찮을 것 같기 때문에 패스. 적당한 윈도우를 좌단에 두고 x 좌표를 조사한다, 라고 하는 아날로그인 방법으로 조사한 결과, 나의 지금 현재의 설정이라고 하면, 목적의 모니터의 좌단은 x=359인 것 같습니다.
그래서 이것을 그대로 반죽하면 이런 느낌.
스크립트 편집기 .app에서 움직이는 코드var app = Application.currentApplication();
var new_bound = app.windows[0].bounds();
new_bound.x = 359; //マジックナンバー!!
new_bound.width = 1080;
app.windows[0].bounds = new_bound;
흠, 대변 코드.
Automator로 빠른 액션화.
Automator에서는 "빠른 액션"을 만들 수 있습니다. 「서비스」에 등록할 수 있는 뛰어난 것.
따라서 "JavaScript 실행"액션 만 워크 플로우를 만듭니다. (「워크 플로우가 받는 항목」은 「입력 없음」으로 OK)
내용은, 액션의 디폴트치의 // Your script goes here
이하에 상기 코드를 붙여 넣으면 OK…라고 하는 것은 아니거나 합니다.
"서비스"로 작동하면 현재 응용 프로그램이 서비스이기 때문에 활성 창을 조작하지 않습니다.
그런 다음 System Events를 사용하여 frontmost 응용 프로그램을 검색하고 응용 프로그램의 시작 창을 조작합니다.
결론으로서는, 이런 느낌으로.
"JavaScript 실행"액션의 스크립트var TARGET_X = 359; //お目当てモニタの左端x座標(手作業で取得)
var TARGET_WIDTH = 1080; //お目当てモニタの幅
function run(input, parameters) {
// Your script goes here
var processes = Application("System Events").processes();
getApp: for( var i in processes ){
if( processes[i].frontmost() ){
var app = Application(processes[i].name());
break getApp;
}
}
var bound = app.windows[0].bounds();
bound.x = TARGET_X;
bound.width = TARGET_WIDTH;
app.windows()[0].bounds = bound;
}
적당하게 「화면 폭에 맞추는 .workflow」라고도 명명해, 서비스로서 보존합니다.
Touch Bar에 등록
시스템 환경설정 .app에서, 「키보드」→「키보드」내의 「Touch Bar를 커스터마이즈…」를 클릭해, 「퀵 액션」을 Touch Bar에 추가.
그러면, Touch Bar에서 이 「퀵 액션」에 접하면, 곧바로 상기 「화면 폭에 맞춘다」를 동작시킬 수 있어!
Reference
이 문제에 관하여(Touch Bar에 창 너비를 화면 너비에 맞추는 동작), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kasanma3104/items/fb46f1689d64c3e58746
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
var app = Application.currentApplication();
var new_bound = app.windows[0].bounds();
new_bound.x = 0;
new_bound.width = 1080;
app.windows[0].bounds = new_bound;
var app = Application.currentApplication();
var new_bound = app.windows[0].bounds();
new_bound.x = 359; //マジックナンバー!!
new_bound.width = 1080;
app.windows[0].bounds = new_bound;
Automator에서는 "빠른 액션"을 만들 수 있습니다. 「서비스」에 등록할 수 있는 뛰어난 것.
따라서 "JavaScript 실행"액션 만 워크 플로우를 만듭니다. (「워크 플로우가 받는 항목」은 「입력 없음」으로 OK)
내용은, 액션의 디폴트치의
// Your script goes here
이하에 상기 코드를 붙여 넣으면 OK…라고 하는 것은 아니거나 합니다."서비스"로 작동하면 현재 응용 프로그램이 서비스이기 때문에 활성 창을 조작하지 않습니다.
그런 다음 System Events를 사용하여 frontmost 응용 프로그램을 검색하고 응용 프로그램의 시작 창을 조작합니다.
결론으로서는, 이런 느낌으로.
"JavaScript 실행"액션의 스크립트
var TARGET_X = 359; //お目当てモニタの左端x座標(手作業で取得)
var TARGET_WIDTH = 1080; //お目当てモニタの幅
function run(input, parameters) {
// Your script goes here
var processes = Application("System Events").processes();
getApp: for( var i in processes ){
if( processes[i].frontmost() ){
var app = Application(processes[i].name());
break getApp;
}
}
var bound = app.windows[0].bounds();
bound.x = TARGET_X;
bound.width = TARGET_WIDTH;
app.windows()[0].bounds = bound;
}
적당하게 「화면 폭에 맞추는 .workflow」라고도 명명해, 서비스로서 보존합니다.
Touch Bar에 등록
시스템 환경설정 .app에서, 「키보드」→「키보드」내의 「Touch Bar를 커스터마이즈…」를 클릭해, 「퀵 액션」을 Touch Bar에 추가.
그러면, Touch Bar에서 이 「퀵 액션」에 접하면, 곧바로 상기 「화면 폭에 맞춘다」를 동작시킬 수 있어!
Reference
이 문제에 관하여(Touch Bar에 창 너비를 화면 너비에 맞추는 동작), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kasanma3104/items/fb46f1689d64c3e58746
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Touch Bar에 창 너비를 화면 너비에 맞추는 동작), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kasanma3104/items/fb46f1689d64c3e58746텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)