pelengkapan otomatis di tingkat desktop

11

Saya sering mengetik kata yang sama di beberapa aplikasi:

  • Editor (emacs, vi)
  • Browser web
  • Kerang

Alangkah baiknya memiliki autocomplete dari kata-kata yang saya ketikkan selama minggu terakhir yang tersedia di semua aplikasi di atas.

Masing-masing dari mereka memiliki cara untuk meningkatkan kecepatan mengetik. Tetapi sesuatu di tingkat desktop akan menjadi yang terbaik.

Contoh: "Integrasi Berkelanjutan". Saya ingin cara cepat mengetik kata ini tanpa mengubah program yang menerima input.

Apakah sudah ada yang seperti ini?

guettli
sumber
Jadi suka Synapse ( lifehacker.com/5704221/… )?
Salem
Saya pikir mereka berarti sesuatu seperti autocomplet LibreOffice. Ini menghemat kata-kata yang Anda ketikkan (yang memenuhi persyaratan panjang yang dapat disesuaikan). Saat Anda mengetik beberapa huruf pertama dari kata yang telah disimpannya, ia akan menawarkan untuk mengetik sisanya, dan Anda dapat menekan tab untuk mengetiknya, atau terus mengetik untuk menolaknya.
Andy Castille

Jawaban:

7

Solusi untuk permintaan Anda adalah Metode Input.

Apa yang telah Anda gambarkan adalah sesuatu yang akrab bagi sebagian besar pengguna bahasa CJK. Mari kita tinjau bagaimana metode input bekerja di sistem Linux saat ini.

Sistem Metode Input

Berikut arsitektur sederhana untuk sistem metode input umum:

CATATAN: Saya snapshot gambar ini dari The X Input Method Protocol . Beberapa panah tidak relevan untuk mengikuti diskusi.

Secara historis, XIM (protokol Metode Input X) adalah satu-satunya protokol. Ini terlalu rumit dan tidak memiliki beberapa fitur yang diinginkan. Jadi sebagian besar ditinggalkan, meskipun kompatibilitas masih disediakan oleh toolkit populer seperti GTK, Qt.

Sistem metode input modern berisi beberapa bagian:

  1. Dukungan perpustakaan sisi klien

    • biasanya diimplementasikan sebagai modul yang dimuat oleh toolkit (misalnya untuk GTK, lihat /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/)
  2. Server metode input
  3. Server X

Bagaimana bagian-bagian ini cocok bersama?

Seorang pengguna mengetikkan kunci. Server X menerima acara perangkat keras dari antarmuka evdev, menyusun XEvent dan mengirim ke aplikasi di bawah fokus keyboard. Modul metode input toolkit (GTK, Qt) mencegat acara dan meneruskan info ke server metode input. Server metode input memperkirakan apa yang diinginkan pengguna dan mengirimkan beberapa teks kembali ke modul IM.

Sekarang, mari kita bicara tentang arsitektur server IM.
Server IM biasanya terdiri dari dua bagian:

  1. Kerangka kerja IM yang menangani seluk-beluk platform spesifik dan menyediakan antarmuka yang bagus untuk modul IM engine dan toolkit IM. Ini memberikan mekanisme IPC yang digunakan oleh modul IM, server dan mesin.
  2. Berbagai mesin IM melakukan pekerjaan aktual untuk mengubah kunci yang diketik pengguna menjadi teks yang diinginkan. Mesin IM dapat dibagi menjadi perpustakaan yang dimuat oleh server IM atau proses independen yang berkomunikasi dengan server IM.
  3. Program konfigurasi metode input bantu menyediakan antarmuka pengguna yang ramah untuk menyesuaikan server IM dan perilaku engine.

Secara keseluruhan, apa yang dilakukan IM adalah mengubah apa yang Anda ketik menjadi sesuatu yang berbeda dan secara opsional memberikan prediksi.

Sebuah contoh

Kami menggunakan di ibus-pinyinsini untuk mengetik beberapa karakter Cina.

Romanisasi 汉语拼音 adalah han yu pin yin. Pada awalnya, Anda perlu mengetik semua huruf ini untuk mendapatkan empat karakter bahasa Mandarin. Tetapi setelah beberapa kali, Anda hanya perlu mengetikkan empat karakter awal h y p yuntuk mendapatkan karakter Cina.

Dalam hal ibus-pinyinini, han yu pin yindisingkat menjadi h y p y.
Mesin IM yang lebih maju menggunakan teknik pembelajaran statistik untuk memberikan prediksi yang lebih baik. Tidak ada yang dapat menghentikan Anda dari menulis mesin metode input Bahasa Inggris untuk memberikan dorongan pengetikan.

Sebagai bonus, semua toolkit memiliki dukungan metode input kecuali beberapa program X biasa. Jadi ini adalah solusi yang cukup universal.


Terima kasih kepada Anders FU Kiær. Fitur / Pengetik-Pengetik | Proyek Fedora Wiki harus menjadi jawabannya

sgx1
sumber
1
kerangka kerja IM yang paling umum digunakan adalah ibus . jika saya punya waktu, saya akan bekerja menulis mesin IM untuk melakukan itu. siapa pun dapat mencobanya dan meninggalkan tautan jika Anda memiliki kode bukti konsep.
sgx1
Jawaban Anda adalah yang terbaik. Aku memberimu hadiah :-)
guettli
3

Lihatlah skrip saya, TextSuggest .

Beraksi:

Imgur

Instalasi:

Instal paket-paket berikut:

  • xdotool
  • xclip
  • suckless-tools(untuk dmenu)

Kemudian tetapkan 2 pintasan keyboard:

  • satu ke `python3 /path/to/TextSuggest.py --noselect
  • yang lain untuk python3 /path/to/TextSuggest.py

Yang pertama hanya akan memberikan daftar semua kata yang dapat dicari. Gunakan yang kedua ketika Anda memiliki beberapa teks yang dipilih, dan ingin mendapatkan saran / penyelesaian untuk itu.

Saran yang diterima disimpan sebagai riwayat (dan kemudian disarankan terlebih dahulu) dalam file ~/.textsuggest_history.txt.

Anda dapat menetapkan kata dan ekspansi / alias ubahsuaian di ~/.Custom_Words.txt.

UniversalUniqueID
sumber
0

Lihatlah Autokey . Mungkin cocok dengan kebutuhan Anda. C / P dari situs mereka:

AutoKey adalah utilitas otomatisasi desktop untuk Linux dan X11. Ini memungkinkan Anda untuk mengelola kumpulan skrip dan frasa, dan menetapkan singkatan dan hotkey untuk ini. Ini memungkinkan Anda untuk menjalankan skrip atau menyisipkan teks sesuai permintaan dalam program apa pun yang Anda gunakan.

Detnuomnu
sumber