CSS調整

2020年4月14日

macの画面共有でwindowsキーボードのinsertキーを押すとキー入力ができなくなる

何言ってるかよくわからないかもしれないが、自分も何が起こってるのかよくわからなかった。。。

環境


  • mac-book
    • mojave
    • 外付けで windows キーボード(JIS)
  • mac-mini
    • high sierra
    • モニタ、キーボードなし

再現方法


  1. mac-book で画面共有 > mac-mini
  2. mac-mini 上のターミナルとかで insert キーを押す

何が起こるか


マウスカーソルが、はてなマーク(クエスチョンマーク)になり、すべてのキー入力が無視される。

マウスをクリックするとビープが鳴り、マウスカーソルが戻る。

が、再度なにかキー入力すると、はてなカーソルに戻り何も入力できなくなる。

以下、繰り返し

補足


  • shift 押しながらだと入力が効く
  • この状態になる他のキーボードからであってもキー入力ができない

原因と対策


結構昔からある画面共有のバグらしい。vnc が原因(?)らしいのだが、win から mac に vnc 接続して〜、だと再現しなかった。

また、mac os が古いので、最新 OS だと起こらないとかもあるかもしれない。

とりあえず、ログアウトすれば直る模様。

が、タイポとかする度にログアウトなんてしてられないので調べると、 screensharingd を再起動すればいいらしい。名前的に画面共有のサービスとかそんな感じか。

kill すれば勝手に再起動するようなので、

$ sudo killall screensharingd

で OK。

なのだが、実際、この事象が起こっているときは、上記コマンドが打てず、頑張ってコマンドはマウス操作でコピペ実行できたとしても、sudo のパスワードが打てない。

なので、いざという時のためにマウスだけでコマンド実行ができるようにしておく。

$ echo "echo 'password' | sudo -S killall screensharingd 2>/dev/null" > reset.command
$ chmod +x reset.command

パスワードを出力し、sudo はパスワードを入力で受けて killall を実行する。

というコマンドファイルを用意し、実行権限を与えておく。

パスワードを埋めておくのはちょっとアレだが。。。

そして、このファイルを Finder で「このアプリケーションで開く」をターミナルとかにしておく。

これで、当該事象に遭遇したら reset.command をダブルクリック実行するだけで正常化できる。

2020年1月27日

MacでWindowsキーボードを使う

Karabiner-Elementsの設定メモ。


やりたいこと
※ちなみにJISキーボードです

  • MacにWindowsキーボードを繋いで以下のキーを変換する
    • CapsLockをcontrolに
    • Windowsキーをoptionに
    • Altをcommandに
    • スペースの左右のキーを変換・無変換に
  • でもMacからWindowsにリモートデスクトップしたときは上を無効にする


Karabiner-Elementsのインストール


以下から落として入れるだけ

https://pqrs.org/osx/karabiner/

Windowsキーボードの条件を作る


Launch EventViewer - Devices

から該当のキーボードを探し、

{
        "device_id": 000000,
        "is_karabiner_virtual_hid_device": false,
        "is_keyboard": true,
        "is_pointing_device": false,
        "location_id": 000000,
        "product": "USB Keyboard",
        "product_id": 000000,
        "transport": "USB",
        "vendor_id": 0000
    }


product_id, vendor_id を使って以下JSONを作る。
(ちょっと冗長。全体に跨る条件指定とかできないのかな。)

{
  "title": "Custom Key Binds",
  "rules": [
    {
      "description": "Windows Keyboard Unless RDC",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "caps_lock"
          },
          "to": {
            "key_code": "left_control"
          },
          "conditions": [
            {
              "type": "frontmost_application_unless",
              "bundle_identifiers": [ "com.microsoft.rdc.macos" ]
            },
            {
              "type": "device_if",
              "identifiers": [
                {
                  "vendor_id": 0000,
                  "product_id": 000000
                  }
              ]
            }
          ]
        },
        {
          "type": "basic",
          "from": {
            "key_code": "japanese_pc_nfer"
          },
          "to": {
            "key_code": "japanese_eisuu"
          },
          "conditions": [
            {
              "type": "frontmost_application_unless",
              "bundle_identifiers": [ "com.microsoft.rdc.macos" ]
            },
            {
              "type": "device_if",
              "identifiers": [
                {
                  "vendor_id": 0000,
                  "product_id": 000000
                  }
              ]
            }
          ]
        },
        {
          "type": "basic",
          "from": {
            "key_code": "japanese_pc_xfer"
          },
          "to": {
            "key_code": "japanese_kana"
          },
          "conditions": [
            {
              "type": "frontmost_application_unless",
              "bundle_identifiers": [ "com.microsoft.rdc.macos" ]
            },
            {
              "type": "device_if",
              "identifiers": [
                {
                  "vendor_id": 0000,
                  "product_id": 000000
                  }
              ]
            }
          ]
        },
        {
          "type": "basic",
          "from": {
            "key_code": "left_command"
          },
          "to": {
            "key_code": "left_option"
          },
          "conditions": [
            {
              "type": "frontmost_application_unless",
              "bundle_identifiers": [ "com.microsoft.rdc.macos" ]
            },
            {
              "type": "device_if",
              "identifiers": [
                {
                  "vendor_id": 0000,
                  "product_id": 000000
                  }
              ]
            }
          ]
        },
        {
          "type": "basic",
          "from": {
            "key_code": "left_option"
          },
          "to": {
            "key_code": "left_command"
          },
          "conditions": [
            {
              "type": "frontmost_application_unless",
              "bundle_identifiers": [ "com.microsoft.rdc.macos" ]
            },
            {
              "type": "device_if",
              "identifiers": [
                {
                  "vendor_id": 0000,
                  "product_id": 000000
                  }
              ]
            }
          ]
        }
      ]
    }
  ]
}

あとは

~/.config/karabiner/assets/complex_modifications/

下に適当に1.jsonとかで保存して、

Preferences - Complex modifications - Add rule

から有効にする。

これで、他のキーボードには影響しないように、リモートデスクトップ以外ではMacのキー配列っぽく、リモートデスクトップではそのままWindowsキーボードとして使えるようになりました。