วิธีการผูก Global HotKeys เข้ากับโปรแกรมไวน์ภายใต้ Linux
คุณเคยติดตั้งโปรแกรม Windows ใน Linux ภายใต้ WINE เพียงเพื่อที่จะค้นพบว่ามันไม่ได้ผูกปุ่มลัดทั้งระบบอีกต่อไปหรือไม่? HTG แก้ปัญหาที่คุณมองหา.
รูปภาพโดย djeucalyptus
ภาพรวม
ทุกคนที่เคยคิดที่จะเปลี่ยนมาใช้ Linux อาจพบปัญหาอย่างรวดเร็วว่ามีแอพ Windows ตัวหนึ่งที่คุณไม่จำเป็นต้องใช้งาน เราได้แสดงให้คุณเห็นแล้วว่าคุณสามารถทำได้โดยใช้ WINE.
สำหรับนักเขียนคนนี้แอพพลิเคชั่นนี้เป็นแอปพลิเคชั่น Text-To-Speech ซึ่งใช้เอ็นจิ้น Microsoft SAPI4 การติดตั้งโปรแกรมภายใต้ WINE นั้นง่ายมาก แต่เมื่อฉันทำเสร็จฉันก็พบว่าปุ่มลัดที่ใช้ในการกระตุ้นการทำงานต่าง ๆ ของโปรแกรม (เริ่มอ่านหยุดการอ่าน ฯลฯ ) ไม่ทำงานและมันก็เป็นที่รู้จักกันดี ปัญหากับไวน์.
ฉันดีใจที่พูดได้ว่าหลังจากผ่านการค้นหามาหลายปีฉันก็ได้พบวิธีแก้ปัญหาในรูปแบบของยูทิลิตี้ GNU ที่สามารถจัดการกับส่วนต่อประสาน X.org โดยใช้ฟังก์ชั่นพื้นฐานได้ แม้ว่าจะไม่ใช่ชนิดเดียว แต่ xdotool เป็นอันที่ง่ายที่สุดในการทำงานและอยู่ในที่เก็บ Ubuntu / Mint แล้ว.
xdotool
โปรแกรม xdotool สามารถทำงานหลายอย่างที่เกี่ยวข้องกับหน้าต่างจาก CLI โดยที่กล่าวเพียงสองอย่างที่เราจะใช้คือ "ค้นหา" และ "กุญแจ" ฟังก์ชั่น“ ค้นหา” ทำอย่างนั้นค้นหาหน้าต่าง / s ID ตามพารามิเตอร์ที่คุณตั้งไว้ ฟังก์ชั่น "กุญแจ" ช่วยให้คุณสามารถจำลองการกดคีย์ไปที่ ID หน้าต่าง.
การติดตั้งและกำหนดค่า
จะถือว่าคุณได้ติดตั้ง WINE และโปรแกรมที่คุณต้องการแล้ว ในตัวอย่างนี้เราจะใช้ Balabolka เป็นแอพพลิเคชั่น“ Windows” เพราะมันเป็นแบบจำลองฟรีแวร์ที่ดีของโปรแกรมดั้งเดิมฉันต้องการโซลูชันนี้สำหรับ (ศูนย์เสียงที่ 2).
หากคุณเลือกที่จะใช้ Balabolka เช่นกันคุณต้องเปิดใช้งานความสามารถของปุ่มลัด.
หมายเหตุ: คุณอาจต้องการติดตั้งศูนย์คำพูด TTSReader หรือ 2nd แม้ในโหมดสาธิตดังนั้นเสียง SAPI จะถูกติดตั้ง.
เปิดโปรแกรมและไปที่การตั้งค่า (Shift + F6) ภายใต้“ ตัวเลือก” ->“ การตั้งค่า”.
ไปที่แท็บปุ่มลัดและเลือกช่องทำเครื่องหมาย“ ใช้ปุ่มลัดส่วนกลาง”.
คลิกตกลง.
ปล่อยให้มันทำงานในพื้นหลังเพื่อให้สามารถทำงานได้เมื่อเราเชื่อมโยงการกดแป้นกับมัน.
ติดตั้ง xdotool โดยการออก:
sudo apt-get install xdotool
การผูกมัดระดับโลก
โปรแกรม xdotool ด้วยตัวมันเองไม่ได้ช่วยให้เราเชื่อมโยงกับฮอตคีย์ทั่วโลก แต่เราสามารถใช้ระบบฮอตคีย์ OS ที่มีอยู่แล้ว สิ่งที่เราจะทำคือสร้างสคริปต์ง่ายๆที่ใช้ xdotool เพื่อส่งการกดแป้นที่เราต้องการไปยังโปรแกรม Balabolka และเรียกมันจากระบบฮอตคีย์ของระบบปฏิบัติการ.
สร้างสคริปต์ชื่อ“ start_read.sh” ด้วยเนื้อหาต่อไปนี้:
ปุ่ม xdotool - เรียกดู $ (ค้นหา xdotool - จำกัด 1 - ทั้งหมด --pid $ (pgrep balabolka) - ชื่อ Balabolka) "ctrl + alt + F9"
สร้างสคริปต์อื่นในเวลานี้ชื่อ“ stop_read.sh” ด้วยเนื้อหาดังต่อไปนี้:
ปุ่ม xdotool - เรียกดู $ (ค้นหา xdotool - จำกัด 1 - ทั้งหมด --pid $ (pgrep balabolka) - ชื่อ Balabolka) "ctrl + alt + F7"
หมายเหตุ: ฉันรู้ว่านี่เป็นหนึ่งในสายการบินที่ไม่ต้องใช้สคริปต์ แต่โปรแกรม "ทางลัดแป้นพิมพ์" ของ Mint / Ubuntu ไม่ได้ให้ความร่วมมือเพียงแค่เรียกใช้โดยตรง หากคุณรู้วิธีการทำโปรดแบ่งปันในความคิดเห็นด้านล่าง.
การเบรกคำสั่งนี้ไปยังส่วนประกอบของมันสิ่งที่เราเห็นคือ:
- ส่วน“ -pid $ (pgrep balabolka)” ดำเนินการ“ pgrep” ในโปรแกรมที่เราต้องการใช้เพื่อตรวจสอบ ID กระบวนการของมัน สิ่งนี้จะทำให้ xdotool ที่เก็บข้อมูล“ ค้นหา” แคบลงเพียงแค่ PID นั้น.
- ส่วน“ xdotool search -limit 1 -all … -name Balabolka” ส่วน จำกัด การค้นหา xdotool ให้แคบลงและ จำกัด คำตอบที่ส่งกลับไปที่ 1 เช่นในกรณีของเรามันไม่สำคัญว่า ID หน้าต่างใดที่ส่งคืนของ โปรแกรมการ จำกัด ผลลัพธ์ที่ทำหน้าที่เป็นตัวจัดรูปแบบสำหรับคำสั่ง "คีย์" คุณอาจพบว่าคุณจำเป็นต้องนวดส่วนนี้มากขึ้นถ้ามันสำคัญสำหรับโปรแกรมที่คุณใช้อยู่.
- ส่วน“ xdotool key -window% WINDOW_ID%“ ctrl + alt + F7 "” จะส่งการกดแป้นที่ต้องการไปยัง windowID ซึ่งได้รับจากชิ้นส่วนก่อนหน้า.
ทำให้สคริปต์เรียกใช้งานได้.
Linux Mint Keyboard ทางลัด
ภายใต้ Linux Mint ปุ่มลัดส่วนกลางจะถูกตั้งค่าในโปรแกรม“ Keyboard Shortcuts”.
เมื่อเปิดแล้วคลิกที่“ เพิ่ม” เพื่อสร้างทางลัดที่กำหนดเองใหม่:
ตั้งชื่อและภายใต้“ คำสั่ง” ให้เส้นทางแบบเต็มไปยังหนึ่งในสคริปต์ที่เราสร้างขึ้นด้านบน ทำซ้ำกระบวนการสำหรับสคริปต์ที่สอง.
ตอนนี้ในคอลัมน์ "ทางลัด" คลิกที่คำว่า "ปิดการใช้งาน" เพื่อรับตัวเลือกในการตั้งค่าคำสั่งผสมคีย์ใหม่.
หมายเหตุ: หากคุณต้องการให้ใช้สิ่งอื่นดังนั้นค่าเริ่มต้นของโปรแกรม ในแง่การสร้าง“ ทำการแมป” กับการเชื่อมโยงคีย์ซึ่งขึ้นอยู่กับโปรแกรมที่คุณใช้มิฉะนั้นจะอยู่นอกเหนือการควบคุมของคุณ.
กดคอมโบที่คุณเลือกและได้ยินเสียงเวทมนต์.
คีย์บอร์ด Ubuntu
ภายใต้อูบุนตูโปรแกรมที่ตั้งค่าฮ็อตคีย์นั้นเรียกว่า "แป้นพิมพ์".
สลับไปที่แท็บ "ทางลัด" และเลือก "ทางลัดที่กำหนดเอง".
คลิกที่เครื่องหมายบวกเพื่อเพิ่มทางลัด ตั้งชื่อและภายใต้“ คำสั่ง” ให้เส้นทางแบบเต็มไปยังหนึ่งในสคริปต์ที่เราสร้างขึ้นด้านบน ทำซ้ำกระบวนการสำหรับสคริปต์ที่สอง.
ตอนนี้คลิกที่คำ“ ปิดการใช้งาน” เพื่อรับตัวเลือกในการตั้งค่าคำสั่งผสมคีย์ใหม่.
หมายเหตุ: การทำซ้ำในบันทึกจากส่วนของเหรียญกษาปณ์คุณอาจใช้บางสิ่งบางอย่างอื่นหากเป็นเช่นนั้นค่าเริ่มต้นของโปรแกรม ในแง่การสร้าง“ ทำการแมป” กับการเชื่อมโยงคีย์ซึ่งขึ้นอยู่กับโปรแกรมที่คุณใช้มิฉะนั้นจะอยู่นอกเหนือการควบคุมของคุณ.
หมายเหตุผู้แต่ง
ทุกครั้งที่ฉันพิจารณาการย้ายไปที่ Linux อย่างจริงจังปัญหานี้เป็นครั้งแรกในรายการปัญหาของฉัน ไม่ใช่ว่า Linux ไม่มีปัญหา แต่นี่เป็นอุปสรรค์ที่แท้จริงสำหรับฉัน ฉันลองครั้งแล้วครั้งเล่าถามเพื่อน / คนในสนามและทำให้เป็นรางวัล ... ฉันมีความสุขเทพนิยายนี้จบลงและในที่สุดวิญญาณของฉันก็สามารถพักผ่อนได้.
มันเป็นความหวังของฉันที่ฉันได้ช่วยใครบางคนที่นั่นโดยไม่ต้องผ่านการทดสอบแบบเดียวกัน.
หมอบราวน์: ฉันต้องใช้เวลาเกือบสามสิบปีและโชคชะตาของครอบครัวทั้งหมดของฉันได้ตระหนักถึงวิสัยทัศน์ของวันนั้น ข้า แต่พระเจ้ามันนานขนาดนั้นแล้ว?