কীবোর্ড বিন্যাস এবং xmodmap এর সম্পর্ক


12

আমি জুবুন্টু ব্যবহার করছি। লগইনের আগে আমি একটি কীবোর্ড বিন্যাস চয়ন করতে পারি। আমি xmodmapকিছু কী রিম্যাপ করার জন্য ব্যবহার করছি ।

আমি দুটি বিষয়ে আগ্রহী:

  1. কী-বোর্ড ম্যাপিংয়ের পরিস্থিতি কীভাবে পরিবর্তিত হয় (ক) যখন আমি ল্যাপটপ চালু করি, (খ) বুট প্রক্রিয়া চলাকালীন এবং (গ) সিস্টেমে লগইন করুন (এই তিনটি পর্যায়ে) এবং সিস্টেমের সাথে কাজ করার সময় (লগ ইন)।
  2. স্বতন্ত্র পর্যায়ক্রমে কোন চিহ্নগুলি স্ক্রিনে প্রদর্শিত হবে (এবং নিয়ন্ত্রণ কীগুলি প্রেরণ করা হবে)। আমি যখন কিছু কী টিপবো, এটি কিবোর্ড ড্রাইভারকে (?) কিছু সংকেত প্রেরণ করবে এবং তারপরে কোন সিদ্ধান্ত প্রদর্শিত হবে তা নির্ধারণ করার জন্য অবশ্যই কিছু সিদ্ধান্ত প্রক্রিয়া (অ্যাপ্লিকেশন এবং কনফিগারেশন ফাইল) থাকতে হবে। এই প্রশ্নের উত্তরটি সেই কনফিগারেশন ফাইলগুলির অ্যাপ্লিকেশন এবং পাথের তালিকা হওয়া উচিত (আমি বিশেষত উবুন্টু (দেবিয়ান ভিত্তিক সিস্টেম) এর প্রতি আগ্রহী, তবে আপনি অন্য কিছু সিস্টেম বর্ণনা করতে পারেন তবে উবুন্টু পছন্দনীয়)।

উত্তর:


25

এখানে দুটি স্তর রয়েছে, KEYCODE থেকে KEYSYM ম্যাপিং এবং KEYSYM পাঠ্য ম্যাপিংয়ের জন্য। আপনি যদি কার্নেল গণনা করেন তবে আরও স্তর রয়েছে যা আপনাকে একটি কীটিস্কোডে এক্সটি-স্টাইল KEYCODE বা একটি ইউএসবি কীবোর্ড এইচআইডি কোডে এটি কীবোর্ড স্ক্যানকোডস মানচিত্র করতে হবে। একটি কেইকোডই কেবল 8-বিট স্বাক্ষরযুক্ত পূর্ণসংখ্যা যা অপারেটিং সিস্টেমের কার্নেলটি X11 সার্ভারে যায়। এটি অপারেটিং সিস্টেম যেমন লিনাক্স এবং সোলারিসের মধ্যে পৃথক হতে পারে। লিনাক্সে, এই KEYCODE গুলি সাধারণত পুরানো এক্সটি পিসি কীবোর্ডগুলিতে ব্যবহৃত একই নম্বর। এটিটি, পিএস / 2, বা ইউএসবি কীবোর্ড সহ নতুন কম্পিউটারগুলি সাধারণভাবে কীটিকে জীবন সহজ রাখার জন্য পুরানো এক্সটি কোডে ম্যাপ করে।

কাঁচা কীবোর্ড কোডগুলি সেগুলি এক্সটি, এটি, পিএস / 2, বা ইউএসবি হ'ল কিবোর্ডে কোনও প্রকৃত অবস্থান উপস্থাপন করে। এক্সটি কীবোর্ড কেবল কী বা টিপে বা রিলিজ করার জন্য একটিমাত্র 8-বিট নম্বর প্রেরণ করে। একটি মার্কিন / ব্রিটিশ এক্সটি কীবোর্ডের কি কীটি 16 নম্বরটি প্রেরণ করে a ফরাসি কীবোর্ডে একই শারীরিক কীটিকে একটি লেবেলযুক্ত করা হয় তবে এটি এখনও 16 প্রেরণ করে It's এটি অপারেটিং সিস্টেমের উচ্চতর স্তর যা এটি একটি সত্য অর্থ নির্ধারণ করে। কোনও টিটি এক্সটি কীবোর্ডে প্রকাশিত হলে, একই কীকোডটি প্লাস 128 প্রেরণ করা হয় this উদাহরণস্বরূপ, যখন q টিপানো হয়, তখন একটি 16 প্রেরণ করা হয়, তবে মুক্তির সময়, 142 (16 + 128) নম্বর প্রেরণ করা হয়। এটি কীবোর্ডগুলি স্ক্যানকোডগুলি ব্যবহার করে যা সংখ্যার ধারাবাহিক এবং বেশ দীর্ঘ। কী রিলিজ অতিরিক্ত কোড যুক্ত করে। উদাহরণস্বরূপ, বিরতি দেওয়ার জন্য স্ক্যানকোড হ'ল E1, 1D, 45, E1, 9D, C5। ডস, উইন্ডোজ, লিনাক্স, ফ্রিবিএসডি, সহ বেশিরভাগ অপারেটিং সিস্টেম এবং বিআইওএস সমস্ত ম্যাপ স্ক্যানকোডগুলি আরও সহজ এক্সটি-স্টাইলের স্ক্যানকোডগুলিতে। নতুন কীবোর্ডগুলিতে সমর্থন করা আরও সহজ করে তোলে যা এইচআইডি কোড প্রেরণকারী ইউএসবি কীবোর্ডের মতো বিভিন্ন কোড ব্যবহার করে। এক্স 11 বা অ্যাপ্লিকেশন সেগুলি দেখার আগে সমস্ত কোড অপারেটিং সিস্টেমের দ্বারা একই ধারাবাহিক কোডগুলিতে ম্যাপ করা হয়।

এক্স 11 প্রক্রিয়াটির এই অংশটি সম্পর্কে অজ্ঞ, এটি কেবল কার্নেল থেকে কেইকোইডি পেয়েছে এবং সেই কেইকিডকে একটি কেইএসওয়াইমে রূপান্তর করতে নিজস্ব ম্যাপিং প্রয়োগ করে। এক্সমোডম্যাপটি সেই ম্যাপিং নিয়ন্ত্রণের জন্য মানক সরঞ্জাম। কীবোর্ড ম্যাপিংয়ের বেশিরভাগ আচরণ কনফিগারযোগ্য, তবে বেশ কয়েকটি বিশেষ কেস রয়েছে যেমন নম লক, মোড স্যুইচ এবং ক্যাপস লক / শিফট লক যা এক্স 11 এ শক্তভাবে কোডড। শিফ্টের মতো অন্যান্য দিকগুলি আসলে কনফিগারযোগ্য। মোড স্যুইচ বা নম লকের বিপরীতে শিফট হিসাবে কাজ করতে যে কোনও কী ম্যাপ করা যেতে পারে।

KEYCODE গুলি অপারেটিং সিস্টেমের কার্নেল দ্বারা প্রেরিত শারীরিক কীগুলি উপস্থাপন করে। প্রতিটি KEYCODE 8 টি সম্ভাব্য KEYSYM- তে মানচিত্র করতে পারে। কেবল 4 টি ব্যবহৃত হয় এবং কখনও কখনও স্তরগুলিকে 1-4 বলা হয়। স্তর 1 KEYSYM নির্দিষ্ট করে যা মুদ্রক হয় যখন কোনও সংশোধক সক্রিয় থাকে না। এগুলি প্রায়শই ছোট হাতের অক্ষর এবং অঙ্ক হয়। মডিফায়ারগুলি হ'ল কেইসিইডিইডি যেগুলি অন্যান্য কেইইসিইডিইডি দ্বারা উত্পাদিত কেইএসওয়াইএম সংশোধন করে যখন সংশোধক সক্রিয় থাকে (টিপে দেওয়া বা টগলড করা থাকে) স্তর 2 যখন শিফট সংশোধকটি টিপানো হয় তখন প্রেরণের জন্য একটি KEYSYM নির্দিষ্ট করে। মোড স্যুইচ KEYSYM টিপে যখনই লেভেল 3 সক্রিয় করা হয়। একটি স্তর কী এবং মোড স্যুইচ উভয়ই সক্রিয় থাকাকালীন স্তর 4 সক্রিয় করা হয়।

একবার একটি KEYSYM উত্পন্ন হওয়ার পরে, এটি সরাসরি ব্যাখ্যা করা যেতে পারে তবে বেশিরভাগ ক্ষেত্রে পাঠ্যে রূপান্তরিত হবে। সমস্ত KEYSYM পাঠ্যে রূপান্তরিত হয় না বা কেবল ভবিষ্যতের KEYSYM প্রভাবিত করতে পারে। এর একটি উদাহরণ অবশ্যই শিফট_এল, যার কোনও পাঠ্য উপস্থাপনা নেই, তবে আরও অনেকগুলি KEYSYM রয়েছে যা অন্য একটি চরিত্র রচনা করতে ব্যবহৃত হয়। আমার সিস্টেমে সেগুলির একটি তালিকা চলছে /usr/share/X11/locale/en_US.UTF-8/Compose। এর একটি উদাহরণ হ'ল ডেড_একিউট KEYSYM যা চাপলে পরের KEYSYM কে তীব্র উচ্চারণের অক্ষরে রূপান্তরিত করার চেষ্টা করা হবে। KEYSYM গুলি ইউনিকোডে রূপান্তর করার জন্য একটি মানক ম্যাপিং রয়েছে

এখন যেহেতু এই সমস্ত কথাই বলা হয়েছে, নোট করুন যে এক্সমোডম্যাপটি অপ্রচলিত এবং এক্সকেবি দ্বারা প্রতিস্থাপিত হয়েছে যা আরও পরিশীলিত। এটি কীওয়ার্ডগুলি কী কীএসওয়াইএমগুলিতে ম্যাপ করা হয় তা প্রভাবিত করে, তবে কার্নেল কী কীওসিডি তৈরি করে না কীভাবে কেইইএসওয়াইএমগুলি পাঠ্যে রূপান্তরিত হয় বা রচিত হয় যা এখনও একই। এক্স কেবি Xmodmap আচরণ পুনরুদ্ধার করতে অক্ষম করা যেতে পারে। এটি এক্সমোডম্যাপ সমর্থন করার জন্য একটি সামঞ্জস্যতা স্তর রয়েছে, তবে এটি সম্পূর্ণরূপে সামঞ্জস্যপূর্ণ না হওয়ায় এতে সমস্যা থাকতে পারে। এক্সকেবি বিধিগুলি অধীনে রয়েছে /usr/share/X11/xkb/এবং আরও পরিশীলিত। KEYCODE গুলি KEYSYM- এ ম্যাপিংয়ের জন্য কীওয়ার্ড লেআউটগুলি কীভাবে উত্পন্ন করে সে সম্পর্কে অন্য কোথাও খুব ভাল ডকুমেন্টেশন রয়েছে।

লিনাক্স কনসোল হিসাবে, এটির নিজস্ব কীবোর্ড লেআউট রয়েছে যা কমান্ড /usr/share/keymapsদিয়ে সঞ্চিত এবং লোড করা হয় loadkeys। বিআইওএস এবং পূর্বের বুট-লোডার পর্যায়ে, GRUB2 সহ যখন, কী-বোর্ড ম্যাপিং কী কী মানচিত্রটি নির্ধারণের জন্য বিআইওএস সিদ্ধান্ত নেয় তার নামই।


দুর্দান্ত ব্যাখ্যা এবং নতুন তথ্যের জন্য আপনাকে ধন্যবাদ। আপনি কি জানেন যে বুট প্রক্রিয়াতে (অ্যাপস্টার্ট বা ইনসক্রিপ্ট) কোন অ্যাপ্লিকেশনগুলি শুরু হয় যা কীবোর্ডের বিষয়ে সিদ্ধান্ত নেয় এবং আমি যে বিন্যাসটি বেছে নিতে পারি সেই পর্যায়ে লগইনে কী ঘটে। কোন প্রোগ্রাম এটির সাথে ইন্টারঅ্যাক্ট করে এবং এটি ফাইল সিস্টেমে কোথায় সংরক্ষণ করা হয়? লগইন করার পরে xmodmap বা xkb লগইন প্রক্রিয়াতে নির্বাচিত ডিফল্ট লেআউটটিকে ওভাররাইড করবে?
xralf

কার্নেল কী ম্যাপ, যেমনটি আমি বলেছি যে loadkeysকোনও একটি init স্ক্রিপ্ট দ্বারা লোড করা হয়েছে। grep loadkeys /etc/init.d/*ফাইলটি প্রকাশ করে keymap.sh। এক্স 11 এর নিজস্ব কীম্যাপিং রয়েছে যা traditionতিহ্যগতভাবে Xmodmap দ্বারা লোড করা হয়েছে এক্সসিওশন স্টার্ট-আপ স্ক্রিপ্টগুলির মধ্যে একটি থেকে চালিত। আজকাল, এক্সকবিবি এক্সমোডম্যাপের পরিবর্তে ব্যবহৃত হচ্ছে, ডিফল্ট কীম্যাপিংটি বিভিন্ন এক্সকিবি বিকল্পের মাধ্যমে বা এইচএল এর মাধ্যমে Xorg.conf এ সেট করা আছে। একবার জিনোম বা কেডিপি ডিসপ্লে ম্যানেজার লোড হয়ে গেলে তারা setxkbmapকমান্ডের মাধ্যমে তাদের নিজস্ব বিন্যাস লোড করতে পারে । ব্যবহারকারীর ডেস্কটপ এনভায়রনমেন্ট এছাড়াও লগইনে একটি ভিন্ন লেআউট সেট করতে পারে।
পেঙ্গুইন 359

আমি কমান্ড চেষ্টা grep loadkeys /etc/init.d/*এবং locate keymap.shকিছুই পাওয়া যায়নি। Xorg.conf ফাইলটি খুব বেশি পাওয়া যায় নি। এটি কি আমার উবুন্টু সংস্করণের উপর নির্ভর করে যা 10.04?
xralf

উইন্ডো কোন ধরণের ইভেন্ট পাবেন? KEYSYM সহ একটি ইভেন্ট এবং তারপরে অ্যাপ্লিকেশনটি KEYSYM কে পাঠ্যে রূপান্তরিত করে, কীভাবে? অ্যাপ্লিকেশনগুলিকে কেইওয়াইএসওয়াইএমকে পাঠ্যে রূপান্তর করার জন্য কি জর্জ কোনও আইপিসি / আরপিসি ইন্টারফেস সরবরাহ করে? বা অ্যাপটি খাঁটিভাবে নিজে থেকে এটি করতে হবে?
薯条 德里克
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.