Amazon Best VPN GoSearch

ไอคอน Fav ของ OnWorks

xdotool - ออนไลน์ใน Cloud

เรียกใช้ xdotool ในผู้ให้บริการโฮสต์ฟรีของ OnWorks ผ่าน Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

นี่คือคำสั่ง xdotool ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

โครงการ:

ชื่อ


xdotool - เครื่องมืออัตโนมัติ X11 บรรทัดคำสั่ง

เรื่องย่อ


xdotool cmd อาร์กิว...

สัญกรณ์: เอกสารบางอย่างใช้ [หน้าต่าง] เพื่อแสดงอาร์กิวเมนต์หน้าต่างเสริม นี้
case หมายความว่าอาร์กิวเมนต์ ถ้าไม่มี จะมีค่าเริ่มต้นเป็น "%1" ดู "WINDOW STACK" สำหรับ
"%1" หมายถึงอะไร

DESCRIPTION


xdotool ให้คุณจำลองการป้อนข้อมูลด้วยแป้นพิมพ์และกิจกรรมของเมาส์โดยทางโปรแกรม (หรือด้วยตนเอง)
ย้ายและปรับขนาดหน้าต่าง ฯลฯ โดยใช้ส่วนขยาย XTEST ของ X11 และ Xlib . อื่นๆ
ฟังก์ชั่น

มีการรองรับ Extended Window Manager Hints (หรือที่เรียกว่า EWMH หรือ NetWM) ดู
ส่วน "คำแนะนำสำหรับผู้จัดการหน้าต่างเพิ่มเติม" สำหรับข้อมูลเพิ่มเติม

แป้นพิมพ์ คำสั่ง


สำคัญ [ตัวเลือก] การกดแป้นพิมพ์ [การกดแป้นพิมพ์ ... ]
ตัวเลือก:

--หน้าต่าง หน้าต่าง
ส่งการกดแป้นพิมพ์ไปยังรหัสหน้าต่างเฉพาะ คุณสามารถใช้การอ้างอิง "WINDOW STACK" ได้
เช่น "%1" และ "%@" ที่นี่ หากมีหน้าต่างสแต็ก ดังนั้น "%1" จะเป็นค่าเริ่มต้น
มิฉะนั้นจะใช้หน้าต่างปัจจุบัน

ดูเพิ่มเติม: "บันทึกย่อส่ง" และ "กองหน้าต่าง"

--ตัวแก้ไขที่ชัดเจน
ล้างตัวแก้ไขก่อนส่งการกดแป้น ดู CLEARMODIFIERS ด้านล่าง

--ล่าช้า มิลลิวินาที
ความล่าช้าระหว่างการกดแป้น ค่าเริ่มต้นคือ 12ms

พิมพ์การกดแป้นพิมพ์ที่กำหนด ตัวอย่าง "alt+r", "Control_L+J", "ctrl+alt+n",
"แบ็คสเปซ".

โดยทั่วไป สตริง X Keysym ที่ถูกต้องจะใช้งานได้ แป้นหลายแป้นคั่นด้วย '+'
มีนามแฝงสำหรับ "alt", "ctrl", "shift", "super" และ "meta" ซึ่งทั้งหมดจับคู่กับ Foo_L
เช่น Alt_L และ Control_L เป็นต้น

ในกรณีที่แป้นพิมพ์ของคุณไม่มีคีย์ที่คุณต้องการพิมพ์ xdotool
จะค้นหารหัสที่ไม่ได้ใช้โดยอัตโนมัติและใช้เพื่อพิมพ์รหัสนั้น

ในส่วนที่เกี่ยวกับ "COMMAND CHAINING" คำสั่งนี้ใช้ส่วนที่เหลือของ
อาร์กิวเมนต์หรือจนกว่าจะเห็นคำสั่ง xdotool ใหม่ เนื่องจากไม่มีคำสั่ง xdotool
การกดแป้นพิมพ์ที่ถูกต้อง

ตัวอย่าง: ส่งการกดแป้น "F2"
คีย์ xdotool F2

ตัวอย่าง: ส่ง 'a' ด้วยเครื่องหมายเน้นเสียง (ไม่ใช่บนแป้นพิมพ์ภาษาอังกฤษ แต่ยังใช้ได้อยู่
ด้วย xdotool)
xdotool คีย์ Aacute

ตัวอย่าง: ส่ง ctrl+l แล้วตามด้วย BackSpace เป็นการกดแป้นแยกกัน:
xdotool คีย์ ctrl+l BackSpace

ตัวอย่าง: ส่ง ctrl+c ไปยังหน้าต่างทั้งหมดที่ตรงกับชื่อ 'gdb' (ดู "COMMAND CHAINING")
ค้นหา xdotool --name gdb คีย์ ctrl+c

คีย์ดาวน์ [ตัวเลือก] การกดแป้นพิมพ์
เช่นเดียวกับด้านบน ยกเว้นเฉพาะเหตุการณ์คีย์ดาวน์ (การกด) เท่านั้นที่จะถูกส่ง

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

ชนิด [ตัวเลือก] บางสิ่งบางอย่าง ไปยัง ชนิด
ตัวเลือก:

--หน้าต่าง รหัสหน้าต่าง
ส่งการกดแป้นพิมพ์ไปยังรหัสหน้าต่างเฉพาะ ดู "บันทึกย่อส่ง" ด้านล่าง ค่าเริ่มต้น
หากไม่มีหน้าต่างให้ไว้ ขึ้นอยู่กับกองหน้าต่าง หากสแต็คหน้าต่างว่างเปล่า
หน้าต่างปัจจุบันถูกพิมพ์โดยใช้ XTEST มิฉะนั้น ค่าเริ่มต้นคือ "%1" (ดู
"กองหน้าต่าง")

--ล่าช้า มิลลิวินาที
ความล่าช้าระหว่างการกดแป้น ค่าเริ่มต้นคือ 12ms

--ตัวแก้ไขที่ชัดเจน
ล้างตัวแก้ไขก่อนส่งการกดแป้น ดู CLEARMODIFIERS ด้านล่าง

พิมพ์ราวกับว่าคุณได้พิมพ์มัน รองรับการขึ้นบรรทัดใหม่และแท็บ (การขึ้นบรรทัดใหม่และแท็บ ASCII) แต่ละ
การกดแป้นพิมพ์คั่นด้วยความล่าช้าที่กำหนดโดย --ล่าช้า ตัวเลือก

ในส่วนที่เกี่ยวกับ "COMMAND CHAINING" คำสั่งนี้ใช้ส่วนที่เหลือของ
ข้อโต้แย้งและพิมพ์ นั่นคือไม่มีคำสั่งใดที่สามารถโยงหลังจาก 'ประเภท'

ตัวอย่าง: พิมพ์ 'Hello world!' คุณจะทำ:
xdotool ประเภท 'สวัสดีชาวโลก!'

MOUSE คำสั่ง


เลื่อนเมาส์ [ตัวเลือก] x y OR 'คืนค่า'
เลื่อนเมาส์ไปที่พิกัด X และ Y บนหน้าจอ

คุณสามารถเลื่อนเมาส์ไปยังตำแหน่งก่อนหน้าหากคุณระบุ 'เรียกคืน' แทน an
พิกัด X และ Y การคืนค่าใช้ได้เฉพาะเมื่อคุณได้ย้ายก่อนหน้านี้ในนี้เดียวกัน
การเรียกใช้คำสั่ง นอกจากนี้ยังใช้ไม่ได้กับตัวเลือก --window

ตัวอย่างเช่น การคลิกที่มุมบนซ้ายของหน้าจอและเลื่อนเมาส์ไปที่
ตำแหน่งเดิมก่อนที่คุณจะย้าย ใช้สิ่งนี้:
xdotool mousemove 0 0 คลิก 1 mousemove คืนค่า

--หน้าต่าง หน้าต่าง
ระบุหน้าต่างที่จะย้ายสัมพันธ์กับ พิกัด 0,0 อยู่ที่ด้านบนซ้ายของ
หน้าต่างที่คุณเลือก

การอ้างอิง "WINDOW STACK" ใช้ได้ที่นี่ เช่น %1 และ %@ แม้ว่าจะใช้ %@
คงไม่มีความหมาย

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

ค่าเริ่มต้นคือหน้าจอปัจจุบัน หากคุณระบุ --window --screen flag is
ละเว้น

--ขั้ว
ใช้พิกัดเชิงขั้ว ทำให้ 'x' เป็นมุม (เป็นองศา, 0-360 เป็นต้น) และ 'y'
ระยะทาง.

การหมุนเริ่มต้นที่ 'ขึ้น' (0 องศา) และหมุนตามเข็มนาฬิกา: 90 = ขวา, 180 = ลง,
270 = ซ้าย

ค่าเริ่มต้นเริ่มต้นไปที่กึ่งกลางของหน้าจอปัจจุบัน หากคุณระบุ a
--window จากนั้นจุดเริ่มต้นเป็นศูนย์กลางของหน้าต่างนั้น

--ตัวแก้ไขที่ชัดเจน
ดู CLEARMODIFIERS

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

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

mousemove_relative [ตัวเลือก] x y
เลื่อนเมาส์ x,y พิกเซลที่สัมพันธ์กับตำแหน่งปัจจุบันของเคอร์เซอร์ของเมาส์

--ขั้ว
ใช้พิกัดเชิงขั้ว ทำให้ 'x' เป็นมุม (เป็นองศา, 0-360 เป็นต้น) และ 'y'
ระยะทาง.

การหมุนเริ่มต้นที่ 'ขึ้น' (0 องศา) และหมุนตามเข็มนาฬิกา: 90 = ขวา, 180 = ลง,
270 = ซ้าย

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

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

--ตัวแก้ไขที่ชัดเจน
ดู CLEARMODIFIERS

คลิก [ตัวเลือก] ปุ่ม
ส่งการคลิก นั่นคือ mousedown ตามด้วย mouseup สำหรับปุ่มที่กำหนดด้วย a
หน่วงเวลาสั้น ๆ ระหว่างทั้งสอง (ปัจจุบันคือ 12ms)

ปุ่มโดยทั่วไปจะแมปด้วยวิธีนี้: เมาส์ซ้ายคือ 1, กลางคือ 2, ขวาคือ 3, เลื่อนขึ้นคือ
4 ล้อลงคือ 5

--ตัวแก้ไขที่ชัดเจน
ล้างตัวแก้ไขก่อนคลิก ดู CLEARMODIFIERS ด้านล่าง

--ทำซ้ำ ซ้ำ
ระบุจำนวนครั้งในการคลิก ค่าเริ่มต้นคือ 1 สำหรับการดับเบิลคลิก ให้ใช้ '--repeat
2'

--ล่าช้า มิลลิวินาที
ระบุระยะเวลาในหน่วยมิลลิวินาทีที่จะหน่วงเวลาระหว่างการคลิก ตัวเลือกนี้ไม่ใช่
ใช้ถ้า --ทำซ้ำ ตั้งค่าสถานะเป็น 1 (ค่าเริ่มต้น)

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

ค่าดีฟอลต์ หากไม่มีหน้าต่าง จะขึ้นอยู่กับสแต็กหน้าต่าง ถ้าหน้าต่าง
stack ว่างเปล่า หน้าต่างปัจจุบันถูกพิมพ์โดยใช้ XTEST มิฉะนั้น ค่าเริ่มต้น
คือ "%1" (ดู "WINDOW STACK")

เมาส์ดาวน์ [ตัวเลือก] ปุ่ม
เหมือนกับ คลิกยกเว้นเพียงส่งเมาส์ลงเท่านั้น

เลื่อนเมาส์ [ตัวเลือก] ปุ่ม
เหมือนกับ คลิกยกเว้นเพียงส่งเมาส์ขึ้นเท่านั้น

รับตำแหน่งเมาส์ [--เปลือก]
ส่งออก x, y, หน้าจอ และ ID หน้าต่างของเคอร์เซอร์เมาส์ ตัวเลขหน้าจอจะเป็น
ไม่ใช่ศูนย์ถ้าคุณมีจอภาพหลายจอและไม่ได้ใช้ Xinerama

--เปลือก
สิ่งนี้ทำให้ข้อมูลเชลล์เอาต์พุต getmouselocation ที่คุณสามารถประเมินได้ ตัวอย่าง:

% xdotool getmouselocation -- เชลล์
X = 880
ป=443
หน้าจอ=0
หน้าต่าง=16777250

% eval $ (xdotool getmouselocation -- เชลล์)
% เสียงสะท้อน $X,$Y
714,324

Behavior_screen_edge [ตัวเลือก] ที่ไหน คำสั่ง ...
เชื่อมโยงการกระทำกับเหตุการณ์เมื่อเมาส์ชนกับขอบหรือมุมของหน้าจอ

ตัวเลือกคือ:

--ล่าช้า มิลลิวินาที
หน่วงเวลาเป็นมิลลิวินาทีก่อนรันคำสั่ง สิ่งนี้ทำให้คุณต้องก าหนด a
ให้ยึดขอบหรือมุมไว้ในช่วงเวลาสั้น ๆ ก่อนที่คำสั่งของคุณจะทำงาน
หากคุณออกจากขอบหรือมุมก่อนที่การหน่วงเวลาจะหมดอายุ เวลาจะถูกรีเซ็ต

--เงียบ มิลลิวินาที
หน่วงเวลาเป็นมิลลิวินาทีก่อนที่คำสั่งถัดไปจะทำงาน ซึ่งช่วยป้องกัน
บังเอิญเรียกใช้คำสั่งของคุณพิเศษครั้งพิเศษ มีประโยชน์อย่างยิ่งหากคุณมี
สั้นมาก --delay (เช่นค่าเริ่มต้น 0)

ไทม์ไลน์กิจกรรม

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

ค่า 'ที่' ที่ถูกต้องคือ:

ซ้าย
บนซ้าย
ด้านบน
ด้านบนขวา
ขวา
ล่างซ้าย
ก้น
ล่างขวา

ตัวอย่าง:
# เปิดใช้งาน google-chrome เมื่อคุณเลื่อนเมาส์ไปที่มุมล่างซ้าย:
xdotool behave_screen_edge ล่างซ้าย \
ค้นหา --class google-chrome windowactivate

# ไปที่พื้นที่ทำงานถัดไป (ขวา) รู้จักการทำงานใน GNOME (metacity และ compiz)
xdotool behave_screen_edge --delay 500 คีย์ล่างขวา XF86Forward

# เปิดใช้งาน firefox และทำการค้นหาเว็บในแท็บใหม่สำหรับข้อความในคลิปบอร์ดของคุณ
xdotool behave_screen_edge --delay 1000 ซ้ายบน \
ค้นหา --classname นาวิเกเตอร์ \
windowactivate - ปุ่มซิงค์ - หน่วงเวลา 250 ctrl+t ctrl+k ctrl+v Return

หน้าต่าง คำสั่ง


ค้นหา [ตัวเลือก] Belt hold
ค้นหาหน้าต่างที่มีชื่อ ชื่อ หรือคลาสที่มีรูปแบบนิพจน์ทั่วไป
ผลลัพธ์คือรายการตัวระบุหน้าต่าง X ที่คั่นด้วยบรรทัด หากคุณกำลังใช้ "COMMAND
CHAINING" คำสั่งค้นหาจะเขียนรหัสหน้าต่างไปยัง stdout เท่านั้นหากเป็นครั้งสุดท้าย
(หรือเท่านั้น) คำสั่งในสายโซ่; มิฉะนั้นก็จะเงียบ

ผลลัพธ์จะถูกบันทึกไว้ใน window stack สำหรับคำสั่ง chained ในอนาคต ดู "WINDOW
STACK" และ "COMMAND CHAINING" สำหรับรายละเอียด

ตัวเลือกเริ่มต้นคือ "--name --class --classname" (เว้นแต่คุณจะระบุอย่างใดอย่างหนึ่งหรือ
มากกว่า --name --class หรือ --classname)

ตัวเลือกที่ใช้ได้คือ:

--ระดับ
จับคู่กับคลาสหน้าต่าง

--ชื่อคลาส
ตรงกับชื่อคลาสของหน้าต่าง

--ความลึกสูงสุด N
ตั้งค่าความลึกของการค้นหาซ้ำ/ย่อย ค่าเริ่มต้นคือ -1 หมายถึงอนันต์ 0 หมายถึง ไม่
ความลึก จะค้นหาเฉพาะหน้าต่างรูทเท่านั้น หากคุณต้องการเฉพาะหน้าต่างระดับบนสุด ให้ตั้งค่า
ความลึกสูงสุด 1 (หรือ 2 ขึ้นอยู่กับว่าตัวจัดการหน้าต่างของคุณตกแต่งอย่างไร)

--ชื่อ
ตรงกับชื่อหน้าต่าง นี่เป็นสตริงเดียวกับที่แสดงใน
แถบหัวเรื่องหน้าต่าง

--มองเห็นได้เท่านั้น
แสดงเฉพาะหน้าต่างที่มองเห็นได้ในผลลัพธ์ หมายถึงรายการที่มีสถานะแผนที่
สามารถดูได้

--ปิด PID
จับคู่หน้าต่างที่เป็นของรหัสกระบวนการเฉพาะ อาจใช้ไม่ได้กับ X . บางตัว
แอปพลิเคชันที่ไม่ได้ตั้งค่าข้อมูลเมตานี้บนหน้าต่าง

--หน้าจอ N
เลือกหน้าต่างบนหน้าจอเฉพาะเท่านั้น ค่าเริ่มต้นคือการค้นหาหน้าจอทั้งหมด เท่านั้น
มีความหมายถ้าคุณมีจอแสดงผลหลายจอและไม่ได้ใช้ Xinerama

--เดสก์ทอป N
จับคู่หน้าต่างบนเดสก์ท็อปบางเครื่องเท่านั้น 'N' คือตัวเลข ค่าเริ่มต้นคือการค้นหา
เดสก์ท็อปทั้งหมด

--จำกัด N
หยุดการค้นหาหลังจากพบ N หน้าต่างที่ตรงกัน การระบุขีดจำกัดจะช่วยได้
เร่งการค้นหาของคุณหากคุณต้องการผลลัพธ์เพียงเล็กน้อย

ค่าเริ่มต้นคือไม่จำกัดการค้นหา (ซึ่งเทียบเท่ากับ '--limit 0')

--ชื่อ
เลิกใช้แล้ว ดู --ชื่อ.

--ทั้งหมด
กำหนดให้เป็นไปตามเงื่อนไขทั้งหมด ตัวอย่างเช่น:

xdotool ค้นหา --all --pid 1424 --name "สวัสดีชาวโลก"

ซึ่งจะจับคู่เฉพาะหน้าต่างที่มี "Hello World" เป็นชื่อและเป็นของ
พิด 1424

--ใด ๆ
จับคู่หน้าต่างที่ตรงกับเงื่อนไขใดๆ (ตามหลักเหตุผล 'หรือ') นี่เป็นค่าเริ่มต้น
ตัวอย่างเช่น:

ค้นหา xdotool --any --pid 1424 --name "สวัสดีชาวโลก"

ซึ่งจะตรงกับหน้าต่างใด ๆ ที่เป็นของ pid 1424 หรือ windows ที่มีชื่อว่า "Hello World"

--ซิงค์
บล็อกจนกว่าจะมีผล สิ่งนี้มีประโยชน์เมื่อคุณเปิดตัว an
แอปพลิเคชันต้องการรอจนกว่าหน้าต่างแอปพลิเคชันจะปรากฏขึ้น สำหรับ
ตัวอย่าง:

Google Chrome &
การค้นหา xdotool --sync --onlyvisible --class "google-chrome"

เลือกหน้าต่าง
รับรหัสหน้าต่าง (สำหรับลูกค้า) โดยคลิกที่มัน มีประโยชน์สำหรับการสืบค้นสคริปต์
คุณเป็นมนุษย์สำหรับหน้าต่างใดที่จะดำเนินการ ตัวอย่างเช่น การฆ่าหน้าต่างโดยคลิกที่มัน:

xdotool เลือกหน้าต่าง windowkill

ประพฤติ หน้าต่าง การกระทำ คำสั่ง ...
ผูกการดำเนินการกับเหตุการณ์บนหน้าต่าง สิ่งนี้ช่วยให้คุณเรียกใช้คำสั่ง xdotool เพิ่มเติม
เมื่อใดก็ตามที่มีเหตุการณ์ที่ตรงกันเกิดขึ้น

คำสั่งรันอันเป็นผลมาจากพฤติกรรมถูกรันโดย %1 เป็นหน้าต่างที่เคยเป็น
ดำเนินการเมื่อ ตัวอย่างจะตามมาหลังรายการเหตุการณ์

ต่อไปนี้คือเหตุการณ์ที่ถูกต้อง:

เมาส์ป้อน
เริ่มทำงานเมื่อเมาส์เข้าสู่หน้าต่าง คล้ายกับเหตุการณ์ 'วางเมาส์เหนือ' ใน
javascript ถ้ามันช่วยได้

เมาส์ออก
เริ่มทำงานเมื่อเมาส์ออกจากหน้าต่าง นี่คือสิ่งที่ตรงกันข้ามกับ 'mouse-enter'

คลิกเมาส์
เริ่มทำงานเมื่อคลิกเมาส์ โดยเฉพาะเมื่อปล่อยปุ่มเมาส์

โฟกัส
เริ่มทำงานเมื่อหน้าต่างได้รับโฟกัสอินพุต

เบลอ
เริ่มทำงานเมื่อหน้าต่างสูญเสียโฟกัส

ตัวอย่าง:

# พิมพ์ตำแหน่งเคอร์เซอร์ทุกครั้งที่เมาส์เข้าสู่ตำแหน่งที่มองเห็นได้ในปัจจุบัน
# หน้าต่าง:
xdotool search --onlyvisible เท่านั้น ประพฤติ %@ mouse- enter getmouselocation

# พิมพ์ชื่อหน้าต่างและ pid ทุกครั้งที่ xterm ได้รับการโฟกัส
การค้นหา xdotool --class xterm ทำงาน %@ focus getwindowname getwindowpid

# เลียนแบบโฟกัสติดตามเมาส์
การค้นหา xdotool ประพฤติ %@ เมาส์- เข้าสู่ windowfocus

รับ windowpid [หน้าต่าง]
ส่งออก PID ที่เป็นเจ้าของหน้าต่างที่กำหนด ต้องใช้ความพยายามจากการเป็นเจ้าของแอปพลิเคชัน
หน้าต่างและอาจใช้ไม่ได้กับทุกหน้าต่าง สิ่งนี้ใช้คุณสมบัติ _NET_WM_PID ของ
หน้าต่าง. ดู "คำแนะนำตัวจัดการหน้าต่างเพิ่มเติม" ด้านล่างสำหรับข้อมูลเพิ่มเติม

หากไม่มีหน้าต่าง ค่าเริ่มต้นคือ '%1' หากไม่มีหน้าต่างอยู่ในสแต็กแสดงว่าสิ่งนี้
เป็นข้อผิดพลาด ดู "WINDOW STACK" สำหรับรายละเอียดเพิ่มเติม

ตัวอย่าง: ค้นหา PID สำหรับ xterms ทั้งหมด:
การค้นหา xdotool --class xterm getwindowpid %@

รับชื่อหน้าต่าง [หน้าต่าง]
ส่งออกชื่อของหน้าต่างที่กำหนด หรือที่เรียกว่าชื่อ นี่คือข้อความที่แสดง
ในแถบหัวเรื่องของหน้าต่างโดยตัวจัดการหน้าต่างของคุณ

หากไม่มีหน้าต่าง ค่าเริ่มต้นคือ '%1' หากไม่มีหน้าต่างอยู่ในสแต็กแสดงว่าสิ่งนี้
เป็นข้อผิดพลาด ดู "WINDOW STACK" สำหรับรายละเอียดเพิ่มเติม

รับหน้าต่างเรขาคณิต [ตัวเลือก] [หน้าต่าง]
ส่งออกรูปทรงเรขาคณิต (ตำแหน่งและตำแหน่ง) ของหน้าต่าง ค่าต่างๆ ได้แก่ x, y,
ความกว้าง ความสูง และจำนวนหน้าจอ

--เปลือก
ค่าเอาต์พุตที่เหมาะสมกับ 'eval' ในเชลล์

รับ windowfocus [-NS]
พิมพ์รหัสหน้าต่างของหน้าต่างที่โฟกัสอยู่ในปัจจุบัน บันทึกผลลัพธ์ไปที่หน้าต่าง
ซ้อนกัน. ดู "WINDOW STACK" สำหรับรายละเอียดเพิ่มเติม

หากหน้าต่างปัจจุบันไม่มีคุณสมบัติ WM_CLASS เราถือว่าไม่ใช่ระดับบนสุดปกติ
หน้าต่างและสำรวจขึ้นผู้ปกครองจนกว่าเราจะพบหน้าต่างที่มีชุด WM_CLASS และ
ส่งคืนรหัสหน้าต่างนั้น

หากคุณต้องการให้หน้าต่างมีโฟกัสอยู่ตอนนี้จริงๆ และไม่สนใจว่าหน้าต่างนั้นมี a
การตั้งค่า WM_CLASS จากนั้นใช้ 'getwindowfocus -f'

ขนาดหน้าต่าง [ตัวเลือก] [หน้าต่าง] ความกว้าง ความสูง
กำหนดขนาดหน้าต่างของหน้าต่างที่กำหนด หากไม่ได้กำหนดหน้าต่างไว้ %1 จะเป็นค่าเริ่มต้น
ดู "WINDOW STACK" และ "COMMAND CHAINING" สำหรับรายละเอียดเพิ่มเติม

เปอร์เซ็นต์ใช้ได้กับความกว้างและความสูง สัมพันธ์กับเรขาคณิตของ
หน้าจอหน้าต่างที่เปิดอยู่ ตัวอย่างเช่น ในการทำให้หน้าต่างเต็มความกว้างของหน้าจอ
แต่ความสูงครึ่งหนึ่ง:

xdotool ขนาดหน้าต่างฉัน 100% 50%

เปอร์เซ็นต์ใช้ได้กับ --usehints และยังหมายถึงความกว้างของพิกเซลที่สัมพันธ์กับ
ขนาดหน้าจอ.

ตัวเลือกที่ใช้ได้คือ:

--คำแนะนำ
ใช้คำแนะนำขนาดหน้าต่าง (ถ้ามี) เพื่อกำหนดความกว้างและความสูง มีประโยชน์
บนเทอร์มินัลสำหรับกำหนดขนาดตามแถว/คอลัมน์ของข้อความแทนที่จะเป็นพิกเซล

--ซิงค์
หลังจากส่งคำขอขนาดหน้าต่าง ให้รอจนกว่าหน้าต่างจะถูกปรับขนาดจริง
หากไม่จำเป็นต้องเปลี่ยนแปลง เราจะไม่รอ สิ่งนี้มีประโยชน์สำหรับสคริปต์ที่
ขึ้นอยู่กับการกระทำที่เสร็จสิ้นก่อนที่จะดำเนินการต่อไป

หมายเหตุ: เนื่องจากตัวจัดการหน้าต่างจำนวนมากอาจละเว้นหรือแก้ไขการปรับขนาดเดิม
ขอเราจะรอจนกว่าขนาดจะเปลี่ยนจากขนาดเดิมโดยไม่จำเป็น
ตามขนาดที่ต้องการ

ตัวอย่าง: ในการตั้งค่าเทอร์มินัลให้มีอักขระ 80x24 คุณจะใช้:
ขนาดหน้าต่าง xdotool --usehints some_windowid 80 24

ย้ายหน้าต่าง [ตัวเลือก] [หน้าต่าง] x y
ย้ายหน้าต่างไปยังตำแหน่งที่กำหนด หากไม่ได้กำหนดหน้าต่างไว้ %1 จะเป็นค่าเริ่มต้น ดู
"WINDOW STACK" และ "COMMAND CHAINING" สำหรับรายละเอียดเพิ่มเติม

หากพิกัด x ที่กำหนดคือ 'x' อย่างแท้จริง ตำแหน่ง x ปัจจุบันของหน้าต่างจะ
จะไม่เปลี่ยนแปลง เช่นเดียวกับ 'y'

ตัวอย่าง:

xdotool getactivewindow windowmove 100 100 # ย้ายไป 100,100
xdotool getactivewindow windowmove x 100 # ย้ายไปที่ x,100
xdotool getactivewindow windowmove 100 y # เลื่อนไปที่ 100,y
xdotool getactivewindow windowmove 100 y # เลื่อนไปที่ 100,y

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

--ญาติ
ทำให้การเคลื่อนไหวสัมพันธ์กับตำแหน่งหน้าต่างปัจจุบัน

หน้าต่างโฟกัส [ตัวเลือก] [หน้าต่าง]
โฟกัสที่หน้าต่าง หากไม่ได้กำหนดหน้าต่างไว้ %1 จะเป็นค่าเริ่มต้น ดู "WINDOW STACK" และ
"COMMAND CHAINING" สำหรับรายละเอียดเพิ่มเติม

ใช้ XSetInputFocus ซึ่งตัวจัดการหน้าต่างหรือโปรแกรมบางโปรแกรมอาจละเว้น

--ซิงค์
หลังจากส่งคำขอโฟกัสหน้าต่างแล้ว ให้รอจนกว่าหน้าต่างจะถูกโฟกัสจริง
สิ่งนี้มีประโยชน์สำหรับสคริปต์ที่ขึ้นอยู่กับการดำเนินการที่เสร็จสิ้นก่อนที่จะย้าย
บน

แผนที่หน้าต่าง [ตัวเลือก] [หน้าต่าง]
แมปหน้าต่าง ในคำศัพท์ X11 การทำแผนที่หน้าต่างหมายถึงการทำให้มองเห็นได้บน
หน้าจอ. หากไม่ได้กำหนดหน้าต่างไว้ %1 จะเป็นค่าเริ่มต้น ดู "WINDOW STACK" และ "COMMAND
CHAINING" สำหรับรายละเอียดเพิ่มเติม

--ซิงค์
หลังจากขอแผนที่หน้าต่างแล้ว ให้รอจนกว่าหน้าต่างจะถูกจับคู่จริง
(มองเห็นได้). สิ่งนี้มีประโยชน์สำหรับสคริปต์ที่ขึ้นอยู่กับการดำเนินการที่เสร็จสิ้น
ก่อนที่จะย้าย

ลดขนาดหน้าต่าง [ตัวเลือก] [หน้าต่าง]
ย่อหน้าต่างให้เล็กสุด ในคำศัพท์ X11 สิ่งนี้เรียกว่า 'iconify' หากไม่มีหน้าต่างคือ
กำหนด %1 เป็นค่าเริ่มต้น ดู "WINDOW STACK" และ "COMMAND CHAINING" สำหรับรายละเอียดเพิ่มเติม

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

ยกหน้าต่าง [window_id=%1]
ยกหน้าต่างไปที่ด้านบนของสแต็ก สิ่งนี้อาจใช้ไม่ได้กับตัวจัดการหน้าต่างทั้งหมด ถ้า
ไม่มีหน้าต่างให้ %1 เป็นค่าเริ่มต้น ดู "WINDOW STACK" และ "COMMAND CHAINING" สำหรับ
รายละเอียดเพิ่มเติม.

หน้าต่างผู้ปกครอง [แหล่งที่มา_หน้าต่าง] ปลายทาง_window
สร้างหน้าต่างใหม่ สิ่งนี้ทำให้ source_window เป็นหน้าต่างลูกของ
ปลายทาง_window. หากไม่มีการระบุแหล่งที่มา %1 จะเป็นค่าเริ่มต้น "WINDOW STACK" หน้าต่าง
ข้อมูลอ้างอิง (เช่น %1) ใช้ได้กับทั้งคู่ source_window และ ปลายทาง_window ดู
"WINDOW STACK" และ "COMMAND CHAINING" สำหรับรายละเอียดเพิ่มเติม

ปิดหน้าต่าง [หน้าต่าง]
ปิดหน้าต่าง การกระทำนี้จะทำลายหน้าต่าง แต่จะไม่พยายามฆ่า
ลูกค้าควบคุมมัน หากไม่ได้กำหนดหน้าต่างไว้ %1 จะเป็นค่าเริ่มต้น ดู "กองหน้าต่าง"
และ "COMMAND CHAINING" สำหรับรายละเอียดเพิ่มเติม

วินโดว์คิล [หน้าต่าง]
ฆ่าหน้าต่าง การกระทำนี้จะทำลายหน้าต่างและฆ่าไคลเอนต์ที่ควบคุมหน้าต่างนั้น
หากไม่ได้กำหนดหน้าต่างไว้ %1 จะเป็นค่าเริ่มต้น ดู WINDOW STACK และ "COMMAND CHAINING" สำหรับ
รายละเอียดเพิ่มเติม.

หน้าต่างunmap [ตัวเลือก] [window_id=%1]
ยกเลิกการแมปหน้าต่าง ทำให้ไม่ปรากฏบนหน้าจอของคุณอีกต่อไป หากไม่มีหน้าต่างให้ %1
เป็นค่าเริ่มต้น ดู "WINDOW STACK" และ "COMMAND CHAINING" สำหรับรายละเอียดเพิ่มเติม

--ซิงค์
หลังจากขอยกเลิกการแมปหน้าต่างแล้ว ให้รอจนกว่าหน้าต่างจะยกเลิกการแมปจริงๆ
(ที่ซ่อนอยู่). สิ่งนี้มีประโยชน์สำหรับสคริปต์ที่ขึ้นอยู่กับการดำเนินการที่เสร็จสิ้นก่อน
กำลังเดินทางไป.

set_window [ตัวเลือก] [หน้าต่าง=%1]
ตั้งค่าคุณสมบัติเกี่ยวกับหน้าต่าง หากไม่ได้กำหนดหน้าต่างไว้ %1 จะเป็นค่าเริ่มต้น ดู "WINDOW
STACK" และ "COMMAND CHAINING" สำหรับรายละเอียดเพิ่มเติม

ตัวเลือก:

--ชื่อ ชื่อใหม่
ตั้งค่าหน้าต่าง WM_NAME (ชื่อหน้าต่างโดยปกติ)

--icon-ชื่อ ชื่อไอคอนใหม่
ตั้งค่าหน้าต่าง WM_ICON_NAME (มักจะย่อชื่อหน้าต่าง)

--บทบาท บทบาทใหม่
ตั้งค่าหน้าต่าง WM_WINDOW_ROLE

--ชื่อคลาส ชื่อคลาสใหม่
ตั้งชื่อคลาสของหน้าต่าง (เพื่อไม่ให้สับสนกับคลาสของหน้าต่าง)

--ระดับ คลาสใหม่
ตั้งค่าคลาสของหน้าต่าง (เพื่อไม่ให้สับสนกับชื่อคลาสของหน้าต่าง)

--แทนที่การเปลี่ยนเส้นทาง ความคุ้มค่า
ตั้งค่า override_redirect ของหน้าต่าง ค่านี้เป็นคำใบ้สำหรับตัวจัดการหน้าต่าง
ว่าควรจะจัดการหรือไม่ หากค่าการเปลี่ยนเส้นทางเป็น 0 แสดงว่า
ตัวจัดการหน้าต่างจะวาดเส้นขอบและจัดการหน้าต่างนี้ตามปกติ ถ้าค่าเป็น
1 ตัวจัดการหน้าต่างจะละเว้นหน้าต่างนี้

หากคุณเปลี่ยนค่านี้ ตัวจัดการหน้าต่างของคุณอาจไม่สังเกตเห็นการเปลี่ยนแปลงจนกว่า
หน้าต่างถูกแมปอีกครั้ง ดังนั้นคุณอาจต้องการออก 'windowunmap' และ 'windowmap' เป็น
ทำให้ตัวจัดการหน้าต่างจดบันทึก

เดสก์ทอป AND หน้าต่าง คำสั่ง


คำสั่งเหล่านี้เป็นไปตามมาตรฐาน EWMH ดูส่วน "คำแนะนำตัวจัดการหน้าต่างเพิ่มเติม"
เพื่อสอบถามรายละเอียดเพิ่มเติมได้ค่ะ

เปิดใช้งานหน้าต่าง [ตัวเลือก] [หน้าต่าง]
เปิดใช้งานหน้าต่าง คำสั่งนี้แตกต่างจาก windowfocus: ถ้าหน้าต่างเปิดอยู่
เดสก์ท็อปอื่น เราจะเปลี่ยนไปใช้เดสก์ท็อปนั้น นอกจากนี้ยังใช้วิธีการที่แตกต่างกันสำหรับ
ยกหน้าต่างขึ้น ฉันแนะนำให้ลองใช้คำสั่งนี้ก่อนใช้ windowfocus เช่น
มันจะทำงานกับตัวจัดการหน้าต่างเพิ่มเติม

หากไม่ได้กำหนดหน้าต่างไว้ %1 จะเป็นค่าเริ่มต้น ดู "WINDOW STACK" และ "COMMAND CHAINING"
.

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

หน้าต่าง getactive
ส่งออกหน้าต่างที่ใช้งานอยู่ในปัจจุบัน คำสั่งนี้มักจะเชื่อถือได้มากกว่า
รับหน้าต่างโฟกัส ผลลัพธ์จะถูกบันทึกลงในสแต็กหน้าต่าง ดู "WINDOW STACK" สำหรับข้อมูลเพิ่มเติม
รายละเอียด

set_num_desktops จำนวน
เปลี่ยนจำนวนเดสก์ท็อปหรือพื้นที่ทำงาน

get_num_desktops
ส่งออกจำนวนเดสก์ท็อปปัจจุบัน

get_desktop_viewport [--เปลือก]
รายงานตำแหน่งของวิวพอร์ตปัจจุบัน ถ้า --shell ได้รับ ผลลัพธ์จะเป็นมิตรกับ
เชลล์ eval

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

set_desktop_viewport x y
ย้ายวิวพอร์ตไปยังตำแหน่งที่กำหนด คำขอทั้งหมดจะไม่ถูกปฏิบัติตาม - บางอย่าง
ผู้ดูแลหน้าต่างปฏิบัติตามคำขอที่สอดคล้องกับขอบเขตของพื้นที่ทำงานเท่านั้น เช่น
ขนาดหน้าจอ.

ตัวอย่างเช่น หากหน้าจอของคุณมีขนาด 1280x800 คุณสามารถย้ายไปยังพื้นที่ทำงานที่ 2 ได้โดยทำดังนี้
xdotool set_desktop_viewport 1280 0

set_desktop [ตัวเลือก] เดสก์ท็อป_หมายเลข
เปลี่ยนมุมมองปัจจุบันเป็นเดสก์ท็อปที่ระบุ

--ญาติ
ใช้การเคลื่อนไหวแบบสัมพัทธ์แทนการเคลื่อนไหวแบบสัมบูรณ์ สิ่งนี้ช่วยให้คุณย้ายสัมพันธ์กับ
เดสก์ท็อปปัจจุบัน

get_desktop
แสดงผลเดสก์ท็อปปัจจุบันในมุมมอง

set_desktop_for_window [หน้าต่าง] เดสก์ท็อป_หมายเลข
ย้ายหน้าต่างไปยังเดสก์ท็อปอื่น หากไม่ได้กำหนดหน้าต่างไว้ %1 จะเป็นค่าเริ่มต้น ดู
"WINDOW STACK" และ "COMMAND CHAINING" สำหรับรายละเอียดเพิ่มเติม

get_desktop_for_window [หน้าต่าง]
ส่งออกเดสก์ท็อปที่มีหน้าต่างที่กำหนดในปัจจุบัน ย้ายหน้าต่างไปที่อื่น
เดสก์ทอป. หากไม่ได้กำหนดหน้าต่างไว้ %1 จะเป็นค่าเริ่มต้น ดู WINDOW STACK และ "COMMAND
CHAINING" สำหรับรายละเอียดเพิ่มเติม

เบ็ดเตล็ด คำสั่ง


exec [ตัวเลือก] คำสั่ง [ ... ]
ดำเนินการโปรแกรม สิ่งนี้มักจะมีประโยชน์เมื่อรวมกับ behave_screen_edge to do
เช่น การล็อกหน้าจอ

ตัวเลือก:

--ซิงค์
บล็อกจนกว่ากระบวนการลูกจะออก สถานะการออกจากกระบวนการลูกจะถูกส่งต่อ
ไปยังกระบวนการหลัก (xdotool) ที่คัดลอก

ตัวอย่าง:
#ล็อกหน้าจอเมื่อเมาส์อยู่มุมบนขวา
xdotool behave_screen_edge --delay 1000 บนขวา \
exec gnome-สกรีนเซฟเวอร์-คำสั่ง --lock
# แทนที่ 'xscreensaver-command -lock' หากคุณใช้โปรแกรมนั้น

# ต่อไปนี้จะล้มเหลวในการเลื่อนเมาส์เพราะเราใช้ '--sync' และ
# /bin/เท็จ ออกจากศูนย์:
xdotool exec --ซิงค์ /bin/เท็จ เม้าส์มูฟ 0 0

# สิ่งนี้ประสบความสำเร็จเนื่องจากเราไม่ได้ใช้ --sync กับคำสั่ง exec
xdotool ผู้บริหาร /bin/เท็จ เม้าส์มูฟ 0 0

นอนหลับ วินาที
นอนในช่วงเวลาที่กำหนด เศษส่วนของวินาที (เช่น 1.3 หรือ 0.4) ถูกต้องที่นี่

สคริปต์


xdotool สามารถอ่านรายการคำสั่งผ่าน stdin หรือไฟล์ได้หากต้องการ สคริปต์จะล้มเหลว
เมื่อคำสั่งใดล้มเหลว

อันที่จริง โหมด 'สคริปต์' นั้นยังไม่สมบูรณ์และอาจต่ำกว่าที่คุณคาดไว้ ถ้า
คุณมีข้อเสนอแนะ โปรดส่งอีเมลถึงรายการหรือแจ้งข้อบกพร่อง (ดูการติดต่อ)

สคริปต์สามารถใช้อาร์กิวเมนต์ตำแหน่ง (แสดงโดย $1, $2, ...) และสภาพแวดล้อม
ตัวแปร (เช่น $HOME หรือ $WINDOWID) การอ้างอิงอาร์กิวเมนต์ควรทำงานตามที่คาดไว้

สคริปต์ได้รับการประมวลผลสำหรับการขยายตัวแปรพารามิเตอร์และสภาพแวดล้อม จากนั้นรันเสมือน
คุณได้เรียกใช้ xdotool ด้วยสคริปต์ทั้งหมดในบรรทัดเดียว (โดยใช้ COMMAND CHAINING)

· อ่านคำสั่งจากไฟล์:

xdotool ชื่อไฟล์

· อ่านคำสั่งจาก stdin:

เอ็กซ์โดทูล -

· อ่านคำสั่งจากไฟล์ที่เปลี่ยนเส้นทาง

xdotool - < myfile

คุณยังสามารถเขียนสคริปต์ที่รัน xdotool เท่านั้น ตัวอย่าง:

#!/usr/local/bin/xdotool
ค้นหา --onlyvisible --classname $1

ขนาดหน้าต่าง %@ $2 $3
เพิ่มหน้าต่าง %@

วินโดว์มูฟ %1 0 0
วินโดว์มูฟ %2 $2 0
วินโดว์มูฟ %3 0 $3
วินโดว์มูฟ %4 $2 $3

สคริปต์นี้จะนำหน้าต่างทั้งหมดที่จับคู่โดยแบบสอบถามชื่อคลาสที่กำหนดโดย arg1 ($ 1) และ
ขนาด/ย้ายลงในตาราง 2x2 โดยมีขนาดหน้าต่างตามพารามิเตอร์ที่ 2 และ 3

นี่คือตัวอย่างการใช้งาน:

% ./myscript xterm 600 400

การเรียกใช้แบบนี้จะใช้ xterms ที่มองเห็นได้ 4 ตัว ยกขึ้น และย้ายไปยังไทล์ 2x2
ตารางโดยแต่ละหน้าต่างมีขนาด 600x400 พิกเซล

ตัวแก้ไขที่ชัดเจน


คำสั่งใด ๆ ที่ใช้ --ตัวแก้ไขที่ชัดเจน ธงจะพยายามล้างอินพุตที่ใช้งานอยู่
ตัวแก้ไขระหว่างคำสั่งและเรียกคืนในภายหลัง

ตัวอย่างเช่น หากคุณต้องการรันคำสั่งนี้:
คีย์ xdotool a

ผลลัพธ์จะเป็น 'a' หรือ 'A' ขึ้นอยู่กับว่าคุณกดปุ่ม shift ค้างไว้หรือไม่
บนแป้นพิมพ์ของคุณ มักจะไม่พึงปรารถนาที่จะมีตัวปรับแต่งใด ๆ ที่ทำงานอยู่ ดังนั้นคุณสามารถบอกได้
xdotool เพื่อล้างตัวดัดแปลงที่ใช้งานอยู่

ลำดับของการดำเนินการหากคุณกด shift ค้างไว้ขณะเรียกใช้ 'xdotool key --clearmodifiers a'
นี่คือ:

1. แบบสอบถามสำหรับตัวปรับแต่งที่ใช้งานอยู่ทั้งหมด (ค้นหา shift ในกรณีนี้)
2. พยายามล้างกะโดยส่ง 'key up' สำหรับปุ่ม shift
3. เรียกใช้ 'xdotool คีย์ a' ปกติ
4. กู้คืนปุ่ม shift โดยส่ง 'key down' สำหรับ shift

เค้ก --ตัวแก้ไขที่ชัดเจน ขณะนี้แฟล็กสามารถล้างสิ่งต่อไปนี้:

· คีย์ใดๆ ในคีย์แมปที่ใช้งานอยู่ซึ่งมีตัวปรับแต่งที่เกี่ยวข้อง (ดู
xmodmap(1) เอาต์พุต 'xmodmap -pm')

· ปุ่มเมาส์ (1, 2, 3, 4 และ 5)

· แคปล็อค

ส่ง หมายเหตุ


หากคุณกำลังพยายามส่งการป้อนข้อมูลที่สำคัญไปยังหน้าต่างใดหน้าต่างหนึ่ง แต่ดูเหมือนว่าจะไม่
ใช้งานได้ เป็นไปได้ว่าแอปพลิเคชันของคุณไม่สนใจเหตุการณ์ที่ xdotool กำลังสร้างขึ้น
นี่เป็นเรื่องปกติธรรมดา

การส่งการกดแป้นไปยังหน้าต่างเฉพาะใช้ API ที่แตกต่างจากการพิมพ์ไปที่
หน้าต่างที่ใช้งานอยู่ หากคุณระบุ 'xdotool type --window 12345 hello' xdotool จะสร้าง
เหตุการณ์สำคัญและส่งไปที่หน้าต่าง 12345 โดยตรง อย่างไรก็ตามเซิร์ฟเวอร์ X11 จะตั้งค่า a
แฟล็กพิเศษในทุกเหตุการณ์ที่สร้างขึ้นในลักษณะนี้ (ดู XEvent.xany.send_event ใน X11
คู่มือ). หลายโปรแกรมสังเกตแฟล็กนี้และปฏิเสธเหตุการณ์เหล่านี้

สิ่งสำคัญที่ควรทราบสำหรับเหตุการณ์คีย์และเมาส์ เราใช้ XSendEvent ต่อเมื่อ a
กำหนดเป้าหมายหน้าต่างเฉพาะ มิฉะนั้น เราใช้ XTEST

บางโปรแกรมสามารถกำหนดค่าให้ยอมรับเหตุการณ์ได้แม้ว่าจะสร้างโดย xdotool
ขอเอกสารประกอบการสมัครของคุณเพื่อขอความช่วยเหลือ

หมายเหตุการใช้งานเฉพาะ (จากการทดสอบของผู้เขียน): * Firefox 3 ดูเหมือนจะไม่สนใจทั้งหมด
อินพุตเมื่อไม่มีโฟกัส * xterm สามารถกำหนดค่าได้ในขณะที่ทำงานด้วย
ctrl+leftclick, 'Allow SendEvents' * gnome-terminal ดูเหมือนจะยอมรับอินพุตที่สร้างขึ้นโดย
ค่าเริ่มต้น.

หน้าต่าง ซ้อนกัน


คำสั่งบางอย่าง (ค้นหา, getactivewindow, getwindowfocus) จะค้นหาหน้าต่างให้คุณ
ผลลัพธ์เหล่านี้โดยทั่วไปจะพิมพ์เป็น stdout แต่จะถูกบันทึกไว้ในหน่วยความจำสำหรับอนาคตด้วย
ใช้ตลอดอายุการใช้งานของกระบวนการ xdotool ดู "COMMAND CHAINING" สำหรับข้อมูลเพิ่มเติม
ข้อมูล

การสนับสนุนการปรับเปลี่ยนเพียงอย่างเดียวสำหรับหน้าต่างสแต็กคือการแทนที่ นั่นคือสองในสอง
การค้นหาตามลำดับ เฉพาะผลลัพธ์สุดท้ายเท่านั้นที่จะเป็น window stack

คำสั่ง ล่ามโซ่


xdotool รองรับการเรียกใช้หลายคำสั่งในการเรียกใช้ครั้งเดียว โดยทั่วไป คุณจะเริ่ม
ด้วยคำสั่งค้นหา (ดู "WINDOW STACK") จากนั้นดำเนินการชุดของการกระทำเหล่านั้น
ผล.

ในการสอบถามกลุ่มหน้าต่าง คุณสามารถใช้สัญลักษณ์พิเศษ "%N" โดยที่ N คือตัวเลขหรือ
'@' สัญลักษณ์. หากระบุ %N หน้าต่างที่ N จะถูกเลือกจากสแต็กหน้าต่าง
โดยทั่วไปคุณจะต้องการเฉพาะหน้าต่างแรกหรือทุกหน้าต่าง โปรดทราบว่าคำสั่งของ
หน้าต่างในสแตกหน้าต่างสอดคล้องกับลำดับการซ้อนหน้าต่าง เช่น ด้านล่างสุด
หน้าต่างจะถูกรายงานก่อน (ดู XQueryTree(3)). ดังนั้นลำดับของหน้าต่างใน
สแต็กหน้าต่างอาจไม่สอดคล้องกันในการเรียกใช้

สัญกรณ์ที่อธิบายข้างต้นถูกใช้เป็นอาร์กิวเมนต์ "window" สำหรับคำสั่งใดๆ ที่ระบุ

ตัวอย่างเช่น ในการปรับขนาด xterms ทั้งหมดเป็น 80x24:

การค้นหา xdotool --class xterm -- ขนาดหน้าต่าง --usehints %@ 80 24

ปรับขนาดย้ายหน้าต่างปัจจุบัน:

xdotool getactivewindow หน้าต่างย้าย 0 0

ในทุกกรณี อาร์กิวเมนต์หน้าต่างเริ่มต้น หากไม่ระบุ จะมีค่าเริ่มต้นเป็น "%1" มันคือ
เห็นได้ชัดว่าเกิดข้อผิดพลาดหากคุณละเว้นอาร์กิวเมนต์ของหน้าต่างและสแต็กหน้าต่างว่างเปล่า ถ้าคุณ
ลองใช้ window stack แล้วว่างเปล่าก็เกิดข้อผิดพลาดเช่นกัน

วิธีเปิดใช้งานหน้าต่าง firefox แรกที่พบ:

การค้นหา xdotool --class firefox windowactivate

สิ่งเหล่านี้จะเกิดข้อผิดพลาด:

หน้าต่าง xdotool เปิดใช้งาน
หน้าต่าง xdotool เปิดใช้งาน %1
xdotool window เปิดใช้งาน %@

เมื่อ xdotool ออก สแต็กหน้าต่างปัจจุบันจะหายไป

นอกจากนี้ คำสั่งที่แก้ไข "WINDOW STACK" จะไม่พิมพ์ผลลัพธ์หาก
ไม่ใช่คำสั่งสุดท้าย ตัวอย่างเช่น:

# ส่งออกหน้าต่างที่ใช้งานอยู่:
% xdotool หน้าต่าง getactive
20971533

# ส่งออก pid ของหน้าต่างที่ใช้งานอยู่ แต่ไม่ใช่รหัสหน้าต่างที่ใช้งานอยู่:
% xdotool getactivewindow getwindowpid
4686

ขยาย หน้าต่าง MANAGER ข้อเสนอแนะ


รองรับมาตรฐาน EWMH ต่อไปนี้:

_NET_SUPPORTED
ถามตัวจัดการหน้าต่างว่ารองรับอะไรบ้าง

_NET_CURRENT_DESKTOP
สอบถามและตั้งค่าเดสก์ท็อปปัจจุบัน รองรับคำสั่งเหล่านี้:
"set_desktop", "get_desktop"

_NET_WM_DESKTOP
ค้นหาและตั้งค่าหน้าต่างเดสก์ท็อปที่ใช้อยู่ การรองรับสิ่งนี้ทำให้สิ่งเหล่านี้
คำสั่ง: "set_desktop_for_window", "get_desktop_for_window"

_NET_ACTIVE_WINDOW
อนุญาตให้คุณสอบถามและตั้งค่าหน้าต่างที่ใช้งานอยู่โดยขอให้ตัวจัดการหน้าต่างนำมา
ซึ่งไปข้างหน้า. รองรับคำสั่งเหล่านี้: "windowactivate", "getactivewindow"

_NET_WM_PID
คุณลักษณะนี้ขึ้นอยู่กับแอปพลิเคชัน ไม่ใช่ตัวจัดการหน้าต่าง สอบถาม PID
เป็นเจ้าของหน้าต่างที่กำหนด รองรับคำสั่งเหล่านี้: "getwindowpid"

ได้รับการสนับสนุน คุณลักษณะเด่น


xdotool (และ libxdo) จะพยายามทำงานในทุกสถานการณ์ อย่างไรก็ตาม อาจมี
บางกรณีที่เซิร์ฟเวอร์ X ของคุณหรือตัวจัดการหน้าต่างของคุณไม่ได้จัดเตรียมฟังก์ชันการทำงานไว้
ในกรณีเหล่านี้ xdotool จะพยายามตรวจจับและบอกคุณว่าการดำเนินการนั้นต้องการฟีเจอร์หรือไม่
ระบบของคุณไม่รองรับในขณะนี้

สำหรับคุณสมบัติเฉพาะตัวจัดการหน้าต่าง โปรดดูที่ "คำแนะนำตัวจัดการหน้าต่างเพิ่มเติม"

เอ็กซ์เทสต์
หากเซิร์ฟเวอร์ X ของคุณไม่รองรับ XTEST แสดงว่าคุณสมบัติการพิมพ์และการเคลื่อนเมาส์บางอย่าง
อาจไม่ทำงาน โดยเฉพาะการพิมพ์และการกระทำของเมาส์ที่ดำเนินการกับ "หน้าต่างปัจจุบัน"
(หน้าต่าง 0 ใน libxdo) ไม่น่าจะทำงาน

ในกรณีส่วนใหญ่ XTEST เป็นคุณสมบัติที่คุณสามารถเปิดใช้งานบนเซิร์ฟเวอร์ X ของคุณหากไม่ได้เปิดใช้งานอยู่
โดยค่าเริ่มต้น

คุณสามารถดูรายการส่วนขยาย X ที่รองรับได้โดยพิมพ์ 'xdpyinfo' แล้วมองหา
ข้อความ 'จำนวนนามสกุล: ...'

ใช้ xdotool ออนไลน์โดยใช้บริการ onworks.net


เซิร์ฟเวอร์และเวิร์กสเตชันฟรี

ดาวน์โหลดแอพ Windows & Linux

คำสั่ง Linux

Ad




×
โฆษณา
❤️ช้อป จอง หรือซื้อที่นี่โดยไม่เสียค่าใช้จ่าย ช่วยให้บริการต่างๆ ฟรี