विवरण

KeyZen एक तेज़, कम resources इस्तेमाल करने वाला लेयर-आधारित key remapping engine है।

  • यह stack-based keyboard layers का उपयोग करता है।
  • login होते ही तुरंत चलने के स्तर की तेज़ run-at-login सुविधा देता है।
  • YAML फ़ाइल के ज़रिए आप configure कर सकते हैं कि remapping कैसे करनी है।

विस्तृत setup तरीका configuration guide में देखा जा सकता है।

KeyZen किन स्थितियों में उपयोगी है

अगर keyboard इस्तेमाल करते समय arrow keys, F और J जैसी home keys से दूर होने की वजह से आपका flow टूटता है, तो Capslock + H, J, K, L को Left, Down, Up, Right पर map करके देखें।

पिछला शब्द (Ctrl + Left), अगला शब्द (Ctrl + Right), वाक्य की शुरुआत (Home), वाक्य का अंत (End) को क्रमशः W, E, P, O पर map करके देखें। इससे mouse तक हाथ ले जाने की स्थितियां कम होंगी।

इसे बनाने की वजह

आप सभी सहमत होंगे कि इस्तेमाल की frequency के मुकाबले capslock बहुत सुविधाजनक जगह पर होता है। इसलिए capslock key के साथ combination में vim जैसी behavior पाने के लिए मैंने कई तरीके खोजे। पहले मैं इसके लिए autohotkey इस्तेमाल करता था, लेकिन इसमें कुछ समस्याएं थीं।

  • capslock key की state ठीक से sync नहीं होती थी। code कैसे लिखा गया है, इसके आधार पर यह बदल सकता है, लेकिन मेरे मामले में कई बार capslock key न दबाने पर भी उसे दबा हुआ माना जाता था, जिससे capslock को बार-बार press करना पड़ता था।
  • login पर चलाने के लिए इसे startup programs folder में रखने का तरीका इस्तेमाल किया, लेकिन इस स्थिति में कंप्यूटर चालू होने के कई मिनट बाद ही यह चलता था।

विकल्प के तौर पर kanata जैसे projects भी देखे, लेकिन kanata में features बहुत ज्यादा थे, CPU resources उम्मीद से अधिक लेता था, और run-at-login support नहीं था। (autohotkey वाले तरीके की तरह इसे startup programs folder में रखा जा सकता है, लेकिन वही समस्या होती है।)

साथ ही PowerToys के Keyboard Manager में Capslock + H = Left Arrow वाली स्थिति में Capslock को हर input के साथ दबाए रखना पड़ता था।

इसलिए कम resource usage, आसान configuration, और तेज़ run-at-login को लक्ष्य बनाकर KeyZen बनाया गया।

तकनीकी बातें

code का अधिकांश हिस्सा Codex का उपयोग करके लिखा गया। करीब 10 दिन की preliminary research के बाद Codex से development शुरू किया, और यह एक ही दिन में पूरा हो गया, जिससे मैं हैरान था।

इसे Rust में implement किया गया है और windows api के ज़रिए keyboard hook install करता है। इस पर विचार किया कि user level पर keyboard hook install किया जाए या driver के ज़रिए implement किया जाए, और keyboard hook install करने का तरीका चुना। keyboard hook में Task Manager जैसे programs में काम न करने की समस्या होती है, लेकिन मुझे लगा कि driver side को छूना थोड़ा जोखिम भरा हो सकता है।

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.