هذا هو الأمر xdotool الذي يمكن تشغيله في مزود الاستضافة المجانية OnWorks باستخدام إحدى محطات العمل المجانية المتعددة على الإنترنت مثل Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت
برنامج:
اسم
xdotool - أداة أتمتة سطر الأوامر X11
موجز
xdotool كمد أرجس ...
تدوين: بعض استخدامات الوثائق [نافذة او شباك] للدلالة على وسيطة نافذة اختيارية. هذه
الحالة تعني أن الوسيطة ، إن لم تكن موجودة ، ستتحول افتراضيًا إلى "٪ 1". انظر "WINDOW STACK" للحصول على
ماذا يعني "٪ 1".
الوصف
xdotool يتيح لك بشكل برمجي (أو يدويًا) محاكاة إدخال لوحة المفاتيح ونشاط الماوس ،
نقل النوافذ وتغيير حجمها ، وما إلى ذلك. يقوم بذلك باستخدام امتداد XTEST الخاص بـ X11 و Xlib الأخرى
الوظائف.
هناك بعض الدعم لـ Extended Window Manager Hints (المعروف أيضًا باسم EWMH أو NetWM). انظر
قسم "EXTENDED WINDOW MANAGER HINTS" لمزيد من المعلومات.
KEYBOARD أوامر
مفتاح [خيارات] ضغطة [ضغطة ...]
خيارات:
--نافذة او شباك نافذة
إرسال ضربات المفاتيح إلى معرف نافذة معين. يمكنك استخدام مراجع "WINDOW STACK"
مثل "٪ 1" و "٪ @" هنا. إذا كان هناك مكدس نوافذ ، فإن "٪ 1" هو الافتراضي ،
وإلا يتم استخدام النافذة الحالية.
راجع أيضًا: "إرسال ملاحظات" و "WINDOW STACK"
- Clearmodifiers
امسح المعدلات قبل إرسال ضغطات المفاتيح. انظر CLEARMODIFIERS أدناه.
--تأخير ميلي ثانية
التأخير بين ضغطات المفاتيح. الافتراضي هو 12 مللي ثانية.
اكتب ضغطة مفتاح معينة. من الأمثلة "alt + r" ، "Control_L + J" ، "ctrl + alt + n" ،
"BackSpace".
بشكل عام ، ستعمل أي سلسلة X Keysym صالحة. المفاتيح المتعددة مفصولة بعلامة "+".
توجد الأسماء المستعارة لـ "alt" و "ctrl" و "shift" و "super" و "meta" والتي يتم تعيينها جميعها إلى Foo_L ،
مثل Alt_L و Control_L ، إلخ.
في الحالات التي لا تحتوي فيها لوحة المفاتيح على المفتاح الذي تريد كتابته ، xdotool
سيجد تلقائيًا رمز مفتاح غير مستخدم ويستخدمه لكتابة المفتاح.
فيما يتعلق بـ "تسلسل الأوامر" ، يستهلك هذا الأمر ما تبقى من
الحجج أو حتى يتم رؤية أمر xdotool جديد ، لأنه لا توجد أوامر xdotool
ضربات المفاتيح الصالحة.
مثال: إرسال ضغط المفتاح "F2"
مفتاح xdotool F2
على سبيل المثال: أرسل "a" مع تمييز فوقه (ليس على لوحات المفاتيح الإنجليزية ، ولكن لا يزال يعمل
مع xdotool)
مفتاح xdotool Aacute
مثال: أرسل ctrl + l ثم BackSpace كضغطات مفاتيح منفصلة:
مفتاح xdotool ctrl + l BackSpace
مثال: أرسل ctrl + c لجميع النوافذ المطابقة للعنوان "gdb" (انظر "تسلسل الأوامر")
بحث xdotool - مفتاح الاسم gdb ctrl + c
keydown [خيارات] ضغطة
كما هو مذكور أعلاه ، باستثناء أحداث keydown (اضغط) التي يتم إرسالها.
مفتاح ضغطة
كما هو مذكور أعلاه ، باستثناء أحداث keyup (الإصدار) التي يتم إرسالها.
نوع [خيارات] شيء إلى نوع
خيارات:
--نافذة او شباك نافذة
إرسال ضربات المفاتيح إلى معرف نافذة معين. راجع "إرسال ملاحظات" أدناه. الافتراضي،
إذا لم يتم إعطاء نافذة ، يعتمد على مكدس النافذة. إذا كانت مجموعة النوافذ فارغة
يتم كتابة النافذة الحالية عند استخدام XTEST. خلاف ذلك ، الافتراضي هو "٪ 1" (انظر
"WINDOW STACK").
--تأخير ميلي ثانية
التأخير بين ضغطات المفاتيح. الافتراضي هو 12 مللي ثانية.
- Clearmodifiers
امسح المعدلات قبل إرسال ضغطات المفاتيح. انظر CLEARMODIFIERS أدناه.
أنواع كما لو كنت قد كتبتها. يدعم الأسطر الجديدة وعلامات التبويب (سطر جديد وعلامة تبويب ASCII). كل
يتم فصل ضغطات المفاتيح عن طريق تأخير معين بواسطة --تأخير الخيار.
فيما يتعلق بـ "تسلسل الأوامر" ، يستهلك هذا الأمر ما تبقى من
الحجج وأنواعها. أي أنه لا توجد أوامر يمكن أن تتسلسل بعد "النوع".
مثال: لكتابة "Hello world!" كنت ستفعل:
xdotool اكتب "Hello world!"
MOUSE أوامر
تحرك الماوس [خيارات] x y OR 'يعيد'
حرك الماوس إلى إحداثيات X و Y المحددة على الشاشة.
يمكنك تحريك الماوس إلى الموقع السابق إذا حددت "استعادة" بدلاً من ملف
تنسيق X و Y. لا تعمل الاستعادة إلا إذا كنت قد انتقلت سابقًا في نفس هذا
استدعاء الأمر. علاوة على ذلك ، فإنه لا يعمل مع خيار --Window.
على سبيل المثال ، للنقر فوق الزاوية العلوية اليسرى من الشاشة وتحريك الماوس إلى ملف
الموضع الأصلي قبل نقله ، استخدم هذا:
xdotool mousemove 0 0 انقر 1 mousemove استعادة
--نافذة او شباك نافذة او شباك
حدد نافذة للتنقل بالنسبة إليها. الإحداثيات 0,0،XNUMX في الجزء العلوي الأيسر من
النافذة التي تختارها.
مراجع "WINDOW STACK" صالحة هنا ، مثل٪ 1 و٪ @. رغم ذلك ، باستخدام٪ @
ربما لا معنى له.
--شاشة SCREEN
حرك الماوس إلى الشاشة المحددة للانتقال إليها. هذا مفيد فقط إذا كان لديك
شاشات متعددة ولا تستخدم Xinerama.
الافتراضي هو الشاشة الحالية. إذا قمت بتحديد --window ، فإن علامة - screen هي
تجاهلها.
- قطبي
استخدم الإحداثيات القطبية. هذا يجعل 'x' زاوية (بالدرجات ، 0-360 ، إلخ) و 'y'
المسافة.
يبدأ الدوران عند "أعلى" (0 درجة) ويدور في اتجاه عقارب الساعة: 90 = لليمين ، 180 = لأسفل ،
270 = يسار.
يتم تعيين الأصل على مركز الشاشة الحالية. إذا قمت بتحديد ملف
- النافذة ، إذن الأصل هو مركز تلك النافذة.
- Clearmodifiers
انظر CLEARMODIFIERS
- مزامنة
بعد إرسال طلب نقل الماوس ، انتظر حتى يتم تحريك الماوس بالفعل. لو
لا توجد حركة ضرورية ، لن ننتظر. هذا مفيد للنصوص التي تعتمد
على الإجراءات التي يتم الانتهاء منها قبل الانتقال.
ملاحظة: ننتظر حتى يتحرك الماوس على الإطلاق ، وليس بالضرورة أنه في الواقع
تصل إلى وجهتك المقصودة. تقوم بعض التطبيقات بقفل مؤشر الماوس على
مناطق معينة من الشاشة ، لذا من الأفضل انتظار أي حركة في
حالة عامة من انتظار هدف معين.
نقل الماوس النسبي [خيارات] x y
حرك الماوس x ، y بكسل بالنسبة إلى الموضع الحالي لمؤشر الماوس.
- قطبي
استخدم الإحداثيات القطبية. هذا يجعل 'x' زاوية (بالدرجات ، 0-360 ، إلخ) و 'y'
المسافة.
يبدأ الدوران عند "أعلى" (0 درجة) ويدور في اتجاه عقارب الساعة: 90 = لليمين ، 180 = لأسفل ،
270 = يسار.
- مزامنة
بعد إرسال طلب نقل الماوس ، انتظر حتى يتم تحريك الماوس بالفعل. لو
لا توجد حركة ضرورية ، لن ننتظر. هذا مفيد للنصوص التي تعتمد
على الإجراءات التي يتم الانتهاء منها قبل الانتقال.
لاحظ أننا ننتظر حتى يتحرك الماوس على الإطلاق ، وليس بالضرورة أنه في الواقع
تصل إلى وجهتك المقصودة. تقوم بعض التطبيقات بقفل مؤشر الماوس على
مناطق معينة من الشاشة ، لذا من الأفضل انتظار أي حركة في
حالة عامة من انتظار هدف معين.
- Clearmodifiers
انظر CLEARMODIFIERS
انقر [خيارات] زر
أرسل نقرة ، أي ، فأرة الماوس متبوعة بالماوس للزر المحدد بامتداد
تأخير قصير بين الاثنين (حاليًا 12 مللي ثانية).
تعيين الأزرار بشكل عام بهذه الطريقة: الماوس الأيسر هو 1 ، والوسط هو 2 ، واليمين 3 ، والعجلة للأعلى
4 ، عجلة لأسفل 5.
- Clearmodifiers
امسح المعدلات قبل النقر. انظر CLEARMODIFIERS أدناه.
--كرر كرر
حدد عدد المرات للنقر. الافتراضي هو 1. للنقر المزدوج ، استخدم "--كرر
2'
--تأخير ملي ثانية
حدد المدة بالمللي ثانية للتأخير بين النقرات. هذا الخيار ليس كذلك
تستخدم إذا كان --كرر تم تعيين العلم على 1 (افتراضي).
--نافذة او شباك نافذة او شباك
حدد نافذة لإرسال نقرة إليها. راجع "إرسال ملاحظات" أدناه للحصول على تنبيهات. الاستخدامات
موضع الماوس الحالي عند إنشاء الحدث.
الافتراضي ، إذا لم يتم إعطاء أي نافذة ، يعتمد على مكدس النافذة. إذا كانت النافذة
المكدس فارغ تمت كتابة النافذة الحالية عند استخدام XTEST. خلاف ذلك ، الافتراضي
هو "٪ 1" (راجع "WINDOW STACK").
الفأرة [خيارات] زر
مثل انقر، باستثناء يتم إرسال الماوس لأسفل فقط.
فأر [خيارات] زر
مثل انقر، باستثناء يتم إرسال الماوس لأعلى.
com.getmouselocation [--صدفة]
لإخراج معرّف x و y والشاشة والنافذة لمؤشر الماوس. ستكون أرقام الشاشة
nonzero إذا كان لديك شاشات متعددة ولا تستخدم Xinerama.
--الصدف
هذا يجعل بيانات shell الخاصة بإخراج getmouselocation يمكنك تقييمها. مثال:
٪ xdotool getmouselocation - قذيفة
X = 880
Y = 443
الشاشة = 0
النافذة = 16777250
٪ Eval $ (xdotool getmouselocation - قشرة)
٪ echo $ X ، $ Y
714,324
bebe_screen_edge [خيارات] أين أمر
قم بربط إجراء بالأحداث عندما يضرب الماوس حافة الشاشة أو الزاوية.
الخيارات هي:
--تأخير ملي ثانية
التأخير بالمللي ثانية قبل تشغيل الأمر. هذا يسمح لك بطلب ملف
يتم الاحتفاظ بالحافة أو الزاوية لفترة قصيرة قبل تشغيل الأمر الخاص بك.
إذا تركت الحافة أو الزاوية قبل انتهاء المهلة ، فسيتم إعادة ضبط الوقت.
- سؤال ملي ثانية
التأخير بالمللي ثانية قبل تشغيل الأمر التالي. هذا يساعد على منع
تشغيل الأمر بطريق الخطأ مرات إضافية ؛ مفيد بشكل خاص إذا كان لديك ملف
قصير جدًا - تأخير (مثل الافتراضي 0).
الجدول الزمني للحدث
* يضرب الماوس حافة أو زاوية.
* إذا كان التأخير غير صفري ، يجب أن يظل الماوس في هذه الحافة أو الزاوية حتى انتهاء وقت التأخير.
* إذا كان لا يزال في الحافة / الزاوية ، فقم بتشغيله.
* إذا كانت quiesce غير صفرية ، فهناك فترة تهدئة حيث تكون الفترة التالية
الزناد لا يمكن أن يحدث
قيم "حيث" الصالحة هي:
اليسار
أعلى اليسار
تيشرت
اعلى اليمين
حق
أسفل اليسار
أسفل
أسفل اليمين
أمثلة:
# قم بتنشيط google-chrome عند تحريك الماوس إلى الركن الأيسر السفلي:
xdotool behave_screen_edge أسفل اليسار \
بحث - فئة google-chrome windowactivate
# انتقل إلى مساحة العمل التالية (يمين). معروف بالعمل في جنوم (ميتاسيتي و كومبيز)
xdotool behave_screen_edge - تأخير 500 المفتاح الأيمن السفلي XF86Forward
# قم بتنشيط Firefox وقم بإجراء بحث على الويب في علامة تبويب جديدة للنص في الحافظة الخاصة بك
xdotool behave_screen_edge - تأخير 1000 أعلى اليسار \
بحث --classname Navigator \
windowactivate - مفتاح المزامنة - تأخير 250 ctrl + t ctrl + k ctrl + v عودة
نافذة او شباك أوامر
. [خيارات] النمط
ابحث عن النوافذ التي تحتوي على عناوين أو أسماء أو فئات بنمط تعبير عادي.
الإخراج عبارة عن قائمة محددة بسطر لمعرفات نافذة X. إذا كنت تستخدم "COMMAND
التسلسل "، سيكتب أمر البحث معرفات النافذة إلى stdout فقط إذا كان الأخير
(أو فقط) القيادة في السلسلة ؛ وإلا فهو صامت.
يتم حفظ النتيجة في حزمة النوافذ للأوامر المتسلسلة المستقبلية. انظر "WINDOW
STACK "و" تسلسل الأوامر "للحصول على التفاصيل.
الخيارات الافتراضية هي "--name --class --classname" (ما لم تحدد واحدًا أو
المزيد من - name --class أو --classname).
الخيارات المتاحة هي:
--صف دراسي
مباراة ضد فئة النافذة.
--اسم
تطابق مع اسم فئة النافذة.
--أقصى عمق N
تعيين عمق البحث العودية / الطفل. الافتراضي هو -1 ، مما يعني لانهائية. 0 يعني لا
العمق ، سيتم البحث عن نوافذ الجذر فقط. إذا كنت تريد فقط النوافذ ذات المستوى الأعلى ، فقم بتعيين
أقصى عمق 1 (أو 2 ، اعتمادًا على كيفية عمل مدير النوافذ لديك للزينة).
--اسم
تطابق مع اسم النافذة. هذه هي نفس السلسلة التي يتم عرضها في ملف
شريط عنوان النافذة.
- غير مرئي
تظهر فقط النوافذ المرئية في النتائج. هذا يعني تلك مع حالة الخريطة
قابل للعرض.
--معرّف PID
نوافذ المطابقة التي تنتمي إلى معرف عملية معين. قد لا يعمل هذا مع بعض X
التطبيقات التي لا تضع هذه البيانات الوصفية على نوافذها.
--شاشة N
حدد النوافذ على شاشة معينة فقط. الافتراضي هو البحث في جميع الشاشات. فقط
مفيد إذا كان لديك شاشات متعددة ولا تستخدم Xinerama.
--سطح المكتب N
تطابق النوافذ فقط على سطح مكتب معين. "N" رقم. الافتراضي هو البحث
جميع أجهزة الكمبيوتر المكتبية.
--حد N
توقف عن البحث بعد العثور على نوافذ مطابقة N. تحديد حد سيساعد
قم بتسريع البحث إذا كنت تريد فقط بعض النتائج.
الافتراضي هو عدم وجود حد بحث (وهو ما يعادل "--limit 0")
--لقب
إهمال. انظر - الاسم.
--الكل
تتطلب استيفاء جميع الشروط. على سبيل المثال:
xdotool search - all --pid 1424 - الاسم "Hello World"
سيطابق هذا فقط النوافذ التي لها اسم "Hello World" والتي يملكها
معرف المنتج 1424.
--أي
النوافذ المطابقة التي تطابق أي شرط (منطقيا ، "أو"). هذا بشكل افتراضي.
فمثلا:
xdotool search --any --pid 1424 - الاسم "Hello World"
سيتطابق هذا مع أي نوافذ مملوكة لـ pid 1424 أو نوافذ باسم "Hello World"
- مزامنة
منع حتى تكون هناك نتائج. يكون هذا مفيدًا عند بدء تشغيل ملف
يريد التطبيق الانتظار حتى تظهر نافذة التطبيق. ل
مثال:
جوجل كروم &
بحث xdotool - مزامنة - غير مرئية - فئة "google-chrome"
حدد النافذة
احصل على معرف النافذة (للعميل) من خلال النقر عليه. مفيد في وجود استعلام عن البرامج النصية
أيها البشر على أي نافذة للعمل عليها. على سبيل المثال ، قتل النافذة بالضغط عليها:
xdotool حدد نافذة windowkill
تصرف نافذة عمل أمر
ربط إجراء بحدث على النافذة. يتيح لك هذا تشغيل أوامر xdotool إضافية
كلما وقع حدث مطابق.
يتم تشغيل الأمر الذي يتم تشغيله كنتيجة للسلوك مع كون٪ 1 هو الإطار الذي تم تشغيله
تصرفت على. الأمثلة تتبع بعد قائمة الأحداث.
الأحداث التالية صالحة:
دخول الماوس
حرائق عندما يدخل الماوس نافذة. هذا مشابه لأحداث "تمرير الماوس فوق" في
جافا سكريبت ، إذا كان ذلك يساعد.
ترك الماوس
حرائق عندما يترك الماوس نافذة. هذا هو عكس "إدخال الماوس"
النقر بالماوس
حرائق عند النقر بالماوس. على وجه التحديد ، عند تحرير زر الماوس.
تركز
حرائق عندما تحصل النافذة على تركيز الإدخال.
شىء ضبابي
حرائق عندما تفقد النافذة التركيز.
أمثلة:
# اطبع موقع المؤشر كلما دخل الماوس في مكان مرئي حاليًا
# نافذة او شباك:
بحث xdotool - غير مرئي. تتصرف٪ @ mouse-enter getmouselocation
# اطبع عنوان النافذة و pid كلما تم التركيز على xterm
xdotool search --class xterm يتصرف٪ @ focus getwindowname getwindowpid
# محاكاة الفأر يتبع التركيز
xdotool البحث. تتصرف٪ @ mouse-enter windowfocus
com.getwindowpid [نافذة او شباك]
إخراج PID الذي يمتلك نافذة معينة. هذا يتطلب جهد من امتلاك التطبيق
نافذة وقد لا تعمل لجميع النوافذ. يستخدم هذا خاصية _NET_WM_PID لملف
نافذة او شباك. راجع "تلميحات مدير WINDOW الموسعة" أدناه للحصول على مزيد من المعلومات.
إذا لم يتم إعطاء أي نافذة ، فإن الافتراضي هو '٪ 1'. إذا لم تكن هناك نوافذ على المكدس ، فهذا
هو خطأ. راجع "WINDOW STACK" لمزيد من التفاصيل.
مثال: ابحث عن PID لجميع xterms:
بحث xdotool - فئة xterm getwindowpid٪ @
com.getwinddowname [نافذة او شباك]
قم بإخراج اسم نافذة معينة ، والمعروف أيضًا باسم العنوان. هذا هو النص المعروض
في شريط عنوان النافذة بواسطة مدير النوافذ.
إذا لم يتم إعطاء أي نافذة ، فإن الافتراضي هو '٪ 1'. إذا لم تكن هناك نوافذ على المكدس ، فهذا
هو خطأ. راجع "WINDOW STACK" لمزيد من التفاصيل.
getwindowgeometry [خيارات] [نافذة او شباك]
أخرج هندسة النافذة (الموقع والموضع). تشمل القيم: x ، y ،
العرض والارتفاع ورقم الشاشة.
--الصدف
قيم الإخراج مناسبة لـ "EVAL" في قذيفة.
com.getwindowfocus [-F]
يطبع معرف النافذة للنافذة المركزة حاليًا. يحفظ النتيجة في النافذة
كومة. راجع "WINDOW STACK" لمزيد من التفاصيل.
إذا كانت النافذة الحالية لا تحتوي على خاصية WM_CLASS ، فإننا نفترض أنها ليست ذات مستوى أعلى عادي
نافذة واجتياز الوالدين حتى نجد نافذة بها مجموعة WM_CLASS و
إرجاع معرف النافذة.
إذا كنت تريد حقًا التركيز على النافذة حاليًا ولا تهتم إذا كانت تحتوي على ملف
إعداد WM_CLASS ، ثم استخدم "getwindowfocus -f"
بحجم النافذه [خيارات] [نافذة] عرض الارتفاع
اضبط حجم النافذة للنافذة المحددة. إذا لم يتم إعطاء أي نافذة ، فإن٪ 1 هو الافتراضي.
راجع "WINDOW STACK" و "تسلسل الأوامر" لمزيد من التفاصيل.
النسب المئوية صالحة للعرض والارتفاع. هم متعلقون بهندسة
شاشة النافذة قيد التشغيل. على سبيل المثال ، لجعل النافذة بعرض الشاشة الكامل ،
لكن نصف ارتفاع:
xdotool windowsize أنا 100٪ 50٪
النسب المئوية صالحة مع --usehints ويظل يعني عرض البكسل بالنسبة إلى
حجم الشاشة.
الخيارات المتاحة هي:
- تلميحات
استخدم تلميحات تغيير حجم النافذة (عند توفرها) لضبط العرض والارتفاع. وهذا مفيد
على المحطات لتعيين الحجم بناءً على صف / عمود من النص بدلاً من وحدات البكسل.
- مزامنة
بعد إرسال طلب حجم النافذة ، انتظر حتى يتم تغيير حجم النافذة بالفعل.
إذا لم يكن هناك حاجة للتغيير ، فلن ننتظر. هذا مفيد للنصوص التي
تعتمد على الإجراءات التي يتم إكمالها قبل الانتقال.
ملاحظة: نظرًا لأن العديد من مديري النوافذ قد يتجاهلون تغيير الحجم الأصلي أو يغيرونه
طلب ، سننتظر حتى يتغير الحجم عن حجمه الأصلي ، ليس ضروريًا
للحجم المطلوب.
مثال: لتعيين محطة على 80 × 24 حرفًا ، يمكنك استخدام:
xdotool windowsize - تلميحات بعض_ويندويد 80 24
windowmove [خيارات] [نافذة او شباك] x y
انقل النافذة إلى الموضع المحدد. إذا لم يتم إعطاء أي نافذة ، فإن٪ 1 هو الافتراضي. ارى
"WINDOW STACK" و "تسلسل الأوامر" لمزيد من التفاصيل.
إذا كان إحداثي x المحدد هو "x" حرفيًا ، فسيكون موضع x الحالي للنافذة هو الحال
أن تكون على حالها. الأمر نفسه ينطبق على "ذ".
أمثلة:
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" و
"تسلسل الأوامر" لمزيد من التفاصيل.
يستخدم XSetInputFocus الذي قد يتجاهله بعض مديري النوافذ أو البرامج.
- مزامنة
بعد إرسال طلب تركيز النافذة ، انتظر حتى يتم تركيز النافذة بالفعل.
هذا مفيد للنصوص التي تعتمد على الإجراءات التي يتم إكمالها قبل الانتقال
على.
النافذة [خيارات] [نافذة او شباك]
رسم نافذة. في مصطلحات X11 ، يعني تعيين نافذة جعلها مرئية على ملف
شاشة. إذا لم يتم إعطاء أي نافذة ، فإن٪ 1 هو الافتراضي. راجع "WINDOW STACK" و "COMMAND
تسلسل "لمزيد من التفاصيل.
- مزامنة
بعد طلب خريطة النافذة ، انتظر حتى يتم تعيين النافذة بالفعل
(مرئي). هذا مفيد للنصوص التي تعتمد على الإجراءات التي يتم إكمالها
قبل الانتقال.
تصغير النافذة [خيارات] [نافذة او شباك]
تصغير النافذة. في مصطلحات X11 ، يسمى هذا "iconify". إذا لم يكن هناك نافذة
معطى ،٪ 1 هو الافتراضي. راجع "WINDOW STACK" و "تسلسل الأوامر" لمزيد من التفاصيل.
- مزامنة
بعد طلب تصغير النافذة ، انتظر حتى يتم تصغير النافذة بالفعل.
هذا مفيد للنصوص التي تعتمد على الإجراءات التي يتم إكمالها قبل الانتقال
على.
نافذة [window_id =٪ 1]
ارفع النافذة إلى أعلى المكدس. قد لا يعمل هذا مع جميع مديري النوافذ. لو
لم يتم إعطاء أي نافذة ،٪ 1 هو الافتراضي. راجع "WINDOW STACK" و "تسلسل الأوامر" من أجل
المزيد من التفاصيل.
محضن النوافذ [نافذة_المصدر] وجهة_نافذة
إعادة نافذة. هذا يتحرك مصدر_نافذة لتكون نافذة تابعة لـ
وجهة_نافذة. إذا لم يتم توفير أي مصدر ، فسيكون٪ 1 هو الافتراضي. نافذة "WINDOW STACK"
المراجع (مثل٪ 1) صالحة لكليهما مصدر_نافذة وجهة_نافذة يرى
"WINDOW STACK" و "تسلسل الأوامر" لمزيد من التفاصيل.
إغلاق النافذة [نافذة او شباك]
أغلق النافذة. سيؤدي هذا الإجراء إلى تدمير النافذة ، لكنه لن يحاول قتل
العميل الذي يتحكم فيه. إذا لم يتم إعطاء أي نافذة ، فإن٪ 1 هو الافتراضي. راجع "WINDOW STACK"
و "تسلسل الأوامر" لمزيد من التفاصيل.
النافذة [نافذة او شباك]
اقتل النافذة. سيؤدي هذا الإجراء إلى تدمير النافذة وقتل العميل الذي يتحكم فيها.
إذا لم يتم إعطاء أي نافذة ، فإن٪ 1 هو الافتراضي. راجع WINDOW STACK و "تسلسل الأوامر" من أجل
المزيد من التفاصيل.
windowunmap [خيارات] [window_id =٪ 1]
قم بإلغاء تعيين نافذة ، مما يجعلها غير ظاهرة على شاشتك. إذا لم يتم إعطاء أي نافذة ،٪ 1
هو الافتراضي. راجع "WINDOW STACK" و "تسلسل الأوامر" لمزيد من التفاصيل.
- مزامنة
بعد طلب إلغاء تعيين النافذة ، انتظر حتى يتم إلغاء تعيين النافذة بالفعل
(مختفي). هذا مفيد للنصوص التي تعتمد على الإجراءات التي تم إكمالها من قبل
المضي قدما.
set_window [خيارات] [معرّف النافذة =٪ 1]
تعيين خصائص حول نافذة. إذا لم يتم إعطاء أي نافذة ، فإن٪ 1 هو الافتراضي. انظر "WINDOW
STACK "و" تسلسل الأوامر "لمزيد من التفاصيل.
خيارات:
--اسم اسم جديد
ضبط النافذة WM_NAME (عنوان النافذة ، عادة)
--اسم الرمز اسم جديد
ضبط النافذة WM_ICON_NAME (عنوان النافذة عند تصغيرها ، عادة)
--وظيفة دور جديد
ضبط النافذة WM_WINDOW_ROLE
--اسم newclassname
تعيين اسم فئة النافذة (يجب عدم الخلط بينه وبين فئة النافذة)
--صف دراسي صف جديد
تعيين فئة النافذة (يجب عدم الخلط بينه وبين اسم فئة النافذة)
- تجاوز مباشرة قيمنا
قم بتعيين قيمة إعادة توجيه_تجاوز النافذة. هذه القيمة هي تلميح لمدير النوافذ
لتحديد ما إذا كان ينبغي إدارتها أم لا. إذا كانت قيمة إعادة التوجيه 0 ، فإن ملف
سيقوم مدير النوافذ برسم الحدود والتعامل مع هذه النافذة بشكل طبيعي. إذا كانت القيمة
1 ، سيتجاهل مدير النوافذ هذه النافذة.
إذا قمت بتغيير هذه القيمة ، فقد لا يلاحظ مدير النوافذ التغيير حتى ملف
تم تعيين window مرة أخرى ، لذلك قد ترغب في إصدار "windowunmap" و "windowmap" إلى
اجعل مدير النافذة يأخذ ملاحظة.
سطح المكتب لأي لبس نافذة او شباك أوامر
هذه الأوامر تتبع معيار EWMH. راجع قسم "تلميحات مدير WINDOW الموسعة"
للمزيد من المعلومات.
windowactivate [خيارات] [نافذة او شباك]
تنشيط النافذة. يختلف هذا الأمر عن windowfocus: إذا كانت النافذة قيد التشغيل
سطح مكتب آخر ، سننتقل إلى سطح المكتب هذا. كما أنه يستخدم طريقة مختلفة لـ
رفع النافذة. أوصي بتجربة هذا الأمر قبل استخدام windowfocus ، مثل
سيعمل على المزيد من مديري النوافذ.
إذا لم يتم إعطاء أي نافذة ، فإن٪ 1 هو الافتراضي. راجع "WINDOW STACK" و "تسلسل الأوامر"
لمزيد من التفاصيل.
- مزامنة
بعد إرسال تنشيط النافذة ، انتظر حتى يتم تنشيط النافذة بالفعل.
هذا مفيد للنصوص التي تعتمد على الإجراءات التي يتم إكمالها قبل الانتقال
على.
getactivWindow
إخراج النافذة النشطة الحالية. غالبًا ما يكون هذا الأمر أكثر موثوقية من
getwindowfocus. يتم حفظ النتيجة في حزمة النافذة. انظر "WINDOW STACK" للمزيد
تفاصيل.
set_num_desktops عدد
يغير عدد أسطح المكتب أو مساحات العمل.
get_num_desktops
إخراج العدد الحالي لسطح المكتب.
get_desktop_viewport [--صدفة]
الإبلاغ عن موقف منفذ العرض الحالي. إذا تم إعطاء --shell ، يكون الناتج مناسبًا له
قذيفة EVAL.
تُستخدم إطارات العرض أحيانًا بدلاً من "أسطح المكتب الافتراضية" في بعض مديري النوافذ. أ
منفذ العرض هو ببساطة عرض على مساحة سطح مكتب كبيرة جدًا.
set_desktop_viewport x y
انقل منفذ العرض إلى الموضع المحدد. لن يتم تلبية جميع الطلبات - بعضها
يلتزم windowmangers فقط بالطلبات التي تتوافق مع حدود مساحة العمل ، مثل ملف
حجم الشاشة.
على سبيل المثال ، إذا كانت شاشتك تبلغ 1280 × 800 ، فيمكنك الانتقال إلى مساحة العمل الثانية بالقيام بما يلي:
xdotool set_desktop_viewport 1280 0
set_desktop [خيارات] رقم سطح المكتب
قم بتغيير العرض الحالي إلى سطح المكتب المحدد.
--نسبيا
استخدم الحركات النسبية بدلاً من المطلقة. يتيح لك هذا الانتقال بالنسبة إلى ملف
سطح المكتب الحالي.
get_desktop
إخراج سطح المكتب الحالي في العرض.
set_desktop_for_window [نافذة او شباك] رقم سطح المكتب
انقل نافذة إلى سطح مكتب مختلف. إذا لم يتم إعطاء أي نافذة ، فإن٪ 1 هو الافتراضي. ارى
"WINDOW STACK" و "تسلسل الأوامر" لمزيد من التفاصيل.
get_desktop_for_window [نافذة او شباك]
قم بإخراج سطح المكتب الذي يحتوي حاليًا على النافذة المحددة. انقل نافذة إلى ملف مختلف
سطح المكتب. إذا لم يتم إعطاء أي نافذة ، فإن٪ 1 هو الافتراضي. انظر WINDOW STACK و "COMMAND
تسلسل "لمزيد من التفاصيل.
متفرقات أوامر
EXEC [خيارات] أمر [...]
تنفيذ برنامج. غالبًا ما يكون هذا مفيدًا عند دمجه مع behave_screen_edge للقيام به
أشياء مثل قفل الشاشة.
خيارات:
- مزامنة
كتلة حتى تخرج عملية الطفل. ثم يتم تمرير حالة الخروج من العملية الفرعية
إلى العملية الأم (xdotool) التي تنسخها.
أمثلة:
# قفل الشاشة عندما يجلس الماوس في الزاوية اليمنى العليا
xdotool behave_screen_edge - تأخير 1000 أعلى اليمين \
الأمر exec gnome-screensaver -lock
# استبدل "xscreensaver-command -lock" إذا كنت تستخدم هذا البرنامج.
# ما يلي سوف يفشل في تحريك الماوس لأننا نستخدم "--sync" و
# / بن / خطأ مخارج غير صفرية:
xdotool exec - مزامنة / بن / خطأ تحريك الماوس 0 0
# نجح هذا ، مع ذلك ، لأننا لا نستخدم --sync في الأمر exec.
xdotool exec / بن / خطأ تحريك الماوس 0 0
النوم ثواني
النوم لفترة محددة. كسور الثواني (مثل 1.3 أو 0.4) صالحة هنا.
نصوص
يمكن أن يقرأ xdotool قائمة الأوامر عبر stdin أو ملف إذا كنت تريد. سيناريو سيفشل
عندما يفشل أي أمر.
بصدق ، وضع "النص" لم يتم تجسيده بالكامل وقد يكون أقل من توقعاتك. لو
لديك اقتراحات ، يرجى إرسال القائمة بالبريد الإلكتروني أو الإبلاغ عن خطأ (انظر الاتصال).
يمكن أن تستخدم البرامج النصية وسيطات موضعية (ممثلة بـ $ 1 ، $ 2 ، ...) والبيئة
المتغيرات (مثل $ HOME أو $ WINDOWID). يجب أن تعمل الحجج المقتبسة كما هو متوقع.
تتم معالجة البرامج النصية لتوسيع متغير البيئة والمعلمات ثم يتم تشغيلها كما لو
كنت قد استدعت xdotool مع البرنامج النصي بأكمله في سطر واحد (باستخدام تسلسل الأوامر).
· قراءة الأوامر من ملف:
اسم ملف xdotool
· قراءة الأوامر من stdin:
xdotool -
· قراءة الأوامر من ملف تمت إعادة توجيهه
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 مع نوافذ بحجم المعلمات الثانية والثالثة.
إليك مثال على الاستخدام:
٪ ./myscript xterm 600
سيؤدي تشغيله على هذا النحو إلى أخذ 4 xterms مرئية ، ورفعها ، ونقلها إلى مربع 2x2
شبكة بحجم 600x400 بكسل لكل نافذة.
معدِّلات النظافة
أي أمر يأخذ - Clearmodifiers سيحاول العلم مسح أي إدخال نشط
المعدلات أثناء الأمر واستعادتها بعد ذلك.
على سبيل المثال ، إذا كنت ستقوم بتشغيل هذا الأمر:
مفتاح xdotool أ
ستكون النتيجة "a" أو "A" اعتمادًا على ما إذا كنت تحتفظ بمفتاح Shift أم لا
على لوحة المفاتيح الخاصة بك. غالبًا ما يكون من غير المرغوب فيه تنشيط أي مُعدِّلات ، لذلك يمكنك معرفة ذلك
xdotool لمسح أي معدّلات نشطة.
ترتيب العمليات إذا قمت بالضغط على مفتاح shift أثناء تشغيل "مفتاح xdotool - Clearmodifiers a"
هذا هو:
1. استعلام عن جميع المُعدِّلات النشطة (يبحث عن shift ، في هذه الحالة)
2. حاول مسح التحول عن طريق إرسال "key up" لمفتاح التحول
3. تشغيل "مفتاح xdotool أ" العادي
4. استعادة مفتاح التحول عن طريق إرسال "مفتاح لأسفل" للتحول
إنّ - Clearmodifiers يمكن للعلم حاليًا مسح ما يلي:
· أي مفتاح في مخطط المفاتيح النشط يحتوي على معدِّل مرتبط به. (ارى
com.xmodmap(1) إخراج 's' xmodmap -pm ')
· أزرار الماوس (1 و 2 و 3 و 4 و 5)
· Caps Lock
إرسال الملاحظات
إذا كنت تحاول إرسال إدخال مفتاح إلى نافذة معينة ، ولا يبدو أنه كذلك
العمل ، فمن المحتمل أن تطبيقك يتجاهل الأحداث التي يولدها xdotool.
هذا شائع إلى حد ما.
يستخدم إرسال ضغطات المفاتيح إلى نافذة معينة واجهة برمجة تطبيقات مختلفة عن مجرد الكتابة إلى ملف
نافذة نشطة. إذا قمت بتحديد 'xdotool type --Window 12345 hello' ، فسيتم إنشاء xdotool
الأحداث الرئيسية وإرسالها مباشرة إلى النافذة 12345. ومع ذلك ، ستقوم خوادم X11 بتعيين ملف
علامة خاصة على جميع الأحداث التي تم إنشاؤها بهذه الطريقة (انظر XEvent.xany.send_event في X11's
كتيب). تراقب العديد من البرامج هذه العلامة وترفض هذه الأحداث.
من المهم ملاحظة أنه بالنسبة لأحداث المفاتيح والماوس ، فإننا نستخدم XSendEvent فقط عندما يكون ملف
نافذة محددة مستهدفة. خلاف ذلك ، نستخدم XTEST.
يمكن تكوين بعض البرامج لقبول الأحداث حتى لو تم إنشاؤها بواسطة xdotool.
اطلب توثيق طلبك للحصول على المساعدة.
ملاحظات تطبيق محددة (من اختبار المؤلف): * يبدو أن Firefox 3 يتجاهل الكل
الإدخال عندما لا يكون التركيز. * يمكن تكوين xterm أثناء التشغيل مع
ctrl + leftclick ، يبدو أن "Allow SendEvents" * gnome-terminal يقبل المدخلات التي تم إنشاؤها بواسطة
افتراضي.
نافذة او شباك كومة
سوف تجد أوامر معينة (بحث ، getactivewindow ، getwindowfocus) نوافذ لك.
يتم طباعة هذه النتائج بشكل عام على stdout ، ولكن يتم حفظها أيضًا في الذاكرة للمستقبل
تستخدم خلال عمر عملية xdotool. راجع "تسلسل الأوامر" لمزيد من المعلومات
معلومات.
التعديلات الوحيدة التي تدعم كومة النوافذ هي استبدالها. هذا هو ، اثنان من اثنين
عمليات البحث المتسلسلة ، ستكون نتائج البحث الأخير فقط هي مجموعة النوافذ.
COMMAND التسلسل
يدعم xdotool تشغيل أوامر متعددة على استدعاء واحد. بشكل عام ، ستبدأ
باستخدام أمر البحث (انظر "WINDOW STACK") ثم قم بتنفيذ مجموعة من الإجراءات على هؤلاء
النتائج.
للاستعلام عن حزمة النوافذ ، يمكنك استخدام تدوين خاص "٪ N" حيث N هو رقم أو
'@' رمز. إذا تم إعطاء٪ N ، فسيتم تحديد النافذة N من مجموعة النوافذ.
بشكل عام ، سترغب فقط في النافذة الأولى أو جميع النوافذ. لاحظ أن ترتيب
النوافذ في كومة النوافذ تتوافق مع ترتيب تكديس النوافذ ، أي الأكثر أسفل
سيتم الإبلاغ عن النافذة أولاً (انظر XQueryTree(3)). وهكذا فإن ترتيب النوافذ في
قد لا تكون حزمة النوافذ متسقة عبر الدعوات.
يتم استخدام الترميز الموصوف أعلاه كوسيطة "نافذة" لأي أمر معين.
على سبيل المثال ، لتغيير حجم كل xterms إلى 80x24:
xdotool search - class xterm - windowsize --usehints٪ @ 80 24
تغيير الحجم نقل النافذة الحالية:
xdotool getactivewindow windowmove 0 0
في جميع الحالات ، فإن وسيطة النافذة الافتراضية ، إذا تم حذفها ، ستتحول افتراضيًا إلى "٪ 1". إنها
من الواضح أنه خطأ إذا حذفت وسيطة النافذة وكانت حزمة النوافذ فارغة. اذا أنت
حاول استخدام مكدس النوافذ وهو فارغ ، فهو أيضًا خطأ.
لتفعيل أول نافذة لمتصفح فايرفوكس تم العثور عليها:
xdotool search - فئة فايرفوكس windowactivate
قد تكون هذه الأخطاء:
تفعيل نافذة xdotool
نافذة xdotool ، تنشيط٪ 1
xdotool windowactivate٪ @
عند خروج xdotool ، يتم فقد حزمة النوافذ الحالية.
إضافةً إلى ذلك ، لن تطبع الأوامر التي تقوم بتعديل "WINDOW STACK" النتائج إذا كانت
ليسوا الأمر الأخير. على سبيل المثال:
# إخراج النافذة النشطة:
٪ xdotool getactivWindow
20971533
# إخراج معرف النافذة النشطة ، ولكن ليس معرف النافذة النشطة:
٪ xdotool getactivewindow getwindowpid
4686
وسعوا نافذة او شباك مدير تلميحات
يتم دعم الأجزاء التالية من معيار 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 اكتشافه وإخبارك إذا كان الإجراء يتطلب ميزة
لا يدعمه نظامك حاليًا.
للحصول على ميزات خاصة بمدير النوافذ ، راجع "تلميحات مدير WINDOW الموسعة".
XTEST
إذا كان خادم X الخاص بك لا يدعم XTEST ، فهناك بعض ميزات الكتابة وحركة الماوس
قد لا يعمل. على وجه التحديد ، إجراءات الكتابة والماوس التي تعمل في "النافذة الحالية"
من غير المحتمل أن تعمل (النافذة 0 في libxdo).
في معظم الحالات ، تعد XTEST ميزة يمكنك تمكينها على خادم X الخاص بك إذا لم يتم تمكينها
بشكل افتراضي.
يمكنك مشاهدة قائمة امتدادات X المدعومة بكتابة "xdpyinfo" والبحث في ملف
نص "عدد الامتدادات: ..."
استخدم xdotool عبر الإنترنت باستخدام خدمات onworks.net