Tahan tombol untuk pengubah

23

Saya telah jatuh cinta dengan bisa menahan tombol pada Android selama sekitar 100 ms untuk mendapatkan kunci tanda baca 'di bawahnya' (jika ditemukan di menu), dan saya ingin memiliki kemampuan yang sama untuk Ubuntu. Saya tidak perlu mengulangi karakter, jadi saya tidak akan kehilangan apapun. Apakah ini mungkin dan jika iya, bagaimana? Terima kasih :)

Patrick
sumber
Sudah terlambat, tetapi bisakah Anda menjelaskan lebih lanjut tentang fungsi yang ingin Anda terapkan untuk Ubuntu?
Harshit
1
@Harshit, tentu: Menggunakan keyboard Google, di Android, dimungkinkan untuk memilih kemampuan untuk menahan tombol pada keyboard -oft untuk mengetik tanda baca, tanpa harus pergi ke menu terpisah. Ini akan, secara ideal, diterapkan sebagai opsi dalam Ubuntu di mana menekan, misalnya, tombol '2' untuk 100ms mengetik a '@', menahan '-' mengetik '_', dan seterusnya.
Patrick

Jawaban:

3

Saat ini tidak ada cara cepat dan mudah untuk mengaktifkan fungsi semacam ini pada versi desktop Ubuntu.

Secara pribadi saya penggemar berat cara pintas menulis standar ; Saya menemukan mereka lebih cepat dan jauh lebih intuitif daripada pemilihan pers panjang gaya seluler (♥). Yang mengatakan, jika Anda memiliki waktu dan tekad, Anda mungkin dapat mendukung opsi slowkey dalam aplikasi Universal Access inti default untuk membangun sesuatu yang mirip dengan opsi seluler.

Menyodok dalam diri saya sendiri, XKB tampaknya dikaitkan dengan kontrol tombol lambat. Anda dapat menggunakan XKB untuk mengkonfigurasi dan meningkatkan binding keyboard Ubuntu, dan sejauh yang saya tahu, bagian ini memiliki apa yang Anda butuhkan. Jadi seharusnya tidak begitu (relatif) sulit untuk memiliki karakter cetak alternatif ketika kunci dipegang.

Di mana segala sesuatunya rumit adalah menetapkan beberapa karakter khusus untuk penekanan tombol (contoh: tahan "a" dan dapatkan opsi untuk ä, à, á, â, dll.). Bagaimana Anda menggilir opsi? Apakah Anda memiliki karakter yang muncul di jendela dialog, lalu gunakan tombol mouse, tab atau panah untuk memilih satu? Sepertinya memakan waktu.

Atau Anda dapat menetapkan panjang penahanan yang berbeda untuk karakter yang berbeda. 100ms tahan untuk à, 200ms tahan untuk á, 300ms untuk â ... Tapi mengingat berapa detik untuk karakter mana yang bisa menjadi rumit, belum lagi menetapkan semuanya secara individual akan menjadi sakit kepala. Plus ketika Anda masuk ke daftar karakter yang lebih panjang Anda bisa duduk di sana memegang kunci selama 3-4 detik. Tampaknya lebih memakan waktu.

Daripada tombol lambat, Anda bisa mencoba opsi pengulangan alih-alih memiliki beberapa ketukan tombol untuk memberikan karakter khusus: 3 ketuk "a" untuk à, misalnya. Tapi kemudian Anda berisiko memiliki karakter khusus yang tidak diinginkan muncul ketika Anda mengetik sesuatu seperti "baik", atau "menakutkan", atau "aaaaaaahhh!"

Anda mungkin telah menemukan beberapa metode implementasi lain yang lebih efisien yang tidak saya pikirkan, dalam hal ini maju dan modifikasi! Tetapi saya masih akan merekomendasikan untuk membuat kombinasi tombol sementara itu. ☺

Boxbot
sumber
1
Melihat tautan Anda, maka dimungkinkan untuk menetapkan setiap tombol sebagai kunci pengubah ke tanda baca, dengan penundaan, yang persis seperti yang saya cari! Saya harus mencoba bermain-main dengan ini, nanti.
Patrick
0

Saya yakin ini mungkin dilakukan dengan memodifikasi keyboard interrupt service routine (ISR). Setiap kali tombol ditekan, sinyal interupsi dikirim ke CPU. CPU kemudian akan melayani gangguan itu dengan menjalankan keyboard ISR.

ISR adalah program tingkat rendah, biasanya dikodekan dalam bahasa assembly, karena mereka berhubungan langsung dengan perangkat keras dan harus cepat. Berikut ini info lebih lanjut tentang gangguan perangkat keras pada prosesor Intel dan cara menggunakannya.

Keyboard telah memiliki prosesor sendiri sejak zaman IBM-PC asli, dan dapat menghasilkan karakter dengan sangat cepat jika ada tombol yang ditekan.

Beberapa definisi mungkin berguna di sini:

Ulangi Tunda : Waktu berlalu antara menekan tombol dan ketika mulai berulang.

Tingkat Pengulangan : Setelah tombol ditekan, keyboard akan mengulangi tombol itu. Kecepatan pengulangannya adalah tingkat pengulangan. Kadang-kadang disebut laju tipematik.

Keyboard ISR rutin harus dimodifikasi untuk menggantikan fungsi Repeat Delay untuk fungsi 'Karakter Alternatif'. Waktu dari penekanan tombol dan rilis adalah esensi dari itu. Dengan mengukur durasi penekanan tombol, ISR (atau interrupt handler) akan tahu untuk meneruskan karakter normal dari karakter alternatif (tombol "di bawah" itu)

Pada dasarnya, Anda akan memodifikasi atau menulis ulang driver perangkat untuk keyboard.

Ini hanya pandangan tingkat tinggi dari pendekatan yang saya pikir diperlukan untuk mencapai apa yang Anda inginkan.

dbkeys
sumber
0

Karena fungsi touchpad yang mirip dengan layar sentuh di Android itu akan memberikan antarmuka yang lebih baik daripada keyboard. Memang set baru rutin dapat diimplementasikan untuk memperbesar dengan menggerakkan ibu jari dan telunjuk bersama-sama dan memperkecil dengan membalikkan arah dapat diimplementasikan.

Touchpad sudah dapat merasakan satu jari, dua jari, bahkan telapak tangan secara tidak sengaja bergerak ke arah touchpad dan karenanya diabaikan. Kecepatan akselerasi dan perlambatan diakui. Ini sudah mengendalikan penunjuk tetikus untuk teks yang ingin Anda sorot dengan pers lama.

Ini harus menjadi sepotong kue untuk programmer untuk menambahkan sedikit tambahan kode untuk mengukur sentuhan panjang tekan dan memunculkan menu sensitif konteks untuk select, copy, paste, dll seperti smartphone lakukan hari ini.

Saya pikir pertanyaan Anda adalah ide bagus yang dapat mengembangkan perangkat lunak dan keyboard dengan touchpads bawaan ke tingkat yang sama sekali baru. Saya harus menunjukkan bahwa beberapa touchpad yang terpasang pada keyboard memiliki layar lcd berwarna yang dapat membawa ide Anda lebih jauh. yaitu, teks layar yang sedang disorot dapat dicerminkan ke layar sentuh lcd dan diperbesar untuk gerakan yang bagus.

Apple, Google, Microsoft dan Linus semuanya bisa bersemangat dengan ide Anda. Ini tentu menarik minat saya!

WinEunuuchs2Unix
sumber
Apakah saya merasakan sarkasme atau apakah ini asli?
Amit Gold
Saya pikir ini adalah ide yang hebat. Membawa beberapa keunggulan ponsel kembali ke desktop.
WinEunuuchs2Unix