هل هناك طريقة للحصول على الثنائية للرد على بعض مفاتيح الاختصار العالمية في لينكس ؟

StackOverflow https://stackoverflow.com/questions/74790

  •  09-06-2019
  •  | 
  •  

سؤال

هل من الممكن أن نستمع لبعض هوتكي (هـ.g:Ctrl-أنا) ومن ثم تنفيذ إجراءات محددة ؟ طلبي هو مكتوب في C ، سوف تعمل فقط على لينكس و ليس لديها واجهة المستخدم الرسومية.هل هناك أي المكتبات التي تساعد مع هذا النوع من المهمة ؟

تحرير:كمثال, أمروك وقد الاختصارات ، وذلك على سبيل المثال إذا كنت الخريطة مزيج من مفاتيح العمل (دعنا نقول Ctrl-+, Ctrl و +) هل يمكن تنفيذ هذا العمل عند الضغط على المفاتيح.إذا كنت الخريطة Ctrl-+ إلى زيادة حجم العمل في كل مرة كنت اضغط ctrl-+ حجم زيادة بمقدار معين.

شكرا

هل كانت مفيدة؟

المحلول

كيف العالمية تفعل مفاتيح الاختصار الخاص بك بحاجة إلى أن تكون ؟ هل يكفي بالنسبة لهم أن تكون عالمية على X ؟ في هذه الحالة يجب أن تكون قادرا على فتح Xlib اتصال والاستماع للأحداث التي تحتاج إليها.

وكثيرا أحداث لوحة المفاتيح في X يتم تسليمها إلى النافذة التي لديها حاليا التركيز و نشر ما يصل التسلسل الهرمي حتى يتم التعامل معها.ومن الواضح أن هذا ليس ما نريد.نحن بحاجة إلى عملية الحدث قبل أي نافذة أخرى يمكن الحصول عليه.نحن بحاجة إلى استدعاء XGrabKey على جذر نافذة مع keycode والمعدلات من هوتكي لإنجاز هذا.

وجدت مثال جيد هنا.

نصائح أخرى

أعتقد smoofra هو على المسار الصحيح هنا ؛ كنت تبحث عن تسجيل هوتكي العالمي مع X بحيث يمكنك اعتراض الضغط على المفاتيح واتخاذ الإجراءات المناسبة. Xlib ربما هو ما تريد ، XGrabKey هي وظيفة, أعتقد.

ليس من السهل تعلم ، أنا خائف ؛ لم تحديد موقع هذا المثال الذي يبدو المفيدة: TinyWM.أنا أيضا وجدت على سبيل المثال باستخدام جافا/JNI (الوصول إلى نفس الكامنة Xlib وظيفة).

يجب أن ننظر في التعليمات البرمجية المصدر xbindkeys.

Xlib البرمجة جدا غامضة ، وثائق من الصعب العثور عليها ، وهناك خفية قابلية القضايا.عليك أن تكون أفضل حالا نسخ بعض قتالية عالية رمز.

طريقة واحدة للقيام بذلك هو أن يكون التطبيق الخاص بك الاستماع على منفذ معين ، أو مأخذ ملف للطلبات الواردة.

ثم يمكنك كتابة الصغيرة تطبيق العميل الذي يربط إلى أن ميناء أو مأخذ الملف ويرسل الأوامر إلى تشغيل التطبيق.

ثم يمكنك تكوين نافذة مدير لربط بعض تركيبات المفاتيح لإطلاق الصغيرة الخاصة بك التطبيق العميل.

في يونكس ، الوصول إلى سطر الأوامر قذيفة طريق محطة.هذه تعود بالذاكرة إلى الأيام عندما كان الناس الوصول إليها الكبيرة أجهزة الكمبيوتر المشتركة حرفيا عبر محطات متصلة مباشرة إلى آلات (مثلا ، بواسطة كبل تسلسلي).

في الواقع, 'إكس تيرم برنامج أو أي مشتق كنت تستخدم UNIX مربع بشكل صحيح يشار إلى محطة المحاكي - أنه يتصرف (من كل من وجهة نظرك من نظام التشغيل) مثل واحدة من تلك القديمة محطة الآلات.

هذا يجعل من قليلا تعقيدا من التعامل مع المدخلات بطرق مثيرة للاهتمام, لأن هناك الكثير من أنواع مختلفة من المحطات ، و يونكس نظام يعرف عن قدرات كل نوع.هذه القدرات كانت تقليديا تخزينها في termcap ملف, و أعتقد أن أكثر النظم الحديثة استخدام terminfo بدلا من ذلك.محاولة

man 5 terminfo

على نظام لينكس للحصول على مزيد من المعلومات.

والخبر السار هو أنك لا تحتاج أن تفعل الكثير من العبث مع قدرات محطة ، إلخ.أن يكون فلكس التطبيق الذي يفعل أشياء مثيرة للاهتمام مع الإدخال أو النوافذ الميزات.هناك مكتبة ، اللعنات, ، من شأنها أن تساعد.البحث

man 3 ncurses

على نظام لينكس الخاص بك لمزيد من المعلومات.وربما كنت سوف تكون قادرة على العثور الكريم البرنامج التعليمي على استخدام الشتائم على الانترنت.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top