ひとりぶろぐ

価値ある情報をユーザー視点で発信するブログ

macOS SierraでKarabinerが動かなくて困っている人に贈る代替ソフトウェア

      2017/01/26

macOSの最新バージョン、「macOS Sierra」(10.12)がリリースされました。

Macos sierra karabiner alternative software 00001

早速インストールしてみましたが、意外と軽くてMacBook Pro(Retina, Mid 2012)でも全然OKです。

あまり代わり映えはしませんが、Safariのページ内検索がついに直ったのが体感上一番の改善点です。

「macOS Sierra」をインストールした人の中でよく問題点として挙がるのが、キーボードカスタマイズソフトウェアの「Karabiner(元KeyRemap4MacBook)」が動かないこと。

公式ページには以下のように説明があります。

macOS Sierraサポート状況

Karabinerは今のところmacOS Sierraでは動作しません。

Sierra対応は、まずは単純なキーの変更を行える機能をKarabiner-Elementsとして開発中です。
(設定画面を除くとSierra上で動作しています)

Karabinerのフル機能のSierra対応はKarabiner-Elementsが完成してから対応します。

完成までの間、別のソフトウェアで穴を埋めることはできるでしょうか。

署名のないソフトウェアの起動について

最近のmacOSでは、署名のないソフトウェアがみだりに起動できないようになっています。

初回起動時は、アプリのアイコンを右クリック(Ctrl+クリック)してコンテキストメニューを表示。そこから「開く」で起動します。

Macos sierra karabiner alternative software 00007

USキーボードでの「英数」、「かな」キーのエミュレートなら「⌘英かな」

Macos sierra karabiner alternative software 00003

USキーボードで「英数」、「かな」キーをエミュレートするために「Karabiner」を使っている人は少なくないのではないでしょうか。

英数モード、日本語入力モードにCommand+Spaceで交互に移行するのでなく、英数モードへの移行、日本語入力モードへの移行にそれぞれ別のキーを割り当て、明示的にモード変更できるように設定すると作業効率は飛躍的にアップするからです。

それだけのために「Karabiner」を使っているなら「⌘英かな」というソフトウェアがぴったりです。

設定はなく、起動して「セキュリティとプライバシー>アクセシビリティ」の権限を付与するだけでOKと、使い方は簡単です。

より複雑なキーボードカスタマイズをするなら「Keyhac」

Macos sierra karabiner alternative software 00002

「Karabiner」を、もっと複雑な用途のために使っているプログラマーの方なら、「Keyhac」というソフトウェアがぴったりかもしれません。

よく似たソフトウェアに「窓使いの憂鬱」、「のどか」がありました。

ドキュメント

「Keyhac」は、Windows用のソフトウェア開発で有名なcraftwareが開発したキーボードカスタマイズソフトウェアで、Windowsでは通好みの選択肢として有名です。

Pythonインタプリタを内蔵しており、config.pyというPythonスクリプトの形で初期設定ファイルを作成し「Keyhac」に読み込ませるという、MS-DOSやHuman68k時代を知っているなら懐かしく思うであろう方法で設定を施します。

初期設定ファイルの設置パス: /Users/ユーザー名/Library/Application Support/Keyhac/config.py

config.py冒頭抜粋

import sys
import os
import datetime
import time

from keyhac import *

#http://crftwr.github.io/keyhac/mac/doc/ja/index.html

def configure(keymap):

    # どのウインドウにフォーカスがあっても効くキーマップ
    keymap_global = keymap.defineWindowKeymap()

    if 1:
        keymap_global[ "Ctrl-Shift-Z"   ] = keymap.command_ClipboardList        # クリップボード履歴表示
        keymap_global[ "Ctrl-Shift-X"   ] = keymap.command_ClipboardRotate      # 直近の履歴を末尾に回す
        keymap_global[ "Ctrl-Shift-Alt-X" ] = keymap.command_ClipboardRemove    # 直近の履歴を削除

    # フォントの設定
    keymap.setFont( "Osaka-Mono", 16 )

    # テーマの設定
    keymap.setTheme("white")

    def find_force():
        keymap.InputKeyCommand("Esc","Cmd-Shift-F","Cmd-F")()
    keymap_safari = keymap.defineWindowKeymap( app_name="com.apple.Safari" )
    keymap_safari[ "Cmd-F" ] = find_force

ただ、標準のconfig.pyをそのまま使うと余計な設定が機能して動作がおかしくなるため、一度config.pyはまっさらにしてから少しずつデフォルトのconfig.pyを参考にしながら設定を追加していくとよろしいかと思います。

Emacsユーザーにはおなじみ、マルチストロークの再現も可能です。

Windowsのみで機能する関数が多数あり、macOSへの移植の際にどれが残っていて、どれがなくなっているのかについてのドキュメントが(多分)ないため、使いこなしには試行錯誤が必要です。

いつかちゃんと紹介しようとして数年が経過しているので、この機会に流行ってくれるといいなと思っております。

mac OS Sierraで使える2画面ファイラー

ちなみに、Pythonインタプリタ内蔵の2画面ファイラー、「CraftCommander」のMac版も存在し、macOS Sierraでも動作します。Windows用のファイラー「あふw」が好きな人におすすめ。

Luaが書けるならHammerspoon

Keyhac的な志向を持つユーティリティに「Hammerspoon」というものもあります。

Keyhacが制御用言語にPythonを採用したのに対し、こちらはLuaを使っています。

これで「⌘英かな」同様に機能させられるかは確認していませんが、面白い選択肢かもしれません。

Psngames banner

 - Mac, OS X