โฮมเพจ » ทำอย่างไร » วิธีการผูก Global HotKeys เข้ากับโปรแกรมไวน์ภายใต้ Linux

    วิธีการผูก 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 ไม่มีปัญหา แต่นี่เป็นอุปสรรค์ที่แท้จริงสำหรับฉัน ฉันลองครั้งแล้วครั้งเล่าถามเพื่อน / คนในสนามและทำให้เป็นรางวัล ... ฉันมีความสุขเทพนิยายนี้จบลงและในที่สุดวิญญาณของฉันก็สามารถพักผ่อนได้.
    มันเป็นความหวังของฉันที่ฉันได้ช่วยใครบางคนที่นั่นโดยไม่ต้องผ่านการทดสอบแบบเดียวกัน.


    หมอบราวน์: ฉันต้องใช้เวลาเกือบสามสิบปีและโชคชะตาของครอบครัวทั้งหมดของฉันได้ตระหนักถึงวิสัยทัศน์ของวันนั้น ข้า แต่พระเจ้ามันนานขนาดนั้นแล้ว?