সমস্ত অ্যাপ্লিকেশন কীভাবে আমার পরিবর্তিত xkb বিন্যাসকে সম্মান করবেন?


15

আমি মূল কীবোর্ড এবং চলন কীগুলির মধ্যে ঝাঁপ দেওয়া পছন্দ করি না, তাই আমি আমার xkb লেআউট ফাইলটিতে নিম্নলিখিতটি যুক্ত করেছি।

hidden partial xkb_symbols "movement"
{
    key <AD08> { [ NoSymbol, NoSymbol, Up,          Up          ] };
    key <AC08> { [ NoSymbol, NoSymbol, Down,        Down        ] };
    key <AC07> { [ NoSymbol, NoSymbol, Left,        Left        ] };
    key <AC09> { [ NoSymbol, NoSymbol, Right,       Right       ] };
    key <AD09> { [ NoSymbol, NoSymbol, Prior,       Prior       ] };
    key <AB09> { [ NoSymbol, NoSymbol, Next,        Next        ] };
    key <AB07> { [ NoSymbol, NoSymbol, Home,        Home        ] };
    key <AB08> { [ NoSymbol, NoSymbol, End,         End         ] };
    key <AC06> { [ NoSymbol, NoSymbol, Delete,      Delete      ] };
}

তারপরে আমি এগুলি ফাইলের পরবর্তী সময়ে বিন্যাসে অন্তর্ভুক্ত করব। এখন আমার কার্টর কীগুলি AltGr + j, k, l, i (বা h, t, n, c হিসাবে dvorak ব্যবহার করছি) এর মাধ্যমে অ্যাক্সেসযোগ্য হওয়া উচিত etc. লিক্সের মূল পাঠ্য অঞ্চল) তবে কিছু প্রোগ্রাম কিছুই করতে পারে না যখন আমি এই "শর্টকাটগুলি" (যেমন নেটবিয়ানস এবং লায়াক্স ডায়ালগ) ব্যবহার করে কার্সারটি সরানোর চেষ্টা করি।

সুতরাং, এই অন্যান্য প্রোগ্রামগুলিও আমার ইচ্ছাকে সম্মান করার কোনও উপায় আছে? এবং কেন তারা প্রথম স্থানে কাজ করছে না? আমি ডিই ব্যবহার করছি না; শুধুমাত্র দারুণ ডাব্লুএম।

সম্পাদনা:

  • এখানে একটি সম্পূর্ণ তবে সরলীকৃত কীবোর্ড বিন্যাস ফাইল রয়েছে। আমার এই হিসাবে আছে /usr/share/X11/xkb/symbols/nonpopএবং আমি এটি দিয়ে লোড setxkbmap nonpop
  • আমি লক্ষ্য করেছি যে মনোোডিভলেফের চারদিকে কাজ চলছে তবে নির্বাচন করা হয় না। এটি হ'ল যদি আমি শিফট + ডান টিপুন তবে পাঠ্য যথারীতি নির্বাচন করা হয় তবে আমি যদি AltGr + Shift + n টিপছি তবে কার্সারটি নির্বাচন না করে কেবল সরে যায়। উদাহরণস্বরূপ ফায়ারফক্সে উভয় পদ্ধতিই নির্বাচনের জন্য ব্যবহার করা যেতে পারে।
  • এখানে শেষ পর্যন্ত তারা ওভারলেগুলি নিয়ে কথা বলেন যা দেখে মনে হয় এমন কিছু সমাধান হতে পারে যা কীভাবে সমাধান হতে পারে তবে আমি সেগুলি কীভাবে ব্যবহার করব তা ভেবে পাইনি।

1
আমার কাছে কোনও সমাধান নেই তবে আপনি যে অনুদান রেখেছেন তা সত্ত্বেও আপনি যদি উত্তর পেতে না পরিচালনা করেন তবে আপনি ইউনিক্স.এসইতে জিজ্ঞাসা করার চেষ্টা করতে পারেন , আরও একটি ইউনিক্স / লিনাক্স কেন্দ্রিক স্ট্যাকেক্সচেঞ্জ সাইট।
গ্লুটোনিমেট

উত্তর:


16

তারা কেন কাজ করছে না?

আপনি উল্লেখ করেছেন আর্কউইকের নিবন্ধ অনুসারে :

  • X সার্ভারের পায় keycodes ইনপুট ডিভাইস এবং তাদের ধর্মান্তরিত থেকে রাষ্ট্র এবং keysym

    • রাষ্ট্রটি এক্স সংশোধকগুলির বিটমাস্ক (সিটিআরএল / শিফট / ইত্যাদি)।

    • কীসিমটি (অনুসারে /usr/include/X11/keysymdef.h) পূর্ণসংখ্যা

      কীবোর্ড বিন্যাসের প্রতিটি কী (যেমন দৃশ্যমান খোদাইয়ের মাধ্যমে) এর সাথে যুক্ত অক্ষর বা ফাংশন সনাক্ত করুন।

      প্রতিটি মুদ্রণযোগ্য অক্ষর নিজস্ব keysym মত হয়েছে plus, a, A, অথবা Cyrillic_a, কিন্তু অন্যান্য চাবি তাদের keysyms মত উৎপন্ন Shift_L, Leftবা F1

  • মূল প্রেস / রিলিজ ইভেন্টের অ্যাপ্লিকেশনটি এই সমস্ত তথ্য পেয়ে যায়।

    কিছু অ্যাপ্লিকেশনগুলি নিজের মতো Control_Lকরে কীওয়ার্ড ট্র্যাক করে, অন্যরা কেবল রাজ্যে সংশোধক বিটগুলি সন্ধান করে ।

সুতরাং যখন আপনি AltGr+ টিপেন তখন কী হয় j:

  • আপনি চাপুন AltGr। অ্যাপ্লিকেশনটি <RALT>কীপড 108 ( ) এবং কীসিম 0xfe03 ( ISO_Level3_Shift) এর সাথে কীপ্রেস ইভেন্ট পেয়েছে , রাষ্ট্রটি 0।

  • আপনি টিপুন j(কোন সংশোধক ছাড়াই ডিভোরাকে "এইচ" তে মানচিত্রগুলি)। অ্যাপ্লিকেশনটি <AC07>কীপড ইভেন্টটি কীপড 44 ( ), কীসিম 0xff51 ( Left) এবং স্টেট 0x80 (মডিফায়ার মোড 5 চালু রয়েছে) এর সাথে পেয়েছে।

  • তুমি মুক্তি দাও j। অ্যাপ্লিকেশন কী <AC07>/ Leftএকই পরামিতিগুলির সাথে কীরিলিজ ইভেন্টটি পায় ।

  • তারপরে রিলিজ করুন AltGr- AltGr এর জন্য কীরিলিজ ইভেন্ট। (যাইহোক, এখানে রাজ্যটি এখনও 0x80, তবে এটি কোনও ব্যাপার নয়))

আপনি যদি xevইউটিলিটি চালান তবে এটি দেখা যাবে ।

সুতরাং, এর অর্থ হ'ল, যদিও অ্যাপ্লিকেশনটি Leftসাধারণ কী হিসাবে একই কীসিম কোড ( ) <LEFT>পায়, এটি কীস কোড এবং অল্টগ্রি থেকে পরিবর্তনকারী রাষ্ট্রও পায়। সম্ভবত, সেই প্রোগ্রামগুলি কার্যকর হয় না, সংশোধকগুলি দেখে এবং কিছু সক্রিয় থাকাকালীন কাজ করতে চায় না।

কীভাবে তাদের কাজ করবেন

স্পষ্টতই, আমরা প্রতিটি প্রোগ্রাম পরিবর্তন করতে পারি না পরিবর্তনকারীদের সন্ধান না করা। তারপরে এই পরিস্থিতি থেকে বাঁচার একমাত্র বিকল্প হ'ল সংশোধকদের কীওয়ার্ড এবং স্টেট বিট তৈরি করা নয়।

1. পৃথক গ্রুপ

শুধুমাত্র পদ্ধতি যে আমার মনে আসে হল: কার্সার আন্দোলন কি,, পূর্বে কী টিপে করার জন্য একটি পৃথক গ্রুপ এবং সুইচ মধ্যে সংজ্ঞায়িত একটি পৃথক কী টেপার সঙ্গে যে গ্রুপে j, k, l, i( h, t, n, c) (গ্রুপ সুরক্ষিত রাখেন পছন্দের পদ্ধতি এক সময়ের গোষ্ঠী পরিবর্তনের জন্য, যেমন আমি বুঝতে পারি)।

উদাহরণ স্বরূপ:

xkb_keymap {
    xkb_keycodes { include "evdev+aliases(qwerty)" };
    xkb_types { include "complete" };
    xkb_compatibility {
        include "complete"

        interpret ISO_Group_Latch { action = LatchGroup(group=2); };
    };
    xkb_symbols {
        include "pc+us(dvorak)+inet(evdev)"

        key <RALT> { [ ISO_Group_Latch ] };

        key <AC07> {
            type[Group2] = "ONE_LEVEL",
            symbols[Group2] = [ Left ]
        };
        key <AC08> {
            type[Group2] = "ONE_LEVEL",
            symbols[Group2] = [ Down ]
        };
        key <AC09> {
            type[Group2] = "ONE_LEVEL",
            symbols[Group2] = [ Right ]
        };
        key <AD08> {
            type[Group2] = "ONE_LEVEL",
            symbols[Group2] = [ Up ]
        };
    };
    xkb_geometry { include "pc(pc104)" };
};

এখন, আপনি যদি প্রথমে চাপুন AltGrএবং তারপরে (পৃথকভাবে) চলন কীগুলির একটি, এটি কাজ করা উচিত।

তবে এটি খুব কার্যকর নয়, LockGroup গ্রুপ স্যুইচ করার আগে এবং পরে ল্যাচের পরিবর্তে আল্টজিআর চাপুন এবং তার চেয়ে বেশি উপযুক্ত । আরও ভাল হতে পারে SetGroup- তবে AltGr কেবল চাপ দেওয়ার সময় সেই গোষ্ঠীটি বেছে নেবে, তবে এটি AltGr এর কীসিম ( ISO_Group_Shift/ ISO_Group_Latch/ যা সংজ্ঞায়িত হয়) অ্যাপ্লিকেশনগুলিতে প্রকাশ করে (তবে সংশোধনকারী রাষ্ট্র পরিষ্কার থাকে)।

তবে ... এছাড়াও একটি সম্ভাবনা রয়েছে যা অ্যাপ্লিকেশনটি কীকোডগুলিও পড়বে (আসল কীগুলির কোডগুলি)। তারপরে এটি "নকল" কার্সার কীগুলি লক্ষ্য করবে।

2. ওভারলে

আরও "নিম্ন-স্তরের" সমাধানটি ওভারলে হবে (একই নিবন্ধটি বর্ণনা করে)।

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

তবে ওভারলেগুলি খুব সীমাবদ্ধ:

  • এক্স সার্ভারে কেবলমাত্র 2 টি ওভারলে নিয়ন্ত্রণ বিট রয়েছে (যেমন সর্বোচ্চ 2 টি ওভারলে থাকতে পারে)।
  • প্রতিটি কীতে কেবল 1 টি বিকল্প কীকোড থাকতে পারে।

বাকী হিসাবে, বাস্তবায়ন একটি পৃথক গ্রুপের সাথে পদ্ধতির সাথে বেশ অনুরূপ:

xkb_keymap {
    xkb_keycodes { include "evdev+aliases(qwerty)" };
    xkb_types { include "complete" };
    xkb_compatibility {
        include "complete"

        interpret Overlay1_Enable {
            action = SetControls(controls=overlay1);
        };
    };
    xkb_symbols {
        include "pc+us(dvorak)+inet(evdev)"

        key <RALT> {
            type[Group1] = "ONE_LEVEL",
            symbols[Group1] = [ Overlay1_Enable ]
        };
        key <AC07> { overlay1 = <LEFT> };
        key <AC08> { overlay1 = <DOWN> };
        key <AC09> { overlay1 = <RGHT> };
        key <AD08> { overlay1 = <UP> };
    };
    xkb_geometry { include "pc(pc104)" };
};

SetControlsমানে কীটি চাপার সময় নিয়ন্ত্রণ বিট পরিবর্তন করুন এবং কী রিলিজটিতে পুনরুদ্ধার করুন। অনুরূপ ফাংশন থাকতে হবে LatchControls, কিন্তু xkbcompআমাকে দেয়

Error:            Unknown action LatchControls

কীম্যাপ সংকলনে।

(যাইহোক, আমি ডিভোরাকও ব্যবহার করি এবং উচ্চ স্তরের বর্ণানুক্রমিক কীগুলির জন্য কিছু আন্দোলনের কীওয়ারামগুলি পুনরায় তৈরি করেছি And এবং কিছু ভাঙ্গা কার্যকারিতাও পেয়েছি (সিআরটিএল-অল্ট-বাম / ডানদিকের এক্সফেস নোট এবং ডেস্কটপ স্যুইচটিতে নির্বাচন) ধন্যবাদ আপনাকে ধন্যবাদ আপনার প্রশ্ন এবং এই উত্তর, এখন আমি জানি একটি ওভারলে কি :) :))


ধন্যবাদ! আমি আসলে ইউনিক্সে অন্য একটি উত্তর পেয়েছি যা প্রথমে নিখুঁত বলে মনে হয়েছিল তবে কিছু অ্যাপ্লিকেশন এখনও দুর্ব্যবহার করেছে। এই সমাধান (ওভারলে) সেই ক্ষেত্রেও কাজ করে।
ননপপ

আমি কেবল লক্ষ্য করেছি যে গুগল ক্রোম [e | ium] এটি সম্পর্কেও চিন্তা করে না! :( সৌভাগ্য যে আমি তাদের অনেক ব্যবহার করবেন না।
nonpop

@nonpop আজাইরা Chromium ... আমি আমার উত্তর একটি আপডেট জুড়েছেন superuser.com/a/1000320/521612
Aleks-ড্যানিয়েল Jakimenko

অ্যামেজিং! আমি বছরের পর বছর ধরে এটি অনুসন্ধান করেছি! ক্রোমিয়ামের সাথে এখনও একটি ছোটখাটো সমস্যা রয়েছে যেখানে এটি একটি কিপ্রেসের ব্যাখ্যা করে Overlay1_Enable। : আমি এখানে একই উপসর্গ আছে github.com/GalliumOS/galliumos-distro/issues/362
Tarrasch

1
আমি কেবল উপরের সমস্যাটি ঠিক করতে পেরেছি। আমার হোম সারি তীর কীগুলি এখন ক্রোমিয়ামেও কাজ করে! এই উত্তরে আমার নিম্নলিখিত পরিবর্তন দরকার ছিল। gist.github.com/Tarrasch/1293692/...
Tarrasch

4

আমি একই সমস্যা আছে। এটা খুব বেদনাদায়ক।

সুতরাং শিরোনামটি হল "কীভাবে সমস্ত অ্যাপ্লিকেশনগুলি আমার পরিবর্তিত xkb বিন্যাসকে সম্মান করবে?"। ঠিক আছে, আমি মনে করি একমাত্র উপায় হ'ল সমস্ত প্রোগ্রাম যা এটি ভুলভাবে করে fix আসুন এটি করা যাক!

ঠিক আছে, নেটবিনে সেই বাগটি রিপোর্ট করার পরে ( আপডেট: আমি সর্বশেষ সংস্করণটি চেষ্টা করেছি এবং এটি এখন কাজ করে! ), আমি ভেবেছিলাম যে আমি প্রতিটি অ্যাপ্লিকেশনের জন্য এই বাগটি প্রতিবেদন করে রাখব। তালিকার পরবর্তী অ্যাপ্লিকেশনটি ছিল স্পিডক্রাঞ্চ

তবে অনুরূপ বাগ রিপোর্টগুলি সন্ধান করার পরে আমি এই সমস্যাটি পেয়েছি । অন্য কারও একই সমস্যা হচ্ছে, দুর্দান্ত!

মন্তব্যগুলি পড়ার পরে আপনি বুঝতে পারবেন যে এই বাগটি সমস্ত কিউটি অ্যাপগুলিতে উপস্থিত থাকা উচিত। এখানে কিউটি বাগ রিপোর্ট রয়েছে । সমাধান হয়নি, তবে মনে হচ্ছে সমস্যাটি Qt5 এ সমাধান হয়েছে

যাইহোক, আপনি মন্তব্যগুলি তাকান, একটি কর্মক্ষেত্র আছে! এটা যেভাবে কাজ করে। আপনি যদি এটি করছিলেন:

key <SPCE> { [ ISO_Level3_Shift ] };

তারপরে আপনি এটিতে এটি পরিবর্তন করতে পারেন:

key <SPCE> {
  type[Group1]="ONE_LEVEL",
  symbols[Group1] = [ ISO_Level3_Shift ]
};

এবং এটি আসলে কিছু অ্যাপ্লিকেশনগুলির সমস্যার সমাধান করবে! উদাহরণস্বরূপ, স্পিডক্রাঞ্চ এখন আমার পক্ষে কাজ করে! হ্যাঁ!

সারসংক্ষেপ

এখনই কোনও অ্যাপ্লিকেশন সঠিকভাবে কাজ করা উচিত। যদি এটি না হয়, তবে আপনাকে ব্যবহার করতে হবে type[Group1]="ONE_LEVEL"। আপনার যদি ইতিমধ্যে এটি থাকে তবে আপনাকে আপনার সফ্টওয়্যারটি আপডেট করতে হবে। যদি এটি এখনও কাজ না করে, তবে এটি অ্যাপ্লিকেশন-নির্দিষ্ট এবং আপনাকে একটি বাগ রিপোর্ট জমা দিতে হবে।

আপডেট (2017-09-23)

আজকের হিসাবে, সমস্ত অ্যাপ্লিকেশনগুলি আমার কীবোর্ড বিন্যাসকে সম্মান করে। এক বাদে সব।

গুরুতরভাবে, ক্রোমিয়ামে কীবোর্ড হ্যান্ডলিং হ'ল আবর্জনা । এটির সাথে বেশ কয়েকটি সমস্যা রয়েছে:

  • শিফট নির্বাচন কাস্টম তীর কীগুলির সাথে হয় না (তবে তীর কীগুলি তারা ঠিকঠাক কাজ করে)
  • যদি আপনার একাধিক লেআউট থাকে এবং বিন্যাসগুলির একটিতে কিছু কী বিশেষ (যেমন তীর, ব্যাকস্পেস ইত্যাদি) থাকে তবে অন্য লেআউটে এই কীটি আপনার প্রথম লেআউটে যা আছে তার সাথে স্থির করা হবে। উদাহরণস্বরূপ, যদি আপনি দুই লেআউট থাকে: foo, barএবং কিছু কী তে ব্যাকস্পেস করে foo, তাহলে এটি মধ্যে ব্যাকস্পেস হিসেবে কাজ রাখা হবে barএমনকি যদি এটা সেখানে পুনরায় সংজ্ঞায়িত করা হয়।

কয়েক বছর ধরে আমি ক্রোমিয়ামটি ব্যবহার না করে এই সমস্যাগুলি উপেক্ষা করেছি। তবে, আজকাল বিষয়গুলিতে ইলেক্ট্রন ব্যবহার করার প্রবণতা রয়েছে , যা দুর্ভাগ্যক্রমে ক্রোমিয়ামে নির্মিত।

এটি সমাধানের সঠিক উপায় হ'ল ক্রোমিয়ামে একটি বাগ রিপোর্ট জমা দেওয়া এবং সর্বোত্তম হওয়ার জন্য আশা করা। আমি জানি না যে এই সমস্যাটি সমাধান করতে তাদের কতক্ষণ সময় লাগবে যা কেবলমাত্র কয়েকজন ব্যবহারকারীকে প্রভাবিত করছে ... তবে এটি কেবলমাত্র একমাত্র উপায় বলে মনে হচ্ছে। এটির সাথে সমস্যাটি হ'ল ক্রোমিয়াম neo(de)লেআউট সহ আসলে কাজ করে । নিও লেআউটটিতে লেভেল 5 এ অ্যারো কী রয়েছে তবে আমি এটি আমার কাস্টম বিন্যাসে কাজ করতে পারি না।

স্থির-খোলা বাগ রিপোর্টগুলি:


তথ্যের জন্য ধন্যবাদ! কর্মক্ষেত্রটি আমাকে সাহায্য করে না তাই আমি অনুমান করি আমাকে কেবল বাগ রিপোর্ট করতে হবে এবং কিউটি 5 রূপান্তরের জন্য অপেক্ষা করতে হবে।
ননপপ

4

কীভাবে তাদের কাজ করবেন - সমাধান 3

অতিরিক্ত স্তর এবং অ্যাকশন পুনর্নির্দেশকিকে ব্যবহার করে

নিম্নলিখিত সমাধানটি jkli, হোম / এন্ড / পেজআপ / পেজ ডাউন এবং ইউপিতে পেজডাউন এবং ব্যাকস্পেসে একটি মুছতে কার্সার কী সরবরাহ করতে বাম আল্ট কী ব্যবহার করে।

বাম আল্ট কীটি অন্য সমস্ত কীগুলির জন্য (অ্যাপ্লিকেশন মেনুর মতো) অন্যান্য উদ্দেশ্যে ব্যবহারযোগ্য। কার্সার ব্লক ব্যবহার করা হলে অ্যাপ্লিকেশনগুলি এটি দেখতে না পাওয়ায় বাম আল্ট (Mod1) পরিবর্তনকারী রাষ্ট্র থেকে সরানো হয়।

xkb_keymap {
    xkb_keycodes { 
        include "evdev+aliases(qwertz)" 
    };
    xkb_types { 
        include "complete"  
    };
    xkb_compat { 
        include "complete"
        interpret osfLeft {
            action = RedirectKey(keycode=<LEFT>, clearmodifiers=Mod1);
        };
        interpret osfRight {
            action = RedirectKey(keycode=<RGHT>, clearmodifiers=Mod1);
        };
        interpret osfUp {
            action = RedirectKey(keycode=<UP>, clearmodifiers=Mod1);
        };
        interpret osfDown {
            action = RedirectKey(keycode=<DOWN>, clearmodifiers=Mod1);
        };
        interpret osfBeginLine {
            action = RedirectKey(keycode=<HOME>, clearmodifiers=Mod1);
        };
        interpret osfEndLine {
            action = RedirectKey(keycode=<END>, clearmodifiers=Mod1);
        };
        interpret osfPageUp {
            action = RedirectKey(keycode=<PGUP>, clearmodifiers=Mod1);
        };
        interpret osfPageDown {
            action = RedirectKey(keycode=<PGDN>, clearmodifiers=Mod1);
        };
        interpret osfDelete {
            action = RedirectKey(keycode=<DELE>, clearmodifiers=Mod1);
        };
    };
    xkb_symbols { 
        include "pc+de(nodeadkeys)"
        include "inet(evdev)"
        include "compose(rwin)"
        key <LALT> {
            type[Group1] = "ONE_LEVEL",
            symbols[Group1] = [ ISO_Level5_Shift ]
        };
        modifier_map Mod1 { <LALT> };
        key <AC07> {
            type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC",
            symbols[Group1] = [ j, J, dead_belowdot, dead_abovedot, osfLeft, osfLeft, osfLeft, osfLeft ]
        };
        key <AC08> {
            type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC",
            symbols[Group1] = [ k, K, kra, ampersand, osfDown, osfDown, osfDown, osfDown ]
        };
        key <AC09> {
            type[Group1] = "EIGHT_LEVEL_ALPHABETIC",
            symbols[Group1] = [ l, L, lstroke, Lstroke, osfRight, osfRight, osfRight, osfRight ]
        };
        key <AC10> {
            type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC",
            symbols[Group1] = [ odiaeresis, Odiaeresis, doubleacute, doubleacute, osfPageDown, osfPageDown, osfPageDown, osfPageDown ]
        };
        key <AD07> {
            type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC",
            symbols[Group1] = [ u, U, downarrow, uparrow, osfBeginLine, osfBeginLine, osfBeginLine, osfBeginLine ]
        };
        key <AD08> {
            type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC",
            symbols[Group1] = [ i, I, rightarrow, idotless, osfUp, osfUp, osfUp, osfUp ]
        };
        key <AD09> {
            type[Group1] = "EIGHT_LEVEL_ALPHABETIC",
            symbols[Group1] = [ o, O, oslash, Oslash, osfEndLine, osfEndLine, osfEndLine, osfEndLine ]
        };
        key <AD10> {
            type[Group1] = "EIGHT_LEVEL_ALPHABETIC",
            symbols[Group1] = [ p, P, thorn, THORN, osfPageUp, osfPageUp, osfPageUp, osfPageUp ]
        };
        key <BKSP> {
            type[Group1] = "EIGHT_LEVEL_ALPHABETIC",
            symbols[Group1] = [ BackSpace, BackSpace, BackSpace, BackSpace, osfDelete, osfDelete, osfDelete, osfDelete ] 
        };
    };
    xkb_geometry { 
        include "pc(pc105)" 
    };
};

পবিত্র মোলি! আসলে কাজ করে! এটি ক্রোমিয়ামের মতো ভাঙ্গা অ্যাপ্লিকেশনগুলির চারপাশে কাজ করে। এই ওএসএফ সংজ্ঞাগুলি কি আপনি ব্যাখ্যা করতে পারেন? দেখে মনে হচ্ছে এগুলি পূর্বনির্ধারিত তাই আপনি এলোমেলোভাবে নাম রাখতে পারবেন না।
আলেকস-ড্যানিয়েল জাকিমেনকো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.