Боюсь, это вполне возможно. Обычно клавиша Fn - это не то, что передается операционной системе, а, скорее, реализовано в прошивке клавиатуры.
Возьмите мой ноутбук, например. Fn+F3 отключен. Если я (в Debian, но те же принципы применимы и к Windows) запускаю showkey --scancodes
, чтобы посмотреть, что делает моя клавиатура, я не получу вывод, если я нажму и отпущу Fn. Если я нажимаю и отпускаю F3, я получаю ^[OR0x3d 0xbd
, а если я делаю Fn+F3, я получаю совершенно отличную последовательность 0xe0 0x20 0xe0 0xa0
. Сравните это с ситуацией с ctl: press-and-release:
0x9c
0x1d
0x9d
И Ctl + F3 получает:
0x1d
^[[1;5R0x3d
0xbd 0x9d
Как видите, Fn не передается в ОС; это напрямую меняет то, что видит ОС.
Так мало, чтобы сменить микропрограмму микропрограммы клавиатуры, и, если у него уже нет клавиши Fn-Lock, как прокомментировал Майкл Франк, превращение Fn в переключатель не будет возможным.
Опция инверсии , однако, выполнима. В BIOS может быть опция для этого, но если нет, вам нужно выяснить, какие окна считают коды сканирования клавиш F1-F12 и результат Fn+[те]. Для каждого ключа вы должны поменять местами его скан-код fn+key с неизмененным. Это то, что можно сделать в Windows с помощью regedit, хотя, возможно, есть более простые инструменты, а в Linux - с соответствующими инструментами, возможно, с текстовым редактором и setxkbmap. К сожалению, я не могу помочь вам с этим.