Katman tabanlı tuş eşleme motoru KeyZen
(github.com/Seungchan0325)Açıklama
KeyZen, hızlı çalışan ve az kaynak kullanan katman tabanlı bir tuş yeniden eşleme motorudur.
- Yığın tabanlı klavye katmanları kullanır.
- Oturum açılır açılmaz çalışacak kadar hızlı bir oturum açılışında başlatma desteği sunar.
- Nasıl yeniden eşleme yapılacağını YAML dosyası üzerinden yapılandırabilirsiniz.
Ayrıntılı yapılandırma yöntemini yapılandırma kılavuzunda görebilirsiniz.
KeyZen'i kullanmanın iyi olduğu durumlar
Klavye kullanırken ok tuşlarının F, J gibi referans tuşlarından uzakta olması akışınızı bölüyorsa Capslock + H, J, K, L kombinasyonlarını Left, Down, Up, Right olarak eşlemeyi deneyin.
Önceki sözcüğü (Ctrl + Left), sonraki sözcüğü (Ctrl + Right), cümlenin başını (Home) ve cümlenin sonunu (End) sırasıyla W, E, P, O tuşlarına eşlemeyi deneyin. Ele fareye gitmesi gereken durumlar azalır.
Yapılma nedeni
Herkes Capslock'un kullanım sıklığına kıyasla fazla rahat bir konumda olduğuna katılacaktır. Bu yüzden Capslock tuşuyla kombinasyon yaparak vim'e benzer davranışlar elde etmek için çeşitli yöntemler aradım. Aslında bunun için autohotkey kullanıyordum, ancak birkaç sorun vardı.
- Capslock tuşunun durumu düzgün senkronize olmuyordu. Kodun nasıl yazıldığına göre değişebilir ama benim durumumda, Capslock tuşuna basmadığım hâlde basılmış gibi algılanıp Capslock'a birkaç kez art arda basmam gereken durumlar oldu.
- Oturum açılışında çalıştırmayı Başlangıç Programları klasörüne koyma yöntemiyle kullanıyordum; bu durumda bilgisayar açıldıktan sonra çalışması için birkaç dakika geçmesi gerekiyordu.
Alternatif olarak kanata gibi projelere de baktım; ancak kanata'nın özellikleri çok genişti, CPU kaynağını beklediğimden fazla kullanıyordu ve oturum açılışında çalıştırmayı desteklemiyordu. (autohotkey ile aynı şekilde Başlangıç Programları klasörüne koymak da mümkün olabilir ama aynı sorun ortaya çıkar.)
Ayrıca PowerToys'un Keyboard Manager'ında, Capslock + H = Left Arrow durumunda Capslock'un her girişte birlikte basılması gereken bir sorun vardı.
Bu yüzden düşük kaynak kullanımı, kolay yapılandırma ve hızlı oturum açılışında çalıştırma hedefiyle KeyZen'i yaptım.
Teknik hikâye
Kodun büyük bölümü Codex kullanılarak yazıldı. Yaklaşık 10 gün ön araştırma yaptıktan sonra Codex ile geliştirmeye başladım; bir günde bitince şaşırdım.
Rust ile uygulandı ve Windows API üzerinden klavye hook'u kuruyor. Klavye hook'unu kullanıcı seviyesinde mi kuracağımı yoksa sürücü üzerinden mi uygulayacağımı düşündüm; klavye hook'u kurmayı seçtim. Klavye hook'ları Görev Yöneticisi gibi programlarda çalışmama sorununa sahip olsa da sürücü tarafına dokunmanın biraz riskli olabileceğini düşündüm.
Henüz yorum yok.