2024/04/04(Thu) の近況

※本サイトは、Amazon アフィリエイト広告および Google Adsense 広告により収益を得ています。

目次

近況

2024/04/04(Thu) 18:41:15

ブログを休んでいる間に、年も明けて4月上旬になってしまいましたが、この間、色々取り組んでいました。

2024/04/03(Wed) 20:40:23
Home - InvokeAI Documentation
https://invoke-ai.github.io/InvokeAI/

2024/04/03(Wed) 20:40:43
Overview - InvokeAI Documentation
https://invoke-ai.github.io/InvokeAI/installation/INSTALLATION/

Appleシリコン Mac [ Apple M2 Proチップ搭載 Mac mini (2023) ] に、InvokeAI の Developer 版をインストールし、Stable Diffusion を試す方法をコツコツ書き溜めていました。ようやく完成したので公開しようと思ったら、大幅に変更が入って無駄になってしまいました。

没になった内容は、Homebrew の pyenv formulae を使って python 3.10.12 をインストールし、Python のインストーラー パッケージファイルから抜き出した Install Certificates.command ファイルを変更して、証明書を置き換えました。 InovekAI は、GitHub から Git コマンドで使ってダウンロードしました。また、node も nvm を使って node v20.10.0 をインストールしています。

サーバーを起動する AppleScript ファイルや Git コマンドを簡単に使用できる Ruby スクリプトなども作成したので、再利用して何とか記事にしたいのですが!

最新のInvokeAI を試したのですが、以前と比べてインストールも簡略化されています。

InvokeAI 実行画面
About InvokeAI

Reality Composer Pro の Apple Vision Pro 用 3D モデル

2024/03/02(Sat) 14:50:00
Apple Vision Proが登場 — Appleが開発した初の空間コンピュータ - Apple (日本)
https://www.apple.com/jp/newsroom/2023/06/introducing-apple-vision-pro/

2024/03/02(Sat) 14:50:42
Designing RealityKit content with Reality Composer Pro | Apple Developer Documentation
https://developer.apple.com/documentation/visionos/designing-realitykit-content-with-reality-composer-pro

▼Add assets to your project

Reality Composer Pro has a library of assets that you can use in your own apps. You can access the library by clicking the Add button (+) in the toolbar. Click the icon of the down-arrow inside a circle next to an asset to download the asset to Reality Composer Pro. When the download finishes, you can double-click or drag the asset into your project.
Reality Composer Pro の 3D ライブラリ

Apple Vision Pro が米国で発売されましたね!Reality Composer Pro には、Apple Vision Pro 用の 3D モデルが多数用意されているんですね。

2024/04/03(Wed) 20:44:11
Diorama | Apple Developer Documentation
https://developer.apple.com/documentation/visionos/diorama/

2024/04/03(Wed) 20:44:31
フリーのリグ付き初音ミクモデルデータ - Blender.jp
https://blender.jp/modules/news/index.php?page=article&storyid=2203

Dioramaのサンプルコードを参考に、フリーの初音ミク モデルデータを2体表示し、サイズ調整機能を備えたvisionOSアプリを作ってみました。VR/MRプログラミングは初めてだったため、基本を学ぶためにBlender を勉強中です。

拙作 visionOS アプリ KioMiku2

Amazon プライム感謝祭、ブラックフライデー先行セール、タイムセール 購入商品

Amazon プライム感謝祭、ブラックフライデー先行セール、タイムセールで以下の商品を購入しました。

2023/10/14(Sat) 19:59:24 注文
2023/10/17(Tue) 15:02:00 到着
Amazon | 本, ファッション, 家電から食品まで | アマゾン
https://www.amazon.co.jp/ref=nav_logo

Qwiizlab Mac mini ドッキングステーション2.5インチSATA M.2 NVMe NGFF Displayport HDMI 8k@30Hz解像度 10Gbps高速伝送 (Mac Mini 2018/2020/2023対応)
販売: Qwiizlab
¥15,499
コンディション: 新品

2023/11/24(Fri) 11:23:06 注文
2023/11/26(Sun) 19:13:00 到着
Amazon | 本, ファッション, 家電から食品まで | アマゾン
https://www.amazon.co.jp/ref=nav_logo

UGREEN M.2 SSD 外付けケース
SATA NVME両対応 M.2 SSD ケース
USB3.2 Gen2接続 UASP対応
10Gbps高速転送 アルミ ssd m.2ヶ
ース 2230/2242/2260/2280 M
key/B+M key SSD対応 シリコンラ
バー付き【USB A-C&USB C-C 2本
ケーブル付き】
ベストセラー1位
カテゴリー:エン・・・
24%OFF
ブラックフライデー
価格 ¥2,498 
過去価格:¥3,299
販売:
HONG KONG UGREEN LIMITED
2023/11/22(Wed) 13:40:00 注文
2023/11/23(Thu) 10:02:00 到着
Amazon | 本, ファッション, 家電から食品まで | アマゾン
https://www.amazon.co.jp/ref=nav_logo

キオクシア KIOXIA 内蔵 SSD
2TB NVMe M.2 Type 2280
PCle Gen 4.0x4(最大読込:7,300MB/s) 国産BiCS FLASH
TLC 搭載 5年保証 EXCERIA PRO SSD-CK2.0N4P/N 【国内正規代理店品】
15%OFF
ブラックフライデー先行セール
価格 ¥15,280 prime
過去価格:¥17,980
Amazon Japan G.K.から発送
販売元 バッファローダイレクト

商品の小計:		¥15,280
配送料・手数料:	¥0
合計:			¥15,280
ポイント利用:		-¥41
ご請求額:		¥15,239
獲得ポイント:		+306ポイント
>内訳
2023/12/24(Sun) 11:26:19 注文
2023/12/25(Mon) 11:43:00 到着
Amazon | 本, ファッション, 家電から食品まで | アマゾン
https://www.amazon.co.jp/ref=nav_logo

ORICO M.2 SSD 外付けケース M2 SSD ケース NVMe / SATA 両対応 USB3.2 Gen2接続 10Gbps高速転送 UASP対応 アルミケース ssd m.2 ケース 2230/2242/2260/2280 M key/B+M key SSD対応 M2PVM
ORICOのストアを表示
4.3 5つ星のうち4.3    2,641個の評価
Amazon
おすすめ
過去1か月で1000点以上購入されました
タイムセール
-25% ¥2,024 税込
過去価格: ¥2,699  
ポイント: 20pt  (1%)  詳細はこちら

注文内容
商品の小計:	¥2,024
配送料・手数料:	¥0
合計:	¥2,024
ポイント利用:	-¥74
ご請求額:	¥1,950
獲得ポイント:
+20ポイント
内訳
2023/12/17(Sun) 08:42:02 注文
2023/12/18(Mon) 13:09:00 到着
・Amazon | 本, ファッション, 家電から食品まで | アマゾン
https://www.amazon.co.jp/ref=nav_logo

パナソニック(Panasonic) 【Amazon.co.jp限定】 パナソニック エネループ プロハイエンドモデル(大容量モデル) [最小容量2500mAh/くり返し回数150回] 単3形 充電池 4本パック eneloop pro BK-3HCD/4HA
パナソニック(Panasonic)のストアを表示
4.4 5つ星のうち4.4    216個の評価
¥2,247 税込
数量: 1
販売:アマゾンジャパン合同会社
22pt (1%)
家電PCアクセサリクーポンキャンペーン
家電・PCアクセサリークーポンキャンペーン
Amazon
おすすめ
過去1か月で3000点以上購入されました
翌日配送
ポイント: 22pt  (1%)  詳細はこちら

【純正品】Xbox ワイヤレス コントローラー (カーボン ブラック)
マイクロソフトのストアを表示
プラットフォーム : Xbox Series X | CEROレーティング: 全年齢対象 
4.3 5つ星のうち4.3    5,344個の評価
ベストセラー1位 - カテゴリ Xbox Series X & S 用周辺機器・アクセサリ
過去1か月で3000点以上購入されました
-20% ¥5,173 税込
数量: 1
販売:アマゾンジャパン合同会社
52pt (1%)
参考価格: ¥6,480  
翌日配送
ポイント: 52pt  (1%)  詳細はこちら

注文内容

商品の小計:	¥7,420
配送料・手数料:	¥0
合計:	¥7,420
ポイント利用:	-¥25
ご請求額:	¥7,395
獲得ポイント:
+74ポイント
内訳

キオクシア KIOXIA 内蔵 SSD 2TB 、Qwiizlab Mac mini ドッキングステーション、UGREEN M.2 SSD 外付けケース、ORICO M.2 SSD 外付けケース

キオクシア KIOXIA 内蔵 SSD 2TB を Qwiizlab Mac mini ドッキングステーション、UGREEN M.2 SSD 外付けケース、ORICO M.2 SSD 外付けケースそれぞれ装着して試しました。外部 SSD としてはどれも問題ないのですが、起動ディスクとして利用する場合には、macOS Sonoma 14.2.1 のインストールに失敗したり、起動しなかったりと不安定なため、使用は諦めました。

2024/03/16(Sat) 18:16:17
外付けのストレージデバイスを Mac の起動ディスクとして使用する - Apple サポート (日本)
https://support.apple.com/ja-jp/111336

後で気付いたのですが、上記サイトにあるように、外付けのストレージデバイスを Mac の起動ディスクとして使用する場合、Mac mini (2023) の背面ポートで一番左にある USB-C ポート以外の USB-C ポートを使用する必要があります。さらにネットで調べると起動ディスク作成には、Thunderbolt SSD ケースが必要なようです。

キオクシア KIOXIA 内蔵 SSD 2TB は、Qwiizlab Mac mini ドッキングステーションに装着して、2つのボリュームを作成しました。1つは Time Machine 用に 1TB に制限して使っています。

Xbox ワイヤレス コントローラー

2023/02/10(Fri) 08:28:45 購入
Mac App Store
BIOHAZARD VILLAGE
販売元
CAPCOM Co.,Ltd
サイズ
34.1GB
カテゴリ
アクション
¥5000

2023/12/07(Thu) 18:38:31 購入
Mac App Store
Stray
販売元
Annapurna Interactive
サイズ
8.16 GB
カテゴリ
アドベンチャー
¥4000

2024/01/24(Wed) 21:45:33 予約注文
2024年1月31日 リリース予定
Mac App Store
DEATH STRANDING DIRECTOR'S CUT
アクション
デベロッパ
505 Games (US), Inc.
¥3000

Mac Store にも、ゲームが揃って来ました。Nintendo Switch と Mac mini (2023) の間で Nintendo Switch Proコントローラーを再接続するのも面倒なので、【純正品】Xbox ワイヤレス コントローラー (カーボン ブラック) を購入しました。単3形電池 (エネループ) の向きを間違えて戸惑いましたが、Xbox ボタンを押せば Launchpad のゲームフォルダが開き、ゲームも簡単に起動できるので便利です。ただし、A、B ボタンの位置が逆なのは、なかなか慣れないですが!

【ZUIKI】X68000 Z PRODUCT EDITION BLACK MODEL (スターターパック) と XEiJ (X68000 Emulator in Java)

2023/06/09(Fri) 14:13:09 予約
2023/09/28(Thu) 10:30:00 到着
Amazon | 本, ファッション, 家電から食品まで | アマゾン
https://www.amazon.co.jp/ref=nav_logo

お届け予定日: 2023年9月29日 - 2023年9月30日
発送元: 瑞起直販(ZUIKI)
【ZUIKI】X68000 Z PRODUCT EDITION BLACK MODEL (スターターパック)
¥29,535
数量:
1
数量: 1
販売:瑞起直販(ZUIKI)
Amazonプライムの対象外です。(詳細)
ダブルポイント
ギフトオプションはありません

注文内容
商品の小計:	¥29,535
配送料・手数料:	¥0
合計:	¥29,535
ポイント利用:	-¥12
ご請求額:	¥29,523

2023/08/13(Sun) 12:56:05 予約
2023/09/29(Fri) 10:29:00 到着

Amazon | 本, ファッション, 家電から食品まで | アマゾン
https://www.amazon.co.jp/ref=nav_logo

お届け予定日: 2023年9月29日 - 2023年9月30日
発送元: 瑞起直販(ZUIKI)
【ZUIKI】X68000 Z ACアダプター65W(USB-TypeC)
¥7,480
数量:
1
数量: 1
販売:瑞起直販(ZUIKI)
75pt (1%)
Amazonプライムの対象外です。(詳細)

注文内容
商品の小計:	¥7,480
配送料・手数料:	¥0
ご請求額:	¥7,480
獲得ポイント:
+75ポイント
内訳
2024/03/17(Sun) 22:15:05
ZUIKI STORE
https://store.zuiki.com/
2024/03/02(Sat) 15:06:36
ログイン - ZUIKI コミュニティ
https://dev.zuiki.com/project-z/community/login?redirect=/post/detail/211

2024/03/02(Sat) 15:07:08
XEiJ (X68000 Emulator in Java)
https://stdkmd.net/xeij/

2024/03/02(Sat) 15:07:29
激光電脳倶楽部 Vol.1~7 : 満開製作所 : Free Download, Borrow, and Streaming : Internet Archive
https://archive.org/details/gekiden1-7
XEiJ の実行画面

【ZUIKI】X68000 Z PRODUCT EDITION BLACK MODEL (スターターパック) が届きました。早速、Z CLUB で製品登録を行い、1GB の SCSI HDD イメージをダウンロードして、Mac mini (2023) 上の XEiJ (X68000 Emulator in Java) を使って、SCSI HDD イメージに SX-Window と XC 環境を構築しました。

電脳倶楽部のデータをInternet Archive から ターミナルの curl コマンドを使ってダウンロードしました。YouTube で SX-Window、パソコンサンデーの動画を見ていると当時の自分の環境とは違って色々なことが出来るんですね!

Docker Compose を使って WordPress、MySQL、phpMyAdmin、WP-CLI のローカル環境の構築

2023/03/28(Tue) 19:31:54
以前、知人から WordPress の使い方を教えて欲しいと相談があったので、さくらインターネットに WordPress をインストールしてブログを始めました。その時、知人がカスタムドメインを利用していました。お名前.com で .com ドメインの1年間の更新料金を調べてみると1287円 ~ と安いのに驚きました。1個目の登録料金は0円なので 2022/08/06(Sat) に購入してみました。そのまま塩漬けにしていたのですが、試しに iCloud+ のカスタムメールドメインに設定してみました。次回のブログに書きたいと思います。

お名前.com に500円のクーポンを貰ったので、.jp ドメインを登録してみました。お名前.com にログインして、.jp ドメインの1年間の更新料金を調べてみると 3686円でした。予想した価格と違ったので、自動更新は解除しています。

.com ドメインは所有したいので、下記のように1年間更新してみました。
.net ドメインにも興味があったので、更に登録してみました。.com ドメインを更新したおかげか、登録料は無料でした。1年間の更新料金も妥当なので保持するつもりです。

また、メールとサイトのドメインを分離して運用しようと思っています。

2023/03/28(Tue) 19:33:04
お名前.com サイトに表示されている1年間の更新料金目安

更新料金
.com
1,287円~

.net
1,507円~

.jp
1,276円~

2023/03/28(Tue) 19:33:04
実際の1年間のドメイン更新料金

kyoshiaki.com
ドメイン更新1年		1,408 円 (税込)
Whois情報公開代行		0円 (税込)
サービス維持調整費 ※	253 円 (税込)
お支払い金額		1,661 円 (税込)

kyoshiaki.net
ドメイン更新1年		1,628 円 (税込)
Whois情報公開代行		0円 (税込)
サービス維持調整費 ※	293 円 (税込)
お支払い金額		1,921 円 (税込)

kyoshiaki.jp
ドメイン更新1年		3,124 円 (税込)
Whois情報公開代行		0円 (税込)
サービス維持調整費 ※	562 円 (税込)
お支払い金額		3,686 円 (税込)

さくらインターネットに公開している WordPress やホームページを購入したカスタムドメインに変更しようと模索していました。

一度公開した WordPress サイトのドメインを変更することは、難易度が高そうですが、さくらインターネットの WordPress サイトを Docker 上に再現し、WP-CLI を使ってデータベースを書き換えてみた結果、上手くいきそうです。

大惨事になる可能性もありますが!

2023/03/28(Tue) 19:35:06
kyoshiaki/docker-compose-wordpress: Docker Compose を使って WordPress、MySQL、phpMyAdmin、WP-CLI のローカル環境の構築
https://github.com/kyoshiaki/docker-compose-wordpress

2023/03/28(Tue) 19:35:45
WP-CLI | WP-CLI
https://wp-cli.org/

ドメイン変更の検証のために、上記 URL で公開している docker-compose.yml に WP-CLI を下記 URL を参考に追加してみました。

2023/03/28(Tue) 19:36:40
WP-CLIのDocker公式イメージ「wordpress:cli」の使い方 | SIOS Tech. Lab
https://tech-lab.sios.jp/archives/25369

M2 Pro Mac mini (2023) でコマンド docker-compose up -d を実行すると下記エラーが出るので、

❯ docker-compose up -d

[+] Running 0/1
 ⠙ db Pulling                                                                                                                                                                  3.1s
no matching manifest for linux/arm64/v8 in the manifest list entries

docker-compose.yml ファイルの image: mysql:5.7 を image: mysql:latest に変更しました。

===== docker-compose.yml =====

version: '3.3'

services:
  db:
    image: mysql:5.7

↓

version: '3.3'

services:                                                             
  db:                                                                 
    image: mysql:latest    

通常、WP-CLI をインストールし、WordPress のデーターベースを wp コマンドを使って変更することになります。

さくらインターネットでの場合、WP-CLI コマンド wp はあらかじめインストールされています。

さくらインターネットに ssh ログインし、WordPress のディレクトリに移動した後、下記のように wp コマンドを実行するだけです。

下記例、wp db search kyoshiaki.sakura.ne.jp コマンドは、データーベースに、文字列 kyoshiaki.sakura.ne.jpが含まれるレコードを表示しています。

=== ssh ===

% cd wp

% pwd
/xxxx/xxxx/wp

% ls
index.php               wp-cron.php
license.txt             wp-includes
readme.html             wp-links-opml.php
wp-activate.php         wp-load.php
wp-admin                wp-login.php
wp-blog-header.php      wp-mail.php
wp-cli.local.yml        wp-settings.php
wp-comments-post.php    wp-signup.php
wp-config-sample.php    wp-trackback.php
wp-config.php           xmlrpc.php
wp-content

% wp db search kyoshiaki.sakura.ne.jp

wpxxxxxacomments:comment_author_url
8:http://kyoshiaki.sakura.ne.jp/osx/index.html
wpxxxxxaoptions:option_value
1:https://kyoshiaki.sakura.ne.jp/wp
wpxxxxxaoptions:option_value
2:https://kyoshiaki.sakura.ne.jp/wp
wpxxxxxaoptions:option_value
408:}}s:16:"background_image";s:84:"https://kyoshiaki.sakura.ne.jp/wp/wp-content/uploads/2020/12/advent-57
wpxxxxxaoptions:option_value
410:;s:17:"top_slide_image_1";s:91:"https://kyoshiaki.sakura.ne.jp/wp/wp-content/themes/lightning/assets/i [...] ;s:17:"top_slide_image_2";s:91:"https://kyoshiaki.sakura.ne.jp/wp/wp-content/themes/lightning/assets/i [...] g";s:15:"top_slide_url_2";s:33:"https://kyoshiaki.sakura.ne.jp/wp";s:22:"top_slide_text_title_2";s:18:
wpxxxxxaoptions:option_value

︙

wpxxxxxaposts:guid
1322:https://kyoshiaki.sakura.ne.jp/wp/?p=1322
wpxxxxxaposts:guid
1323:https://kyoshiaki.sakura.ne.jp/wp/?p=1323
wpxxxxxaposts:guid
1324:https://kyoshiaki.sakura.ne.jp/jwp/?p=1324
2023/03/28(Tue) 19:39:17
kyoshiaki/docker-compose-wordpress: Docker Compose を使って WordPress、MySQL、phpMyAdmin、WP-CLI のローカル環境の構築
https://github.com/kyoshiaki/docker-compose-wordpress

上記に公開した docker-compose.yml の場合、

2023/03/28(Tue) 19:40:40
wordpress - Official Image | Docker Hub
https://hub.docker.com/_/wordpress

2023/03/28(Tue) 19:41:14
wordpress/Dockerfile at 809519cc86bee0d6c7f2743976a850267983e2c2 · docker-library/wordpress
https://github.com/docker-library/wordpress/blob/809519cc86bee0d6c7f2743976a850267983e2c2/cli/php8.2/alpine/Dockerfile

ENTRYPOINT ["docker-entrypoint.sh"]
USER www-data
CMD ["wp", "shell"]

WP-CLI コンテナは、実行されると上記 Dockerfile の CMD [“wp”, “shell”] より、wp コマンドをシェルモードで起動します。

CMD 命令の詳細は、下記ページを参考にしてください。

2023/03/28(Tue) 19:42:07
Dockerfile reference
https://docs.docker.com/engine/reference/builder/

CMD

The CMD instruction has three forms:

・CMD [“executable”,”param1″,”param2″] (exec form, this is the preferred form)
・CMD [“param1″,”param2”] (as default parameters to ENTRYPOINT)
・CMD command param1 param2 (shell form)
There can only be one CMD instruction in a Dockerfile. If you list more than one CMD then only the last CMD will take effect.

The main purpose of a CMD is to provide defaults for an executing container. These defaults can include an executable, or they can omit the executable, in which case you must specify an ENTRYPOINT instruction as well.

If CMD is used to provide default arguments for the ENTRYPOINT instruction, both the CMD and ENTRYPOINT instructions should be specified with the JSON array format.

CMD
=== docker-compose.yml ===

version: '3.3' 

services:
  db:
    image: mysql:latest
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: somewordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    ports:
      - "8000:80"

︙

 cli:
    image: wordpress:cli
    container_name: cli
    volumes_from: 
      - wordpress
    depends_on:
      - db
      - wordpress
    command: "--info"
    user: xfs
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress
      WORDPRESS_TABLE_PREFIX: wp_

volumes:
  db_data: {}

デフォルトだと上記 docker-compose.yml の cli コンテナの command: “–info” より、シェルモードで立ち上がっている wp に引数 –info が渡されます。

データベースを書き換えるには、docker-compose コマンドで cli コンテナを削除して、wp コマンドの引数を渡し、cli コンテナを再作成して起動させます。

❯ docker-compose run --rm cli search-replace 'Hello world' 'Welcome WordPress' 

上記 docker-compose コマンドを実行すると下記結果より、データベースのテーブル wp_posts、カラム post_title の ‘Hello world’ の文字列が1箇所 ‘Welcome WordPress’ に変更されています。

❯ docker-compose run --rm cli search-replace 'Hello world' 'Welcome WordPress' 

[+] Running 2/0
 ⠿ Container docker-compose-wordpress-db-1         Running                                                                                                                     0.0s
 ⠿ Container docker-compose-wordpress-wordpress-1  Running                                                                                                                     0.0s
+------------------+-----------------------+--------------+------+
| Table            | Column                | Replacements | Type |
+------------------+-----------------------+--------------+------+
| wp_commentmeta   | meta_key              | 0            | SQL  |
| wp_commentmeta   | meta_value            | 0            | SQL  |
| wp_comments      | comment_author        | 0            | SQL  |
︙
| wp_posts         | post_title            | 1            | SQL  |
︙
| wp_users         | display_name          | 0            | SQL  |
+------------------+-----------------------+--------------+------+
Success: Made 1 replacement.

WP-CLI コマンドの詳細については、下記ページの ‘お手軽 Docker コマンド起動 Ruby スクリプト docker.rb の WP-CLI コマンド’ を参照してください。

2023/03/28(Tue) 19:46:11
kyoshiaki/docker-compose-wordpress: Docker Compose を使って WordPress、MySQL、phpMyAdmin、WP-CLI のローカル環境の構築
https://github.com/kyoshiaki/docker-compose-wordpress#readme

2023/03/28(Tue) 19:46:34
kyoshiaki/docker-compose-wordpress: Docker Compose を使って WordPress、MySQL、phpMyAdmin、WP-CLI のローカル環境の構築
https://github.com/kyoshiaki/docker-compose-wordpress#%E3%81%8A%E6%89%8B%E8%BB%BD-docker-%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E8%B5%B7%E5%8B%95-ruby-%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88-dockerrb-%E3%81%AE-wp-cli-%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89
2023/03/28(Tue) 19:47:01
kyoshiaki/docker-compose-wordpress: Docker Compose を使って WordPress、MySQL、phpMyAdmin、WP-CLI のローカル環境の構築
https://github.com/kyoshiaki/docker-compose-wordpress

上記の docker-compose.yml とお手軽 Docker コマンド起動 Ruby スクリプト docker.rb を利用すれば、気軽にデータベースを変更できます。
失敗しても、docker-compose down を実行した後、忘れずに Volume を docker.rb の 6番、docker volume rm docker-compose-wordpress_db_data を使用して削除すれば、docker-compose up -d で何度でも WordPress のインストールから、やり直せます。

Mac で Karabiner-Elements を使ってファンクションキーにショートカットキー Ctrl + C を割り当てる方法

ロジクール マウス MX Master 3 を愛用しているのですが、macOS Monterey バージョン 12.1 にしてから、ホイールの挙動がおかしいので、純正マウスに戻すことにしました。

但し、アプリ毎に MX Master 3 の Back/forward ボタンにキーを割り当てています。

特に ターミナルで Back/forward ボタンにショートカットキー Ctrl + C を割り当てていました。

これがないと不便なので、カスタムキーボードなどを導入しようかと思ったのですが、キーボードのファンクションキーに割り当ててみることにしました。

2022/03/21(Mon) 12:38:36
Macでアプリケーションのキーボードショートカットを作成する - Apple サポート (日本)
https://support.apple.com/ja-jp/guide/mac-help/mchlp2271/12.0/mac/12.0

macOS 純正の機能では、アプリケーションのメニュータイトルをショートカットキーに割り当てることができます。

欲しい機能は、ファンクションキー f1 を押すと Ctrl + C を押したことになる動作です。即ち、特定のキーを押すと違うキー操作を実行するようにしたいのですが、アプリケーションのメニュータイトルをショートカットキーに割り当てることでは実現できません。

ちょうど US 配列キーボードを使っているので、Karabiner-Elements にお世話になっていました。

2022/03/21(Mon) 12:37:23
Karabiner-Elements
https://karabiner-elements.pqrs.org/
2022/03/21(Mon) 12:40:22
Use more complex rules | Karabiner-Elements
https://karabiner-elements.pqrs.org/docs/manual/configuration/configure-complex-modifications/

2022/03/21(Mon) 12:40:59
Karabiner-Elements complex_modifications rules
https://ke-complex-modifications.pqrs.org/

Table of Contents
	▼International (Language Specific)
		▼For Japanese (日本語環境向けの設定) (rev 6)
			▼コマンドキーを単体で押したときに、英数・かなキーを送信する。(左コマンドキーは英数、右コマンドキーはかな) (rev 3)

2022/03/21(Mon) 12:41:31
JSON ソース
https://ke-complex-modifications.pqrs.org/json/japanese.json

普段は、上記 Complex Modifications サイトから日本語キーバインド設定ファイル(左コマンドキーは英数、右コマンドキーはかな)をダウンロードして、英数が左コマンドキーに設定されている機能を左オプションキーに変更して使っています。

ファンクションキーの設定は、 /アプリケーション/Karabiner-Elements.app の Function keys タブで変更できますが、カスタマイズしたいので、下記 Complex Modifications サイトから

2022/03/21(Mon) 12:43:29
Karabiner-Elements complex_modifications rules
https://ke-complex-modifications.pqrs.org/

Table of Contents
	▼Modifier Keys
		▼Change Command_R Key (Right Command)
			▼Post Escape if Command_R is pressed alone.
2022/03/21(Mon) 12:44:16
JSON ソース
https://ke-complex-modifications.pqrs.org/json/change_command_l.json

Post Escape if Command_R is pressed alone. を雛形にして、ファンクションキー f1 を入力すると Ctrl + C に変更する設定ファイルを作成してみました。

2022/03/21(Mon) 13:38:48
KeyBinding.zip
https://kyoshiaki.sakura.ne.jp/blog/KeyBinding.zip

良かったら、上記リンクからダウンロードして利用してください。

使用方法は、ダウンロードした KeyBinding.zip ファイルを Finder で展開し、下記の作成されたファイルから

KeyBinding
|--ReadMe.txt
|--control_break_keybindings.json
|--bathyscaphe_and_terminal_key_bindings.json
|--japanese_option_eisuu_key_bindings.json
|--open_complex_modifications.sh
|--open_complex_modifications.scpt
|--Mac で Karabiner-Elements を使ってファンクションキーにショートカットキー Ctrl + C を割り当てる方法 – KOYAMA Yoshiaki のブログ – WordPres….webloc
|--Mac で Karabiner-Elements を使ってファンクションキーにショートカットキー Ctrl + C を割り当てる方法 – KOYAMA Yoshiaki のブログ – WordPres.url
|--LICENSE.txt

自分が使用したい拡張子が json の設定ファイルを $HOME/.config/karabiner/assets/complex_modifications/ フォルダにコピーしてください。

ターミナルで KeyBinding.zip を展開したいフォルダに移動し、

2022/03/21(Mon) 13:40:59
$ cd KeyBinding
$ ./open_complex_modifications.sh

上記のように open_complex_modifications.sh を実行すると $HOME/.config/karabiner/assets/complex_modifications/ フォルダをFinder で開くことができます。

また、KeyBinding.zip ファイルを展開して作成された KeyBinding フォルダに含まれるアップルスクリプト open_complex_modifications.scpt ファイルをダブルクリックするとスクリプトエディタが開くので、右上の実行ボタン (▶ アイコン) をクリックすると同じく $HOME/.config/karabiner/assets/complex_modifications/ フォルダを Finder で表示できます。

ファンクションキー f1 にショートカットキーCtrl + C を割り当てたいなら、control_break_keybindings.json ファイルを $HOME/.config/karabiner/assets/complex_modifications/ フォルダにコピーしてください。

2022/03/21(Mon) 13:41:48
Use more complex rules | Karabiner-Elements
https://karabiner-elements.pqrs.org/docs/manual/configuration/configure-complex-modifications/

後は、上記サイトのように /アプリケーション/Karabiner-Elements.app を起動し、下図のように Complex Modifications タブ > Rules タブ > Add rule ボタンをクリックしてください。

Add rule

下図から “無条件に f1 キーを押すと Control + C を送信する。(rev 0)” の ‘+ Enable’ ボタンをクリックして有効にしてください。

Enable
“無条件に f1 キーを押すと Control + C を送信する。(rev 0)”

上図のように表示されれば、これで f1 キーの入力を Ctrl + C に変更できます。

しかし、自分の好みのショートカットキーを登録したくなると思います。

2022/03/21(Mon) 13:46:25
External JSON generators | Karabiner-Elements
https://karabiner-elements.pqrs.org/docs/json/external-json-generators/

2022/03/21(Mon) 13:46:50
yqrashawn/GokuRakuJoudo: config karabiner with ease
https://github.com/yqrashawn/GokuRakuJoudo#usage

2022/03/21(Mon) 13:47:16
Goku は、拡張子 clj より Closure で作られている。
GokuRakuJoudo/tutorial.md at master · yqrashawn/GokuRakuJoudo
https://github.com/yqrashawn/GokuRakuJoudo/blob/master/tutorial.md

上記ドキュメントを読むと自分で設定ファイルを作るのは、敷居が高いと思うかもしれませんが、

control_break_keybindings.json

上記ファイルのように既存の JSON 形式 設定ファイルのキーコード (key_code) や修飾キー (modifiers) の文字列を変更すれば簡単に実現できます。

2022/03/21(Mon) 13:49:28
Visual Studio Code - Code Editing. Redefined
https://code.visualstudio.com/

2022/03/21(Mon) 13:49:57
JSON editing in Visual Studio Code
https://code.visualstudio.com/docs/languages/json

Visual Studio Code で JSON 形式 設定ファイルを開けば、構文チェックもしてくれます。

設定するキー文字列も、 /アプリケーション/Karabiner-EventViewer.app を起動し、確認したいキーを押せば表示してくれます。

2022/03/21(Mon) 13:51:08
快適キーボード操作のためのキーカスタマイズ ~Mac編~ | さくらのナレッジ
https://knowledge.sakura.ad.jp/23355/

上記サイトのキーバインド設定 JSON ファイルの解説が一番参考になりました。
特に mandatory、optional の違いは、ここで理解しました。

mandatory は、キーの組み合わせを指定し 、この組み合わせが入力されたときに ”to” の処理を行う。
optional に指定したキーは、”to” の時にもキー入力が引き継がれます。

私自身、

2022/03/21(Mon) 13:52:33
Karabiner-Elements complex_modifications rules
https://ke-complex-modifications.pqrs.org/

Table of Contents
	▼Emulation Modes
		▼Emacs key bindings (rev 12)
			▼Emacs key bindings [C-x key strokes] (rev 2)

2022/03/21(Mon) 13:53:00
JSON ソース
https://ke-complex-modifications.pqrs.org/json/emacs_key_bindings.json

のソースを読んで、理解を深めました。変数を使ってショートキーを押した数を数えたり、特定のアプリだけ動作する方法を学びました。

最後に JSON 設定ファイルを作成するのに必要なドキュメントの箇所をまとめておきます。

目次

JSON 設定ファイル書式

2022/03/21(Mon) 13:56:11
complex_modifications manipulator definition | Karabiner-Elements
https://karabiner-elements.pqrs.org/docs/json/complex-modifications-manipulator-definition/
"manipulators": [
    {
        "type": "basic",
        "from": {...},
        "to": [...],
        "to_if_alone": [...],
        "to_if_held_down": [...],
        "to_after_key_up": [...],
        "to_delayed_action": {
            "to_if_invoked": [...],
            "to_if_canceled": [...],
        },
        "conditions": [...],
        "parameters": {...},
        "description": "Optional description for human"
    },
    ...
]
Name	Required	Description
type				Required	"basic" is specified
from				Required	The name of key code, consumer key code or pointing button which you want to change
to				Optional	Events which are sent when you press from key
to_if_alone		Optional	Events which are sent when you press from key alone
to_if_held_down	Optional	Events which are sent when you hold down from key
to_after_key_up	Optional	Events which are sent after you release from key
to_delayed_action	Optional	Events which are sent after 500 milliseconds at you press from key
conditions		Optional	Manipulator is applied only if condition is matched (e.g., the frontmost application)
parameters		Optional	Override parameters such as to_if_alone_timeout_milliseconds
description		Optional	A human-readable comment
2022/03/21(Mon) 13:57:49
to_if_alone | Karabiner-Elements
https://karabiner-elements.pqrs.org/docs/json/complex-modifications-manipulator-definition/to-if-alone/

2022/03/21(Mon) 13:58:14
to_if_held_down | Karabiner-Elements
https://karabiner-elements.pqrs.org/docs/json/complex-modifications-manipulator-definition/to-if-held-down/

2022/03/21(Mon) 13:58:35
from.any | Karabiner-Elements
https://karabiner-elements.pqrs.org/docs/json/complex-modifications-manipulator-definition/from/any/

Conditions

2022/03/21(Mon) 13:59:55
Conditions | Karabiner-Elements
https://karabiner-elements.pqrs.org/docs/json/complex-modifications-manipulator-definition/conditions/
Conditions
frontmost_application_if, frontmost_application_unless
device_if, device_unless
keyboard_type_if, keyboard_type_unless
input_source_if, input_source_unless
variable_if, variable_unless
event_changed_if, event_changed_unless
2022/03/21(Mon) 14:01:04
frontmost_application_if, frontmost_application_unless | Karabiner-Elements
https://karabiner-elements.pqrs.org/docs/json/complex-modifications-manipulator-definition/conditions/frontmost-application/
frontmost_application_if, frontmost_application_unless
Change an event if/unless the frontmost application is the specified application.

{
    "type": "frontmost_application_if",
    "bundle_identifiers": [
        bundle identifier regex,
        bundle identifier regex,
        ...
    ],
    "file_paths": [
        file path regex,
        file path regex,
        ...
    ]
}
Name	Required	Description
type	Required	"frontmost_application_if" or "frontmost_application_unless"
bundle_identifiers	Optional	Bundle identifier regexs such as ["^com\\.apple\\.Terminal$", "^com\\.googlecode\\.iterm2$"]
file_paths	Optional	File path regexs such as ["/Finder$"]
description	Optional	A human-readable comment
Multiple

Event

2022/03/21(Mon) 14:02:38
from event definition | Karabiner-Elements
https://karabiner-elements.pqrs.org/docs/json/complex-modifications-manipulator-definition/from/
from event definition
{
    "from": {
        "key_code": "The name of key_code",
        "consumer_key_code": "The name of consumer_key_code",
        "pointing_button": "The name of pointing_button",
        "any": "key_code or consumer_key_code or pointing_button",

        "modifiers": {
            "mandatory": [
                modifier,
                modifier,
                ...
            ],
            "optional": [
                modifier,
                modifier,
                ...
            ]
        },

        "simultaneous": [
            {
                "key_code, consumer_key_code, pointing_button or any"
            },
            {
                "key_code, consumer_key_code, pointing_button or any"
            },
            ...
        ],
        "simultaneous_options": {
            "detect_key_down_uninterruptedly": false,
            "key_down_order": "A restriction of input events order",
            "key_up_order": "A restriction of input events order",
            "key_up_when": "When key_up events are posted",
            "to_after_key_up": [
                to event definition,
                to event definition,
                ...
            ]
        }
    }
}
Name	Required	Description
key_code				Optional	Key code which you want to change
consumer_key_code		Optional	Consumer key code (media key code) which you want to change
pointing_button		Optional	Pointing button name which you want to change
any					Optional	"any": "key_code", "any": "consumer_key_code" or "any": "pointing_button"
modifiers				Optional	Specify mandatory and optional modifiers (e.g., “change control-h to delete”)
simultaneous			Optional	Specify multiple events which are pressed simultaneously
simultaneous_options	Optional	Options for simultaneous

Note
key_code, consumer_key_code, pointing_button and any are exclusive.
You have to specify one of them.

Caution
Be careful using "pointing_button": "button1" and "any": "pointing_button".
You may lose the left click button and system will be unusable.

Bundle identifier の探し方

Finder で Bundle identifier を確認したいアプリケーション (例として ‘ターミナル.app ‘ を使って解説します。) を右クリック (Ctrl + 左クリック) し

メニュー

メニュー > パッケージの内容を表示 を選択

Contents

表示された Contents フォルダをダブルクリックして開く。

Info.plist

Finder 上で Info.plist ファイルをダブルクリックする。 Xcode をインストールしている場合、Xcode の property list editor で表示されます。

Xcode の property list editor

表示されたウインドウの Bundle identifier の横に表示された文字列 com.apple.Terminal が目的の値です。

Bundle identifier を raw で表示するには、

Raw Keys & Values

上図のように property list editor 内を右クリック (Ctrl + 左クリック) して、メニュー > Raw Keys & Values を選択すれば表示されます。

raw で表示された状態

詳細は、少し古いですが下記ページを参照してください。間違って値を変更しないように気を付けてください。

2022/03/21(Mon) 14:09:42
Edit property lists - Xcode Help
https://help.apple.com/xcode/mac/11.4/#/dev3f399a2a6

2022/03/21(Mon) 14:10:12
Xcode Help
https://help.apple.com/xcode/mac/11.4/