Este post vai ser escrito em português, visto que a audiência vai ser precisamente os utilizadores portugueses.
Num post da semana passada, escrito em inglês, dei conta das minhas dificuldades para configurar um teclado para PC para uso com um mac mini, correndo o Mac Os Ventura, e propus o uso do software HammerSpoon para resolver a situação. O problema é que o software exige quatro linhas de código para configurar uma tecla de cada vez, de forma que não é nada prática. Se bem que os casos concretos das teclas que vamos precisar de configurar correctamente não são muitos, a manutenção de código para uma tarefa que parece simples afugenta os utilizadores não versados em programação.
À procura de alternativas ao Hammerspoon, deparei-me com o Karabiner Elements, o qual através de uma interface de configuração simples, permite fazer a reconfiguração de várias teclas, como as teclas de função (F1-F12) e o óbvio remapeamento da tecla Command (maçã) para Controle. A aplicação ainda dispõe de uma ferramenta (Event Viewer) que permite testar as novas configurações. Para casos simples (mapear a tecla X para ter o efeito da tecla Y) o processo é bastante simples. O problema é quando quisemos usar combinações das teclas de estado (Shift, Alt(ou Option) ) com outras teclas para conseguir um efeito desejado (por exemplo, a tecla de multimédia Play, só disponível em certos teclados), aí a conversa é outra. As configurações complexas exigem a edição directa de um ficheiro em JSON para poderem ser obtidas. De qualquer forma, o programa é poderoso e permite fazer configurações juntando cliques do rato com as teclas de estado (Shift+Click,Command+Click) e obter a execução de programas com esses atalhos do teclado. Para quem não se sente à vontade em editar ficheiros JSON, pode visitar o catálogo de ficheiros de atalhos, onde pode obter eventuais ficheiros que lhe interessarem. Para o meu caso, o teclado que estou a usar não permitia ser configurado sem recorrer a qualquer item desse catálogo, de forma que dei mãos à tarefa de editar o JSON directamente para conseguir os resultados que desejava. Assim consegui pôr os acentos a funcionar, e colocar os símbolos de maior e menor do que a trabalhar. No entanto, a porca torceu o rabo quando cheguei às aspas angulares (« e »), chamadas [guillemets]. O Karabiner não suporta o output de caracteres que não estejam no teclado, pois o Karabiner usa o teclado dos EUA como referência base para fazer o mapeamento. Se algum caractere não estiver nesse teclado, não existe forma de pôr o Karabiner a fazer output dele. De forma que descobri a solução para o meu problema no Ukelele, que acaba por ser o mais simples de todos os softwares para reconfiguração de teclado, pois apresenta um diagrama do teclado directamente e permite remapear caracteres. Deixo aqui o ficheiro do Karabiner Elements que permite utilizar um teclado de PC num Mac usando o Karabiner Elements. Para descarregar o ficheiro clique aqui.
{
"global": {
"ask_for_confirmation_before_quitting": true,
"check_for_updates_on_startup": true,
"show_in_menu_bar": true,
"show_profile_name_in_menu_bar": false,
"unsafe_ui": false
},
"profiles": [
{
"complex_modifications": {
"parameters": {
"basic.simultaneous_threshold_milliseconds": 50,
"basic.to_delayed_action_delay_milliseconds": 500,
"basic.to_if_alone_timeout_milliseconds": 1000,
"basic.to_if_held_down_threshold_milliseconds": 500,
"mouse_motion_to_scroll.speed": 100
},
"rules": []
},
"devices": [
{
"disable_built_in_keyboard_if_exists": false,
"fn_function_keys": [],
"identifiers": {
"is_keyboard": true,
"is_pointing_device": false,
"product_id": 2310,
"vendor_id": 1455
},
"ignore": false,
"manipulate_caps_lock_led": true,
"simple_modifications": [],
"treat_as_built_in_keyboard": false
},
{
"disable_built_in_keyboard_if_exists": false,
"fn_function_keys": [],
"identifiers": {
"is_keyboard": false,
"is_pointing_device": true,
"product_id": 2310,
"vendor_id": 1455
},
"ignore": true,
"manipulate_caps_lock_led": false,
"simple_modifications": [],
"treat_as_built_in_keyboard": false
},
{
"disable_built_in_keyboard_if_exists": false,
"fn_function_keys": [],
"identifiers": {
"is_keyboard": false,
"is_pointing_device": true,
"product_id": 13330,
"vendor_id": 14
},
"ignore": true,
"manipulate_caps_lock_led": false,
"simple_modifications": [],
"treat_as_built_in_keyboard": false
},
{
"disable_built_in_keyboard_if_exists": false,
"fn_function_keys": [],
"identifiers": {
"is_keyboard": true,
"is_pointing_device": false,
"product_id": 20480,
"vendor_id": 2821
},
"ignore": false,
"manipulate_caps_lock_led": true,
"simple_modifications": [],
"treat_as_built_in_keyboard": false
}
],
"fn_function_keys": [
{
"from": {
"key_code": "f1"
},
"to": [
{
"consumer_key_code": "display_brightness_decrement"
}
]
},
{
"from": {
"key_code": "f2"
},
"to": [
{
"consumer_key_code": "display_brightness_increment"
}
]
},
{
"from": {
"key_code": "f3"
},
"to": [
{
"apple_vendor_keyboard_key_code": "mission_control"
}
]
},
{
"from": {
"key_code": "f4"
},
"to": [
{
"apple_vendor_keyboard_key_code": "spotlight"
}
]
},
{
"from": {
"key_code": "f5"
},
"to": [
{
"consumer_key_code": "dictation"
}
]
},
{
"from": {
"key_code": "f6"
},
"to": [
{
"key_code": "f6"
}
]
},
{
"from": {
"key_code": "f7"
},
"to": [
{
"consumer_key_code": "rewind"
}
]
},
{
"from": {
"key_code": "f8"
},
"to": [
{
"consumer_key_code": "play_or_pause"
}
]
},
{
"from": {
"key_code": "f9"
},
"to": [
{
"consumer_key_code": "fast_forward"
}
]
},
{
"from": {
"key_code": "f10"
},
"to": [
{
"consumer_key_code": "mute"
}
]
},
{
"from": {
"key_code": "f11"
},
"to": [
{
"consumer_key_code": "volume_decrement"
}
]
},
{
"from": {
"key_code": "f12"
},
"to": [
{
"consumer_key_code": "volume_increment"
}
]
}
],
"name": "Default profile",
"parameters": {
"delay_milliseconds_before_open_device": 1000
},
"selected": false,
"simple_modifications": [],
"virtual_hid_keyboard": {
"country_code": 0,
"indicate_sticky_modifier_keys_state": true,
"mouse_key_xy_scale": 100
}
},
{
"complex_modifications": {
"parameters": {
"basic.simultaneous_threshold_milliseconds": 50,
"basic.to_delayed_action_delay_milliseconds": 150,
"basic.to_if_alone_timeout_milliseconds": 500,
"basic.to_if_held_down_threshold_milliseconds": 500,
"mouse_motion_to_scroll.speed": 100
},
"rules": [
{
"description": "Brackets",
"manipulators": [
{
"from": {
"key_code": "7",
"modifiers": {
"mandatory": [
"right_option"
]
}
},
"to": [
{
"key_code": "8",
"modifiers": [
"shift",
"right_option"
]
}
],
"type": "basic"
},
{
"from": {
"key_code": "0",
"modifiers": {
"mandatory": [
"right_option"
]
}
},
"to": [
{
"key_code": "9",
"modifiers": [
"shift",
"right_option"
]
}
],
"type": "basic"
}
]
},
{
"description": "Portuguese Accents",
"manipulators": [
{
"from": {
"key_code": "backslash"
},
"to": [
{
"key_code": "quote"
}
],
"type": "basic"
},
{
"from": {
"key_code": "backslash",
"modifiers": {
"mandatory": [
"shift"
]
}
},
"to": [
{
"key_code": "quote",
"modifiers": [
"shift"
]
}
],
"type": "basic"
}
]
},
{
"description": "Portuguese Symbols",
"manipulators": [
{
"from": {
"key_code": "quote"
},
"to": [
{
"key_code": "open_bracket"
}
],
"type": "basic"
},
{
"from": {
"key_code": "quote",
"modifiers": {
"mandatory": [
"shift"
]
}
},
"to": [
{
"key_code": "open_bracket",
"modifiers": [
"shift"
]
}
],
"type": "basic"
},
{
"from": {
"key_code": "open_bracket"
},
"to": [
{
"key_code": "equal_sign"
}
],
"type": "basic"
},
{
"from": {
"key_code": "open_bracket",
"modifiers": {
"mandatory": [
"shift"
]
}
},
"to": [
{
"key_code": "equal_sign",
"modifiers": [
"shift"
]
}
],
"type": "basic"
},
{
"from": {
"key_code": "non_us_backslash"
},
"to": [
{
"key_code": "grave_accent_and_tilde"
}
],
"type": "basic"
},
{
"from": {
"key_code": "non_us_backslash",
"modifiers": {
"mandatory": [
"shift"
]
}
},
"to": [
{
"key_code": "grave_accent_and_tilde",
"modifiers": [
"shift"
]
}
],
"type": "basic"
},
{
"from": {
"key_code": "grave_accent_and_tilde"
},
"to": [
{
"key_code": "backslash"
}
],
"type": "basic"
},
{
"from": {
"key_code": "grave_accent_and_tilde",
"modifiers": {
"mandatory": [
"shift"
]
}
},
"to": [
{
"key_code": "backslash",
"modifiers": [
"shift"
]
}
],
"type": "basic"
}
]
},
{
"description": "Modifier keys change",
"manipulators": [
{
"from": {
"key_code": "left_option",
"modifiers": {
"mandatory": [
"left_command"
]
}
},
"to": [
{
"key_code": "left_control",
"modifiers": [
"any"
]
}
],
"type": "basic"
},
{
"from": {
"key_code": "left_command",
"modifiers": {
"mandatory": [
"left_shift"
]
}
},
"to": [
{
"key_code": "fn",
"modifiers": [
"any"
]
}
],
"type": "basic"
}
]
},
{
"description": "exchange tilde with backslash",
"manipulators": [
{
"from": {
"key_code": "non_us_backslash"
},
"to": [
{
"key_code": "grave_accent_and_tilde"
}
],
"type": "basic"
},
{
"from": {
"key_code": "non_us_backslash",
"modifiers": {
"mandatory": [
"shift"
]
}
},
"to": [
{
"key_code": "grave_accent_and_tilde",
"modifiers": [
"shift"
]
}
],
"type": "basic"
}
]
},
{
"description": "f5 for screenshot",
"manipulators": [
{
"from": {
"key_code": "f5"
},
"to": [
{
"key_code": "3",
"modifiers": [
"command",
"shift"
]
}
],
"type": "basic"
}
]
},
{
"description": "Lock key for windows",
"manipulators": [
{
"from":
{
"key_code": "l",
"modifiers": [
"left_command"
]
},
"to": [ {
"key_code":"q",
"modifiers": [
"command","control"
]
}]
}
]
},
{
"description": "Option+Backtick to Command+Backtick",
"manipulators": [
{
"from": {
"key_code": "grave_accent_and_tilde",
"modifiers": {
"mandatory": [
"left_option"
],
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "grave_accent_and_tilde",
"modifiers": "command"
}
],
"type": "basic"
},
{
"from": {
"key_code": "grave_accent_and_tilde",
"modifiers": {
"mandatory": [
"right_option"
],
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "grave_accent_and_tilde",
"modifiers": "command"
}
],
"type": "basic"
}
]
},
{
"description": "Option+Tab to Command+Tab",
"manipulators": [
{
"from": {
"key_code": "tab",
"modifiers": {
"mandatory": [
"left_option"
],
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "tab",
"modifiers": "command"
}
],
"type": "basic"
},
{
"from": {
"key_code": "tab",
"modifiers": {
"mandatory": [
"right_option"
],
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "tab",
"modifiers": "command"
}
],
"type": "basic"
}
]
}
]
},
"devices": [
{
"disable_built_in_keyboard_if_exists": false,
"fn_function_keys": [],
"identifiers": {
"is_keyboard": true,
"is_pointing_device": false,
"product_id": 2310,
"vendor_id": 1455
},
"ignore": false,
"manipulate_caps_lock_led": true,
"simple_modifications": [],
"treat_as_built_in_keyboard": false
},
{
"disable_built_in_keyboard_if_exists": false,
"fn_function_keys": [],
"identifiers": {
"is_keyboard": false,
"is_pointing_device": true,
"product_id": 2310,
"vendor_id": 1455
},
"ignore": true,
"manipulate_caps_lock_led": false,
"simple_modifications": [],
"treat_as_built_in_keyboard": false
},
{
"disable_built_in_keyboard_if_exists": false,
"fn_function_keys": [
{
"from": {
"key_code": "f1"
},
"to": [
{
"software_function": {
"iokit_power_management_sleep_system": {}
}
}
]
},
{
"from": {
"key_code": "f2"
},
"to": [
{
"key_code": "f2"
}
]
},
{
"from": {
"key_code": "f3"
},
"to": [
{
"apple_vendor_keyboard_key_code": "mission_control"
}
]
},
{
"from": {
"key_code": "f4"
},
"to": [
{
"apple_vendor_keyboard_key_code": "spotlight"
}
]
},
{
"from": {
"key_code": "f5"
},
"to": [
{
"key_code": "f5"
}
]
},
{
"from": {
"key_code": "f6"
},
"to": [
{
"consumer_key_code": "rewind"
}
]
},
{
"from": {
"key_code": "f7"
},
"to": [
{
"consumer_key_code": "play_or_pause"
}
]
},
{
"from": {
"key_code": "f8"
},
"to": [
{
"consumer_key_code": "fast_forward"
}
]
},
{
"from": {
"key_code": "f9"
},
"to": [
{
"consumer_key_code": "mute"
}
]
},
{
"from": {
"key_code": "f10"
},
"to": [
{
"consumer_key_code": "volume_decrement"
}
]
},
{
"from": {
"key_code": "f11"
},
"to": [
{
"consumer_key_code": "volume_increment"
}
]
},
{
"from": {
"key_code": "f12"
},
"to": [
{
"apple_vendor_keyboard_key_code": "launchpad"
}
]
}
],
"identifiers": {
"is_keyboard": true,
"is_pointing_device": false,
"product_id": 20480,
"vendor_id": 2821
},
"ignore": false,
"manipulate_caps_lock_led": true,
"simple_modifications": [
{
"from": {
"apple_vendor_top_case_key_code": "keyboard_fn"
},
"to": [
{
"apple_vendor_top_case_key_code": "keyboard_fn"
}
]
},
{
"from": {
"consumer_key_code": "ac_home"
},
"to": [
{
"key_code": "left_option"
}
]
},
{
"from": {
"key_code": "application"
},
"to": [
{
"pointing_button": "button2"
}
]
},
{
"from": {
"key_code": "left_control"
},
"to": [
{
"key_code": "left_command"
}
]
}
],
"treat_as_built_in_keyboard": false
},
{
"disable_built_in_keyboard_if_exists": false,
"fn_function_keys": [],
"identifiers": {
"is_keyboard": false,
"is_pointing_device": true,
"product_id": 13330,
"vendor_id": 14
},
"ignore": true,
"manipulate_caps_lock_led": false,
"simple_modifications": [],
"treat_as_built_in_keyboard": false
}
],
"fn_function_keys": [
{
"from": {
"key_code": "f1"
},
"to": [
{
"consumer_key_code": "display_brightness_decrement"
}
]
},
{
"from": {
"key_code": "f2"
},
"to": [
{
"consumer_key_code": "display_brightness_increment"
}
]
},
{
"from": {
"key_code": "f3"
},
"to": [
{
"apple_vendor_keyboard_key_code": "mission_control"
}
]
},
{
"from": {
"key_code": "f4"
},
"to": [
{
"apple_vendor_keyboard_key_code": "spotlight"
}
]
},
{
"from": {
"key_code": "f5"
},
"to": [
{
"consumer_key_code": "dictation"
}
]
},
{
"from": {
"key_code": "f6"
},
"to": [
{
"key_code": "f6"
}
]
},
{
"from": {
"key_code": "f7"
},
"to": [
{
"consumer_key_code": "rewind"
}
]
},
{
"from": {
"key_code": "f8"
},
"to": [
{
"consumer_key_code": "play_or_pause"
}
]
},
{
"from": {
"key_code": "f9"
},
"to": [
{
"consumer_key_code": "fast_forward"
}
]
},
{
"from": {
"key_code": "f10"
},
"to": [
{
"consumer_key_code": "mute"
}
]
},
{
"from": {
"key_code": "f11"
},
"to": [
{
"consumer_key_code": "volume_decrement"
}
]
},
{
"from": {
"key_code": "f12"
},
"to": [
{
"consumer_key_code": "volume_increment"
}
]
}
],
"name": "Default",
"parameters": {
"delay_milliseconds_before_open_device": 1000
},
"selected": true,
"simple_modifications": [],
"virtual_hid_keyboard": {
"country_code": 0,
"indicate_sticky_modifier_keys_state": true,
"mouse_key_xy_scale": 100
}
}
]
}