smzht / fakeymacs

Emacs-like key bindings for Keyhac
MIT License
112 stars 49 forks source link

ターミナルアプリからアプリを実行した場合にショートカットが実行されない #33

Closed izumi0x01 closed 1 year ago

izumi0x01 commented 1 year ago

コマンドプロンプト、gitbash等のターミナルアプリから任意のアプリを起動した際に、起動した先のアプリケーションでemacsショートカットが操作できないのですが、反映する方法はありますでしょうか?

fakeymacs の version は下記になります。 fakeymacs_version = "20230930_01"

例) ●ターミナルアプリ上でコマンドの指定 notepad.exe → 反映されない start notepad.exe → 反映されない ●ターミナルアプリを介さずに任意のアプリを起動 ファイル名を指定して実行(win+R)上でnotepadを指定して実行 → 反映される

smzht commented 1 year ago

Keyhac のメニューから「内部ログをON」を選択し、emacs キーバインドが反映されない状態の notepad.exe を選択した場合にKeyhac コンソールに表示される exe 名と class 名を教えてください。

izumi0x01 commented 1 year ago

コメントありがとうございます。

コマンドプロンプトからnotepad.exeを実行した場合のexe名とclass名は以下のようにkeyhackターミナルに表示されます。

Window : exe : Notepad.exe : class : Notepad

(一度、notepad.exeを離れ、外部の適当なwindowを操作した後、notepadを再び操作する)

Window : exe : Notepad.exe : class : RichEditD2DPT

========

また、notepad.exeを ●win+R上から実行した場合と ●コマンドプロンプトから実行した場合 実行した場合の2つについて動作を以下に比較します。

●コマンドプロンプトからnotepad.exeを実行した場合

Window : exe : Notepad.exe : class : Notepad : text : メモ帳

(notepadにフォーカスされたまま、任意のキーを入力)

表示に変化なし

●win+Rからnotepad.exeを実行した場合

Window : exe : Notepad.exe : class : Notepad : text : メモ帳

(notepadにフォーカスされたまま、任意のキーを入力)

Window : exe : Notepad.exe : class : RichEditD2DPT : text :

IN : D-A OUT : [Key(65)] IN : U-A TRU : U-A IN : O-A

(以下、notepad上でのキーの入力に応じてkeyhackターミナルの表示が変化する)

smzht commented 1 year ago

お使いの OS は Windows 11 だと思いますが、こちらの Windows 11 環境では発生しない問題となっています。 Keyhac の config.py を次の設定のみとして「内部ログをON」とした場合、上記と同様にキーログが表示されない症状が発生するか、確認をお願いできますでしょうか。

from keyhac import *

def configure(keymap):
    pass
izumi0x01 commented 1 year ago

自身もwindows11で操作しております。また、config.pyを上記のとおりに変更して実行しました。 自身ですが、「コマンドプロンプト」を直接開くのではなく、windows terminal上から起動していたようです。

上記の現象について、「windows terminal」から「コマンドプロンプト」や「gitbash」等のアプリを開いた場合に設定が反映されないことが確認できました。 また、「コマンドプロンプト」や「gitbash」等をスタートアップメニューから直接開いたうえで、notepad.exe等の任意のアプリを起動しようとすると設定が反映されることが確認できました。

【追記】 windows terminal上で「このプロファイルを管理者として実行する」をONにした状態でnotepd.exeを起動すると設定が反映されないようでした。「このプロファイルを管理者として実行する」をOFFにした状態で起動すればwindows terminalでも問題なく設定が反映されることが確認できました。

keyhackの置かれているディレクトリの権限の問題で、keyhackのディレクトリに適切な権限を与えると無事にターミナルからも起動することができました(汗

smzht commented 1 year ago

次のページの (c) に該当する感じですかね。

まずは、原因が分かって良かったです。

izumi0x01 commented 1 year ago

実際、notepad.exeを管理者権限で実行すると設定が反映されなかったので、まさしくその現象の影響だと思います

smzht commented 1 year ago

本件、クローズとさせていただきますね。 また何かありましたら、問い合わせください。