[MacOS] “かなキー2度押しで日本語変換”をATOKで実現 / ChatGPTに質問

[M1 Mac, Monterey 12.6.3]

Automatorで作成したJXAスクリプトの挙動が不安定なので、観念してATOK Passportのサブスクを契約しました。Basicコースは月330円です。

ATOKでは2度押し変換できるのですから自分でもなんとか作れるとは思うのですが、Appleネイティブな言語でないと厳しいような気がします。

ChatGPTとPerplexityという強力なAIを手に入れましたので、これらを駆使して何とか作れないか探ってみます。

まあMacOSの日本語入力(旧ことえり)はかなりひどい出来ですから、このままATOKに乗っかってしまうのも悪くはないでしょう。

と思いながらChatGPTに聞いてみると開発方法を即答してくれました。JapaneseInputMethodKitというツールがあるとは知りませんでした。この手のAI出現で最も打撃を食らうのはプログラミング教育業界ではないでしょうか。

先週からGoogle検索の頻度が激減していて、IT技術との関わり方が大きく変わってきています。ポップアップが邪魔なプログラミングスクールのサイトやSEO対策が優れているだけの中身の薄いWeb記事を目にすることもなく、効率的に学習できるようになるでしょう。

知的好奇心が希薄な手合いはチートに走り、意欲的な方は加速度的に力をつけていくようになる。プログラマの能力格差がますます広がっていきそうです。

えらい時代になったものです。私にとっては90年代のIT革命以上、つまり生涯最高の衝撃です。

[MacOS] Microsoft AutoUpdateを取り消す

以下にあるMicrosoft AutoUpdateファイルを削除します。

消していたはずのこのファイルが何かの拍子に復活したりするので困っています。

/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app

2023/8/14追記
新規Macにデータ移行したらExcelをMicrosoftサイトから上書きインストールしないとライセンス認証できなかった。おまけにMicrosoft AutoUpdateが復活したのですぐに削除した。Microsoftのサービスは本当に扱いづらい。勘弁して欲しい。

 [MacOS] “かなキー2回押しで日本語変換”同等機能をAppleScriptで実装 Montereyでも動作

[M1 Mac, Monterey 12.6.3]

Monterey以降ではアルファベットからのかなキー2回押し日本語変換が使えないため、自製のAppleScriptをcmd + opt + zに割り当てています。

Vanturaではうまく動作しなかったのですが、Montereyでは一応動くのでホッとしています。

use AppleScript version "2.5" --  (10.12) or later
use framework "Foundation"
use scripting additions

property NSString : a reference to current application's NSString
property NSStringTransformLatinToHiragana : a reference to current application's NSStringTransformLatinToHiragana

selectString()

set latin to the clipboard

set hiragana to alphabetToHiragana(latin)

set the clipboard to hiragana

pasteString()

henkan()

on selectString()
    tell current application
        tell application "System Events"
            keystroke "ac" using {command down}
        end tell
    end tell
end selectString

on pasteString()
    tell current application
        tell application "System Events"
            keystroke "v" using {command down}
        end tell
    end tell
end pasteString

on alphabetToHiragana(aStr)
	set aString to NSString's stringWithString:aStr
	return (aString's stringByApplyingTransform:(NSStringTransformLatinToHiragana) |reverse|:false) as string
end alphabetToHiragana

on henkan()
    tell current application
        tell application "System Events"
            keystroke "a" using {command down}
            key code 104
            key code 104
        end tell
    end tell
end henkan

[Windows] アプリexeファイルからappxファイルへの変換バッチファイル

アプリ動作確認の際、exeファイルからappxファイルへの変換手作業があまりにもわずらわしいので、バッチファイルを作成しました。

UWPディレクトリ、appxmanifest.xmlやpfxファイルなどをすでに作成している前提です。

最後にwingetコマンドでストアアプリをアンインストールし、新しいappxファイルでインストールします。

@ECHO OFF

copy "D:\code\VC++\Projects\ColorSampleJP\bin\ColorSampleJP.exe" "D:\code\VC++\temp\ColorSampleJP_UWP\ColorSampleJP-3.1.0.exe"
cd/d "D:\code\VC++\temp"
"C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x64\makepri.exe" createconfig^
    /cf priconfig.xml^
    /dq en-US^
    /Overwrite
"C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x64\makepri.exe" new^
    /pr ColorSampleJP_UWP^
    /cf priconfig.xml^
    /of ColorSampleJP_UWP^
    /Overwrite
"C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x64\makeappx.exe" pack^
    /d ColorSampleJP_UWP^
    /p ColorSampleJP-3.1.0.appx^
    /Overwrite^
    /l^
    /nv
"C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x64\signtool.exe" sign^
    /a^
    /fd SHA256^
    /f my-sample.pfx ColorSampleJP-3.1.0.appx
C:\Users\[ユーザ名]\AppData\Local\Microsoft\WindowsApps\winget.exe uninstall --name ColorSampleJP --accept-source-agreements
ColorSampleJP-3.1.0.appx

exit /b

Visual Studioにありがちな不具合

無駄な足止めをくらわないよう記録しておきます。
発覚し次第、項目を追加していきます。

1.インクルードに問題がないのに赤色下線が出現する。
これでプロジェクトのプロパティを何度も無駄に確認させられています。
赤色下線が出ていても取りあえずビルドしてみましょう。
この不具合が一番腹立たしいです。

 [MacOS] “かなキー2回押しで日本語変換”同等機能をAppleScriptで実装

[M1 Mac, Big Sur 11.6.8, Ventura 13.0]

“かなキー2回押しで日本語変換”と同等の機能をAppleScriptで実装しました。cmd + opt + zに割り当てています。ただしアルファベットの前に別種の文字があるとそれらを消してしまう仕様になっています。

このスクリプトはBig Surでは動きますが、残念ながらVenturaでは誤動作します。おそらくMontereyでもNGだと思います。

Venturaで”display dialog”コマンド(C言語におけるprintf)を使いAppleScriptの挙動をApple純正・非純正アプリにて検証してみましたが、スクリプトエディタのような純正アプリでもクリップボードへのコピーができない時がありとても不安定です。再現性がないというのは致命的です。

もはやスクリプト言語として開発環境が破綻しているようにも思えるので、AppleScriptとは距離を置くことにしました。JavaScript for Automation(JXA)についてはこれから試してみます。

それにしてもAppleScriptユーザーが率先してこのような状況を発信すべきだと思うのですが、ネットを見渡した限りほぼ皆無というのが実に不思議です。

use AppleScript version "2.5" --  (10.12) or later
use framework "Foundation"
use scripting additions

property NSString : a reference to current application's NSString
property NSStringTransformLatinToHiragana : a reference to current application's NSStringTransformLatinToHiragana

selectString()

set latin to the clipboard

set hiragana to alphabetToHiragana(latin)

set the clipboard to hiragana

pasteString()

henkan()

on selectString()
    tell current application
        tell application "System Events"
            keystroke "ac" using {command down}
        end tell
    end tell
end selectString

on pasteString()
    tell current application
        tell application "System Events"
            keystroke "v" using {command down}
        end tell
    end tell
end pasteString

on alphabetToHiragana(aStr)
	set aString to NSString's stringWithString:aStr
	return (aString's stringByApplyingTransform:(NSStringTransformLatinToHiragana) |reverse|:false) as string
end alphabetToHiragana

on henkan()
    tell current application
        tell application "System Events"
            keystroke "a" using {command down}
            key code 104
            key code 104
        end tell
    end tell
end henkan
Automator設定
システム環境設定 – キーボード – ショートカット

[MacOS] Apple Siliconで内部音声付き画面収録

[M1 Mac, Ventura 13.0]

MacOSではデフォルトで内部音声付き画面収録ができません。

“BlackHole”という仮想オーディオドライバを導入すると内部音声も収録できるようになります。このドライバのソースコードはGitHubで公開されています。今回はビルド済みバイナリをダウンロードして導入しました(メールアドレスの登録が必要)。

MacOSのユーティリティ – Audio MIDI設定で以下のように設定します。

入力(マイクの記号)はBlackHole 2chに設定し、出力(スピーカーの記号)は複数出力装置でBlackHole 2chとMacのオーディオ装置をチェックします。左下の歯車ボタンで入力と出力を適切に設定しないとうまくできないので要注意です。

2023/3/31追記
現在のBlackHoleはビルド済バイナリのダウンロードでは$5以上の寄付が必須になっている。Homebrewからもインストール出来るが、M1 Macでは30分経過したあたりから音が割れ出して最終的には無音になる。仕方ないのでIntel Macで収録している。

[MacOS] Makefileを常にVSCodeで開く : SwiftDefaultApps

SwiftDefaultAppsでテキストエディットに関連するファイルを全てVSCodeで開くように変更しました。

Applicationsタブでテキストエディットの関連ファイルとしてチェックが入っているファイルタイプについて左隣のUniform Type Identifiers(UTI)タブでVSCodeに設定しました。

これでMakefileをダウンロードする度に右クリックメニューで関連付けを変更しなくて済みます。ちなみにMakefileのUTIはpublic.dataです。テキストエディットが起動することは今後一切ありません。

拡張子のないファイルについてはこの方法で解決できます。大げさですが長年の懸案からこれで解放されそうです。

ネットにはMakefileに関するこの種の情報が見当たりませんでした。こういう細かいところでの使いづらさに耐えきれず、皆さんLinuxへ行ってしまうのでしょうか。

私もほとほとあきれているクチですが、まだしばらくMacで粘ってみます。

[MacOS] Tokyo Cabinetの削除コマンド

インストールはしたものの私には不要だったので、以下コマンドで削除しました。下4つ以外は一括削除できます。

rm /usr/local/include/tcutil.h
rm /usr/local/include/tchdb.h
rm /usr/local/include/tcbdb.h
rm /usr/local/include/tcfdb.h
rm /usr/local/include/tctdb.h
rm /usr/local/include/tcadb.h
rm /usr/local/lib/libtokyocabinet.a
rm /usr/local/lib/libtokyocabinet.so.x.y.z
rm /usr/local/lib/libtokyocabinet.so.x
rm /usr/local/lib/libtokyocabinet.so
rm /usr/local/lib/pkgconfig/tokyocabinet.pc
rm /usr/local/bin/tcutest
rm /usr/local/bin/tcumttest
rm /usr/local/bin/tcucodec
rm /usr/local/bin/tchtest
rm /usr/local/bin/tchmttest
rm /usr/local/bin/tchmgr
rm /usr/local/bin/tcbmgr
rm /usr/local/bin/tcbtest
rm /usr/local/bin/tcbmttest
rm /usr/local/bin/tcftest
rm /usr/local/bin/tcfmttest
rm /usr/local/bin/tcfmgr
rm /usr/local/bin/tcttest
rm /usr/local/bin/tctmttest
rm /usr/local/bin/tctmgr
rm /usr/local/bin/tcatest
rm /usr/local/bin/tcamttest
rm /usr/local/bin/tcamgr
sudo rm /usr/local/libexec/tcawmgr.cgi
sudo rm -r /usr/local/share/tokyocabinet/
sudo rm -r /usr/local/man/man1/
sudo rm -r /usr/local/man/man3/