โปรดทราบว่านี่เป็นแอปพลิเคชัน X11 เท่านั้น ยังไม่มีการเพิ่มการสนับสนุน Wayland ในแอปพลิเคชันในขณะที่เขียนบทความนี้
คุณสมบัติ AutoKey บางอย่าง ได้แก่ :
- รองรับคำย่อที่สามารถขยายอักขระสองสามตัวโดยอัตโนมัติในประโยคและบล็อกข้อความที่คุณใช้บ่อย
- รองรับการส่งการกดแป้นพิมพ์และการคลิกเมาส์โดยอำเภอใจ
- รองรับการระบุกฎสำหรับหน้าต่างแอปพลิเคชันเฉพาะ
- สคริปต์ Python 3 สามารถใช้เขียนกฎอัตโนมัติได้
- ความสามารถในการควบคุมการทำงานของหน้าต่าง เช่น การขยายใหญ่สุด การปรับขนาด และการย้าย
- มาพร้อมกับชุดตัวอย่างที่กำหนดไว้ล่วงหน้าเพื่อให้เขียนสคริปต์ได้ง่ายขึ้น
- ความสามารถในการแสดงป๊อปอัปเมนูที่กำหนดเองพร้อมรายการตัวเลือก
- ความสามารถในการบันทึกการกดแป้นพิมพ์และการคลิกเมาส์
- ความสามารถในการตั้งค่าปุ่มลัดโดยไม่ต้องใช้ปุ่มปรับแต่ง
- สคริปต์การทำงานอัตโนมัติสามารถพกพาได้และสามารถแชร์กับผู้ใช้รายอื่นได้อย่างง่ายดาย
คู่มือนี้จะแสดงตัวอย่าง AutoKey ที่เป็นประโยชน์สำหรับนักเล่นเกม Linux ในการเริ่มต้นให้ติดตั้งแพ็คเกจ Autokey Ubuntu จากหน้า GitHub ดาวน์โหลดไฟล์ที่กล่าวถึงด้านล่างจาก ที่นี่
- autokey-common_x.xx.x-x_all.deb
- autokey-gtk_x.xx.x-x_all.deb หรือ autokey-qt_x.xx.x-x_all.deb (ดาวน์โหลดเพียงอันเดียว)
หลังจากดาวน์โหลดไฟล์แล้ว ให้รันคำสั่งต่อไปนี้ตามลำดับ:
$sudoฉลาดติดตั้ง./autokey-common_0.95.8-0_all.deb
$sudoฉลาดติดตั้ง./autokey-gtk_0.95.8-0_all.deb
เป็นเรื่องปกติที่จะเห็นเกม PC หลายเกมใช้คีย์สำหรับการบันทึกอย่างรวดเร็วและการโหลดอย่างรวดเร็ว อย่างไรก็ตาม เกมพีซีอื่นๆ มากมาย โดยเฉพาะพอร์ตคอนโซลมีวิธีการบันทึกเกมที่น่าเบื่อ ซึ่งคุณต้องไปยังตัวเลือกเมนูต่างๆ นี่คือภาพจำลองสั้นๆ ที่ฉันวาดซึ่งแสดงให้เห็นสิ่งนี้ (ขออภัยในทักษะการวาดภาพของฉัน):
เกมต้องการให้คุณกดแป้นเพื่อหยุดเกม จากนั้นกดแป้นลูกศร จากนั้นกดแป้นเพื่อบันทึกเกม ตามด้วยแป้นอีกครั้งเพื่อกลับไปยังเกม กระบวนการทั้งหมดนี้สามารถทำให้เป็นอัตโนมัติและจับคู่กับคีย์ได้อย่างง่ายดายโดยใช้ AutoKey ตรวจสอบรหัสสคริปต์ด้านล่าง:
นำเข้าเวลาkeyboard.send_key('')
เวลานอน(0.25)
keyboard.send_key('')
เวลานอน(0.25)
keyboard.send_key('')
เวลานอน(0.25)
keyboard.send_key('')
หากต้องการเพิ่มสคริปต์นี้ใน AutoKey ให้เปิดแอปแล้วคลิกบนโฟลเดอร์ที่มองเห็นได้ หรือคลิกที่โฟลเดอร์ที่กำหนดเองซึ่งคุณสร้างขึ้นเพื่อไฮไลต์ คลิกที่ ไฟล์ > ใหม่ > Script เมนูตัวเลือกเพื่อสร้างสคริปต์ใหม่ภายในโฟลเดอร์นั้นดังแสดงในภาพหน้าจอด้านล่าง:
เปลี่ยนชื่อสคริปต์นี้เป็น Quicksave และใส่โค้ดด้านบนลงไป จากนั้นคลิกที่ปุ่ม Hotkey ที่ด้านล่าง ดังแสดงในภาพหน้าจอด้านล่าง:
ในหน้าจอถัดไป ให้คลิกที่ปุ่ม Press to Set จากนั้นกดปุ่มเพื่อจับคู่กับสคริปต์
กุญแจ:(ไม่มี)จะเปลี่ยนเป็นคีย์:<f5>.คลิกที่ ตกลง และกด เพื่อบันทึกสคริปต์ โปรดจำไว้เสมอว่าให้บันทึกสคริปต์ มิฉะนั้นจะไม่มีการดำเนินการใดๆ เมื่อคุณกดปุ่มลัดที่แมปไว้
คีย์แมปบันทึกด่วนพร้อมใช้งานแล้ว ครั้งถัดไปเมื่อคุณกดปุ่ม ระบบจะทำการกดปุ่มตามลำดับ
โปรดทราบว่าเราได้เปลี่ยนการทำงานของคีย์ทั่วโลกในระบบปฏิบัติการ ตราบใดที่ AutoKey ทำงานและเชื่อมต่อกับซิสเต็มเทรย์ หากต้องการจำกัดเฉพาะบางหน้าต่างหรือแอปพลิเคชัน คุณจะต้องระบุกฎของหน้าต่างโดยคลิกที่ปุ่มตัวกรองหน้าต่างที่ด้านล่าง
คุณสามารถใช้สคริปต์เดียวกันด้านบนเพื่อสร้างสคริปต์สำหรับการโหลดอย่างรวดเร็วได้เช่นกัน คุณเพียงแค่ต้องลบบรรทัดสำหรับปุ่มลูกศรแล้วแมปสคริปต์กับคีย์
หากคุณกำลังมองหาชื่อคีย์ที่ถูกต้องเพื่อใช้ในสคริปต์ AutoKey Python 3 คุณสามารถค้นหารายการคีย์โค้ดพิเศษทั้งหมดที่ใช้งานได้ใน AutoKey ที่นี่ . คีย์ที่ไม่ได้กล่าวถึงในหน้าข้างต้นสามารถแทรกได้โดยใช้เครื่องหมายคำพูดเดี่ยวหรือคู่ ตัวอย่าง: keyboard.send_key('5'), keyboard.send_key('p') และอื่นๆ
ตัวอย่างที่ 2: ดื่มยาเพื่อสุขภาพสองอย่างติดต่อกันในเกมเล่นตามบทบาท
สมมติว่าปุ่มลัดเพื่อดื่มยาเพื่อสุขภาพในเกมของคุณคือ สคริปต์จะเป็น:
keyboard.send_key('ชม',ทำซ้ำ=2)ค่าของตัวแปรการทำซ้ำสามารถเปลี่ยนเป็นตัวเลขอื่นได้เช่นกัน คุณสามารถทำตามขั้นตอนในตัวอย่างแรกเพื่อจับคู่สคริปต์กับปุ่มลัดที่คุณต้องการ
ตัวอย่างที่ 3: โหมดถ่ายภาพต่อเนื่องสำหรับปืนในเกมยิงปืน
คุณสามารถใช้รหัสด้านล่างเพื่อแมปกุญแจเพื่อยิงปืนสามครั้งติดต่อกัน วิธีดั้งเดิมในการยิงในเกมคือการกดคลิกเมาส์ซ้ายหนึ่งครั้ง
# ปุ่มเมาส์: ซ้าย=1,กลาง=2,ขวา=3mouse.click_relative_self(0,0,1)
mouse.click_relative_self(0,0,1)
mouse.click_relative_self(0,0,1)
สคริปต์ด้านบนจะดำเนินการคลิกเมาส์ซ้ายสามครั้งติดต่อกัน คุณสามารถเพิ่มคำสั่งพิเศษได้หากคุณต้องการดำเนินการคลิกซ้ายมากกว่าสามครั้ง
คุณสามารถทำตามขั้นตอนในตัวอย่างแรกเพื่อจับคู่สคริปต์กับปุ่มลัด
ตัวอย่างที่ 4: สร้างเมนูเกมแบบกำหนดเอง / เปลี่ยนเกมเรียลไทม์เป็นเกมแบบผลัดกันเล่น
การใช้ฟังก์ชันเมนูรายการของ AutoKey เราจะแสดงเมนูเป็นโอเวอร์เลย์ที่ด้านบนของเกมที่กำลังทำงานอยู่ เมนูนี้จะขโมยโฟกัสจากเกมและกลับมาหลังจากคลิกเมาส์บนรายการเมนูใดรายการหนึ่ง เมื่อโฟกัสกลับมาแล้ว การกดแป้นพิมพ์อัตโนมัติจะทำงานเพื่อเรียกใช้ฟังก์ชันภายในเกม
ลองดูภาพนี้:
ในโฟลเดอร์ GameMenu ฉันได้สร้างโฟลเดอร์ย่อยชื่อ Show ทั้งโฟลเดอร์ GameMenu และ Show มีรายการย่อย นี่คือรหัสที่ฉันใส่ไว้ในไอเท็มย่อยแต่ละรายการ:
- สินค้าคงคลัง: keyboard.send_key('i')
- แผนที่: keyboard.send_key('m')
- กลับไปที่เกม: keyboard.send_key('')
- เปลี่ยนเป็น Assault Rifle: keyboard.send_key('2')
- เปลี่ยนเป็น SMG: keyboard.send_key('1')
ที่นี่โฟลเดอร์ GameMenu ถูกแมปกับคีย์และนี่คือสิ่งที่ดูเหมือนในเกมที่กำลังรันอยู่:
รายการเมนูแต่ละรายการมีตัวเลขนำหน้าป้ายกำกับ คุณสามารถเรียกใช้รายการเมนูใดก็ได้โดยกดปุ่มตัวเลขที่เกี่ยวข้องบนแป้นพิมพ์ของคุณ ตัวอย่างเช่น การกดปุ่มที่นี่จะเปลี่ยนปืนเป็นปืนไรเฟิลจู่โจม
ตัวอย่าง GIF ขนาดเล็กของตัวอย่างนี้ (คลิกที่รูปภาพหรือคลิกขวาแล้วเปิด GIF ในแท็บใหม่หากภาพเคลื่อนไหวหยุดด้านล่าง):
วิธีนี้อาจใช้ไม่ได้กับทุกเกม ขึ้นอยู่กับวิธีจัดการการแสดงผลแบบหน้าต่างและแบบเต็มหน้าจอ เกมบางเกมไม่หยุดชั่วคราวเมื่อโฟกัสถูกขโมยไปในขณะที่เกมอื่นทำ หากเกมหยุดชั่วคราวเมื่อโฟกัสหายไป แสดงว่าคุณได้แปลงเกมแบบเรียลไทม์เป็นเกมแบบผลัดกันเล่นโดยใช้สคริปต์ AutoKey นี้
ตัวอย่างนี้จะทำงานกับเกมเป็นกรณีไป อย่างไรก็ตาม ในการทดสอบของฉัน ฉันได้ผลลัพธ์ที่ค่อนข้างดีกับทั้งเกมเนทีฟและ Steam Proton / Wine
บทสรุป
ตัวอย่างทั้งหมดที่กล่าวถึงในที่นี้เป็นพื้นฐาน โดยเน้นที่นักเล่นเกม Linux เป็นหลัก ครอบคลุมเฉพาะส่วนหนึ่งของ API อันทรงพลังของ AutoKey AutoKey สามารถทำให้เวิร์กโฟลว์ของคุณเป็นอัตโนมัติได้โดยใช้คุณสมบัติการเขียนสคริปต์สำหรับซอฟต์แวร์ประจำวันหรือซอฟต์แวร์ที่ซับซ้อนเช่นกัน มีตัวอย่างเพิ่มเติมอีกสองสามตัวอย่างใน เอกสารราชการ ของแอพ