Karabiner unsurları özel karmaşık kural ile yardımcı


4

Klavyemde bir basma parantez anahtarı var. Daha önce, Karabiner tarafından kullanılan xml biçiminde yazdığım özel bir kuralı kullanarak L-control + open_bracket öğesini close_bracket'a eşlemek için Karabiner'i kullanmıştım.

Ancak, şimdi Sierra'ya güncellediğim için, Karabiner çıktı ve Karabiner unsurları içeride. Karabiner unsurları bir JSON formatı kullanıyor. Yeni bir kural oluşturmaya ve onu JSON dosyasına yapıştırmaya çalıştım:

"rules": [
         {"manipulators": [
                {"description": "bracket rule",
                        "from": {"key_code": "open_bracket", 
                                 "modifiers": ["left_control"]
                                },
                          "to": [{"key_code": "close_bracket",
                                  "modifiers":[]
                                }] 
                }         ]
         }]

Bununla birlikte, bu kural istediğim gibi çalışmamaktadır (sadece open_bracket işlevini close_bracket ile eşleştirir).

Burada yanlış yaptığım şey hakkında bir fikri olan var mı?


Destek istemek için uygulamanın geliştiricisi ile bağlantıya geçtiniz mi?
fsb

Yanıtlar:


4

Örneklerin baktığım diğer kurallardan biraz farklı görünüyordu. İşte benim için çalışan bir sürüm:

file: map_lctl_plus_open_bracket_to_close_bracket.json:

{
  "title": "Map Lft-Ctl+Open-Bracket to Close-Bracket",
  "rules": [
    {
      "manipulators": [
        {
          "description": "bracket rule",
          "type": "basic",
          "from": {
            "key_code": "open_bracket",
            "modifiers": {
              "mandatory": [
                "left_control"
              ],
              "optional": [
                "caps_lock"
              ]
            }
          },
          "to": [
            {
              "key_code": "close_bracket"
            }
          ]
        }
      ]
    }
  ]
}

Komut dosyasını bu "Import more rules from the internet"seçenek dışında yüklemek için hiçbir yol belirleyemedim , ancak içe aktarıcıyı kendi dosyalarımda nasıl başlatacağımı çözdüm.

Dosyayı kopyaladığınızı varsayarsak /tmp/map_lctl_plus_open_bracket_to_close_bracket.json, aşağıdaki URL'yi Safari'ye yapıştırarak içe aktarıcıyı başlatmalısınız:

karabiner://karabiner/assets/complex_modifications/import?url=file%3A%2F%2F%2Ftmp%2Fmap_lctl_plus_open_bracket_to_close_bracket.json

Hem dosya içeriğini hem de içe aktarma URL'sini bu gönderide tam olarak test ettim ve hepsi benim için iyi çalıştı.

İyi şanslar !


EDIT: Bu gönderiyi yaptıktan hemen sonra, yerel dosya deposunun manuel olarak kurallar eklemek için nerede olduğunu buldum.

https://github.com/pqrs-org/KE-complex_modifications#local-testing

Bu "Import more rules from the internet"sayfadaki kurallar için github repo . Web deposuna göndermeden önce kuralların yerel olarak nasıl test edileceğini gösterir.

TL; DR:

$ cp my_rule.json ~/.config/karabiner/assets/complex_modifications

Bu site ayrıca karabiner://...yukarıda bahsettiğim tekniği de doğruladı .


Karabiner'in JSON dosyasını doğrudan şu adresten daha kolay buluyorum: ~ / .config / karabiner / karabiner.json, TextEdit. Hata yaparsanız, Karabiner Elements artık "Karabiner-Elements Tercihleri" penceresinde komut dosyalarını / değişiklikleri göstermeyecek. Metninizi kaydederken bu pencereyi izleyerek değişikliklerinizi / eklemelerinizi "hata ayıklayabilirsiniz" - ve bazı adımları geri alın ...
clemsam lang

JSON dosyasını ~ / .config / karabiner / asset / complex_modifications dizinine de bırakabilirsiniz; ayrıca ekle düğmesine bastığınızda karmaşık değişiklikler görünecektir.
Darrel Holt

1

Kendi kodunuz, sadece "zorunlu" anahtar kelimesini "left_control" ile birlikte bırakır - bu yüzden Karabiner EACH süresi, "close_bracket" anahtarını yeniden eşlemek için yalnızca "open_bracket" i kaydedecektir.

EDIT,… çok sonra: ayrıca her manipülatörde kod yazmanız gerekiyor"type": "basic" !

Not: "zorunlu" olmama durumunda varsayılan olabilecek tamamlayıcı bir anahtar kelime "isteğe bağlı" vardır ...

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.