Есть ли способ прошить экран из командной строки? Я ищу тот же эффект, что и доступность для «мигания экрана при появлении звука предупреждения», но я не хочу его для каждого предупреждения.
Насколько мне известно, вы не можете воспроизвести это предупреждение, не включив эту опцию. Если вы включите эту опцию, вы можете вызвать вспышку из терминала, используя:
osascript -e "beep"
Однако, если вы не хотите включать эту опцию, вы можете использовать инвертирование цветов. Двойное использование параметра «Специальные возможности инвертирования цветов» приводит к миганию экрана, поэтому двойное нажатие сочетания клавиш ⌃⌥⌘8 вызовет вспышку:
#!/usr/bin/osascript
tell application "System Events" to repeat 2 times
key code 28 using {command down, control down, option down}
delay 0
end repeat
Он не мигает на весь экран (если только ваш терминал не настроен на полноэкранный режим), но если вы перейдете Preferences > Settings > Advanced
и выберите «Visual Bell», вы можете ввести:
echo ^G
(Нажатия клавиш для получения правильных символов: echo
control+ v control+ g, потому что управляющий символ должен быть заключен в кавычки)
чтобы прошить окно терминала.
printf '\a'
.Это работает для меня в Sierra через applescript:
tell application "System Preferences"
run
reveal anchor "Hearing" of pane id "com.apple.preference.universalaccess"
end tell
tell application "System Events" to tell process "System Preferences" to click button "Test Screen Flash" of window "Accessibility" of application process "System Preferences" of application "System Events"
Для других я нашел одну альтернативу — использовать инструмент командной строки яркости , доступный через homebrew (инструкции по его установке можно найти на http://brew.sh ). Ссылка на обсуждение: https://apple.stackexchange.com/a/127258/23876
Первая строка устанавливает яркость, вторая показывает, как выглядит яркость в действии.
brew install brightness
brightness 0; sleep 1; brightness 1
Но работает только на основном дисплее. Если эта форма переключения яркости слишком медленная для вас, поэкспериментируйте с режимом сна 0,3 или даже со режимом сна 0,1.
Вы также можете получить текущую яркость, чтобы не сбрасываться на 1
:
setopt rematchpcre # needs zsh
if [[ "$(brightness -l)" =~ 'display 0: brightness (\S+)' ]]; then
print -r -- "$match[1]"
else
return 1
fi
Это шеллскрипт, который для этого вызывает applescript (код нужно объяснить подробнее)
#!/usr/bin/osascript
tell application "System Events" to repeat 2 times
key code 28 using {command down, control down, option down}
delay 0
end repeat
bmike
bmike