настройка клавиатуры Apple
настройка клавиатуры Apple
Здравствуйте
Пользуюсь алюминиевой полной клавиатурой Apple и в ROSA Fresh R7 столкнулся со следующей проблемой функциональные клавиши стали работать как на MAC, то есть кнопки F1-F12 работают при нажатии кнопки "fn", без нее это управление громкости (остальные функции не реализованы). Есть ли возможность инвертировать кнопку "fn", что бы при отпущенной работали F1-F12, а при нажатой соответственно управление громкостью? Ну и в дополнение есть ли возможность присвоить какие либо действия незадействованным F13-F19?
Пользуюсь алюминиевой полной клавиатурой Apple и в ROSA Fresh R7 столкнулся со следующей проблемой функциональные клавиши стали работать как на MAC, то есть кнопки F1-F12 работают при нажатии кнопки "fn", без нее это управление громкости (остальные функции не реализованы). Есть ли возможность инвертировать кнопку "fn", что бы при отпущенной работали F1-F12, а при нажатой соответственно управление громкостью? Ну и в дополнение есть ли возможность присвоить какие либо действия незадействованным F13-F19?
Дорогу осилит идущий!
Re: настройка клавиатуры Apple
если есть кнопка fn lock, то нажми ее
- DELTA-79
- Сообщения: 1916
- Зарегистрирован: 14 янв 2012, 14:07
- Откуда: Георгиевск Ставропольский кр.
- Контактная информация:
Re: настройка клавиатуры Apple
На сколько я знаю, любой программе можно присвоить "горячие клавиши" так что дерзайтеals.pav писал(а): Ну и в дополнение есть ли возможность присвоить какие либо действия незадействованным F13-F19?
Intel(R) Core(TM) i3-3220 CPU @ 3.30GHz / 4 Gb RAM / NVIDIA GeForce GT 240 / Rosa 2012.1 R5 х86_64
Re: настройка клавиатуры Apple
к сожалению такой кнопки нет.tverskoy писал(а):если есть кнопка fn lock, то нажми ее
попробовал запустить утилиту xev - показывает код нажатия кнопок. Получилось, что нажатие кнопки fn ни как не регистрируется, нажатие кнопок F1-F12 без нажатие fn выдает код не соответствующий данным клавишам, при нажатии fn код выдается верный. Отсюда вопрос, где можно переназначить (в каком конфиге) коды кнопок и привязать дополнительные?
Нашел такое решение для Ubuntu https://help.ubuntu.com/community/AppleKeyboard
а для ROSA есть что то подобное?
Дорогу осилит идущий!
Re: настройка клавиатуры Apple
Код: Выделить всё
man xmodmap
urpmq -ia xbindkeys
Talk is cheap. Show me the code.
Linus Torvalds
Linus Torvalds
Re: настройка клавиатуры Apple
Нашел такое решение:
Можете подсказать как это в ROSE реализовать, утилиты keyfuzz в репозитарии не нашел.tverskoy писал(а): Хочу поделиться малоизвестным но более правильным способом ремаппинга клавиш в Linux с помощью утилиты keyfuzz (на примере полноразмерной эппловской USB клавиатуры). При этом и Insert будет на месте Fn, и Win/Alt где надо, и функциональные клавиши будут включены. И всё это работает независимо от иксов (т.е. и в консоли тоже).
В udev добавляем такое правило:
ACTION=="add", SUBSYSTEM=="input", ATTRS{idVendor}=="05ac", ATTRS{idProduct}=="0221", ATTRS{bcdD
evice}=="0069", RUN+="/etc/udev/applekb"
А затем создаём запускаемый шелл-скрипт /etc/udev/applekb следующего содержания:
#!/bin/bash
APPLEUSBKBD="/dev/input/by-id/usb-Apple__Inc_Apple_Keyboard-event-kbd"
if [ -e "${APPLEUSBKBD}" -a "$ID_USB_INTERFACE_NUM" = "00" ] ; then
# Fn -> Insert
echo "0xff0003 110" | keyfuzz -s -d "${APPLEUSBKBD}"
# LeftAlt -> LeftMeta
echo "0x0700e2 125" | keyfuzz -s -d "${APPLEUSBKBD}"
# LeftMeta -> LeftAlt
echo "0x0700e3 56" | keyfuzz -s -d "${APPLEUSBKBD}"
# RightMeta -> RightAlt
echo "0x0700e7 100" | keyfuzz -s -d "${APPLEUSBKBD}"
# RightAlt -> Compose
echo "0x0700e6 127" | keyfuzz -s -d "${APPLEUSBKBD}"
# F13 -> PrintScreen
echo "0x070068 99" | keyfuzz -s -d "${APPLEUSBKBD}"
# F15 -> Pause
echo "0x07006a 119" | keyfuzz -s -d "${APPLEUSBKBD}"
# for kernel 2.6.27 and greater, swap 86 and 41:
# Grave -> Grave
echo "0x070035 86" | keyfuzz -s -d "${APPLEUSBKBD}"
# 102nd -> 102nd
echo "0x070064 41" | keyfuzz -s -d "${APPLEUSBKBD}"
fi
Пользуюсь уже года два, сначала запускал через скрипт в /etc/init.d, потом надоело терять настройки при перетыкании клавиатуры и навесил всё на udev. При поиске кодов кажется пользовался утилитой evtest.
Дорогу осилит идущий!
Re: настройка клавиатуры Apple
Код: Выделить всё
urpmq -ia keyfuzz
Talk is cheap. Show me the code.
Linus Torvalds
Linus Torvalds
Re: настройка клавиатуры Apple
В репозитарии есть, но нужно переключить левую верхнюю кнопку (чуть ниже меню) из положения "Пакеты с графическим интерфейсом" в положение "Все". Ну, или urpmi из терминала, как уже было сказано.als.pav писал(а):Можете подсказать как это в ROSE реализовать, утилиты keyfuzz в репозитарии не нашел.
Re: настройка клавиатуры Apple
Всем спасибо за помощь, как установить через urpmi разобрался, осталось понять что лучше будет xmodmap или keyfuzz. Я так понял они делают одно и тоже.
Дорогу осилит идущий!
Re: настройка клавиатуры Apple
Команды видаals.pav писал(а):Нашел такое решение для Ubuntu https://help.ubuntu.com/community/AppleKeyboard
а для ROSA есть что то подобное?
Код: Выделить всё
$ echo 2 | sudo tee /sys/module/hid_apple/parameters/fnmode
В Роса драйвер имеется, и должна быть возможность использовать следующие параметры:
fnmode — режим клавиши fn (Mode of fn key on Apple keyboards)
0 = отключено
1 = F1-12 c fn (режим по умолчанию)
2 = F1-12 без fn (как Вы хотите, "инверсия")
iso_layout — не вникал, что-то связаное с национальными раскладками ("Enable/Disable hardcoded ISO-layout of the keyboard.")
0 = откл.
1 = вкл. (по умолчанию)
swap_opt_cmd — поменять клавиши Option ("Alt") и Command ("Flag")
0 — как есть, Mac расположение
1 — как в Windows
В этом списке цифра — это то, что стоит в примере после echo, а имя параметра — крайнее справа слово (после parameters).
Текущее значение можно посмотреть так:
Код: Выделить всё
cat /sys/module/hid_apple/parameters/fnmode
Для генерации нового initrd вместо update-initramfs используется dracut
Re: настройка клавиатуры Apple
trs спасибо, то что и хотел достичь, заработало, точнее кнопка fn отключилась и F1-F12 пришли в норму, но инверсии не произошло. Не разобрался как работать с dracut. Я Linux можно сказать только начал осваивать и с английским очень слабо. Если не затруднит подскажи как правильно выполнить в место "sudo update-initramfs -u -k all" (файл создан echo options hid_apple fnmode=2 | sudo tee -a /etc/modprobe.d/hid_apple.conf).
В процессе настройки дополнительных клавиш попробовал назначить их через xbindkeys, но к сожалению глобально они не работают, как с этим бороться знает кто-нибудь?
В процессе настройки дополнительных клавиш попробовал назначить их через xbindkeys, но к сожалению глобально они не работают, как с этим бороться знает кто-нибудь?
Дорогу осилит идущий!
Re: настройка клавиатуры Apple
Под "инверсией" я понял, что при нажатой fn клавиши F1-12 будут действовать как мультимедийные.
По поводу:
sudo — повышает права последующей команде до root.
опции:
-u — перезаписывает имеющийся initrd
-k all — делает это для всех ядер.
initrd — это файл с необходимыми для начальной загрузки драйверами.
Если он повреждён, ядро (vmlinuz) наиболее вероятно не будет работать.
Потому правильно, на мой взгляд, предварительно сохранить его резервную копию, например так:
Выполняем в консоли su (перейти в режим root), запускаем файловый менеджер mc, переходим в каталог boot и там видим файлы initrd- с номерами версий в имени.
Нажимаем Ctrl+o (скрывает панели mc и показывает консоль) и выполняем uname -a что бы узнать текущую версию ядра.
Включаем панели (Ctrl+o) и на соответствующем initrd- нажимаем F6 (переименовать) и задаём новое имя, например *.1 —
Теперь, если что-то пойдёт не так, можно при загрузке в меню GRUB нажать e, найти строку с initrd и дописать .1 к имени, для загрузки сохранённой версии.
После этого просто пишем в консоли:
Если не переименовывать файл, а скопировать (F5 в примере выше) то:
dracut сообщит, что не будет перезаписывать существующий файл без указания ключа --force
В общем, можно было бы просто выполнить:
Проверить, что файл включён в initrd можно так:
С англ. языком — можно установить переводчик, их тут несколько должно быть, как и словарей.
Доп. клавиши — поищите в настройках KDE, у меня пока под рукой его нет, что бы картинку показать.
По поводу:
Код: Выделить всё
sudo update-initramfs -u -k all
опции:
-u — перезаписывает имеющийся initrd
-k all — делает это для всех ядер.
initrd — это файл с необходимыми для начальной загрузки драйверами.
Если он повреждён, ядро (vmlinuz) наиболее вероятно не будет работать.
Потому правильно, на мой взгляд, предварительно сохранить его резервную копию, например так:
Выполняем в консоли su (перейти в режим root), запускаем файловый менеджер mc, переходим в каталог boot и там видим файлы initrd- с номерами версий в имени.
Нажимаем Ctrl+o (скрывает панели mc и показывает консоль) и выполняем uname -a что бы узнать текущую версию ядра.
Включаем панели (Ctrl+o) и на соответствующем initrd- нажимаем F6 (переименовать) и задаём новое имя, например *.1 —
Теперь, если что-то пойдёт не так, можно при загрузке в меню GRUB нажать e, найти строку с initrd и дописать .1 к имени, для загрузки сохранённой версии.
После этого просто пишем в консоли:
Код: Выделить всё
# dracut
Код: Выделить всё
Will not override existing initramfs (/boot/initrd-4.4.7-nrj-laptop-1rosa-x86_64.img) without --force
В общем, можно было бы просто выполнить:
Код: Выделить всё
$ sudo dracut -f
Код: Выделить всё
lsinitrd | grep hid_apple
Доп. клавиши — поищите в настройках KDE, у меня пока под рукой его нет, что бы картинку показать.
Re: настройка клавиатуры Apple
trs - спасибо. все таки не совсем безграмотный =)
собственно не знал этого - initrd — это файл с необходимыми для начальной загрузки драйверами.
про dracut нашел только относящееся к Федоре, насколько ROSA совместима с данным дистрибутивом не нашел, знаю что и то и другое клоны RedHat. Проверить, что файл включён командой "lsinitrd | grep hid_apple" не получилось. Пишет bash: lsinitrd: команда не найдена. Если не затруднит, подскажи, что можно почитать, про подобные манипуляции в системе или хотя бы для какого дистрибутива (более распространенного чем ROSA можно искать такую информацию, так как по ROSA данных удручающе мало).
собственно не знал этого - initrd — это файл с необходимыми для начальной загрузки драйверами.
про dracut нашел только относящееся к Федоре, насколько ROSA совместима с данным дистрибутивом не нашел, знаю что и то и другое клоны RedHat. Проверить, что файл включён командой "lsinitrd | grep hid_apple" не получилось. Пишет bash: lsinitrd: команда не найдена. Если не затруднит, подскажи, что можно почитать, про подобные манипуляции в системе или хотя бы для какого дистрибутива (более распространенного чем ROSA можно искать такую информацию, так как по ROSA данных удручающе мало).
Дорогу осилит идущий!
Re: настройка клавиатуры Apple
lsinitrd в РОСА, как в системе с dracut — это ссылка на lsinitrd-dracut. Не могу сказать, куда она далась.
Вообще, я использую автодополнение по tab: если знать, что ls суть сокращение от list ¹, таким образом можно получить перечень команд, выводящих какие-либо спискидля каждой можно попробовать ключик --help или man. Если команда от "другой" системы, то мануал к ней можно найти в сети.
Про dracut я узнал здесь. В Fedora, как и везде, где эта утилита есть, она должна быть та же самая (может версия чуть различается), различия возможны в файлах конфигурации: тут они хранятся в каталоге /etc/dracut.conf.d а где-то может быть просто /etc/dracut.conf
Ну а информация если и частично излишняя, то кому-то может оказаться полезной.
———
¹ Если к тому же принимать во внимание, что структуры данных представлены в виде деревьев, то окажется что и слово list не требует перевода, достаточно транслитерации.
Вообще, я использую автодополнение по tab: если знать, что ls суть сокращение от list ¹, таким образом можно получить перечень команд, выводящих какие-либо списки
Код: Выделить всё
$ ls
ls lsb_release lshal lslocks lspci lspnp
lsattr lscpu lshw lsmod lspcidrake lsusb
lsbinstall lsd lsinitrd lsnetdrake lspcmcia lsusb.py
lsblk lsdvb lsinitrd-dracut lsof lspgpot
Про dracut я узнал здесь. В Fedora, как и везде, где эта утилита есть, она должна быть та же самая (может версия чуть различается), различия возможны в файлах конфигурации: тут они хранятся в каталоге /etc/dracut.conf.d а где-то может быть просто /etc/dracut.conf
Ну а информация если и частично излишняя, то кому-то может оказаться полезной.
———
¹ Если к тому же принимать во внимание, что структуры данных представлены в виде деревьев, то окажется что и слово list не требует перевода, достаточно транслитерации.
Re: настройка клавиатуры Apple
Привет. Получилось реализовать?als.pav писал(а):спасибо было полезно
Re: настройка клавиатуры Apple
Я новичок в Линукс, но активно осваиваю. По приведённым выше постам сделал так, чтобы клавиши F1...F12 были мультимедийными тока при нажатии Fn, вроде заработало так как мне надо. Ещё попробую переназначить букву ё... Поступил следующим образом:
1. Зашёл в Установка и удаление программ, опцию "Пакеты с графическим интерфейсом" переключил на "Все" и в поиске вбил keyfuzz. Установил из репозитария.
2. Выполнил команду:
Проверил текущее значение:
3. Чтобы закрепить данное значение навсегда выполнил инструкцию:
5. Проверил включён ли файл в initrd:
6. Перезагрузился.
-- ВСЁ РАБОТАЕТ--
Теперь вопрос - при обновлении системы это сохранится всё? или после обновления всё делать заново?
1. Зашёл в Установка и удаление программ, опцию "Пакеты с графическим интерфейсом" переключил на "Все" и в поиске вбил keyfuzz. Установил из репозитария.
2. Выполнил команду:
Код: Выделить всё
echo 2 | sudo tee /sys/module/hid_apple/parameters/fnmode
Код: Выделить всё
cat /sys/module/hid_apple/parameters/fnmode
4. Выполнил команду:initrd — это файл с необходимыми для начальной загрузки драйверами.
Если он повреждён, ядро (vmlinuz) наиболее вероятно не будет работать.
Потому правильно, на мой взгляд, предварительно сохранить его резервную копию, например так:
Выполняем в консоли su (перейти в режим root), запускаем файловый менеджер mc, переходим в каталог boot и там видим файлы initrd- с номерами версий в имени.
Нажимаем Ctrl+o (скрывает панели mc и показывает консоль) и выполняем uname -a что бы узнать текущую версию ядра.
Включаем панели (Ctrl+o) и на соответствующем initrd- нажимаем F5 (скопировать), файл копируется в каталог /home/den и добавил в конце имени _1, затем снова F5, чтобы скопировать обратно в каталог boot. Так делал поскольку при нажатии F6 файл не переименовывался, а предлагалось его переместить.
Теперь, если что-то пойдёт не так, можно при загрузке в меню GRUB нажать e, найти строку с initrd и дописать _1 к имени, для загрузки сохранённой версии.
Код: Выделить всё
sudo dracut -f
Код: Выделить всё
lsinitrd | grep hid_apple
-- ВСЁ РАБОТАЕТ--
Теперь вопрос - при обновлении системы это сохранится всё? или после обновления всё делать заново?
Re: настройка клавиатуры Apple
Поскольку по-умолчанию на клавиатуре Apple буква ё уехала вниз (рядом с клавишей Shift Left), то вернуть её обязательно нужно на место.
Сделал это переключением параметра iso_layout.
1. Выполнил команду исправления клавиш в национальных раскладках 0 = откл., 1 = вкл. по умолчанию, мы установили 0.
2. Выполнил команду (резервную копию файла мы делали ранее):
3. Перезагрузился.
Всё работает и даже не понадобилась утилита keyfuzz. Хотя с её помощью позже доделаю другие клавиши... Благодарю товарища trs!
Сделал это переключением параметра iso_layout.
1. Выполнил команду исправления клавиш в национальных раскладках 0 = откл., 1 = вкл. по умолчанию, мы установили 0.
Код: Выделить всё
$ echo options hid_apple iso_layout=0 | sudo tee -a /etc/modprobe.d/hid_apple.conf
Код: Выделить всё
sudo dracut -f
Всё работает и даже не понадобилась утилита keyfuzz. Хотя с её помощью позже доделаю другие клавиши... Благодарю товарища trs!
Re: настройка клавиатуры Apple
При обновлении ядра будет выполнена автоматическая генерация соответствующего ему initrd таким же запуском dracut, т.е. должно сохраниться.denkarter писал(а):при обновлении системы это сохранится всё? или после обновления всё делать заново?
Если же что-то пойдёт не так, что прежняя версия ядра не удаляется, её можно выбрать в начальном меню загрузчика GRUB.