애플 스 크 립 트 습격: Chrome 창 열기, DevTool 위치 조정, Sublime 프로젝트 불 러 오기, ITerm 명령 실행 등...

11060 단어 uishell
머리말
얼마 전에 말 했 듯 이 맥 스 케 쥴 러 센터 의 정확 한 용법 을 발 견 했 고 세 화면 모니터 에서 멋 있 었 다. 나중에 맥 과 외부 연 결 된 모니터 를 함께 무 작위 로 같은 벽지 로 만 드 는 것 이 실현 되 어 정말 눈 과 마음 을 즐겁게 했다.
더 효율 적 이 고 싶 어 요.
그러나 데스크 톱 공간 에서 프로젝트 창 을 자동화 하 는 방법 을 잊 지 못 했 습 니 다. 다행히 지금 은 얻 은 것 이 있 습 니 다.
애플 리 케 이 션 스 크 립 트
스 크 립 트 와 용법 만 공유 합 니 다. 구체 적 인 조립 은 각자 가 알 아서 해 야 합 니 다. 요리 가 나 왔 습 니 다. 어떻게 먹 는 지 직접 젓가락 을 드 세 요.
제 근무 환경 에서 주로 Chrome Sublime iTerm 등 소프트웨어 와 관련 되 고 다음 코드 는 참고 하 시기 바 랍 니 다.
새 창 열기 (새 탭 이 아 닙 니 다)
방법:
on newWindow(name, openStr, newWindowStr)
    tell application "Dock"
        activate
    end tell
    tell application "System Events"
        tell process "Dock"
            set frontmost to true
            activate
            tell list 1
                tell UI element name
                    perform action "AXShowMenu"
                    delay 1
                    key code 126 -- up arrow
                    tell menu name
                        try
                            tell menu item openStr
                                perform action "AXPress"
                                --               
                                delay 5
                            end tell
                        on error errMsg
                            tell menu item newWindowStr
                                perform action "AXPress"
                            end tell
                        end try
                    end tell
                end tell
            end tell
        end tell
    end tell
end newWindow

사용법 예시:
newWindow("Google Chrome", "  ", "      ")

설명:
  • 자주 사용 하 는 소프트웨어 를 Dock 에 놓 고 오른쪽 클릭 하면 이 소프트웨어 의 메뉴, 메뉴 의 문 자 를 볼 수 있 고 매개 변수 로 위 에 전달 하 는 방법 을 볼 수 있 습 니 다.
  • google 창 을 열 면 두 개의 인자 가 있 습 니 다. 첫 번 째 인 자 는 현재 구 글 브 라 우 저 프로 세 스 가 존재 하지 않 는 명령 입 니 다. 두 번 째 인 자 는 구 글 브 라 우 저 프로 세 스 가 존재 하 는 명령 입 니 다.
  • 다른 소프트웨어 는 비슷 하 다. 구체 적 으로 오른쪽 단 추 를 눌 러 문 자 를 보라 고 명령 한다.

  • 지정 한 위치 로 창 이동
    방법:
    
    on moveBounds(name, topLeftX, topLeftY, bottomRightX, bottomRightY)
        tell application name
            set bounds of front window to {topLeftX, topLeftY, bottomRightX, bottomRightY}
        end tell
    end moveBounds
    
    on sizePosition(name, topLeftX, topLeftY, width, height)
        tell application "System Events" to tell application process name
            tell window 1
                set {position, size} to {
         {topLeftX, topLeftY}, {width, height}}
            end tell
        end tell
    end sizePosition
    

    사용법 예시:
    sizePosition("Google Chrome", 40, 15, 1828, 1057)
    moveBounds("Google Chrome", 1519, 116, 1919, 874)
    

    설명:
  • 여기 서 두 가지 방법 을 제 공 했 는데 매개 변수의 차이 에 주의 하 세 요.
  • 두 가지 방법 이 있 는 이 유 는 이 두 가지 방법 이 항상 효력 이 발생 하 는 것 이 아니 기 때 문 입 니 다. 구체 적 인 소프트웨어 의 구체 적 인 상황 이 다 르 기 때문에 사용 할 때 스스로 선택 하 십시오.
  • 정확 한 좌표 위 치 를 어떻게 얻 는 지 에 대해 간단 한 방법 은 각종 캡 처 도 구 를 사용 하 는 것 이다. 예 를 들 어 snipaste 등 이다.

  • Chrome 의 DevTool 을 열 고 독립 된 창 으로 전환 한 다음 지정 한 위치 로 이동 합 니 다.
    방법:
    on getFrontWindow()
        tell application "System Events"
            repeat with theapp in (every application process whose visible is true and frontmost is true)
                repeat with ew in (every window of theapp)
                    return ew
                end repeat
            end repeat
        end tell
    end getFrontWindow
    
    on openChromeDevTool()
        tell application "Google Chrome"
            activate
        end tell
        tell application "System Events"
            key code 53 --esc
            --        
            delay 1
            key code 34 using {option down, command down}
        end tell
        --       
        delay 3
        set frontWindowName to name of getFrontWindow() as string
    
        if {frontWindowName does not start with "DevTools"} then
            --display dialog frontWindowName
            tell application "System Events"
                key code 2 using {
         shift down, command down}
                delay 2
            end tell
        end if
        --        
        moveBounds("Google Chrome", 1920, -36, 3410, 1043)
    end openChromeDevTool
    

    사용법 예시:
    openChromeDevTool()
    

    설명:
  • 이것 은 저 개인의 특수 한 수요 입 니 다
  • 모 바 일 웹 페이지 를 개발 할 때 저 는 DevTool 의 창 을 자주 독립 합 니 다.
  • 그래서 저 는 상기 코드 로 창 이 독립 되 고 부 스크린 모니터 로 이동 하 는 수 요 를 실 현 했 습 니 다.

  • Sublime 으로 항목 불 러 오기
    방법:
    on sublOpenWorkspace(name)
        do shell script "\"/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl\" -n  --project \"/Users/AsinW/Library/Application Support/Sublime Text 3/Packages/User/Projects/" & name & ".sublime-workspace\""
    end sublOpenWorkspace
    

    사용법 예시:
        delay 1
        newWindow("Sublime Text", "  ", "New Window")
        delay 1
        sizePosition("Sublime Text", 0, 15, 1514, 1080)
        delay 1
        sublOpenWorkspace("jiyingshou_api3")
        delay 3
        sublOpenWorkspace("jiyingshou_admin")
    

    설명:
  • 이 예 는 새로운 Sublime 창 을 열 고 지 정 된 위치 로 이동 한 다음 여러 항목 을 불 러 오 는 절 차 를 보 여 줍 니 다.
  • 주의: 위의 방법 에서 Sublime Text.app 의 절대적 인 경 로 를 사 용 했 습 니 다. 여러분 은 자신의 컴퓨터 에서 대응 하 는 경로 로 스스로 변경 하 십시오.
  • Sublime 의 프로젝트 파일 을 어떻게 관리 하고 sublime - workspace 와 같은 파일 을 어떻게 생 성 하 는 지 스스로 탐색 하 세 요.

  • iTerm 2 를 열 고 명령 을 실행 합 니 다.
    방법:
    
    --          
    on iTermCmdCurrentTab(cmdStrs)
        tell application "iTerm"
            activate
            tell current window
                tell current session
                    repeat with cmdStr in cmdStrs
                        write text cmdStr
                    end repeat
                end tell
            end tell
        end tell
    end iTermCmdCurrentTab
    
    --        ,     
    on iTermCmdNewTab(cmdStrs)
        tell application "iTerm"
            activate
            tell current window
                create tab with default profile
                tell current session
                    repeat with cmdStr in cmdStrs
                        write text cmdStr
                    end repeat
                end tell
            end tell
        end tell
    end iTermCmdNewTab
    
    
    --                     
    on iTermCmdInPane(cmdStrs)
        tell application "iTerm"
            activate
            tell current window
                tell current tab
                    tell current session
                        split horizontally with same profile
                    end tell
                    repeat with ss in sessions
                        select ss
                    end repeat
                    tell current session
                        repeat with cmdStr in cmdStrs
                            write text cmdStr
                        end repeat
                    end tell
                end tell
            end tell
        end tell
    end iTermCmdInPane
    
    --       
    on iTermSetRows(num)
        tell application "iTerm"
            tell current session of current window
                set rows to num
            end tell
        end tell
    end iTermSetRows
    
    --       
    on iTermActiveSession(num)
        tell application "iTerm"
            tell current tab of current window
                select item num in sessions
            end tell
        end tell
    end iTermActiveSession
    

    사용법 예시:
            delay 1
            newWindow("iTerm", "  ", "New Window (Default Profile)")
    
            delay 1
            iTermCmdCurrentTab({
         "cd /Users/AsinW/svnBox/jiyingshou/web/pc"})
            iTermCmdInPane({
         "cd /Users/AsinW/svnBox/jiyingshou/web/pc", "npm run dev"})
            iTermSetRows(3)
            iTermActiveSession(0)
    
            delay 1
            iTermCmdNewTab({
         "cd /Users/AsinW/svnBox/jiyingshou/web/mobile4"})
            iTermCmdInPane({
         "cd /Users/AsinW/svnBox/jiyingshou/web/mobile4", "npm run dev"})
            iTermSetRows(3)
            iTermActiveSession(0)
    
            delay 1
            moveBounds("iTerm", -1187, 136, -1, 935)
    

    설명:
  • 상기 예 시 는 ITerm 을 열 고 두 개의 탭 네 개의 패 널 에서 해당 하 는 명령 을 수행 하 는 절 차 를 설명 했다.
  • 명령 이 끝 난 후에 이 창 은 왼쪽 모니터 로 옮 겨 졌 습 니 다.

  • 뒷말
    공 구 는 죽 고 사람 은 산다.
    많은 사람들 이 잘 알 고 있 는 도구 나 방법 이 있 습 니 다. 단지 들 어 본 적 이 있 을 뿐 사용 해 본 적 이 없습니다. 왜냐하면 당신 은 자신 이 사용 하 는 장면 을 상상 하지 못 했 기 때 문 입 니 다. 돈 오 가 깨 달 을 때 까지 기다 리 면 '오, 이렇게 그렇게 사용 할 수 있 습 니 다.'
    이 기록 을 참고 하거나 소장 하거나 지나 가도 록 하 겠 습 니 다.
    별 에서 온 블 로그: wanyaxing. com/blog/201808...

    좋은 웹페이지 즐겨찾기