masaüstü düzeyinde otomatik tamamlama


11

Genellikle aynı kelimeleri birkaç uygulamada yazıyorum:

  • Editör (emacs, vi)
  • İnternet tarayıcısı
  • kabuklar

Yukarıdaki tüm uygulamalarda geçen hafta boyunca yazdığım kelimeleri otomatik olarak tamamlamak harika olurdu.

Her birinin yazma hızını artırmanın bir yolu vardır. Ancak masaüstü düzeyinde bir şey en iyisi olurdu.

Örnek: "Sürekli Entegrasyon". Bu sözcüğü girdiyi alan programı değiştirmeden yazmanın hızlı bir yolunu istiyorum.

Zaten böyle bir şey var mı?


Synapse gibi soetihng ( lifehacker.com/5704221/… )?
Salem

Sanırım LibreOffice'in otomatik tamamlaması gibi bir şey ifade ediyorlar. Yazdığınız sözcükleri kaydeder (özelleştirilebilir uzunluk gereksinimlerini karşılar). Kaydettiği bir sözcüğün ilk birkaç harfini yazdığınızda, geri kalanını yazmayı teklif eder ve onu yazmak için sekmeye basabilir veya reddetmek için yazmaya devam edebilirsiniz.
Andy Castille

Yanıtlar:


7

İsteğinizin çözümü Giriş Yöntemi'dir.

Açıkladığınız şey çoğu CJK dili kullanıcısı için tanıdık bir şeydir. Girdi yönteminin mevcut Linux sistemlerinde nasıl çalıştığını inceleyelim.

Giriş Yöntemi sistemi

İşte ortak bir giriş yöntemi sistemi için basit bir mimari:

NOT: Bu görüntü X Giriş Yöntemi Protokolü'nden anlık görüntü . Okların bazıları aşağıdaki tartışmayla ilgisizdir.

Tarihsel olarak, XIM (X Giriş Yöntemi protokolü) tek protokoldü. Aşırı karmaşıktır ve istenen bazı özelliklerden yoksundur. Bu yüzden çoğunlukla terk edilmiş olsa da, uyumluluk hala GTK, Qt.

Modern bir giriş yöntemi sistemi birkaç bölüm içerir:

  1. İstemci tarafı kitaplık desteği

    • tipik olarak araç takımları tarafından yüklenen bir modül olarak uygulanır (örneğin GTK için, bkz. /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/)
  2. Giriş yöntemi sunucusu
  3. X sunucusu

Bu parçalar birbirine nasıl uyuyor?

Kullanıcı bir anahtar yazar. X sunucusu donanım olayını evdev arayüzünden alır, bir XEvent oluşturur ve uygulamaya klavye odağı altında gönderir. Uygulama araç seti (GTK, Qt) giriş yöntemi modülü olayı keser ve bilgileri giriş yöntemi sunucusuna iletir. Giriş yöntemi sunucusu kullanıcının ne isteyebileceğini belirler ve bir kısmı IM modülüne geri gönderir.

Şimdi IM sunucusunun mimarisi hakkında konuşalım.
Bir IM sunucusu genellikle iki bölümden oluşur:

  1. Platforma özgü karmaşıklıkları işleyen ve IM motoru ve araç seti IM modüllerine hoş bir arayüz sağlayan bir IM çerçevesi. IM modülü, sunucu ve motor tarafından kullanılan IPC mekanizmalarını sağlar.
  2. Çeşitli IM motorları, kullanıcı tarafından yazılan tuşları istenen metne dönüştürme gerçek işini yapar. IM motorları, IM sunucusu tarafından yüklenen paylaşımlı kütüphaneler veya IM sunucusuyla iletişim kuran bağımsız süreçler olabilir.
  3. Yardımcı giriş yöntemi yapılandırma programları, IM sunucusunu ve motor davranışlarını özelleştirmek için kullanıcı dostu arayüz sağlar.

Sonuç olarak, bir IM'nin yaptığı, yazdıklarınızı farklı bir şeye dönüştürmek ve isteğe bağlı olarak tahminler sunmaktır.

Bir örnek

Biz kullanmak ibus-pinyinbazı Çinli karakterleri yazmak için buraya.

汉语拼音 'nun romantizasyonu han yu pin yin. Önce, dört Çince karakteri elde etmek için tüm bu harfleri yazmanız gerekir. Ancak birkaç kez sonra h y p y, Çince karakteri elde etmek için ilk dört karakteri yazmanız yeterlidir .

Gelen ibus-pinyindurumda, han yu pin yinbir süreye kadar kısalmaktadır h y p y.
Daha gelişmiş IM motorları, daha iyi tahmin sağlamak için istatistiksel öğrenme tekniklerini kullanır. Hiçbir şey, bir yazma desteği sağlamak için bir İngilizce giriş yöntemi motoru yazmanızı engelleyemez.

Bonus olarak, bazı düz eski X programları dışında tüm araç setlerinin giriş yöntemi desteği vardır. Bu oldukça evrensel bir çözüm.


Anders FU Kiær'a teşekkürler. Özellikler / Typing-Booster | Cevap Fedora Projesi Wiki olmalı


1
en yaygın kullanılan IM çerçevesi ibus'tur . Zamanım varsa, bunu yapmak için bir IM motoru yazmaya çalışacağım. Herhangi bir kavram kanıtı kodunuz varsa bunu deneyebilir ve bağlantı bırakabilirsiniz.
sgx1



Cevabınız en iyisidir. Sana lütuf
veriyorum

3

Senaryomuma bir göz at, TextSuggest .

Eylemde:

Imgur

Kurulum:

Aşağıdaki paketleri yükleyin:

  • xdotool
  • xclip
  • suckless-tools(için dmenu)

Ardından 2 klavye kısayolu atayın:

  • one to `python3 /path/to/TextSuggest.py --noselect
  • diğeri python3 /path/to/TextSuggest.py

Birincisi, tüm kelimelerin aranabilir bir listesini sağlayacaktır. Seçilen metni seçtiğinizde ikincisini kullanın ve bunun için öneriler / tamamlamalar almak istediğinizde.

Kabul edilen öneriler dosyada geçmiş olarak saklanır (ve önce önerilir) ~/.textsuggest_history.txt.

Adresinde özel kelimeler ve genişletmeler / takma adlar tanımlayabilirsiniz ~/.Custom_Words.txt.


0

Autokey'e bir göz atın . İhtiyaçlarınıza uygun olabilir. Sitelerinden C / P:

AutoKey, Linux ve X11 için bir masaüstü otomasyon yardımcı programıdır. Komut dosyaları ve kelime öbekleri koleksiyonunu yönetmenize ve bunlara kısaltmalar ve kısayol tuşları atamanıza olanak tanır. Bu, kullandığınız herhangi bir programda bir komut dosyası yürütmenizi veya istek üzerine metin eklemenizi sağlar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.