বাংলা কিবোর্ড     «Computing»   «Home»   «Map&Rev»

 
«English»   «বাংলা»

 

হরফের পৌনঃপুন্য-ভিত্তিক বাংলা কিবোর্ড

কিবোর্ড লেআউট ভাষায় ব্যবহৃত হরফের পৌনঃপুনিকতার ওপর ভিত্তি করে হলেই কার্যকরী হয়। তদানীন্তন পূর্ব পাকিস্তান বা পশ্চিমবঙ্গের টাইপরাইটারের কিবোর্ড সম্পর্কে একটা ধারণা যে এর পেছনে হরফের পৌনঃপুন্যের একটি ভূমিকা আছে। বিজয় লেআউট সম্পর্কেও একই ধারণা। ইনস্ক্রিপ্ট কিবোর্ড অবশ্য দেখেই বোঝা যায় হরফের সাজুয্যের ভিত্তিতে বাননো।

২০১৩-র দিকে আমি প্রায় সাড়ে ন’লাখ শব্দের হিসেব কষে — হাতে গুনে নয়, যন্ত্রের সাহায্যে — দেখেছিলাম বাংলায় কোন হরফের বা চিহ্নের ব্যবহার কতটা। মোখতাসার, বেশি থেকে কম হিসেবে প্রথম ৯টি হরফ বলা হরফ-চিহ্ন হল আ-কার, এ-কার, র, হসন্ত, ই-কার, ন, ক, ত এবং ব। এর আগে করা কোনও হিসেব থেকে আ-কারের জায়গা পালটায়নি যদিও ইউনিকোডে অ-এ আ-কার জুড়ে আ লেখতে হয় না। র-এর ক্ষেত্রেও তেমনি। হসন্ত এই তালিকার ওপরের দিকে, কারণ ইউনিকোডে জোড়া-হরফ লেখবার নিয়ম হসন্ত দিয়ে। এই তালিকার সঙ্গে কিবোর্ডের বিভিন্ন হরফ বা আঙুলের কার্যকারিতার ফর্দ মিলিয়ে এই কিবোর্ডটির নকশা করা হয়েছে যেন একটু দ্রুত লেখা যায়।

Bengali keyboard layout
ছবির ওপর ডান-মাউস ক্লিক করে সেভ ইমেজ অ্যাজ়-এ যান।

নকশাটি দাঁড়ায় ২০১৪ সালে; পরের বছর আরও খানিকটা গুছিয়ে নিই। কিন্তু সর্বসাধারণের জন্য উন্মুক্ত করি ২০১৮ সালে, সঙ্গে ছিলে উইন্ডোজ়ে ব্যবহারের জন্য একটি ফাইল। ২০২২-এর ফেব্রুয়ারিতে আরও কিছু হরফ যেমন বৈদিক অনুস্বার এবং সন্ধির চিহ্ন ঢোকাই আর নাগরীর সঙ্ক্ষেপ চিহ্ন বদলে বাংলার সঙ্ক্ষেপ চিহ্ন অন্তর্ভুক্ত করি

এক্সকেবি ফাইল এবং গুটিকয়েক ইউনিক্স-লিনাক্সে ইনস্টলেশনের নিয়ম নিচে দেওয়া হল। আরও নিচে দেওয়া উইন্ডোজ়ের জন্য দু’টি বাইনারি; ঠেসে-রাখা ফাইলকে খুলে নিয়ে সেটআপ (setup.exe) ফাইলটি চালিয়ে ইনস্টল করতে হবে।

চিহ্নের দ্ব্যর্থতা নিরসন

‘১’-এর ঘরে নিচে পাশের যে ড্যাশ (অল্ট-গ্রাফিক) আছে তা আদতে সংখ্যার মাঝে বসবার জন্য; ‘হাইফেন’-এর ঘরে যে ড্যাশ (এমনি কি চাপলেই যা আসে) তা আস্‌কির হাইফেন-বিয়োগ; হাইফেনের ঘরে বাঁদিকের ওপরের ড্যাশ (শিফট) হল আসল বিয়োগ-চিহ্ন; ডানের নিচের ড্যাশ (অল্ট-গ্রাফিক) হল এন−ড্যাশ আর তার ওপরের ড্যাশ (শিফট অল্ট-গ্রাফিক) হল এম-ড্যাশ‌; আর স্ল্যাশের ঘরের ড্যাশ (শিফট অল্ট-গ্রাফিক) হল আসল বিয়োগ-চিহ্ন।

‘৩’-এর ঘরের ঊর্ধ্ব কমা (শিফট) হল শুরুর একক উদ্ধার চিহ্ন; ‘৪’-এর ঘরের কমা (শিফট) হল শেষের একক উদ্ধার-চিহ্ন; ‘ফুল স্টপ’-এর ঘরের ঊর্ধ্ব কমা (অল্ট-গ্রাফিক) হল মডিফায়ার লেটার অ্যাপস্ট্রফি যা ইউনিকোড-মাফিক ইলেক-চিহ্ন; ফুল স্টপের ঘরের ঊর্ধ্ব কমা (শিফট অল্ট-গ্রাফিক) হল মডিফায়ার লেটার ঘোরানো কমা যা বাংলায় আরবির ʻআইন হরফ লিখতে দরকার হয়।

শেষের তৃতীয় বন্ধনীর ঘরের স্ল্যাশ (অল্ট-গ্রাফিক) হল সাধারণ স্ল্যাশ আর তার ওপরের স্ল্যাশ (শিফট অল্ট-গ্রাফিক) হল ভগ্নাংশের স্ল্যাশ।

‘২’-এর ঘরের নিচের ডানের তেরচা টানটি (অল্ট-গ্রাফিক) হল প্রাইম, মিনিট বা ফুটের চিহ্ন; ‘৩’-এর ঘরের নিচের ডানের জোড়া তেরচা টান (অল্ট-গ্রাফিক) হল জোড়া-প্রাইম, সেকেন্ড বা ইঞ্চির চিহ্ন; ‘৫’-এর ঘরের জোড়া তেরচা টান (অল্ট-গ্রাফিক) হল ‘ঐ’-এর চিহ্ন।

‘৭’-এর ঘরের গোল্লা (শিফট অল্ট-গ্রাফিক) হল পুরানো নিয়মে অংকের ষোলর পূরণের চিহ্ন; ‘৮’-এর ঘরের গোল্লা (অল্ট-গ্রাফিক) হল বাংলায় সংক্ষেপন চিহ্ন; ‘৯’-এর পরের ঘরের (এমনি কি চেপেই যা আসে) হল বাংলার নয় (৯); আর শুরুর ব্র্যাকেটের গোল্লা (শিফট অল্ট-গ্রাফিক) হল ডিগ্রির চিহ্ন।

শুরুর ব্র্যাকেটের ঘরের ফুল স্টপ (শিফট) হল ইংরেজির ফুল স্টপ; সেই ঘরের নিচের ডানের ফুল স্টপ (অল্ট-গ্রাফিক) হল মধ্য-বিন্দু; কমার ঘরের বিন্দু (অল্ট-গ্রাফিক) হল নুকতা; আর তার ওপরের জোড়া-বিন্দু (শিফট অল্ট-গ্রাফিক) হল হরফের নিচের জোড়া-বিন্দু।

এক্সকেবি ফাইল


// Bengali keyboard layout // based on letter frequency // abu jar m akkas, 2014 // updated 2015, 2022 partial default alphanumeric_keys xkb_symbols "xbengali" { name[Group1]= "Bangla (Xbengali)"; // row_1 (` =) key <TLDE> { [ 0x10009c4, 0x10009e2, 0x1000980, 0x10009e3 ] }; key <AE01> { [ 0x10009e7, exclam, 0x1002012, 0x10009f4 ] }; key <AE02> { [ 0x10009e8, question, 0x1002032, 0x10009f5 ] }; key <AE03> { [ 0x10009e9, 0x1002018, 0x1002033, 0x10009f6 ] }; key <AE04> { [ 0x10009ea, 0x1002019, 0x10009f3, 0x10009f2 ] }; key <AE05> { [ 0x10009eb, percent, 0x1003003, 0x10009f7 ] }; key <AE06> { [ 0x10009ec, 0x100201c, less, 0x10009f8 ] }; key <AE07> { [ 0x10009ed, 0x100201d, greater, 0x10009f9 ] }; key <AE08> { [ 0x10009ee, asterisk, 0x10009fd, 0x10009fb ] }; key <AE09> { [ 0x10009ef, parenleft, braceleft, bracketleft ] }; key <AE10> { [ 0x10009e6, parenright, braceright, bracketright ] }; key <AE11> { [ minus, 0x1002212, 0x1002013, 0x1002014 ] }; key <AE12> { [ equal, plus, multiply, division ] }; // row_2 (q ]) key <AD01> { [ 0x1000987, 0x1000983, voidsymbol, voidsymbol ] }; key <AD02> { [ 0x10009ae, 0x1000998, voidsymbol, voidsymbol ] }; key <AD03> { [ 0x10009b8, 0x1000999, voidsymbol, voidsymbol ] }; key <AD04> { [ 0x1000964, 0x1000981, 0x1000965, 0x10009fa ] }; key <AD05> { [ 0x1000997, 0x100099d, voidsymbol, voidsymbol ] }; key <AD06> { [ 0x1000986, 0x1000988, voidsymbol, voidsymbol ] }; key <AD07> { [ 0x10009c1, 0x1000989, voidsymbol, voidsymbol ] }; key <AD08> { [ 0x10009ac, 0x10009a1, 0x10009f1, voidsymbol ] }; key <AD09> { [ 0x10009b2, 0x10009a0, 0x100098c, 0x10009e1 ] }; key <AD10> { [ 0x100099c, 0x10009cc, voidsymbol, 0x10009d7 ] }; key <AD11> { [ comma, period, periodcentered, 0x10000b0 ] }; key <AD12> { [ semicolon, colon, slash, 0x1002044 ] }; // row_3 (a \) key <AC01> { [ 0x10009a4, 0x10009a3, voidsymbol, voidsymbol ] }; key <AC02> { [ 0x10009a8, 0x1000985, 0x10009bd, 0x10009fe ] }; key <AC03> { [ 0x10009cd, 0x10009a7, voidsymbol, voidsymbol ] }; key <AC04> { [ 0x10009c7, 0x10009a5, voidsymbol, voidsymbol ] }; key <AC05> { [ 0x10009af, 0x10009dc, voidsymbol, voidsymbol ] }; key <AC06> { [ 0x10009df, 0x1000982, voidsymbol, 0x10009fc ] }; key <AC07> { [ 0x10009be, 0x10009b7, voidsymbol, voidsymbol ] }; key <AC08> { [ 0x10009b0, 0x10009ad, 0x10009f0, voidsymbol ] }; key <AC09> { [ 0x10009bf, 0x1000996, voidsymbol, voidsymbol ] }; key <AC10> { [ 0x1000995, 0x1000993, voidsymbol, voidsymbol ] }; key <AC11> { [ 0x1000994, 0x100098a, voidsymbol, voidsymbol ] }; key <BKSL> { [ 0x100200c, 0x100200d, 0x1002009, 0x10000a0 ] }; // row_4 (z /) key <AB01> { [ 0x100099b, 0x100098b, voidsymbol, 0x10009e0 ] }; key <AB02> { [ 0x100098f, 0x10009a2, voidsymbol, voidsymbol ] }; key <AB03> { [ 0x10009cb, 0x10009c3, voidsymbol, voidsymbol ] }; key <AB04> { [ 0x10009a6, 0x10009c8, voidsymbol, voidsymbol ] }; key <AB05> { [ 0x100099a, 0x10009dd, voidsymbol, voidsymbol ] }; key <AB06> { [ 0x10009b9, 0x10009c2, voidsymbol, voidsymbol ] }; key <AB07> { [ 0x10009aa, 0x100099e, voidsymbol, voidsymbol ] }; key <AB08> { [ 0x100099f, 0x10009ab, 0x10009bc, 0x1000324 ] }; key <AB09> { [ 0x10009b6, 0x1000990, 0x10002bc, 0x10002bb ] }; key <AB10> { [ 0x10009c0, 0x10009ce, 0x1002026, 0x1002010 ] }; key <SPCE> { [ space, space, 0x1002008, 0x100202f ] }; // third level with right-Alt include "level3(ralt_switch)" };

 

দ্রষ্টব্য: টাকা না রুপি — যাঁরা টাকার চিহ্নের বদলে রুপির চিহ্ন ব্যবহার করতে চান, তাঁরা ওপরের কোডের টাকার রাঙানো — 0x10009f3 (key <AE04> ঘরের তিন নম্বর) — মানটিকে রুপির মান 0x10020b9 দিয়ে বদলে নিতে পারেন।

ইনস্টলেশন

ফ্রিবিএসডি

ওপরের কোডটুকু xben নামের একটি ফাইলে /usr/local/share/X11/xkb/symbols ডিরেক্টরিতে সেভ করুন। bd বা in নামের সিম্বল ফাইলে নিচের কোডটি জুড়ে দিন।


// xben addition xkb_symbols "xbeng" { include "xben(xbengali)" name[Group1]= "Bangla (Xbengali)"; };

base.lst এবং evdev.lst ফাইল দুটিতে নিচের কোডটুকু জুড়ে দিন।


xbeng bd: Bangla (Xbengali)

এরপর base.xml এবং evdev.xml ফাইল দুটিতে <layout>-এর <name>bd</name> বা <name>in</name> অংশে <variantList> এবং </variantList>-এর মাঝে নিচের কোডটুকু জুড়ে দিন।


<variant> <configItem> <name>xbeng</name> <description>Bangla (Xbengali)</description> </configItem> </variant>

এক কিবোর্ডে থেকে আরেক কিবোর্ডে যেতে, Keyboard layout switching plugin (xfce4-xkb-plugin-0.8.2_1) বা অন্য উইন্ডো ম্যানেজারের জন্য প্রয়োজনীয় ফাইল নামিয়ে নিন।

একেক রকম লিনাক্সে নিয়মটা একটু বদলাতে পারে, কিন্তু একই সিম্বল ফাইল কাজ করার কথা।

স্ল্যাকওয়্যার

xben সিম্বল ফাইলটিকে /etc/X11/xkb/symbols ডিরেক্টবিতে রেখে দেবার পর, বাংলাদেশের জন্য bd বা ভারতের জন্য in ফাইলে, নিচের অংশটি জুড়ে দিতে হবে।

// xkb bengali
xkb_symbols "xbeng" {
include "xbeng(xbengali)"
name[Group1]= "Bangladesh - xben";
};
এরপর /etc/X11/xkb/rules ডিরেক্টরিতে evdev.xml ফাইলে বাংলার লেআাউট যেমন
<layout>
      <configItem>
        <name>bd</name>
        <shortDescription>bn</shortDescription>
        <description>Bengali</description>
        <languageList>
          <iso639Id>ben</iso639Id>
        </languageList>
      </configItem>
<variantList>
<variant>
—এর মধ্যে নিচের কোড লিখে, বাংলা কিবোর্ডটিকে বিকল্প হিসাবে জুড়ে দিতে হবে।
<configItem>
   <name>xkbben</name>
      <description>XKB Bengali</description>
      <shortDescription>bn</shortDescription>
      <languageList><iso639Id>ben</iso639Id></languageList>
   </configItem>
   </variant>
---------------
---------------
     </variantList>
    </layout>

আমাকে এরপর /etc/X11/xkb ডিরেক্টরিতে গিয়ে নিচের কমান্ড দিয়ে কিবোর্ডটি কম্পাইল করতে হয়েছিল।

xkbcomp -lhlpR '*' ,,/symbols.dir [Enter]

শেষে, system settings | input device | keyboard থেকে কিবোর্ডটি বেছে নিতে হত।

ডেবিয়ান

ডেবিয়ানে, এক্সকেবি ফাইলটির অবস্থান /usr/share/X11/xkb/symbols/ ডিরেক্টরিতে। উইন্ডো এনভারনমেন্টে কিবোর্ড নির্বাচন ডেস্কটপের ওপর নির্ভরশীল। LXDE বা লাইটওয়েট এক্স১১ ডেস্কটপ এনভারনমেন্টে panel settings | panel applets | keybaord layout handler থেকে কিবোর্ডটি বেছে নিতে হয়।

রেড হ্যাট

সিম্বল ফাইলটি bd বা in ফাইলে নিচের কোড জুড়ে দিতে হত।

// xkb bengali
xkb_symbols "xbeng" {
include "xbeng(xbengali)"
name[Group1]= "Bangladesh - xben";
};

এরপর, সিম্বল ডিরেক্টরিতে গিয়ে নিচের কমান্ড দিয়ে কিবোর্ডটি কম্পাইল করতে হত এবং এক্ম-উইন্ডোতে এরও নিচের কমান্ড দিয়ে কেডিই কন্ট্রোল মেনু থেকে কিবোর্ডটি বেছে নিতে হত।

xkbcomp -lhlpR '*' -o ../symbols.dir
kcontrol
উইন্ডোজ়

টাকার চিহ্ন-সংবলিত প্রোগ্রামটি এখান থেকে এবং রুপি চিহ্ন-সংবলিত প্রোগ্রামটি এখান থেকে ডাউনলোড করা যাবে।

 

Rev.: vii·xi·mmxxii