0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「DeskflowでMacの英数キーをWindowsでもMac風に使う方法」をperplexityと書く過程のすべて公開してみる

Posted at

記事投稿までのperplexityとのチャット履歴をすべてを公開してみます。
元の記事はこちら

所管として、chatGPTの方が意図したとおりの記事を書いてくれた。
以下チャット履歴全文


依頼

Deskflowでmacの英数キーが使えて喜んでたら二度押しで日本語モードになって残念だったので、macと同じ動きに合わせた件  
という記事を書いて
内容は、
Deskflowでmacをサーバー、winをクライアントとした時
「英数キー」がどういうキーとして送信しているか調べたら、「半角・全角キー」だったので
AutoHotkeyで「半角・全角キー」を「IMEオン・オフ」のトグル動作から「IMEオフ」に固定したらmacと同じ操作感になったという話
構成は、
最初にコンピュータに詳しくない人向けの解決策
副作用としてwinのキーボード操作で「半角・全角キー」が「IMEオフ」に代わることも説明して
次に、解決策の解説
投稿先はqiita

回答

以下は、ご要望の内容に沿った記事案です。
タイトル例:「DeskflowでMacの英数キーをPCで再現!AutoHotkeyでWindowsの「半角・全角キー」をMac風に使う方法」

はじめに

Deskflowを使ってMacをサーバー、Windowsをクライアントとして操作していると、Macの「英数キー」がWindows側でどう扱われているか気になりませんか?
実は、Macの「英数キー」はWindowsでは「半角・全角キー」として送信されています。でも、Windowsでは「半角・全角キー」を押すとIMEのオン・オフが切り替わってしまい、Macと同じ操作感にはなりません。
この記事では、コンピュータに詳しくない人向けの簡単な解決策と、その解説をまとめます。

簡単な解決策(初心者向け)

Macの「英数キー」は、Windowsでは「半角・全角キー」として認識されています。
しかし、Windows標準の動作では「半角・全角キー」を押すたびにIME(日本語入力システム)のオン・オフが切り替わってしまいます。
Macのように「英数キー」を押すと必ず英数入力(IMEオフ)になる挙動にしたい場合、無料ツール「AutoHotkey」を使うと簡単に設定できます。

副作用について
この設定をすると、Windowsのキーボード操作でも「半角・全角キー」を押すと必ずIMEがオフになります。
つまり、日本語入力したい時は「かなキー」や「変換キー」など別のキーを使う必要があります。

解決策の解説

1. DeskflowでMacの「英数キー」はどう送信される?

DeskflowでMacの「英数キー」を押すと、Windows側には「半角・全角キー」の信号が送られます1
Windows標準では「半角・全角キー」はIMEのオン・オフを切り替えるトグル動作ですが、Macの「英数キー」は押すと必ず英数入力(IMEオフ)になります。

2. AutoHotkeyで「半角・全角キー」の動作を変更する

以下のAutoHotkeyスクリプトを使うと、「半角・全角キー」を押した時に必ずIMEオフ(英数入力)にできます。

IME_SET(SetSts, WinTitle="A") {
    DetectHiddenWindows, On
    hWnd := WinExist(WinTitle)
    DefaultIMEWnd := DllCall("imm32\ImmGetDefaultIMEWnd", "Uint", hWnd)
    SendMessage, 0x283, 0x006, %SetSts%,, ahk_id %DefaultIMEWnd%
}

F13:: ; 半角・全角キーを例にする場合(F13は例です。実際のキーコードは環境により異なります)
    IME_SET(0) ; IMEをオフにする
    return

※実際の「半角・全角キー」のキーコードは環境によって異なるため、自分の環境に合わせて「F13」の部分を変更してください。
(一般的には「SC029」や「vk1D」などが該当します。AutoHotkeyの「Window Spy」で確認できます。)

3. 設定後の動作

この設定をすると、Macの「英数キー」を押した時と同じように、Windows側でも必ずIMEがオフになります。
Macと同じ操作感で快適に作業できるようになります。

まとめ

DeskflowでMacの「英数キー」を使いたい場合、Windows側で「半角・全角キー」の動作をAutoHotkeyで変更すれば、Macと同じ操作感を実現できます。
ただし、この設定をするとWindowsのキーボード操作でも「半角・全角キー」がIMEオフ固定になる点に注意してください。

投稿先:Qiita
タグ例:Deskflow, AutoHotkey, Mac, Windows, IME, キーボード, ショートカット

※実際のキーコードは環境によって異なるため、必ずご自身の環境で確認してください。
※AutoHotkeyスクリプトは必要に応じてカスタマイズしてください。

補足
Macの「英数キー」2回押しで日本語入力した文字を英数に変換する機能は、Windows標準では再現できませんが、IMEのオン・オフを制御することで似たような操作感を再現できます2 3
さらに細かい動作やMac風の日本語入力変換をしたい場合は、より高度なAutoHotkeyスクリプトや、別のツールの利用も検討できます。


依頼

タイトルは
DeskflowでMacの英数キーをWindowsでもMac風に使う方法

タイトルを見て来た読者に素早く解決策を提供するため「はじめに」はもっと端的に

簡単な解決策(初心者向け)
に、解説が混ざっていて全然ダメ
何をやるかステップバイステップで書くだけにする
ただし、副作用については伝えること

全体的に文体を柔らかく

この記事の目的は、
コンピュータを知らない人でも問題解決できること
これが8割
後の2割で技術的な背景の解説

以上に従ってもう一度記事を書いて

AutoHotkeyに設定するスクリプトは以下
\#Requires AutoHotkey v2.0+
; InstallKeybdHook

IME_SET(mode, winTitle := "A") {
hwnd := WinExist(winTitle)
if (hwnd) {
ptrSize := A_PtrSize
cbSize := 4 + 4 + (ptrSize * 6) + 16
stGTI := Buffer(cbSize, 0)
NumPut("UInt", cbSize, stGTI.Ptr, 0)
hwnd := DllCall("GetGUIThreadInfo", "UInt", 0, "Ptr", stGTI.Ptr)
? NumGet(stGTI.Ptr, 8 + ptrSize, "UInt") : hwnd
}

    return DllCall("SendMessage"
        , "Ptr", DllCall("imm32\ImmGetDefaultIMEWnd", "Ptr", hwnd, "Ptr")
        , "UInt", 0x0283 ; Message : WM_IME_CONTROL
        , "Int", 0x006   ; wParam  : IMC_SETOPENSTATUS
        , "Int", mode)   ; lParam  : 0 or 1
    }

; Deskflow経由macの英数キー
; 副作用でwinの全角半角キーがIMEオフの動きになる
vkF4:: {
IME_SET(0)
}

回答

タイトル:
DeskflowでMacの英数キーをWindowsでもMac風に使う方法


はじめに
DeskflowでMacのキーボードからWindowsを操作していると、「英数キー」がMacみたいに動かず、Windowsでは二度押しで日本語入力になってしまうことがあります。
この記事は、そんな悩みを「パソコンが苦手な人でも簡単に解決できる方法」を中心に紹介します。


簡単な解決策(初心者向け)

やることはとてもシンプルです。以下の順番で進めてください。

  1. AutoHotkeyをダウンロードしてインストールする
    • 公式サイトから「AutoHotkey」をダウンロードし、インストールしてください。
  2. スクリプトファイルを作る
    • メモ帳などで新しいファイルを作り、中に下のスクリプトをコピペして保存します。
    • ファイル名の最後は「.ahk」にしてください(例:mac_ime.ahk)。
#Requires AutoHotkey v2.0+
; InstallKeybdHook

IME_SET(mode, winTitle := "A") {
    hwnd := WinExist(winTitle)
    if (hwnd) {
        ptrSize := A_PtrSize
        cbSize := 4 + 4 + (ptrSize * 6) + 16
        stGTI := Buffer(cbSize, 0)
        NumPut("UInt", cbSize, stGTI.Ptr, 0)
        hwnd := DllCall("GetGUIThreadInfo", "UInt", 0, "Ptr", stGTI.Ptr)
            ? NumGet(stGTI.Ptr, 8 + ptrSize, "UInt") : hwnd
    }

    return DllCall("SendMessage"
        , "Ptr", DllCall("imm32\ImmGetDefaultIMEWnd", "Ptr", hwnd, "Ptr")
        , "UInt", 0x0283 ; Message : WM_IME_CONTROL
        , "Int", 0x006   ; wParam  : IMC_SETOPENSTATUS
        , "Int", mode)   ; lParam  : 0 or 1
}

; Deskflow経由macの英数キー
; 副作用でwinの全角半角キーがIMEオフの動きになる
vkF4:: {
    IME_SET(0)
}
  1. スクリプトを起動する
    • 作った「.ahk」ファイルをダブルクリックして実行します。
    • タスクバーに「H」アイコンが表示されればOKです。

副作用について
この設定をすると、Windowsの「半角・全角キー」を押した時も必ずIMEがオフになります。
つまり、日本語入力したい場合は「かなキー」や「変換キー」など、他のキーを使う必要があります。


技術的な背景の解説(補足)

なぜこんな設定が必要なの?

  • DeskflowでMacの英数キーを押すと、Windows側では「半角・全角キー」として認識されます。
  • Windows標準の動作では「半角・全角キー」はIMEのオン・オフが切り替わる「トグル」動作です。
  • Macの「英数キー」は押すと必ず英数入力(IMEオフ)になるので、操作感が違います。

AutoHotkeyを使うことで、Windows側でもMacと同じように「英数キー」を押したら必ずIMEがオフになる動作にできます。
ただし、Windowsのキーボードでも同じ設定になるため、副作用として「半角・全角キー」がIMEオフ固定になります。


まとめ
この設定をすれば、DeskflowでMacのキーボードからWindowsを操作するときも、Macと同じ感覚で「英数キー」を使えるようになります。
パソコンが苦手な方でも、ぜひ試してみてください!


依頼

タグの候補教えて

回答

もちろんです!
Qiitaに投稿する際のおすすめタグをいくつかご提案します。

タグ候補

  1. Deskflow
  2. AutoHotkey
  3. Mac
  4. Windows
  5. IME
  6. キーボード
  7. ショートカット
  8. リモートデスクトップ
  9. キーボード配列
  10. 日本語入力
  11. 自作ツール(AutoHotkeyスクリプトを自作した場合など)
  12. 便利化
  13. Tips

活用例(Qiita投稿時のタグ例)

Deskflow, AutoHotkey, Mac, Windows, キーボード, IME, ショートカット

この組み合わせがバランスよく読者に届きやすいです。
もしもっと専門的な方向性を出したい場合は「リモートデスクトップ」や「自作ツール」も追加できます。

依頼

AutoHotkeyの公式サイトへのリンクを追加して

回答

AutoHotkeyの公式サイトへのリンクを記事内に追加する場合、以下のようにするとよいでしょう。


簡単な解決策(初心者向け)

  1. AutoHotkeyをダウンロードしてインストールする
  2. スクリプトファイルを作る
    • メモ帳などで新しいファイルを作り、中に下のスクリプトをコピペして保存します。
    • ファイル名の最後は「.ahk」にしてください(例:mac_ime.ahk)。
#Requires AutoHotkey v2.0+
; InstallKeybdHook

IME_SET(mode, winTitle := "A") {
    hwnd := WinExist(winTitle)
    if (hwnd) {
        ptrSize := A_PtrSize
        cbSize := 4 + 4 + (ptrSize * 6) + 16
        stGTI := Buffer(cbSize, 0)
        NumPut("UInt", cbSize, stGTI.Ptr, 0)
        hwnd := DllCall("GetGUIThreadInfo", "UInt", 0, "Ptr", stGTI.Ptr)
            ? NumGet(stGTI.Ptr, 8 + ptrSize, "UInt") : hwnd
    }

    return DllCall("SendMessage"
        , "Ptr", DllCall("imm32\ImmGetDefaultIMEWnd", "Ptr", hwnd, "Ptr")
        , "UInt", 0x0283 ; Message : WM_IME_CONTROL
        , "Int", 0x006   ; wParam  : IMC_SETOPENSTATUS
        , "Int", mode)   ; lParam  : 0 or 1
}

; Deskflow経由macの英数キー
; 副作用でwinの全角半角キーがIMEオフの動きになる
vkF4:: {
    IME_SET(0)
}
  1. スクリプトを起動する
    • 作った「.ahk」ファイルをダブルクリックして実行します。
    • タスクバーに「H」アイコンが表示されればOKです。

副作用について
この設定をすると、Windowsの「半角・全角キー」を押した時も必ずIMEがオフになります。
つまり、日本語入力したい場合は「かなキー」や「変換キー」など、他のキーを使う必要があります。


依頼

改めて記事の全文を

回答

もちろんです!
AutoHotkey公式サイトリンクを加えて、柔らかい文体で分かりやすくまとめ直した記事全文をお届けします。


タイトル: DeskflowでMacの英数キーをWindowsでもMac風に使う方法

はじめに

DeskflowでMacのキーボードからWindowsを操作していると、「英数キー」がMacみたいに動かず、Windowsでは二度押しで日本語入力になってしまうことがあります。
この記事は、そんな悩みを「パソコンが苦手な人でも簡単に解決できる方法」を中心に紹介します。


簡単な解決策(初心者向け)

やることはとてもシンプルです。以下の順番で進めてください。

  1. AutoHotkeyをダウンロードしてインストールする
  2. スクリプトファイルを作る
    • メモ帳などで新しいファイルを作り、中に下のスクリプトをコピペして保存します。
    • ファイル名の最後は「.ahk」にしてください(例:mac_ime.ahk)。
#Requires AutoHotkey v2.0+
; InstallKeybdHook

IME_SET(mode, winTitle := "A") {
    hwnd := WinExist(winTitle)
    if (hwnd) {
        ptrSize := A_PtrSize
        cbSize := 4 + 4 + (ptrSize * 6) + 16
        stGTI := Buffer(cbSize, 0)
        NumPut("UInt", cbSize, stGTI.Ptr, 0)
        hwnd := DllCall("GetGUIThreadInfo", "UInt", 0, "Ptr", stGTI.Ptr)
            ? NumGet(stGTI.Ptr, 8 + ptrSize, "UInt") : hwnd
    }

    return DllCall("SendMessage"
        , "Ptr", DllCall("imm32\ImmGetDefaultIMEWnd", "Ptr", hwnd, "Ptr")
        , "UInt", 0x0283 ; Message : WM_IME_CONTROL
        , "Int", 0x006   ; wParam  : IMC_SETOPENSTATUS
        , "Int", mode)   ; lParam  : 0 or 1
}

; Deskflow経由macの英数キー
; 副作用でwinの全角半角キーがIMEオフの動きになる
vkF4:: {
    IME_SET(0)
}
  1. スクリプトを起動する
    • 作った「.ahk」ファイルをダブルクリックして実行します。
    • タスクバーに「H」アイコンが表示されればOKです。

副作用について

この設定をすると、Windowsの「半角・全角キー」を押した時も必ずIMEがオフになります。
つまり、日本語入力したい場合は「かなキー」や「変換キー」など、他のキーを使う必要があります。


技術的な背景の解説(補足)

なぜこんな設定が必要なの?

  • DeskflowでMacの英数キーを押すと、Windows側では「半角・全角キー」として認識されます。
  • Windows標準の動作では「半角・全角キー」はIMEのオン・オフが切り替わる「トグル」動作です。
  • Macの「英数キー」は押すと必ず英数入力(IMEオフ)になるので、操作感が違います。

AutoHotkeyを使うことで、Windows側でもMacと同じように「英数キー」を押したら必ずIMEがオフになる動作にできます。
ただし、Windowsのキーボードでも同じ設定になるため、副作用として「半角・全角キー」がIMEオフ固定になります。


まとめ

この設定をすれば、DeskflowでMacのキーボードからWindowsを操作するときも、Macと同じ感覚で「英数キー」を使えるようになります。
パソコンが苦手な方でも、ぜひ試してみてください!


タグ例
Deskflow, AutoHotkey, Mac, Windows, キーボード, IME, ショートカット

  1. https://x.com/iwadon/status/1870406435835937102

  2. https://ryomac.blog.fc2.com/blog-entry-241.html

  3. https://www.wholenotism.com/blog/2023/05/reconverttext.html

  4. https://www.autohotkey.com

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?