Score:0

ใช้ Xdotool เพื่อพิมพ์เอกสาร Libreoffice

ธง us

ฉันมักจะสงสัยว่าจะทำให้ libreoffice เป็นอัตโนมัติโดยใช้ xdotool ได้อย่างไร ฉันรู้ว่าต้องเลือกหน้าต่างจากกองหน้าต่าง และฉันลองเขียนโปรแกรมเป็นตัวแปรทุบหน้าต่างภายใต้ xdotool ในสคริปต์ทุบตี จากนั้นฉันลองส่งการกดปุ่มถัดไปไปที่หน้าต่าง แต่ก็ไม่ได้ผล ตอนนี้ฉันต้องการส่งคำสั่ง ctrl+N ไปยังหน้าต่าง libre office เพื่อเปิดเอกสารใหม่

#!/bin/bash
/usr/bin/libreoffice
mywindow=$(การค้นหา xdotool --class libreoffice)
หน้าต่าง xdotool เปิดใช้งาน $mywindow && คีย์ xdotool --หน้าต่าง $mywindow ถัดไป
xdotool กดปุ่ม ctrl+n

ฉันได้รับรหัสข้อผิดพลาด

ไม่มีหน้าต่างในกอง
หน้าต่าง '%1' ไม่ถูกต้อง
การใช้งาน: windowactivates [ตัวเลือก] [หน้าต่าง=%1]
--sync - ออกเมื่อหน้าต่างเปิดใช้งานเท่านั้น (มองเห็นได้ + เปิดใช้งาน)
หากไม่มีการกำหนดหน้าต่าง จะใช้ %1 ดู WINDOW STACK ใน xdotool(1)
Score:1
ธง sd

วิธีแก้ปัญหาง่ายๆ คือการวาง LO ไว้ในพื้นหลัง จากนั้นเพิ่มการหน่วงเวลาระหว่าง xdotool สั่งการ.

#!/bin/bash
/usr/bin/libreoffice &
นอน10
mywindow=$(การค้นหา xdotool --class libreoffice)
หน้าต่าง xdotool เปิดใช้งาน $mywindow && คีย์ xdotool --หน้าต่าง $mywindow ถัดไป
xdotool กดปุ่ม ctrl+n
Score:1
ธง cn
  • หากต้องการเลือกค้นหาหน้าต่าง LibreOffice Writer (และเช่น ไม่ใช่หน้าต่าง Calc) ให้ใช้สิ่งนี้: mywindow=$(การค้นหา xdotool --class libreoffice-writer). คุณสามารถดูคลาสของหน้าต่างที่เปิดอยู่ได้ด้วยคำสั่ง wmctrl -lx. รายการนี้มากขึ้น ชื่อคลาสทั่วไปและคลาสเฉพาะเจาะจงมากขึ้นคั่นด้วยจุด สำหรับ libreoffice ก็คือ libreoffice.libreoffice-ตัวเขียน.
  • ระวัง: ค้นหา xdotool คำสั่งจะดึงหน้าต่างทั้งหมดของบางคลาส ดังนั้น เมื่อมีหลายหน้าต่าง ตัวแปรจะมีตัวระบุหลายตัวคั่นด้วยช่องว่าง เช่น 66167017 65540686. เปิดใช้งานหน้าต่างอย่างไรก็ตาม สนับสนุนอาร์กิวเมนต์เดียวเท่านั้น
  • หลังจากดำเนินการ libreoffice คำสั่ง กระบวนการจะแยกไปที่พื้นหลัง ยังไม่มีการสร้างหน้าต่าง นั่นคือเหตุผล ชนะ ล้มเหลว ใช้ --ซิงค์ ตัวเลือกที่จะมี ชนะ คำสั่ง รอให้หน้าต่างถูกสร้างขึ้นอย่างมีประสิทธิภาพ: mywindow=$(ค้นหา xdotool --sync --class libreoffice.writer)
CraigslistCesium avatar
us flag
มันได้ผล! ขอบคุณ. ฉันสามารถใช้ windowfocus ได้หรือไม่ มันอยู่บนเดสก์ท็อปเสมือนเดียวกัน ดังนั้นการเปิดใช้งานหน้าต่างจึงจำเป็นหรือไม่
vanadium avatar
cn flag
`man xdotool` แนะนำให้เลือก 'windowactivate' แม้ว่า 'windowfocus' อาจใช้งานได้ในกรณีของคุณ ทั้งสองนี้เกี่ยวข้องกับวิธีการที่แตกต่างกัน

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา