7 votos

Utilizar el mosquetón para solucionar el problema del doble prensado

Tengo este problema (de nuevo) - pulsar una tecla (b para mí) a veces hace que se registre dos veces. https://discussions.apple.com/thread/7840547

¿Existe una manera de utilizar los elementos del mosquetón para modificar de tal manera que cuando se pulse una tecla dos veces en un corto período de tiempo la segunda tecla no se registre? https://pqrs.org/osx/karabiner/complex_modifications/

10voto

zonble Puntos 2925

Para su caso especial, le sugiero que utilice los elementos de Karabiner. y editar su ~/.config/karabiner/karabiner.json de esta manera (añadido a/después de las "reglas"):

EDIT / versión a prueba de fallos:
- Copie/pegue el siguiente código en TextEdit y "Guardar como..." WhateverNameYouLike.json
- A continuación, mueva manualmente una copia a ~/.config/karabiner/assets/complex_modifications/
- Finalmente importar desde KE: pestaña "Modificaciones complejas", botones [+ Añadir regla] & [+ Habilitar]

{ "title": "Keep solitary letter/key ''b'' from multiple press!",
  "rules": [
     { "description": "Keep 'b' from being pressed twice",
       "manipulators": [
        { "from": { "key_code": "b" },
          "parameters": {"basic.to_if_held_down_threshold_milliseconds": 10},
          "to_if_held_down":[
                 { "key_code": "b",
                   "repeat": false }],
          "type": "basic"
                }  
            ]
        }
    ]    
}

Como puedes ver la letra "b" es NO se ha vuelto a mapear pero en "to_if_held_down" se evita que se repita por "repeat": false obviamente la letra "b" puede ser sustituida por cualquier otra letra que falle.
(El umbral está definido a un mínimo de 1/100 de segundo, por lo que no notarás ninguna diferencia...)

Por favor, informe si este código hace para usted lo que se supone que debe hacer.
[EDIT:] Esta solución funciona para el usuario en (ex) problemas.
(Tuve que simular la situación probando en una aplicación que sí repite las teclas si se mantienen pulsadas - pero en realidad lo tuyo puede ser un problema mecánico no solucionable )

Nota:
Este método, sin embargo, puede no ser aconsejable/aplicable, si al mantener pulsada una tecla (por ejemplo: "a") en una aplicación se abre una pequeña ventana por encima de ella ofreciendo (por ejemplo:) "ä" / "å" / "a" / "a" u otras opciones similares. Si necesita esos caracteres especiales .
Este comportamiento se evitaría con "repeat": false .
Pero entonces:
Puedes activar "Mostrar los visores de teclado y caracteres en la barra de menús" en las Preferencias del Sistema y obtenerlas de la barra de menús...

1voto

Joe Puntos 111

Un helper de Python3 script a la respuesta anterior, que mapea todas las claves:

import json
import string
letters = list(string.ascii_lowercase)

for x in letters:
    output = {'title': f'Double Type {x}',
          'rules': [
             {
                'description': f'Keep `{x}` from a double keypress',
                'manipulators': [
                    {
                        'from': {'key_code': f'{x}'},
                        'parameters': {"basic.to_if_held_down_threshold_milliseconds": 10},
                        'to_if_held_down': [
                             {
                                'key_code': f'{x}',
                                'repeat': 'false'
                            }
                        ],
                        'type': 'basic'
                        }  
                ]
            } 
          ]
    }
    with open(f'doubletype_{x}.json', 'w')as outfile:
        json.dump(output, outfile)

# Copying files to directory
import glob
import shutil
from os.path import expanduser

home = expanduser("~")

print('Copying files...')
for file in glob.glob('doubletype_*'):
    shutil.copyfile(file, f'{home}/.config/karabiner/assets/complex_modifications/{file}')
print('Copying files complete!')

Esto generará 26 archivos (uno por cada letra), y los copiará en el directorio correspondiente.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X