모하비의 다크 모드에서 PyCharm 테마를 Darcula로 전환


3

macOS Mojave에서 다크 모드가 켜져있을 때 타사 앱이 다크 테마로 변경되도록 트리거하는 방법이 있습니까?

특히 다크 모드를 켤 때 PyCharm 스위치 테마를 Darcula로 자동 전환 할 수 있습니까?

LightsOff 는 이론적으로 Light / Dark 모드를 선택적으로 선택하기위한 모든 앱 목록을 보여 주지만 PyCharm에는 영향을 미치지 않습니다. 이는 LightsOff가 테마를 제어 할 수있는 것처럼 PyCharm이 LightsOff 홈페이지에 표시 되기 때문에 특히 유감 입니다. Chrome, MATLAB 및 SourceTree도 효과가없는 어두운 테마의 타사 앱입니다. LightsOff로 어두운 테마로 전환 한 유일한 앱은 것입니다.


PyCharm 및 기타 JetBrains IDE는 전적으로 Java로 만들어 지므로 Jetbrains에서 지원하지 않는 시스템 설정은 시스템 설정이 작동하지 않을 것입니다. PyCharm 외에도 LightsOff가 작동하지 않는 앱은 무엇입니까? 스크린 샷을 올릴 수 있습니까?
abc

자세한 내용을 추가했습니다. Java에 대해 언급하면 ​​MATLAB도 설명합니다. 나는 나머지에 대해 모른다. 답변에 답변이 없는 방식을 확장 할 수 있으면 수락 할 수 있습니다.
buzjwa

답변:


2

PyCharm 및 기타 JetBrains IDE는 Java로 작성되므로 기본 macOS Dark 모드를 사용할 수 없습니다. 개발자가 특별히 지원을 추가하지 않는 한 적용하는 모든 시스템 설정은 Java 응용 프로그램에 영향을 미치지 않을 가능성이 높습니다. 현재 macOS 다크 모드를 사용할 수 없습니다.)

많은 기본 앱은 개발자가 아무것도하지 않아도 다크 모드를 지원하지만 Chrome과 같은 사용자 정의 UI보기 및 컨트롤을 사용하는 일부 앱은 수동으로 지원을 추가해야합니다. Chrome에 대한 어두운 모드 지원이 진행 중입니다 ( 여기 참조 ). SourceTree는 또한 사용자 정의 컨트롤을 사용하므로 아직 다크 모드를 지원하지 않습니다.

편집 : Chrome은 이제 어두운 모드를 완전히 지원합니다.


2

bash와 AppleScript를 사용하여 JetBrains 편집기에서 테마를 변경하는 (해킹) 방법을 생각해 냈습니다. PyCharm의 예는 다음과 같습니다.

#!/bin/bash
# Get the status of macOS dark mode and store as variable
isDarkModeOn=$(
    osascript <<EOT
    tell application id "com.apple.systemevents"
        tell appearance preferences
            set isDarkModeOn to dark mode
        end tell
    end tell
EOT
)

# Switch macOS dark mode on and off
# Equivalent to setting dark mode in System Preferences
osascript -e '
    tell application id "com.apple.systemevents"
        tell appearance preferences
            if dark mode is true then
                set dark mode to false
            else
                set dark mode to true
            end if
        end tell
    end tell
    '

# Change PyCharm theme
# Assumes default key mappings
# Switch to dark theme if dark mode was was off
if [ "$isDarkModeOn" = false ]; then
    osascript -e '
        if application "PyCharm" is running then
            -- switch focus to PyCharm
            tell application "PyCharm" to activate
            tell application "System Events"
                -- open Quick Switch Theme menu
                keystroke "`" using {control down}
                -- Select Look and Feel
                keystroke "5"
                delay 0.4
                -- Select Darcula
                keystroke "2"
            end tell
        end if
        '
# Switch to light theme if dark mode was on
else
    osascript -e '
        if application "PyCharm" is running then
          tell application "PyCharm" to activate
            tell application "System Events"
                keystroke "`" using {control down}
                keystroke "5"
                delay 0.4
                keystroke "1"
            end tell
        end if
        '
fi

실제로 큰 스크립트의 일부로 사용하지만 위의 코드는 PyCharm (또는 다른 JetBrains IDE, 응용 프로그램 이름 바꾸기)에서만 제대로 작동합니다. 이것은 물론 해키입니다. 문제가 발생하면 delay 0.4위 코드에서 와 같이 키 입력 사이의 지연을 늘리거나 소개하는 것이 좋습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.