Linux apple magic keyboard

How to pair Apple Magic Keyboard (A1314) on Ubuntu 18.04 and act as Numpad

I was browsing options for Bluetooth keyboards recently and was lucky to hit an Apple Magic Keyboard for as low as 25 Euro. Once I’ve received the packet I was impassioned to start using it. How disappointed I was when I found out that it pairs only as half-Numpad (in my case only 7–8–9–0 keys were active) and disconnects right after Caps Lock pressed. In the end I’ve found the solution which I would like to share here today.

Step 1. Make sure the keyboard is off. The best way to do that is to power cycle by removing batteries and plugging them back.

Step 2. Open terminal. Run the following commands:

Step 3. Power on your Magic Keyboard. Hold the power button and do not release until step 5.

Step 4. In bluetoothctl type:

It will start scanning for available Bluetooth devices. What we are looking for would be indicated like this:

Step 5. Copy MAC address for the keyboard from the previous step. Add keyboard as trusted device:

Once it trusted start pairing:

Step 5. Release the‘ Power on’ button on the keyboard and type PIN code on the keyboard. It won’t indicate anything in the terminal, but that’s fine. Commit PIN by hitting ‘Enter’. If pairing is successful output will be similar to that:

Step 6. Now your keyboard is paired, but most likely it will be acting as a Numpad. To resolve this issue run following in terminal:

Congratulations — now you have fully working Apple Keyboard!

Источник

Настройка Apple Slim keyboard под Linux

Недавно праздновал свой 23 день рождения и был одарен коллегами замечательнейшим девайсом. Apple Slim Aluminium Keyboard.
Да-да-да. Именно с большой буквы каждое слово.
По моему скромному мнению, лучшей клавиатуры для разработчика не найти. Особенно для такого любителя Linux как я.
Клавиатура удобная, ничего не скажешь, писать об этом больше не буду, и так уже везде понаписано. Однако не без проблем.
Мой любимый рабочий компьютер с Gentoo напрочь отказался работать с мультимедийными клавишами и прочими радостями современного мира. Немного погуглив я обнаружил что я не одинок и огромное количество народа тоже страдает от этого. Однако четкой и подробной инструкции на русском (да и на английском ) я так и не нашел. Специально для таких как я страдальцев и предназначен сей коротенький мануал.
Тут в комментариях просят картинку клавиатуры:

А вот тут можно про неё почитать.

Оговорюсь, что все последующие операции мы будем выполнять в режиме суперпользователя. А также, все предложенные кейкоды работают только для Slim клавиатуры. Для клавиатуры ноутбука придется повторить все самому.

1.Компилим ведро.

Первое что пришлось сделать мне как пользователю столь дружелюбного дистрибутива как Gentoo, это конечно перекомпилировать ядро.
Без этого X-сервер напрочь отказывается видеть недостающие клавиши.
Замечу, что пользователям Ubuntu этого делать не придётся так как для них разработчики уже всё что надо сделали.
Предполагаю что исходные тексты ядра у вас уже лежат /usr/src/linux
Идем туда и делаем make menuconfig
В открывшемся диалоге находим:
Device Drivers → HID Devices
И жмакаем галочку на «Enable support for Apple laptop/aluminium USB special keys».
Далее, как обычно следует make && make modules_install && make install
Если не скомпилилось — зовем соседа-линуксоида, гуглим форумы и.т.д в поисках солюшена, что бы узнать что не так и как эту проблему побороть.

2.Немного шаманства.

Замечу, что после того как ядро успешно установилось, всё практически заработает. Но, как это принято в мире Linux, не без подвоха.
Теперь, для того что бы нажать, к примеру, кнопку F1 надо предварительно удерживать до этого не работающую клавишу Fn. Что, поверьте, очень раздражает и навевает мысли о суициде.
Что бы поправить это безобразие, делаем такую штуку:
echo 2 > /sys/module/hid/parameters/pb_fnmode
Что бы данное изменение применялось каждый раз при загрузке системы, надо добавить эту команду в конец стартового скрипта.
В разных дистрибутивах он находится в разных местах.
Приведу пример для Gentoo:
/ etc/conf.d/local.start
и для Ubuntu:
/etc/rc.local

Читайте также:  Apple text font style

3. И это ещё не всё.

». А ещё на ней есть обратные апострофы. Нужная в общем-то кнопка.
Также не работают кнопки в верхнем ряду: Print Screen, Scrool Lock и Pause.
Не так часто я их использую, но всё же не по себе от того что они не работают.
Ну и самый пожалуй главный недочет — это то что нет кнопки Insert, зато есть F16-F19 которые как бы некуда девать.
Этими проблемами мы и займемся.

Для изменения раскладки клавиатуры мы будем использовать две стандартные X-утилиты: xev и xmodmap. Изменения будут производится уже не под суперпользователем, а под вашим системным пользователем, в вашем домашнем каталоге.

Запускаем xev и пробуем нажимать на клавиши.
После нажатия читаем что вываливается на экран. Я нажал на букву «ё» и увидел вот что:

KeyRelease event, serial 34, synthetic NO, window 0x3c00001,
root 0x1a6, subw 0x0, time 31989750, (533,667), root:(538,692),
state 0x10, keycode 94 (keysym 0x3c, less), same_screen YES,
XLookupString gives 1 bytes: (3c) «

О чём это нам говорит?
Была нажата клавиша с keycode 94. На неё назначен печатный символ « keycode 49 = grave asciitilde Cyrillic_io Cyrillic_IO
Заменяем так что бы получилось:
keycode 94 = grave asciitilde Cyrillic_io Cyrillic_IO

Для теста запускаем: xmodmap

/.Xmodmap
И пробуем по нажимать. Ура? Всё работает.

Тем же путем находим коды клавиш F13 — F15 и назначаем на них нужные действия.
Я назначил вот так:
keycode 191 = Print Sys_Req Print Sys_Req Print Sys_Req
keycode 192 = Scroll_Lock NoSymbol Scroll_Lock NoSymbol Scroll_Lock
keycode 193 = Pause Break Pause Break Pause Break

Ну а Insert повесим на F16:
keycode 194 = Insert NoSymbol Insert NoSymbol Insert

В итоге я получил такой файл .Xmodmap:

keycode 94 = grave asciitilde Cyrillic_io Cyrillic_IO
keycode 191 = Print Sys_Req Print Sys_Req Print Sys_Req
keycode 192 = Scroll_Lock NoSymbol Scroll_Lock NoSymbol Scroll_Lock
keycode 193 = Pause Break Pause Break Pause Break
keycode 194 = Insert NoSymbol Insert NoSymbol Insert

Замечу, что после того как этот файл появился в вашем домашнем каталоге, ничего больше делать не надо. Он сам автоматически применится после рестарта X-сервера.

4. Для маньяков

Некоторые, привыкшие к типичному для обычных клавиатур расположению клавиш: Ctrl | Win | Alt не могут привыкнуть к тому, что на эппловской клавиатуре это расположение изменено на: Ctrl | Alt | Cmd.
Сmd — это как бы то же самое что и Win. Для linux она выглядит как «Meta» или «Super».
Для этого, используя тот самый xmodmap мы придумали следующий ремапинг:

clear Mod4
clear Mod1
keycode 115=Alt_L
keycode 64=Super_L
add Mod4 = Super_L
add Mod1 = Alt_L

5. Для несогласных.

Конечно, предложенная схема удобна далеко не всем. Но руководствуясь этой инструкцией каждый сможет настроить свою клавиатуру так как он хочет.
Ну и конечно, та часть инструкции которая отвечает за ремапинг клавиш, может помочь и тем кто не является счастливым обладателем клавиатуры от Apple.
Например можно отлично настроить мультимедийные клавиши на клавиатурах на которых они присутствуют. 🙂 Или подпрвить не устраивающую вас раскладку.

Источник

Ubuntu Documentation

Content Cleanup Required
This article should be cleaned-up to follow the content standards in the Wiki Guide. More info.

Needs Updating
This article needs updating to include the latest versions of Ubuntu. More info.

Preface

Since Ubuntu 8.04 (Hardy Heron) the USB aluminum Apple Keyboard has not worked correctly. A change was added to the Ubuntu Linux kernel to make Apple MacBook keyboards gain additional functionality to their limited laptop style keyboard (Ubuntu bug #162083). Unfortunately this code change has some side effects for owners of the full size USB aluminum Apple Keyboard:

Function keys have media functions as default (as the printing on the keycaps indicates). To access the regular F-key functionality, the «fn» key must be pressed and held (except for F5 and F6, which are inverted in this respect). (Ubuntu bug #201711)

On international (non-US) keyboards, two keys are swapped with respect to the printing on the keycaps. (Ubuntu bug #214786)

Both issues may be straightened out with two configurable module parameters (http://bugzilla.kernel.org/show_bug.cgi?id=10818), as shown below.

To make the keyboard behave more like a standard PC keyboard (but against the orinal printing on the keycaps), additional steps are neceessary:

Map SysRQ, Scoll Lock, and Pause keys to F13-F15: This still requires a patch that adds a configurable option to the kernel module, or a «keyfuzz» workaround (#262408).

Читайте также:  Charging iphone with full battery

Swap the cmd and super keys: (hid_apple patch) or keyfuzz workaround.

A tar archive containing all workarounds can be found at (un-apple-keyboard)

If you would like to have a better integration, please help by enhancing the patches to implement proper module parameters, and submitting them to the upstream kernel developers. See also: Trouble With Apple Keyboard On Ubuntu

To find the the keycode of any key that you want to modify, simply run in a terminal

xev | sed -n ‘s/^.*keycode *\(7\+\).*$/keycode \1 = /p’

Then you can find the List of Keysyms Recognised by Xmodmap:

Default Behavior

This section describe the default behavior of every Apple keyboard.

Apple slim aluminum keyboard (0220)

    Characters that are not printed on the keycaps (

,<>,[]. ) can still be generated as on a standard PC keyboard.
Even if the @ is printed on another keycap as on the standard PC layout, that key will only behave like the standard PC layout key and not generate the @. Use your localized standard PC layout key (combination) to generate the @.

‘fn’+’F-Key’ -> triggers the regular F-Key

‘Clear’ behaves like ‘NumLock’ (Numlock may also be switched by pressing fn-F6 twice)

(See #262408 as there is patch submit to map F13, F14 and F15 to the otherwise missing PrintScreen, ScrollLock and Pause keys.)

Corrections

Change Function Key behavior

This section of the document describe how to change the behavior of ‘fn’ key to better match what user expect. (See #201711, #162083)

Here a description of each behavior :

  • 0 = disabled : Disable the ‘fn’ key. Pressing ‘fn’+’F8’ will behave like you only press ‘F8’
  • 1 = fkeyslast : Function keys are used as last key. Pressing ‘F8’ key will act as a special key. Pressing ‘fn’+’F8’ will behave like a F8.
  • 2 = fkeysfirst : Function keys are used as first key. Pressing ‘F8’ key will behave like a F8. Pressing ‘fn’+’F8’ will act as special key (play/pause).

Ubuntu 9.04 to 12.04 LTS (Precise Pangolin)

Temporarily

The following command will change the behaviour of ‘fn’ key with immediate effect, but restarting will reset the configuration:

(The meaning of fnmode values is as described in the preceding section.)

Permanently

Methods described in this section will change the behavior permanently. There are several ways to proceed with this modification. Each sub-section describes one way to permanently change the configuration.

With .conf file (Recommended)

1. Run the following command to append the configuration line to the file /etc/modprobe.d/hid_apple.conf creating it if necessary:

2. Trigger copying the configuration into the initramfs bootfile.

3. Optionally, reboot

With sysfs.conf

1. Edit the /etc/sysfs.conf file, creating it if necessary.

2. Add this lines to the end of the file.

With rc.local

This methods simply automatically applies during startup the technique used to change fnmode temporarily.

1. Edit the /etc/rc.local file.

2. Add this line near the end of the file, before the «exit» line:

Ubuntu 8.10 (Intrepid Ibex)

Temporarily

With immediate effect, try

Permanently

1. Edit the file /etc/modprobe.d/options, e.g.:

3. Save the file and execute the following command:

Alternatively, you can modify /etc/rc.local to similar effect.

* Edit the /etc/rc.local file:

* Add this line to the end of the file:

Alternatively, you can modify /etc/sysfs.conf to similar effect.

* Edit the /etc/sysfs.conf file:

* Add this lines to the end of the file:

Correcting swapped keys and wrong keymaps for international (non-US) keyboards

This section describe how to fix the issue related to the swapped key when using international keyboard. (See #214786 and (See 1043336))

Ubuntu 11.10 up to recent

Temporarily

The following command will have immediate effect, but rebooting will reset the configuration:

(The meaning of fnmode values is as described in the preceding section.)

Permanently

1. Append the configuration line to the file /etc/modprobe.d/hid_apple.conf creating it if necessary:

2. Trigger copying the configuration into the initramfs bootfile.

3. Optionally, reboot

Ubuntu 11.4 (Natty Narwhal)

* Create a new file ./.Xmodmap

* Paste these two lines into the file

* For spanish keyboards use these lines instead:

* For italian keyboards:

* For Hungarian keyboards: This fixes the layout if 0 and í keys are swapped:

* For Swiss keyboards: If you use a Swiss keyboard with a numpad there is one wrong keymap more. In Switzerland keyboards have a period (.) instead of a comma (,) on numpad next to zero (0). Also there is something weird with the default mapping of the upper left key below «ESC». This bug was recently reported at: Bug #1043336

To apply the commands you can log out and log in or either run:

Читайте также:  Мой айфон не ловит вай фай что делать

Ubuntu 9.10 (Karmic Koala)

* Edit your ./.xsession file:

* Insert this line as the second line of the file (after the first line which is probably #!/bin/sh):

* For spanish keyboards:

You will have to relogin or reboot. The <> and ^° key should now be in the correct position.

Ubuntu 9.04 (Jaunty Jackalope)

Need to confirm if the problem persist as there is modification done in the kernel to fix the problem.

Ubuntu 8.10 (Intrepid Ibex)

1. Open the ‘System->Preferences->Keyboard’ dialog 2. Choose the ‘Layouts’ tab 3. Press ‘Layout Options. ‘ 4. Navigate to ‘Miscellaneous compatibility options’ 5. Enable the option: Swap keycodes of two keys when Mac keyboards are misdetected by kernel.

Mapping keys (Insert, Alt, Cmd, etc.)

This section describes some (deprciateed) xmodmap workarounds to change the mapping of key to better match PC’s keyboard. e.g.: Swap the Alt key and Command key. The idea is to make the keyboard work more like a normal PC keyboard.

Ubuntu 13.10 (maybe also earlier)

Swap Cmd and Alt keys

Temporarily

The following command will swap cmd and Alt keys with immediate effect, but restarting will reset the configuration:

Permanently

Methods described in this section will change the behavior permanently. There are several ways to proceed with this modification. Each sub-section describes one way to permanently change the configuration.

With .conf file (Recommended)

1. Run the following command to append the configuration line to the file /etc/modprobe.d/hid_apple.conf creating it if necessary:

2. Trigger copying the configuration into the initramfs bootfile.

3. Optionally, reboot

With sysfs.conf

1. Edit the /etc/sysfs.conf file, creating it if necessary.

2. Add this lines to the end of the file.

With rc.local

This methods simply automatically applies during startup the technique used to change swap_opt_cmd temporarily.

1. Edit the /etc/rc.local file.

2. Add this line near the end of the file, before the «exit» line:

Swap Fn and Left Ctrl key

There is a patch adding the functionality to swap the fn and left ctrl key to the hid-apple module, but not yet included in the mainline kernel. The repository on Github also includes a install script that can build and install the patched kernel module as well as do necessary configuration works for you. Apple Keyboard on ArchWiki also provides a brief steps on how to configure it.

Adding a Second Control key

The command/apple keys on macs are recognized as «Super» or «Windows» shift by default. To make the right command key a ctrl key, save this in

Then run the command «xmodmap

Ubuntu 8.10 (Intrepid Ibex) through 12.04 (Precise Pangolin)

Save the following in a file .Xmodmap in your home directory:

Load the configuration by executing a command similar to the following.

Note : Gnome will ask you if you want to load this configuration the next time you log in. Sometimes, if you reconfigure many times the same keys, a reboot is required in order to make the configuration work as intended.

Ubuntu 8.04 (Hardy Heron)

This section describe how to change the mapping for Ubuntu 8.04 (Hardy Heron) with kernel >= 2.6.27.

1. Edit or create

/.Xmodmap file with a content similar to the following.

2. Load the configuration by executing a command similar to the following.

Note : The configuration should be load on next logon.

Belgian Macintosh Keyboard Layout

Disabling non-breaking space

If you work a lot with terminals and for example type «while true; do. » you could easily press SHIFT+Space and you have a non-breaking space which does not work in a terminal. To disable this behaviour you can specify the keycode in

/.Xmodmap like following:

Postscript

These issues may also apply for the Bluetooth aluminum Apple Wireless Keyboard.

Numlock on Apple Wireless Keyboard

If the Apple Wirelesss Keyboard stops working after log-in where most keys do not work and some keys on the right side produce numbers, it is because numlock is enabled by default. Numlock can be switched off by pressing fn-F6 twice. The keyboard then works normally again.

To disable numlock by default, go to System -> Preferences -> Keyboard -> Layout -> Layout Options -> Miscellaneous compatibility options -> turn on «Default numeric keypad keys»

This setting takes effect after logging in and does not affect the graphical login screen or local consoles.

Xubuntu 18.04

numlockx is ‘ON’ by default. Edit the defaults file to fix:

AppleKeyboard (последним исправлял пользователь ckrzen 2018-08-07 13:52:55)

The material on this wiki is available under a free license, see Copyright / License for details
You can contribute to this wiki, see Wiki Guide for details

Источник

Оцените статью