เติมข้อความอัตโนมัติในระดับเดสก์ทอป


11

ฉันมักจะพิมพ์คำเดียวกันในหลายแอปพลิเคชัน:

  • เครื่องมือแก้ไข (emacs, vi)
  • เว็บเบราว์เซอร์
  • เปลือกหอย

จะเป็นการดีหากมีการเติมข้อความอัตโนมัติที่ฉันพิมพ์ในช่วงสัปดาห์สุดท้ายที่มีอยู่ในแอปพลิเคชันด้านบนทั้งหมด

แต่ละคนมีวิธีในการปรับปรุงความเร็วในการพิมพ์ แต่สิ่งที่ระดับเดสก์ท็อปจะดีที่สุด

ตัวอย่าง: "Integration Integration" ฉันต้องการวิธีที่รวดเร็วในการพิมพ์คำนี้โดยไม่ต้องเปลี่ยนโปรแกรมที่รับอินพุต

มีบางอย่างเช่นนี้หรือไม่?


Soetihng ชอบไซแนปส์ ( lifehacker.com/5704221/… )?
เซเลม

ฉันคิดว่าพวกเขาหมายถึงบางสิ่งบางอย่างเช่นการเติมข้อความอัตโนมัติของ LibreOffice มันจะบันทึกคำที่คุณพิมพ์ (ที่ตรงกับความต้องการความยาวที่ปรับแต่งได้) เมื่อคุณพิมพ์ตัวอักษรสองสามคำแรกของคำที่บันทึกไว้มันจะเสนอให้พิมพ์ส่วนที่เหลือและคุณสามารถกดแท็บเพื่อพิมพ์ลงไปหรือพิมพ์ต่อเพื่อปฏิเสธ
Andy Castille

คำตอบ:


7

ทางออกสำหรับคำขอของคุณคือวิธีการป้อนข้อมูล

สิ่งที่คุณอธิบายคือสิ่งที่ผู้ใช้ภาษา CJK ส่วนใหญ่คุ้นเคย เรามาดูกันว่าวิธีการป้อนข้อมูลทำงานอย่างไรในระบบ Linux ปัจจุบัน

ระบบวิธีการป้อนข้อมูล

นี่เป็นสถาปัตยกรรมอย่างง่ายสำหรับระบบวิธีการป้อนข้อมูลทั่วไป:

หมายเหตุ: ผม snapshot ภาพนี้จากเอ็กซ์วิธีการป้อนข้อมูลพิธีสาร ลูกศรบางอันไม่เกี่ยวข้องกับการติดตาม

ในอดีตนั้น XIM (โปรโตคอล X Input Method) เป็นเพียงโปรโตคอลเดียว มันซับซ้อนเกินไปและขาดคุณสมบัติที่ต้องการบางอย่าง ดังนั้นส่วนใหญ่จะถูกละทิ้งแม้ว่าความเข้ากันได้จะยังคงให้บริการโดยชุดเครื่องมือยอดนิยมเช่น GTK, Qt

ระบบวิธีการป้อนข้อมูลที่ทันสมัยประกอบด้วยหลายส่วน:

  1. การสนับสนุนไลบรารีฝั่งไคลเอ็นต์

    • โดยทั่วไปจะนำไปใช้เป็นโมดูลที่โหลดโดยชุดเครื่องมือ (เช่นสำหรับ GTK ดู/usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/)
  2. เซิร์ฟเวอร์วิธีการป้อนข้อมูล
  3. เซิร์ฟเวอร์ X

ชิ้นส่วนเหล่านี้เข้ากันได้อย่างไร

ผู้ใช้พิมพ์รหัส เซิร์ฟเวอร์ X ได้รับเหตุการณ์ฮาร์ดแวร์จากส่วนต่อประสาน evdev ประกอบด้วย XEvent และส่งไปยังแอปพลิเคชันภายใต้โฟกัสของแป้นพิมพ์ โมดูลแอ็พพลิเคชัน toolkit (GTK, Qt) โมดูลอินพุตวิธีดักเหตุการณ์และส่งผ่านข้อมูลไปยังเซิร์ฟเวอร์เมธอดอินพุต เซิร์ฟเวอร์วิธีการป้อนข้อมูลจะแสดงสิ่งที่ผู้ใช้อาจต้องการและส่งข้อความกลับไปที่โมดูล IM

ทีนี้มาพูดถึงสถาปัตยกรรมของเซิร์ฟเวอร์ IM กัน
โดยทั่วไปเซิร์ฟเวอร์ IM ประกอบด้วยสองส่วนดังนี้

  1. เฟรมเวิร์ก IM ซึ่งจัดการความซับซ้อนเฉพาะแพลตฟอร์มและให้อินเทอร์เฟซที่ดีกับ IM engine และชุดเครื่องมือ IM IM จัดเตรียมกลไก IPC ที่ใช้โดยโมดูล IM เซิร์ฟเวอร์และเอ็นจิน
  2. เอ็นจิ้น IM ต่าง ๆ ทำงานจริงในการแปลงคีย์ที่ผู้ใช้พิมพ์เป็นข้อความที่ต้องการ เอ็นจิน IM สามารถแชร์ไลบรารีที่โหลดโดยเซิร์ฟเวอร์ IM หรือกระบวนการอิสระที่สื่อสารกับเซิร์ฟเวอร์ IM
  3. โปรแกรมกำหนดค่าวิธีการป้อนข้อมูลเสริมให้ส่วนติดต่อผู้ใช้ที่เป็นมิตรสำหรับการปรับแต่งเซิร์ฟเวอร์ IM และลักษณะการทำงานของเครื่องยนต์

โดยสรุปแล้วสิ่งที่ IM ทำคือแปลงสิ่งที่คุณพิมพ์ให้เป็นสิ่งที่แตกต่างและให้การคาดการณ์ทางเลือก

ตัวอย่าง

เราใช้ibus-pinyinที่นี่เพื่อพิมพ์ตัวอักษรจีนบางตัว

สุริยวรมันของ汉语拼音han yu pin yinคือ ในตอนแรกคุณต้องพิมพ์ตัวอักษรทั้งหมดเหล่านี้เพื่อรับตัวอักษรจีนสี่ตัว แต่หลังจากนั้นไม่กี่ครั้งคุณเพียงแค่พิมพ์ตัวอักษรเริ่มต้นสี่ตัวh y p yเพื่อรับตัวอักษรจีน

ในibus-pinyinกรณีที่มีการลงไปhan yu pin yin เอ็นจิ้น IM ขั้นสูงเพิ่มเติมใช้เทคนิคการเรียนรู้ทางสถิติเพื่อให้การคาดการณ์ดีขึ้น ไม่มีอะไรสามารถหยุดคุณจากการเขียนกลไกวิธีการป้อนข้อมูลภาษาอังกฤษเพื่อเพิ่มการพิมพ์h y p y

เป็นชุดโบนัสชุดเครื่องมือทั้งหมดมีการสนับสนุนวิธีการป้อนข้อมูลยกเว้นบางโปรแกรม X เก่าธรรมดา ดังนั้นนี่จึงเป็นคำตอบที่ค่อนข้างเป็นสากล


ขอบคุณ Anders FU Kiær คุณสมบัติ / Typing-Booster | Fedora Project Wikiควรเป็นคำตอบ


1
IM ที่กรอบที่ใช้กันมากที่สุดคือibus ถ้าฉันมีเวลาฉันจะเขียนโปรแกรม IM เพื่อทำเช่นนั้น สามารถลองใช้งานได้และปล่อยให้ลิงก์หากคุณได้รับรหัสพิสูจน์แนวคิด
sgx1



คำตอบของคุณดีที่สุด ฉันให้รางวัล :-) ให้คุณ
guettli

3

ลองดูที่บทของฉันTextSuggest

ในการดำเนินการ:

Imgur

การติดตั้ง:

ติดตั้งแพ็คเกจต่อไปนี้:

  • xdotool
  • xclip
  • suckless-tools(สำหรับdmenu)

จากนั้นกำหนดแป้นพิมพ์ลัด 2 รายการ:

  • หนึ่งถึง `python3 /path/to/TextSuggest.py - ไม่เลือก
  • อื่น ๆ เพื่อ python3 /path/to/TextSuggest.py

คำแรกจะให้รายการที่ค้นหาได้ของคำทั้งหมด ใช้ครั้งที่สองเมื่อคุณเลือกข้อความและต้องการรับคำแนะนำ / ความสมบูรณ์

ข้อเสนอแนะที่ยอมรับจะถูกเก็บไว้เป็นประวัติศาสตร์ (และมีข้อเสนอแนะแล้วครั้งแรก) ~/.textsuggest_history.txtในแฟ้ม

คุณสามารถกำหนดคำที่กำหนดเองและการขยาย / ~/.Custom_Words.txtนามแฝงที่


0

ลองดูที่Autokey มันอาจเหมาะสมกับความต้องการของคุณ C / P จากเว็บไซต์ของพวกเขา:

AutoKey เป็นเครื่องมืออัตโนมัติบนเดสก์ท็อปสำหรับ Linux และ X11 อนุญาตให้คุณจัดการชุดของสคริปต์และวลีและกำหนดตัวย่อและปุ่มลัดให้กับสิ่งเหล่านี้ สิ่งนี้ช่วยให้คุณสามารถรันสคริปต์หรือแทรกข้อความตามต้องการในโปรแกรมที่คุณใช้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.