MacGamingFixes
macgamingfixes / функциональные клавиши

функциональные клавиши

часть macgamingfixes. та же статья есть в приложении, рядом с переключателем.

игры используют f1–f12. macbook вместо них отправляет клавиши яркости и медиа, пока не зажат fn. этот переключатель меняет поведение верхнего ряда мгновенно — вручную или при запуске игры.

что делает

тот же переключатель, что в «системные настройки → клавиатура → сочетания клавиш → функциональные клавиши», только без открытия настроек и без выхода из системы.

как работает

настройка хранится в глобальном домене defaults. сама запись ничего не меняет, пока система не перечитает настройки, а это по запросу делает помощник внутри macos.

fkeys.sh
defaults write -g com.apple.keyboard.fnState -bool true
/System/Library/PrivateFrameworks/SystemAdministration.framework/Resources/activateSettings -u

драйвер клавиатуры реагирует сразу: его свойство HIDFKeyMode переключается между 0 и 1.

ioreg -l -w0 | grep -o '"HIDFKeyMode"=[0-9]' | sort -u

триггеры

приложения: ряд включается, пока запущен хотя бы один выбранный процесс, и выключается, когда завершается последний. список процессов читается каждые 2 с. игры под wine видны под именем своего .exe, оно берётся из первого аргумента процесса.

игровой режим: ряд следует за игровым режимом macos. публичного api для него нет. система публикует состояние как darwin-уведомление com.apple.system.game_mode_status_changed, и приложение его слушает.

триггер выключает только то, что включил сам. если ряд уже был включён или вы переключили его вручную во время игры, он останется таким, каким вы его оставили.

ограничения