Closed shwaka closed 6 years ago
いいですね!! どうやって有効・無効を切り替えるかあたりが残ってる課題でしょうか。
もしよろしければプルリクエストの形にしていただけると、すばやく取り込めるかと思います。
keymap.conf
に StickyKey ;
などと記述しないと有効にならないので,
有効・無効については問題ないと思います.
プルリクエストの件,承知いたしました. ただ,他人の書いた patch を勝手に取り込んでしまって良いものなのでしょうか? ライセンスが明示されていれば良いですが, 今回は(短いpatchだから?)特に指定されていないですよね.
まずはずばり聞いてみるのはどうでしょうか・・・? (期待をこめて) > @anyakichi
ずいぶん昔のもので私自身はほとんど覚えてないのですが、お役に立ちそうであればお使いください。ライセンス的な話としてはソフトウェアのオリジナルに従うということで問題ないです。
私の手元にビルド環境があるわけでもないので、プルリクエストの作成についてはお願いできればと思います。
ご快諾いただきありがとうございます。
もちろんプルリクエストは私が作成いたします。
プルリクエスト #87 を作成いたしました。 (プルリクエスト作成は初めてのため、何か不備がありましたら申し訳ありません。その場合は遠慮なく仰ってください)
実際に使う際には keymap.conf
に StickyKey ;
と記述することで、;
を sticky shift として利用できるようになります。他のキーでも(衝突さえしなければ)多分大丈夫だと思います。
…と書いていて気付いたのですが、build失敗していますね…
私の環境 (https://github.com/codefirst/aquaskk/issues/86#issue-367585704 参照、古いversion) では、 make pkg
と make test
ともに成功しているのですが、 https://github.com/codefirst/aquaskk/commit/a67abe78ac9ba7f475c009d93157881818d36d34 よりも後の変更と競合しているのでしょうか。
make pkg
が成功しているというのは、部分的に嘘を含んでいました。
正しくは「 make pkg
により /tmp/AquaSKK/aquaskk-dist.pkg
が生成され、このファイルからパッチ適用済みのAquaSKKがインストールできる。しかし、 make pkg
の際には(当然)署名関係のエラーが発生している」と書くべきでした。
make pkg
の際の出力は以下の通りです
make pkg
なので、実際のbuildそのものはしていないと思いますが、 ** BUILD SUCCEEDED **
と出ているので問題ないでしょう2
でした
0:shun:~/Git/aquaskk/platform/mac
$ make pkg
xcodebuild -project proj/AquaSKK.xcodeproj -configuration Release build
=== BUILD TARGET AquaSKKPreferences OF PROJECT AquaSKK WITH CONFIGURATION Release ===
Check dependencies
=== BUILD TARGET AquaSKK OF PROJECT AquaSKK WITH CONFIGURATION Release ===
Check dependencies
BUILD SUCCEEDED
rm -fr AquaSKK.pkg mkdir -p /tmp/AquaSKK/root//Library/Input\ Methods cp -r proj/build/Release/AquaSKK.app /tmp/AquaSKK/root//Library/Input\ Methods pkgbuild --root /tmp/AquaSKK/root --component-plist pkg/aquaskk.plist --identifier org.codefirst.aquaskk.pkg --version 4.2.5 /tmp/AquaSKK/aquaskk-pkg.pkg pkgbuild: Reading components from pkg/aquaskk.plist pkgbuild: Adding component at Library/Input Methods/AquaSKK.app pkgbuild: Adding component at Library/Input Methods/AquaSKK.app/Contents/SharedSupport/AquaSKKPreferences.app pkgbuild: Wrote package to /tmp/AquaSKK/aquaskk-pkg.pkg productbuild --distribution pkg/distribution.xml --package-path /tmp/AquaSKK --resources 'proj/contents' /tmp/AquaSKK/aquaskk-dist.pkg productbuild: Wrote product to /tmp/AquaSKK/aquaskk-dist.pkg productsign --sign "Developer ID Installer: HIROKI MIZUNO" /tmp/AquaSKK/aquaskk-dist.pkg AquaSKK.pkg productsign: error: Could not find appropriate signing identity for “Developer ID Installer: HIROKI MIZUNO”. make: *** [pkg] Error 1
`make test` を手元で実行した際の終了ステータスは `0` です。しかし、TravisCI上では90秒程かかっているのに対して、こちらは数秒程度で終わってしまうのが少し不安です。
なお、出力は以下の通りです。
0:shun:~/Git/aquaskk/platform/mac $ make test cd ../../src/engine/tests; make test; SKKDictionaryFile::open(): can't open: SKKDictionaryFile::open(): can't open: SKK-JISYO.S1SKK-JISYO.S2
SKKLocalUserDictionary: saved SKKLocalUserDictionary: saved SKKDictionaryFile::open(): can't open: /dev/null SKKDistributedUserDictionary: put failed SKKDistributedUserDictionary: delete failed /2018/10/10(Wed)/2018 年 10 月 10 日(水)/19:45:18/19 時 45 分 18 秒/3.362e+07/ SKKLocalUserDictionary: saved success=400 / total=400, (100%) SKKLocalUserDictionary: saved SKKKeymapEntry::SKKKeymapEntry(): invalid key name[Unknown] SKKLocalUserDictionary: saved SKKLocalUserDictionary: saved SKKLocalUserDictionary: saved
お手数おかけして大変申し訳ないのですが、何かお気付きのことがありましたらご助言いただれば幸いです。
make test
の失敗についてはこのコミット以外でも発生していそうです。
そうなのですか.それでしたら私がどうこうするような話ではないですね.
(再度TravisCIを確認してみたら make test
も通っていて何が何やら…)
ともあれ,mergeしていただきありがとうございます.
ところで,StickyShiftが実装されていることを(issue以外の)どこかに記述しておいた方が良いと思うのですが,
何か適切な場所はありますでしょうか?
見たところ README.md
はあまりそういう用途では使われていないようですし.
StickyShiftが実装されていることを(issue以外の)どこかに記述しておいた方が良いと思うのですが
良いと思います。wiki (このgithubレポのwiki) かなぁと思うのですが,いまのところいい感じのページは無いです。
本当はこれ↓に相当するものが欲しい感じはありますが,さしあたりStickyKeyの設定の存在だけでも書いておくのが良い気がしてます。 https://osdn.net/projects/aquaskk/wiki/keymap.confの文法
承知しました。 ただ、不要な混乱を防ぐために、StickyKeyのcommitが取り込まれた状態のreleaseが出た後に記載した方が良いと思っています。releaseをすぐに出してもらうことは可能でしょうか?
週末のうちにリリースしたいです。少々お待ちください。
@shun-wakatsuki 4.7.0でリリースしました。確認おねがいします!
@banjun ありがとうございます. 軽く試してみましたところ,動作については問題ないと思います.
しかし,リリースに添えられたコメント 「Sticky Shiftの実装とそのkeymap.confの設定を追加 #86 #87」 には違和感を覚えます.
ちゃんとコードを読んだわけではないので憶測でしかないですが,
リポジトリ内に複数ある keymap.conf
の役割は
data/config/keymap.conf
: ユーザー向けのデフォルト設定src/engine/tests/keymap.conf
: make test
用の設定だと認識しています.
そして今回変更されたのは make test
用のもののみです.
しかし,上述のコメントはユーザー向けのデフォルト設定が変更されたように読めてしまいます.
私の認識が正しいのであれば,コメントの後半は誤解を招くだけだと思うのですが,いかがでしょうか.
また,上記とは別に 「Sticky Shift はデフォルトでONにするべきか否か」 は議論の余地があると思いますが, 私はデフォルトではOFFにするべきだと思っています. 私の知る範囲では,他のSKK実装でもそうなっていたと思います.
そうですね,そう読む可能性はありますね。 Sticky Shift対応したとして,どこで設定されるのか? (通常はユーザーレベルのkeymap.confを想定,= ~/Library/Application Support/AquaSKK/) を短く書く意図だったので,表現を変えておきました。 デフォルトONにすべきか,については,私もすべきではないと思っています。
すみません。そもそも私も完全に誤読していたようです。 ともあれ、修正ありがとうございます。
また、Wikiに Sticky Shift について一言書き足しておきました。本当に一言だけですが…
Wiki記載ありがとうございます!
AquaSKK 非常に助かっております。 今回 StickyShift に対応と聞いてこれで Hammerspoon から開放されました(^^;
今回のリリースについて、Sticky shift の有効方法が辿らないと分かりづらかったので、 リリース情報に上記記載の Wiki へのリンクがあると幸せになれそうだと思ったので、 コメントさせてもらいました。
御一考ください。
AquaSKK にもいわゆる Sticky Shift の機能を追加することは可能でしょうか?
調べてみたところ,以下のような patch がありました. https://gist.github.com/anyakichi/1242540 結構古いものですが,私が試した範囲では問題なく動作しています.
なお,私の macOS の version が古いためか
NSColorSystemEffectPressed
などの変数(?)が定義されていなかったので, 少しだけ古い version の AquaSKK を利用いたしました.[ビルド環境]