00:00:00Ini adalah Kanata, alat sumber terbuka yang memaksimalkan potensi keyboard Anda
00:00:03dengan melakukan hal-hal seperti mendaftarkan tombol berbeda saat ditekan cepat versus saat ditahan,
00:00:08menggunakan satu tombol untuk memicu beberapa penekanan tombol sekaligus,
00:00:10atau memiliki lapisan berbeda untuk pemetaan tombol kustom yang bervariasi.
00:00:12Ini sangat cocok untuk orang seperti saya yang berusaha semaksimal mungkin hanya menggunakan keyboard.
00:00:16Tapi ada apa dengan sintaksis konfigurasinya yang aneh ini?
00:00:19Dan kenapa saya harus menggunakan ini daripada Karabiner atau alat lain yang berawalan huruf K?
00:00:24Klik subscribe dan mari kita bahas.
00:00:27Kanata adalah nama asli suku Iroquois untuk desa,
00:00:30yang sebenarnya tidak ada hubungannya sama sekali dengan keyboard.
00:00:33Tapi jika Anda menyukai keyboard mekanik seperti saya, Anda mungkin pernah mendengar tentang QMK,
00:00:37sebuah firmware keyboard sumber terbuka yang populer,
00:00:39yang memungkinkan Anda memetakan ulang tombol pada keyboard sebelum sinyalnya dikirim ke komputer.
00:00:42Kanata mirip dengan QMK tetapi bekerja pada tingkat perangkat lunak,
00:00:46sehingga mendukung semua keyboard, bahkan keyboard laptop Anda.
00:00:49Dan karena ditulis dalam Rust, ini berarti kinerjanya cepat
00:00:52dan tidak ada jeda yang berarti saat Anda mengetik di keyboard.
00:00:55Namun, pengaturannya tidak begitu sederhana,
00:00:57karena setelah menginstal Kanata dengan Karabiner untuk Mac,
00:01:00saya akan membahas lebih lanjut tentang itu nanti,
00:01:02Anda perlu menulis file konfigurasi menggunakan sintaksis S-expression yang terinspirasi dari Lisp,
00:01:07yang merupakan sintaksis konfigurasi teraneh yang pernah saya lihat.
00:01:11Karena alih-alih menulis nama fungsi di luar tanda kurung seperti biasanya,
00:01:16untuk file konfigurasi ini, Anda menulisnya di dalam tanda kurung tepat di samping argumennya.
00:01:21Tapi segalanya menjadi lebih aneh saat Anda mulai menggunakan fungsi bersarang,
00:01:24yang sangat umum dalam konfigurasi ini,
00:01:26karena alih-alih memiliki nama fungsi di luar tanda kurung,
00:01:30semuanya ada di dalam, membuatnya tampak agak sulit dimengerti pada awalnya.
00:01:35Tapi Anda akan terbiasa setelah beberapa lama.
00:01:36Sebagai contoh keymap sederhana, katakanlah saya ingin tombol A memicu huruf X.
00:01:41Saya bisa melakukannya dengan fungsi "defsource" untuk menentukan tombol asal dengan argumen A,
00:01:46dan setidaknya satu fungsi "deflayer" untuk menentukan tombol keluaran,
00:01:50saya akan menamainya "base" dan memberinya argumen X.
00:01:53Tombol apa pun yang tidak terdaftar dalam file konfigurasi akan berfungsi normal.
00:01:57Jadi menambahkan lebih banyak tombol seperti B dan C dan memetakannya ke X dan Z terlihat seperti ini.
00:02:02Untungnya, spasi dan tab tidak berpengaruh,
00:02:04jadi Anda bisa mengatur jarak antar tombol agar semudah mungkin dibaca.
00:02:08Beberapa hal keren lainnya yang bisa Anda lakukan dengan file konfigurasi ini.
00:02:10Saya bisa mengonfigurasi "tap hold", jadi menekannya sebentar melakukan satu tindakan dan menahannya melakukan tindakan lain,
00:02:15dengan batas waktu tahan, lalu tambahkan tombol yang ingin saya petakan.
00:02:19Dalam kasus ini, menekan A akan memicu X dan menahannya akan memicu Shift kiri.
00:02:24Untuk mempermudah, saya bisa menambahkan fungsi "defvar" untuk mendaftarkan beberapa variabel
00:02:28yang saya gunakan berulang kali dalam konfigurasi dan merujuknya dengan tanda dolar,
00:02:32yang sangat cocok untuk "home row mods" yang mencocokkan tombol posisi istirahat jari dengan empat modifier umum.
00:02:36Sejujurnya, ini terasa sangat aneh pada awalnya,
00:02:39tapi saya sudah sangat terbiasa dan tidak bisa membayangkan menggunakan keyboard dengan cara lain.
00:02:42Saya juga bisa membuat "deflayer" baru dengan nama seperti "editor"
00:02:46dan menggunakannya khusus untuk mengedit video sehingga saya bisa memiliki set pemetaan tombol yang benar-benar baru
00:02:51dan beralih ke lapisan ini dengan tombol pengganti lapisan.
00:02:54Dan jika Anda ingin melakukan sesuatu yang sangat keren dalam hal mengganti lapisan atau hal lainnya,
00:02:58Anda bisa mengaktifkan server TCP Kanata sehingga aplikasi lain dapat memantaunya.
00:03:03Jadi dalam kasus saya, saya menggunakan SketchyBar yang memantau Kanata
00:03:06sehingga saat saya mengganti lapisan, informasinya muncul di bagian atas desktop saya.
00:03:10Ya, memang butuh banyak penulisan konfigurasi untuk sampai ke tahap ini,
00:03:13tapi itu bukan masalah yang tidak bisa dibantu oleh AI.
00:03:16Ngomong-ngomong, sekeren apa pun ini, kenapa seseorang harus menggunakan Kanata daripada Karabiner Elements?
00:03:21Mengingat Karabiner bisa melakukan semua yang bisa dilakukan Kanata dan jauh lebih banyak lagi,
00:03:24seperti menggunakan pemetaan tombol khusus untuk aplikasi dan keyboard tertentu,
00:03:28menguji tombol dengan penampil acara yang sangat intuitif,
00:03:30dan memiliki antarmuka grafis yang bagus bagi mereka yang tidak suka menjalankan perintah di terminal.
00:03:35Tapi bagi saya, fitur "tap hold" di Karabiner—khususnya untuk home row mods—sangat kurang.
00:03:40Butuh banyak riset dan konfigurasi mendalam untuk bisa membuatnya berfungsi dengan benar.
00:03:45Dan bahkan ketika saya berhasil membuatnya bekerja, itu tidak seintuitif Kanata.
00:03:49Karabiner sering kali mendaftarkan tahanan sebagai tekanan singkat (tap).
00:03:51Namun, Kanata menangani fitur ini dengan sempurna sejak awal tanpa perlu banyak penyetelan,
00:03:56dan saya tidak merasa perlu kembali menggunakan Karabiner Elements.
00:03:59Jadi jika Anda benar-benar menginginkan home row mods, saya sarankan menggunakan Kanata.
00:04:03Tapi bukan berarti alat ini sempurna.
00:04:05Anda akan memerlukan beberapa file konfigurasi untuk keyboard yang berbeda jika pemetaannya berbeda,
00:04:09yang agak menjengkelkan jika Anda mencabut keyboard
00:04:12karena Anda harus menjalankan perintah untuk beralih ke pemetaan tombol tersebut.
00:04:15Saya juga tidak bisa menemukan cara memetakan tombol play/pause ke F8 pada keyboard saya,
00:04:20sesuatu yang bisa saya lakukan dengan mudah di Karabiner.
00:04:22Dan butuh beberapa penyesuaian agar Kanata bisa berfungsi dengan MX Master Mouse.
00:04:26Untungnya, saya bisa menemukan solusi melalui pengodean untuk sebagian besar masalah ini,
00:04:30yang mungkin akan saya rilis sebagai sumber terbuka di masa mendatang.
00:04:31Tapi saya sangat berharap Kanata memiliki komunitas yang lebih besar,
00:04:34yang mana video ini bisa membantu mewujudkannya jika lebih banyak orang membagikannya ke teman-teman mereka, bukan?