docker composeでInfluxDBの起動エラー

久しぶりにInfluxDBのdockerを起動したら動かなくなってた。

$ docker compose up
[+] Running 2/2
 ⠿ Network influxdb_default       Created                                                                                                        0.0s
 ⠿ Container influxdb_influxdb_1  Created                                                                                                        0.0s
Attaching to influxdb_1
influxdb_1  | chown: changing ownership of '/var/lib/influxdb2': Permission denied
influxdb_1  | chown: changing ownership of '/var/lib/influxdb2/engine': Permission denied
influxdb_1 exited with code 1

ぐぐったらこれが引っかかった。

github.com

user を追加したら動いた。

version: '3'
services:
  influxdb:
    image: influxdb
    ports:
      - "8086:8086"
    volumes:
      - ./influxdb/data:/var/lib/influxdb
      - ./influxdb/config:/etc/influxdb2
      - ./influxdb/scripts:/docker-entrypoint-initdb.d
    environment:
      - DOCKER_INFLUXDB_INIT_MODE=setup
      - DOCKER_INFLUXDB_INIT_USERNAME=ユーザ名
      - DOCKER_INFLUXDB_INIT_PASSWORD=パスワード
      - DOCKER_INFLUXDB_INIT_ORG=組織を指定
      - DOCKER_INFLUXDB_INIT_BUCKET=バケットを指定
      - DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=トークンをここに書くよ
    user: "501:501"

Karabiner-elementsでMacのPowerPointの行末移動をctrl+eで出来るようにする

MacPowerPointでCtrl+eと打つと「文字列中央揃え」になるんですよね。
これ間違いすぎてストレスたまりすぎたのでKarabinerで行末移動になるようにしました。

frontmost_application_if でオフィス系ソフトとブラウザを指定していますが、 オフィス系ソフトとChromeは上手くいっていて、Firefox、Edge、Safariがまだ上手くいってません。
うーんなんだろう。

    {
      "description": "Left Control + e to End",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "e",
            "modifiers": {
              "mandatory": [
                "control"
              ]
            }
          },
          "to": [
            {
              "key_code": "end"
            }
          ],
      "conditions": [
            {
              "type": "frontmost_application_if",
              "bundle_identifiers": [
                "^com\\.microsoft\\.Excel$",
                "^com\\.microsoft\\.Powerpoint$",
                "^com\\.microsoft\\.Word$",
                "^org\\.mozilla\\.firefox$",
                "^org\\.google\\.Chrome$",
                "^com\\.microsoft\\.edgemac$",
                "^com\\.apple\\.Safari$"
              ]
            }
      ]
        }
      ]
    }

BigGanttでJIRAのFilterが出てこないとき

BigGanttでプロジェクト作った後で、タスクを選択するためにJIRAでフィルター作っても候補が出てこない。
いつも対応方法を忘れるのでメモ。

f:id:gozuk16:20210531183005p:plain

Filterのところだけなぜか新しく作ったり修正してもなかなか反映されない。
Cacheをクリアしたら出てきたので、キャッシュクリアの方法。
詳細→アプリ→BigGantt→App configuration→Advanced→Clear cache

f:id:gozuk16:20210531183135p:plain

ラズパイ4で64bit OSをmSATA接続のSSDから起動させる

最初に書いておくと、盛大にハマりました。
この手の記事はぐぐればたくさん引っかかるし皆さんうまくいっているようです。
ただ失敗の記事はあまり引っかからないので書いとこうかなと思ったわけですね。

買ったもの

購入したのは、Raspberry Pi 4 Model B (メモリ8GB)です。
ヨドバシで共立プロダクツのスターターセットを購入しました。
付属のSDカードにはRaspberry Pi OS 32bit版が入っていました。

$ sudo dmesg | grep Machine
[    0.000000] OF: fdt: Machine model: Raspberry Pi 4 Model B Rev 1.4

$ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

$ uname -a
Linux raspberrypi 5.10.17-v7l+ #1403 SMP Mon Feb 22 11:33:35 GMT 2021 armv7l GNU/Linux

速いストレージにしたかったので外付けのSSDも一緒に買おうと思ったのですが、ちょっと急いでいたのでヨドバシの購入ページでお勧めされていたトランセンドのmSATA3/128GB(TS128GMSA370)を一緒に買いました。
今思うとこれが良くなかった。いまさらマイナーなmSATAを買う事もなかったんだよね。ちゃんと調べとけばなー。
届いてからUSB3.0へ変換するケースが必要な事に気がつき、AmazonでZheinoのUSB3.0-mSATAケースを買いました。(アホだな)

https://www.amazon.co.jp/gp/product/B06XSD129T/

ついでに自分のモニターにはHDMIがないのでHDMI DVI変換アダプター HDMIメスタイプ BSHDADVも買いました。

www.buffalo.jp

ちゃんと調べないから、始めるまでが長いw

ブートローダー(EEPROM)の設定

結論から言うと、最新化する必要はありませんでした…

初期状態で以下のようになっています。
2020-09-03版ですね。

$ sudo rpi-eeprom-update
BOOTLOADER: up-to-date
   CURRENT: 202093日 木曜日 12:11:43 UTC (1599135103)
    LATEST: 202093日 木曜日 12:11:43 UTC (1599135103)
   RELEASE: default (/lib/firmware/raspberrypi/bootloader/default)
            Use raspi-config to change the release.

  VL805_FW: Using bootloader EEPROM
     VL805: up-to-date
   CURRENT: 000138a1
    LATEST: 000138a1

$ vcgencmd bootloader_version
Sep  3 2020 13:11:43
version c305221a6d7e532693cc7ff57fddfc8649def167 (release)
timestamp 1599135103
update-time 0
capabilities 0x00000000

最新のほうがいいかなと思って、 FIRMWARE_RELEASE_STATUS="stable" にしてから2021-03-18版にしましたが、必要はなく元に戻しています。

USBで起動出来るようにしておく必要はあります。
初期状態の設定は以下のようになっています。

$ vcgencmd bootloader_config
[all]
BOOT_UART=0
WAKE_ON_GPIO=1
POWER_OFF_ON_HALT=0
DHCP_TIMEOUT=45000
DHCP_REQ_TIMEOUT=4000
TFTP_FILE_TIMEOUT=30000
TFTP_IP=
TFTP_PREFIX=0
BOOT_ORDER=0x1
SD_BOOT_MAX_RETRIES=3
NET_BOOT_MAX_RETRIES=5
[none]
FREEZE_VERSION=0

起動の優先順位をUSBにするには raspi-config で簡単に出来ます。

$ sudo raspi-config
→ 6 Advanced Options   Configure advanced settings
  → A6 Boot Order      Choose network or USB device boot
    → B2 USB Boot      Boot from USB if available, otherwise boot from SD Card

これでSDカードを抜かなくてもUSBから起動します。(USBが無ければSDカードで上がります)
この設定をすると再起動が要求されますが、一度シャットダウンしておきます。
SSDから64bit OSで起動している現在の設定は以下のようになっています。
(BOOT_ORDER=0xf14 となっている所がUSB起動の設定です)

$ vcgencmd bootloader_config
[all]
BOOT_UART=0
WAKE_ON_GPIO=1
POWER_OFF_ON_HALT=0
DHCP_TIMEOUT=45000
DHCP_REQ_TIMEOUT=4000
TFTP_FILE_TIMEOUT=30000
ENABLE_SELF_UPDATE=1
DISABLE_HDMI=0
BOOT_ORDER=0xf14

SSDへOS書き込み

今どきは、Raspberry Pi Imagerで簡単に書き込みが出来ます。
Mac版のRaspberry Pi Imagerを以下からダウンロードして起動します。

www.raspberrypi.org

32bit版ならこのツールから自動でダウンロードして書き込みまでしてくれますが、せっかくの8GBを有効利用したいので64bit版のRaspberry Pi OSを自分でダウンロードします。
今回は 2021-03-04-raspios-buster-arm64.zip を使います。
ここから落としました。

ftp.jaist.ac.jp

ホスト名やSSHWiFiの設定をあらかじめ出来ます。
Ctrl+Shift+x で設定画面が出てきますので設定しました。

CHOOSE OS から Use custom を選択し、あらかじめダウンロードしておいた 2021-03-04-raspios-buster-arm64.zip をセットします。

CHOOSE SD CARD で、Macに繋げたSSDを選択します。

WRITE を押します。

簡単です。

SSD起動

64bit OSを書き込んだSSDをラズパイにつなぎます。
当然、USB 3.0の口につなぐのですがこれでハマりました。

まず初回起動時ですが、root filesystemにある空き容量を検知して勝手にパーティションのリサイズが始まります。
これが結構時間がかかるので、LEDランプの点滅が収まるまで辛抱強く待ちましょう。うちは30分以上掛かりました。

その後、起動プロセスが始まるのですがなぜか EXT4-fs error が大量に出続けます。
fsck掛けたり、あらかじめパーティションを拡張しておいたり、EEPROMのバージョンを戻したり(最初は2021-03-18でやってた)、ケーブルを変えてみたり別のSSDと別のケースを持ってきたり、色々試しましたがどうしても解消しません…
いろいろぐぐって、このページにあるようにUSB 2.0にSSDを差し替えるとあっけなく起動しました。

qiita.com

何だったんだ…

諦めきれず、他に情報がないか調べていたら今度はこちらのサイトにあたりました。

signal-flag-z.blogspot.com

これがビンゴ!!
自分もこの記事と同じ、 JMicron Technology Corp. / JMicron USA Technology Corp. JMS567 SATA 6Gb/s bridge でした。

この記事の通りやって無事、USB 3.0で起動しました!

まずはとりあえずUSB 2.0につないだ状態で起動して設定します。

$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 152d:0578 JMicron Technology Corp. / JMicron USA Technology Corp. JMS567 SATA 6Gb/s bridge
Bus 001 Device 003: ID 1bcf:0029 Sunplus Innovation Technology Inc.
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

$ lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 3: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 4: Dev 4, If 0, Class=Mass Storage, Driver=uas, 480M

JMicronのチップが使われているようです。
Driverが uas になっている事が確認出来ます。
こちらの記事によるとUSAは、USB Attached SCSIというプロトコルで、USB mass-storageより高速なのですが、ドライバの実装がよくないと遅くなる事があるようです。

www.raspberrypi.org

/boot/cmdline.txtカーネルパラメーターを追加して、usb-storageで動作するようにします。
先頭に usb-storage.quirks=152d:0578:u というパラメータを入れます。改行は入れてはダメです。

$ sudo vi /boot/cmdline.txt
console=serial0,115200 console=tty1 root=PARTUUID=7ff05857-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles
↓
usb-storage.quirks=152d:0578:u console=serial0,115200 console=tty1 root=PARTUUID=7ff05857-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles

これでシャットダウンして、SSDをUSB 3.0の口に差し替えます。
電源を入れると起動しました!すばらしい!!

$ lsusb
Bus 002 Device 002: ID 152d:0578 JMicron Technology Corp. / JMicron USA Technology Corp. JMS567 SATA 6Gb/s bridge
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

$ lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
    |__ Port 2: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M

ちゃんとドライバが切り替わっているようです。(※マウスは外しちゃいました)
一応簡単にベンチマーク取っておきます。

  • SDカード
$ sudo hdparm -t /dev/mmcblk0p2

/dev/mmcblk0p2:
 HDIO_DRIVE_CMD(identify) failed: Invalid argument
 Timing buffered disk reads:  28 MB in  3.00 seconds =   9.32 MB/sec
  • USB 2.0でのSSD
$ sudo hdparm -t /dev/sda2

/dev/sda2:
 Timing buffered disk reads: 112 MB in  3.03 seconds =  36.97 MB/sec
  • USB 3.0でのSSD
$ sudo hdparm -t /dev/sda2

/dev/sda2:
 Timing buffered disk reads: 690 MB in  3.00 seconds = 229.96 MB/sec

やったね。ちゃんと速くなってるよ!
フルスペックじゃないにしてもまあいいでしょう。
しかし、使い始めるまで長かったなー。

結論

ちゃんと下調べして買おう…

Macでまあまあよく使っているアプリまとめ(2021年3月)

Karabiner-Elements

https://img.shields.io/badge/on-private-brightgreen https://img.shields.io/badge/on-business-blue https://img.shields.io/badge/paid-free-lightgrey

karabiner-elements.pqrs.org

ただただ素晴らしい。
Macを使う理由の一つ。(他の理由はフォントがきれいなこと、OSに統合されたUNIX likeなCLI環境があること)
vi風カーソルがないと生産性がた落ち。
設定は超簡単。自分で定義を書くのも簡単にできる。

iTerm2

https://img.shields.io/badge/on-private-brightgreen https://img.shields.io/badge/on-business-blue https://img.shields.io/badge/paid-free-lightgrey

iterm2.com

素晴らしいターミナルアプリ。

Homebrew

https://img.shields.io/badge/on-private-brightgreen https://img.shields.io/badge/on-business-blue https://img.shields.io/badge/paid-free-lightgrey

brew.sh

Mac用パッケージマネージャ。
Karabiner-Elements、iTerm、Homebrewの組み合わせで快適なCLI環境がつくれる。

かわせみ3

https://img.shields.io/badge/on-private-brightgreen https://img.shields.io/badge/on-business-blue https://img.shields.io/badge/paid-visa-orange

www.monokakido.jp

3ライセンスキー:6,600円(税込)
Google日本語入力の変換のおかしさに耐えられなくなってかわせみに移行した。
かわせみも結構ひどいが少なくとも学習するし、そこそこカスタマイズできるので使えないということはない。

MacVim-KaoriYa

https://img.shields.io/badge/on-private-brightgreen https://img.shields.io/badge/on-business-blue https://img.shields.io/badge/paid-free-lightgrey

github.com

昔のviってUndoは1回だったし、syntax highlightもなかったけどそれでCのプログラム書いてた。
Vimではたいていのことが便利にできる。
軽いし、これで十分。

Firefox

https://img.shields.io/badge/on-private-brightgreen https://img.shields.io/badge/on-business-blue https://img.shields.io/badge/paid-free-lightgrey

www.mozilla.org

会社Macだと社内システムがChromeに依存してたりするのだが、私物MacではFirefoxがメインブラウザ。
たまに使えないサイトがあるがその時はSafariを使えばいいので、Chrome使わなくても生きていける。

Chrome

https://img.shields.io/badge/on-private-brightgreen https://img.shields.io/badge/on-business-blue https://img.shields.io/badge/paid-free-lightgrey

www.google.co.jp

会社Macだとメインブラウザ。
タブ開きすぎなので常にメモリを大量に使ってる。

Choosy

https://img.shields.io/badge/on-private-brightgreen https://img.shields.io/badge/on-business-blue https://img.shields.io/badge/paid-paypal-orange

www.choosyosx.com

$10
Rebuildfmで紹介されてたので入れてみた。
リンクによって立ち上げるブラウザを切り分けることが出来る。
会社Macだと社内のURLはChrome、インターネットのサイトやGoogle検索はFirefoxと使い分けをしている。

Bartender

https://img.shields.io/badge/on-private-brightgreen https://img.shields.io/badge/on-business-blue https://img.shields.io/badge/paid-paypal-orange

www.macbartender.com

これも、Rebuildfmで紹介されてたので入れてみた。
メニューバーのアイコンが多すぎて、メニューで隠れてしまう問題があったのでちょうどよかった。
最新版のBartender4はBig Surのみ対応。会社のMacOS XがBig Surに上げられないので早く上げられるようにして欲しい。

1Password

https://img.shields.io/badge/on-private-brightgreen https://img.shields.io/badge/on-business-blue https://img.shields.io/badge/paid-visa-orange

1password.com

$35.88(税抜) 1年間毎のサブスクリプション

もともとアプリで使っていたがデバイス間の同期が面倒くさくなってきたので、サブスクに切り替えた。とっても快適。
これのおかげでサービスごとに違うパスワードを使うことが出来る。

Fork

https://img.shields.io/badge/on-private-brightgreen https://img.shields.io/badge/on-business-blue https://img.shields.io/badge/paid-paypal-orange

git-fork.com

$49.99(3台まで)
動作が軽快で挙動が素直なのがよい。
SourceTreeは真逆なので乗り換えた。
Mac/Windows両方アプリがあるのも良い。
チェコの人が夫婦でつくっているらしい。

Alfred

https://img.shields.io/badge/on-private-brightgreen https://img.shields.io/badge/on-business-blue https://img.shields.io/badge/paid-paypal-orange

www.alfredapp.com

Mega License £49
⌘+スペースで起動するようにしてSpotlightの替わりに使っている。
シングルクォート'からファイル名で簡単にファイルが開けるのとクリップボード履歴は必需品。
もちろんランチャーとしても使っている。ぱっと出るのが良い。

Logitech Options

https://img.shields.io/badge/on-business-blue https://img.shields.io/badge/paid-free-lightgrey

support.logi.com

このソフトでMX Anywhere 2のミドルボタンを範囲選択キャプチャ(クリップボード)に割り当ててる。
とりあえずどんどんキャプチャしていけば、Alfredのクリップボード履歴(画像)に残るので結構便利。

私物Macはマウス使ってないので入れてない。

Twitter App

https://img.shields.io/badge/on-private-brightgreen https://img.shields.io/badge/paid-free-lightgrey

Twitter

Twitter

apps.apple.com

ブラウザだとマウスオーバーのポップアップがうざいので何もでない公式アプリの方が良い。軽いし。

会社Macには入れてない。本当に入れてないよ。まじでw

LINE App

https://img.shields.io/badge/on-private-brightgreen https://img.shields.io/badge/paid-free-lightgrey

apps.apple.com

たまに使う程度。入れとけば何かと便利。

メッセージ App

https://img.shields.io/badge/on-private-brightgreen https://img.shields.io/badge/on-business-blue https://img.shields.io/badge/paid-free-lightgrey

公式アプリ。
iPhoneのiMessageや連絡先と共有されるのが便利。
仕事だと割と長い文章を書かないといけないことがあるのでたまに使う。 私物Macだとそもそも携帯がAndroidなので使い道はない。

Slack

https://img.shields.io/badge/on-business-blue https://img.shields.io/badge/paid-free-lightgrey

slack.com

仕事ではお世話になってます。
ブラウザだとWorkspaceの切り替えが面倒くさいのでアプリを入れてる。
メモリ食いだけど。

辞書 App

https://img.shields.io/badge/on-private-brightgreen https://img.shields.io/badge/on-business-blue https://img.shields.io/badge/paid-free-lightgrey

英和辞典として、結構使ってる。

写真 App

https://img.shields.io/badge/on-private-brightgreen https://img.shields.io/badge/paid-free-lightgrey

iPhotoからようやく移行した。
iPhoto課金ユーザだったのになぁ。。。
特に便利とか無いけどとりあえず使ってる。

Pixelmator Classic App

https://img.shields.io/badge/on-private-brightgreen https://img.shields.io/badge/on-business-blue https://img.shields.io/badge/paid-visa-orange

Pixelmator Classic

Pixelmator Classic

  • Pixelmator Team
  • グラフィック/デザイン
  • ¥3,680
apps.apple.com

ずいぶん前に買ったので値段は忘れた。いまは、\3,680
ちょっとしたサイトのデザインサンプルとかを書くときに使っている。
Pro用も出たけどこれで十分。(Proは使わずに言ってます)

X Lossless Decoder(XLD)

https://img.shields.io/badge/on-private-brightgreen https://img.shields.io/badge/paid-free-lightgrey

tmkk.undo.jp

大量にある昔のCDを気が向いたらFLACリッピングするために使っている。

VOX MUSIC PLAYER

https://img.shields.io/badge/on-private-brightgreen https://img.shields.io/badge/paid-free-lightgrey

vox.rocks

XLDでリッピングした曲を確認するために入れている。

LICEcap

https://img.shields.io/badge/on-business-blue https://img.shields.io/badge/paid-free-lightgrey

www.cockos.com

アニメーションGIFをつくるために入れている。

KeyCast

https://img.shields.io/badge/on-business-blue https://img.shields.io/badge/paid-free-lightgrey

github.com アニメーションGIFをつくるときにキー入力を表示するために使っている。

VirtualBox

https://img.shields.io/badge/on-business-blue https://img.shields.io/badge/paid-free-lightgrey

www.virtualbox.org

仕事でWindows開発用に使っている。

Google File Stream

https://img.shields.io/badge/on-business-blue https://img.shields.io/badge/paid-company-orange

会社でGoogle Workspaceを契約しているので使っている。
遅いし、誰かが大量のファイルを上げるとOSごとフリーズすることもあるけど、まあ便利。

Microsoft Office

https://img.shields.io/badge/on-business-blue https://img.shields.io/badge/paid-company-orange

仕事用。周りの人が使うので仕方なく使っている。

株価 App

https://img.shields.io/badge/on-private-brightgreen https://img.shields.io/badge/paid-free-lightgrey

公式アプリ。
ネット証券が出しているアプリはたいていWindows用なんですよね。
Macでチャートを見るのに結局これが一番使いやすい。

Steam

https://img.shields.io/badge/on-private-brightgreen https://img.shields.io/badge/paid-free-lightgrey

store.steampowered.com

Factorioをやるために入れた。

WindowsでもMacのKarabiner-Elementsのようにキーバインドを変更したい

ということでAutoHotKeyの紹介なんですが、まずは前置き

まえおき

キーボード

20代の頃は仕事上キーボードは現場で用意されているものを何でも使わないといけなかったのですが、よく使っていたのはNEC EWS-4800、PC9801シリーズ、SunのType-5, Type-6などのキーボードでした。
日本語キーボードもあれば英語キーボードもありましたし、キーマップもわりとそれぞれ違ってたりしましたね。
なかでも、SunのType-5をこよなく愛するプロジェクトリーダーの下で仕事をしたときに英語配列を気に入り、以降は選べるときは英語配列を選ぶようになっていきました。
30代ではHHKBとThinkPad Keyboard、40代から現在にかけてはHHKB Professional2 Type-S(US)を個人でも会社でも両方使うようになっています。

PC-9801

www.google.com

EWS-4800用キーボード

www.abk.nu

Sun Type5 UNIX Keyboard, Type 6 Keyboard

www5f.biglobe.ne.jp

HHKB Professional2 Type-S(US)

www.pfu.fujitsu.com

主な使い方

現在の主な使い方の組み合わせは以下のようになっています。

場所 所有 PC OS Keyboard 注意点
自宅 個人 Macbook Air 2018 OS X BigSur US版 ノートPC
自宅 会社 Mac mini 2018 OS X Catalina HHKB Type-S(US) メイン
自宅 会社 Mac mini 2018 Windows10 HHKB Type-S(US) VirtualBox
自宅 会社 ThinkPad X1 Carbon Gen7 2019 Windows10 US版 ノートPC
会社 会社 ThinkPad X1 Carbon Gen7 2019 Windows10 HHKB Type-S(US) キーボードのみオフィスに置いてる

一番使っている時間が長いのは、Mac miniにつないでいるHHKB Type-S(US)なのですが、ThinkPadにもつなぐ事があるのでWindowsでもそれなりに同じ操作ができないと仕事になりません。
そこでAutoHotKeyの出番というわけです。(やっとか)

WindowsのCapsLockはCtrl2Capを使って入れ替え済みです。

AutoHotKeyで矢印キーを実現する

一番使用頻度が高いHHKB Type-S(US)には、矢印キーがありません。
デフォルトでは Fn + ;/[' なのですが、そんなの使いにくくてしょうがないので自分は Ctrl + hjkl を割り当ててます。
いわゆるvi風ってやつですね。(ちなみにメインのエディタはVimです)

MacだとKarabiner-Elementsという素晴らしいソフトで実現しているのですが、Windowsでいい感じのソフトを探していたらAutoHotKeyというので出来ました。

karabiner-elements.pqrs.org

www.autohotkey.com

Windows + HHKB Type-S(US)を使うときだけでなくThinkPad単体で使うときもうまく行ってます。
ちなみにMac mini上のVMWindowsを使うときはMacキーバインドがそのまま使えるので何もしていません。

レシピ

AutoHotKeyは設定を拡張子ahkのファイルにテキストで記述し、コンパイルしたものを起動時に実行させます。

矢印キーは押しっぱなしになるのでキーリピートの設定を入れてます。

; キーリピートの早いキーボードだと警告が出るので設定
#HotkeyInterval 100

矢印キーの制御を記述します。

; vi like key
^h::Send, {Left}

^j::Send, {Down}

^k::Send, {Up}

^l::Send, {Right}

以下のページからリファレンスを見ることが出来ます。

ahkwiki.net

「ホットキー」と「キーリスト」を見ると定義がわかります。
修飾シンボルとして ^ がCtrlキーとなり、Leftはキーリストから探すと矢印キーの左になりますね。

つまり ^h::Send, {Left}Ctrl+h が来たら 左矢印キー になるということです。
j, k, lも同じように定義します。

Shiftを押しながら選択移動も定義します。

^+h::Send, +{Left}

^+j::Send, +{Down}

^+k::Send, +{Up}

^+l::Send, +{Right}

Shiftの修飾シンボルは + です。
つまり ^+h::Send, +{Left}Ctrl+Shift+h が来たら Shift+左矢印キー になるということです。

その他

Emacs風のもの少し

Emacs風というよりはbashzshの対話シェルのときによく使ってるからという感じでしょうか。
特に Ctrl + aCtrl + e は多用するので設定しています。

^a::Send, {Home}

^+a::Send, +{Home}

^e::Send, {End}

^+e::Send, +{End}

Slackの送信ボタン

Slackを日本語モードにすると Enter が改行になるのはいいんですが、送信がMacだと Cmd + EnterWindowsだと Ctrl + Enter でよく間違えます。
両方同時に使ってると頭のモード切替が間に合わなくてw
よく使うMacに合わせるためにWindowsでは Alt + Enter で送信出来るように設定します。
この設定はSlackのときだけ使えるようしています。

; slack
#IfWinActive, ahk_exe slack.exe
    !Enter::
        Send, ^{Enter}
        return
#IfWinActive

#IfWinActive はWindowタイトルやプロセスを指定してその時だけ動作するように設定できます。
Windowタイトルやプロセスはahkスクリプトを実行したときにタスクトレイのアイコンを右クリックすると、出てくるWindow Spyというツールで調べることが出来ます。

※1行で書くときはreturnが省略できますが、複数行ではreturnを書かないと次に流れていってしまいます。(思わぬ挙動になったりします…)

今後

とりあえず今はこれだけですが、Karabiner-Elementsで出来ているCtrlキーを一回押すとEscになって、長押しはCtrlとして動く、というのも実現したいな。

Karabiner-ElementsはWebでほしい設定をポチポチ押すだけで設定できるので他にも色々設定しているけど、AutoHotKeyは記述しても思ったように動かないことが多くて、デバッグが結構必要になるし、ちょっとづつ増やしてる感じですね。

VMWare ESXi 7.0をアップデートする

ESXiにHDDを追加したのでついでにアップデートしました。
ESXi 7.0 15843807から16324942にしてます。

以前やったのは5.5から6.5にしたのですが、7.0ではアップデート用のファイル名が変わっていました。

gozuk16.hatenablog.com

7.0では、VMware vSphere Hypervisor (ESXi) Offline Bundle というのを使うようです。VMware-ESXi-7.0b-16324942-depot.zipですね。

# esxcli software sources profile list -d  /vmfs/volumes/datastore/VMware-ESXi-7.0b-16324942-depot.zip
Name                          Vendor        Acceptance Level  Creation Time        Modification Time
----------------------------  ------------  ----------------  -------------------  -----------------
ESXi-7.0bs-16321839-no-tools  VMware, Inc.  PartnerSupported  2020-06-02T05:57:00  2020-06-02T05:57:00
ESXi-7.0b-16324942-standard   VMware, Inc.  PartnerSupported  2020-06-02T17:26:43  2020-06-02T17:26:43
ESXi-7.0bs-16321839-standard  VMware, Inc.  PartnerSupported  2020-06-02T05:57:00  2020-06-02T05:57:00
ESXi-7.0b-16324942-no-tools   VMware, Inc.  PartnerSupported  2020-06-02T17:26:43  2020-06-02T17:26:43

ESXi-7.0bとESXi-7.0bsの2つが入ってる…。
ここを見ると、

docs.vmware.com

名称とバージョン リリース日 カテゴリ 詳細
ESXi 7.0b - 16324942 06/16/2020 機能拡張 セキュリティとバグ修正のイメージ
ESXi 7.0bs - 16321839 06/16/2020 機能拡張 セキュリティのみのイメージ

ということなので、ESXi 7.0bを採用。

# esxcli software profile update -p ESXi-7.0b-16324942-standard -d /vmfs/volumes/datastore/VMware-ESXi-7.0b-16324942-depot.zip
Update Result
   Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective.
   Reboot Required: true
   VIBs Installed: VMW_bootbank_nvme-pcie_1.2.2.14-1vmw.700.1.25.16324942, …
   VIBs Removed: VMW_bootbank_nvme-pcie_1.2.2.13-1vmw.700.1.0.15843807, …
   VIBs Skipped: VMW_bootbank_bnxtnet_216.0.50.0-4vmw.700.1.0.15843807, …

アップデートできました!

後で気がついたんですが、VMware-ESXi-7.0U1c-17325551が出てますね…。