NYK DAEMON82 MKN-09 Access

Add-on NVDA untuk memakai aplikasi keyboard NYK DAEMON82 MKN-09 tanpa melihat layar. Aplikasi bawaan NYK menggambar sendiri semua tombolnya dan tidak memberi tahu pembaca layar apa pun, sehingga NVDA biasanya hanya mengucapkan "pane". Dengan add-on ini, semua halaman aplikasi bisa dipakai dengan Tab, tombol panah, Enter, dan Spasi.

Semua fitur tetap berasal dari aplikasi asli NYK, termasuk pengaturan lampu, fungsi tombol, makro, pengaturan lain, dan pembaruan firmware. Add-on ini tidak menggantikan aplikasi itu dan tidak berbicara langsung dengan keyboard.

Panduan pengguna ada di addon/doc/id/readme.md (bahasa Indonesia) dan addon/doc/en/readme.md (bahasa Inggris). Panduan yang sama bisa dibuka dari Pengelola Add-on NVDA setelah add-on dipasang.

Versi NVDA

  • Versi minimum: NVDA 2026.1.
  • Terakhir diuji: NVDA 2026.3.

Cara kerjanya

Aplikasi NYK dibuat dengan pustaka antarmuka DuiLib. Saat jendela aplikasi pertama kali mendapat fokus, add-on menjalankan inject.exe, yang memuat nykhook.dll ke dalam aplikasi NYK. DLL itu membaca daftar kontrol DuiLib beserta nama internalnya, lalu mengirimkannya ke NVDA lewat named pipe.

Add-on memakai nama internal kontrol, misalnya deng_light_slider untuk kecerahan, sebagai patokan. Nama ini tidak berubah walaupun bahasa aplikasi atau nama profil berubah. Teks yang tampil di layar hanya dipakai kalau sebuah kontrol belum dikenal.

Setiap kontrol lalu ditampilkan ke NVDA sebagai objek virtual dengan nama, jenis, nilai, dan status, sehingga NVDA membacakannya seperti kontrol Windows biasa.

Risiko

Baca bagian ini sebelum memasang.

  • Add-on memuat kode sendiri ke dalam proses aplikasi NYK. Teknik ini (hook WH_GETMESSAGE) juga dipakai program lain, termasuk program jahat, jadi antivirus bisa menandai inject.exe atau nykhook.dll sebagai mencurigakan. Kode sumber keduanya ada di folder bridge/, dan paket rilis dibangun dari sumber itu oleh GitHub Actions.
  • Aplikasi NYK bisa tertutup paksa kalau jembatan memanggil fungsi DuiLib dengan cara yang salah. Ini pernah terjadi satu kali selama pengembangan dan sudah diperbaiki. Pengaturan yang sudah tersimpan di keyboard tidak hilang, tetapi perubahan yang belum dikirim ke keyboard ikut hilang.
  • Add-on diuji dengan satu versi aplikasi NYK, yaitu yang file programnya dibuat 12 Juli 2024. Kalau pabrik merilis versi aplikasi baru dengan susunan kontrol yang berbeda, sebagian kontrol bisa kehilangan nama atau jembatan bisa gagal berjalan.
  • Mengganti pilihan dengan tombol panah, misalnya efek lampu, langsung dikirim ke keyboard, sama seperti memilih dengan mouse. Tidak ada tombol batal.
  • Pembaruan firmware selalu berisiko. Kalau prosesnya terputus, keyboard bisa berhenti berfungsi. Add-on hanya menekan tombol di aplikasi NYK dan membacakan statusnya; proses pembaruannya sendiri dijalankan oleh aplikasi NYK. Sambungkan keyboard dengan kabel dan jangan tutup aplikasi selama pembaruan.
  • Saat NVDA dimulai, add-on menghubungi GitHub untuk memeriksa versi barunya. Permintaan ini tidak membawa data pribadi, tetapi GitHub tetap melihat alamat IP Anda. Pemeriksaan ini bisa dimatikan di pengaturan NVDA, kategori NYK DAEMON82 MKN-09.
  • Add-on ini tidak resmi dan tidak berhubungan dengan NYK atau pembuat aplikasinya. Gunakan dengan risiko sendiri, sesuai lisensi GPL yang tidak memberikan jaminan apa pun.

Riwayat perubahan

Riwayat lengkap ada di CHANGELOG.md. Ringkasan versi terbaru:

0.2.0 (8 November 2026)

Rilis publik pertama.

  • Semua halaman aplikasi NYK bisa dijelajahi dengan Tab dan tombol panah. Kontrol yang hanya berupa gambar, seperti kotak warna dan sakelar di halaman Other settings, punya nama yang dibacakan.
  • Kotak pilihan diganti dengan panah atas dan bawah, penggeser dengan panah kiri dan kanan.
  • Di gambar keyboard, menekan sebuah tombol langsung pindah ke tombol itu di gambar.
  • Status dan kemajuan pembaruan firmware dibacakan di mana pun fokus berada.
  • Add-on memeriksa versi barunya sendiri saat NVDA dimulai.

Struktur berkas

  • addon/appModules/nykDaemon82/: app module untuk aplikasi NYK. bridge.py berbicara dengan jembatan, model.py mengubah daftar kontrol menjadi item, labels.py berisi nama kontrol, objects.py berisi objek NVDA virtual.
  • addon/globalPlugins/nykDaemon82/: mendaftarkan app module untuk NYK DAEMON82 MKN-09.exe, panel pengaturan, dan pemeriksa pembaruan.
  • bridge/: kode C jembatan 32-bit (nykhook.c, inject.c, protocol.h) dan skrip build-nya.
  • docs/temuan-halaman.md: catatan nama kontrol di setiap halaman aplikasi.
  • tools/: skrip pengembang untuk menjelajahi aplikasi lewat jembatan, tanpa NVDA.
  • tests/: tes unit yang berjalan tanpa NVDA.
  • buildVars.py, sconstruct, site_scons/: konfigurasi dan skrip build dari NVDA AddonTemplate.

Membangun add-on

Butuh Python 3.13, SCons, Markdown, gettext (msgfmt, xgettext), dan kompiler MinGW 32-bit. Di Windows, kompiler dari MSYS2 (mingw-w64-i686-gcc) dipakai. Di Linux, pasang gcc-mingw-w64-i686.

Bangun jembatan dulu:

sh bridge/build.sh

Lalu bangun paket add-on:

scons

Hasilnya nykDaemon82-<versi>.nvda-addon di folder utama.

Versi protokol jembatan ada di bridge/protocol.h dan PROTOCOL_VERSION di bridge.py. Naikkan keduanya setiap kali perintah jembatan berubah. DLL yang sudah termuat di aplikasi NYK tidak bisa dilepas, jadi nomor versi itu menjadi bagian dari nama pipe agar jembatan baru bisa berjalan di sampingnya.

Terjemahan

Teks sumber antarmuka berbahasa Inggris. Terjemahan bahasa Indonesia ada di addon/locale/id/LC_MESSAGES/nvda.po.

Setelah mengubah teks antarmuka, perbarui berkas terjemahan:

scons pot
msgmerge --update --no-location addon/locale/id/LC_MESSAGES/nvda.po nykDaemon82.pot

Tes dan pemeriksaan kode

python -m pytest
python -m ruff check .

Kode mengikuti standar penulisan kode NVDA: indentasi tab, nama lowerCamelCase, petunjuk tipe, dan komentar Translators: untuk setiap string yang diterjemahkan.

tools/dumpitems.py menampilkan daftar item yang akan dibuat add-on dari aplikasi NYK yang sedang berjalan, tanpa NVDA. Jembatan hanya melayani satu koneksi, jadi tutup NVDA atau keluar dari jendela NYK dulu kalau NVDA sedang memakainya.

GitHub Actions dan rilis

Setiap push dan pull request ke main menjalankan Ruff, tes, pemeriksaan versi, build jembatan dari sumber, build add-on, dan pemeriksaan terjemahan. Paket hasil build bisa diunduh dari halaman Actions.

Rilis dibuat otomatis saat push ke main, jika:

  • versi di buildVars.py belum punya tag rilis, dan
  • CHANGELOG.md punya bagian versi itu dengan tanggal, misalnya ## [0.3.0] - 2026-11-20.

Bagian yang masih bertulisan "belum dirilis" hanya dibangun, tidak dirilis. Rilis berisi paket .nvda-addon, berkas .pot, catatan dari CHANGELOG.md, dan checksum SHA256 untuk memeriksa keaslian paket.

Kontribusi

Lihat panduan kontribusi InfiArtt. Laporkan masalah lewat tab Issues dengan formulir Bug report.

Lisensi

GPL-2.0-or-later, (c) 2026 Rexya Muhamad [email protected]. Lihat LICENSE.