Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Docs] Japanese translation of docs/tap_hold.md #10017

Merged
merged 4 commits into from
Sep 17, 2020
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
195 changes: 195 additions & 0 deletions docs/ja/tap_hold.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,195 @@
# タップホールド設定オプション

<!---
original document: 0.9.51:docs/tap_hold.md
git diff 0.9.51 HEAD -- docs/tap_hold.md | cat
-->

タップホールドオプションは素晴らしいですが、問題が無いわけではありません。合理的なデフォルト設定でそれらを構築しようとしていますが、一部の人にとってまだ問題を引き起こすかもしれません。
umi-umi marked this conversation as resolved.
Show resolved Hide resolved

これらのオプションによりタップホールドキーの挙動を変更することができます。
umi-umi marked this conversation as resolved.
Show resolved Hide resolved

## タッピング条件
umi-umi marked this conversation as resolved.
Show resolved Hide resolved

以下の機能の全ての核心は、タッピング条件の設定です。これにより、タップとホールドが決まります。自然に感じられる正確なタイミングは、キーボードごと、スイッチごと、キーごとに異なるかもしれません。
umi-umi marked this conversation as resolved.
Show resolved Hide resolved

`config.h` に以下の設定を追加することで、このグローバル時間を設定することができます:
umi-umi marked this conversation as resolved.
Show resolved Hide resolved

```c
#define TAPPING_TERM 200
```

この設定はミリ秒で定義され、デフォルトは 200ms です。これは大多数の人にとっての適切な平均値です。

この機能をより細かく制御するために、以下を `config.h` に追加することができます:
```c
#define TAPPING_TERM_PER_KEY
```

そして、以下の関数をキーマップに追加します:

```c
uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case SFT_T(KC_SPC):
return TAPPING_TERM + 1250;
case LT(1, KC_GRV):
return 130;
default:
return TAPPING_TERM;
}
}
```


## 許容ホールド

[PR#1359](https://github.com/qmk/qmk_firmware/pull/1359/) の時点で、新しい `config.h` オプションがあります:
umi-umi marked this conversation as resolved.
Show resolved Hide resolved

```c
#define PERMISSIVE_HOLD
```

これは高速なタイピストや高い `TAPPING_TERM` 設定に対して、タップとホールドキー(モッドタップのような)の動作を向上させます。

モッドタップキーを押し、他のキーをタップ(押して放す)して、モッドタップキーを放すという動作の全てをタッピング時間内に行うと、両方のキーの「タッピング」機能が出力されます。

例えば:

- `SFT_T(KC_A)` ダウン
umi-umi marked this conversation as resolved.
Show resolved Hide resolved
- `KC_X` ダウン
umi-umi marked this conversation as resolved.
Show resolved Hide resolved
- `KC_X` アップ
umi-umi marked this conversation as resolved.
Show resolved Hide resolved
- `SFT_T(KC_A)` アップ
umi-umi marked this conversation as resolved.
Show resolved Hide resolved

通常、これら全てを `TAPPING_TERM` (デフォルト: 200ms) 内で行うと、ファームウェアとホストシステムによって `ax` として登録されます。許容ホールドを有効にすると、別のキーがタップされた場合にモッドタップキーを Mod と見なすことで処理され、 `X` として登録されます (`SHIFT`+`x`)。
umi-umi marked this conversation as resolved.
Show resolved Hide resolved

?> `モッドタップ割り込みの無視`を有効にしている場合、これにより両方の動きが変更されます。最初のキーが最初に放された場合、あるいは両方のキーが `TAPPING_TERM` より長くホールドされた場合に、通常のキーにモディファイアが追加されます。
umi-umi marked this conversation as resolved.
Show resolved Hide resolved

この機能をより細かく制御するために、以下を `config.h` に追加することができます:

```c
#define PERMISSIVE_HOLD_PER_KEY
```

そして、以下の関数をキーマップに追加します:

```c
bool get_permissive_hold(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case LT(1, KC_BSPC):
return true;
default:
return false;
}
}
```

## Mod タイプ割り込みの無視
umi-umi marked this conversation as resolved.
Show resolved Hide resolved

この設定を有効にするには、これを `config.h` に追加してください:

```c
#define IGNORE_MOD_TAP_INTERRUPT
```

許容ホールドと同様に、これは高速なタイピストのためのファームウェアの処理方法を変更します。モッドタップキーを押し、他のキーを押し、モッドタップキーを放し、通常のキーを放すと、通常は両方のキーについての "タッピング" の機能が出力されます。これはローリングコンボキーには望ましくないかもしれません。
umi-umi marked this conversation as resolved.
Show resolved Hide resolved

`モッドタップ割り込みの無視`の設定には、ホールド機能 (mod) を引き起こすために `TAPPING_TERM` の両方のキーを必要とします。
umi-umi marked this conversation as resolved.
Show resolved Hide resolved

例えば:

- `SFT_T(KC_A)` ダウン
umi-umi marked this conversation as resolved.
Show resolved Hide resolved
- `KC_X` ダウン
umi-umi marked this conversation as resolved.
Show resolved Hide resolved
- `SFT_T(KC_A)` アップ
umi-umi marked this conversation as resolved.
Show resolved Hide resolved
- `KC_X` アップ
umi-umi marked this conversation as resolved.
Show resolved Hide resolved

通常、これは `X` を送信します (`SHIFT`+`x`)。`モッドタップ割り込みの無視`を有効にすると、ホールドアクションを登録するために、`TAPPING_TERM` に両方のキーをホールドする必要があります。この場合、素早いタップは `ax` を送信しますが、両方をホールドすると、`X` (`SHIFT`+`x`) を出力します。
umi-umi marked this conversation as resolved.
Show resolved Hide resolved


?> __注意__: これはモディファイアにのみ関係し、レイヤー切り替えキーには関係しません。

?> `許容ホールド`を有効にすると、これは両方がどのように動作するかを変更します。通常のキーには、最初のキーが最初に放された場合、あるいは両方のキーが `TAPPING_TERM` より長くホールドされた場合に、モディファイアが追加されます。
umi-umi marked this conversation as resolved.
Show resolved Hide resolved

この機能をより細かく制御するために、以下を `config.h` に追加することができます:

```c
#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY
```

そして、以下の関数をキーマップに追加します:

```c
bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case SFT_T(KC_SPC):
return true;
default:
return false;
}
}
```

## タッピングフォースホールド
umi-umi marked this conversation as resolved.
Show resolved Hide resolved

`タッピングフォースホールド` を有効にするには、以下を `config.h` に追加します:

```c
#define TAPPING_FORCE_HOLD
```

タップの後でユーザがキーをホールドすると、これは修飾キーをホールドするかわりにタップされたキーを繰り返します。これにより、タップされたキーのために自動繰り返しを使うことができます。
umi-umi marked this conversation as resolved.
Show resolved Hide resolved

例:

- SFT_T(KC_A) ダウン
umi-umi marked this conversation as resolved.
Show resolved Hide resolved
- SFT_T(KC_A) アップ
umi-umi marked this conversation as resolved.
Show resolved Hide resolved
- SFT_T(KC_A) ダウン
umi-umi marked this conversation as resolved.
Show resolved Hide resolved
- タッピング時間より長く待ちます...
- SFT_T(KC_A) アップ
umi-umi marked this conversation as resolved.
Show resolved Hide resolved

デフォルトの設定では、最初のリリースで `a` が送信され、2回目の押下で `a` が送信され、コンピュータに自動リピート機能を作動させることができます。
umi-umi marked this conversation as resolved.
Show resolved Hide resolved

`TAPPING_FORCE_HOLD` を使うと、2回目の押下はシフトとして解釈され、それをタップして使った後ですぐにモディファイアとして使うことができます。
umi-umi marked this conversation as resolved.
Show resolved Hide resolved

!> `TAPPING_FORCE_HOLD` はタッピングトグル(`TT` レイヤーのキーコード、ワンショットタッピングトグルなど)を使うものをすべて破壊します。
umi-umi marked this conversation as resolved.
Show resolved Hide resolved

この機能をより細かく制御するために、以下を `config.h` に追加することができます:

```c
#define TAPPING_FORCE_HOLD_PER_KEY
```

そして、以下の関数をキーマップに追加します:

```c
bool get_tapping_force_hold(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case LT(1, KC_BSPC):
return true;
default:
return false;
}
}
```

## レトロタッピング

`レトロタッピング`を有効にするには、以下のものを `config.h` に追加してください:
umi-umi marked this conversation as resolved.
Show resolved Hide resolved

```c
#define RETRO_TAPPING
```

他のキーを押さずにデュアルファンクションキーを押して放しても何も起こりません。レトロタップを有効にすると、他のキーを押さずにキーを放すと、元のキーコードがタッピング時間外であっても送信されます。
umi-umi marked this conversation as resolved.
Show resolved Hide resolved

例えば、他のキーを押すことなく `LT(2, KC_SPACE)` を押したり放したりしても何も起こりません。これを有効にすると、代わりに `KC_SPACE` を送信します。

## キーの関数ごとにキーのレコードを含めるのはなぜですか?
umi-umi marked this conversation as resolved.
Show resolved Hide resolved

「キーごと」の関数全てにキーレコードを含んでいることに気付いたかもしれません。そしてなぜそうしたのか不思議に思っているかもしれません。
umi-umi marked this conversation as resolved.
Show resolved Hide resolved

まぁ、それは単純に本当にカスタマイズのためです。ただし、具体的には、それはキーボードの配線方法によって異なります。例えば、各行が実際にキーボードのマトリックスの行を使っている場合、キーコード全体をチェックする代わりに、`if (record->event.row == 3)` を使うほうが簡単かもしれません。これは、ホームキー行でタップホールドタイプのキーを使っている人にとって特に便利です。そのため、通常のタイピングを妨げないように微調整することができるのではないでしょうか。
umi-umi marked this conversation as resolved.
Show resolved Hide resolved

## `*_kb` or `*_user` 関数が無いのはなぜですか?
umi-umi marked this conversation as resolved.
Show resolved Hide resolved

ここにある他の多くの関数とは異なり、quantum あるいはキーボードレベルの関数を持つ必要はありません (または理由さえありません)。ここではユーザレベルの関数だけが有用なため、そのようにマークする必要はありません。
umi-umi marked this conversation as resolved.
Show resolved Hide resolved