টার্মিনাল থেকে কীভাবে বর্তমান জিনোম কীবোর্ড বিন্যাস পাবেন?


15

ব্যাশ স্ক্রিপ্টে ব্যবহারের জন্য, বর্তমানে ব্যবহারকারী জিনোম কীবোর্ড লেআউটটি ব্যবহার করছেন get উদাহরণস্বরূপ যদি ব্যবহারকারী এটির কীবোর্ড বিন্যাসটি এতে সেট করে তবে en-usআমার একটি বাশ কমান্ড দরকার যা এটি আমাকে প্রিন্ট করে।

আমি কীভাবে এই তথ্য পেতে পারি?

হালনাগাদ:

setxkbmap -queryদুর্ভাগ্যজনকভাবে কাজ করছে না। নীচে আউটপুটটি en(প্রথম কমান্ড) এবং de(দ্বিতীয় কমান্ড) লেআউটটি সক্রিয় করা আছে। কীবোর্ড লেআউট স্যুইচিংয়ের সাথে জিনোম সেশন কনফিগারেশনটির কিছু সম্পর্ক রয়েছে বলে মনে হচ্ছে

setxkbmap -query 
rules:      evdev
model:      pc105
layout:     us,de
variant:    ,
options:    terminate:ctrl_alt_bksp,lv3:ralt_switch,grp:alts_toggle

setxkbmap -query
rules:      evdev
model:      pc105
layout:     us,de
variant:    ,
options:    terminate:ctrl_alt_bksp,lv3:ralt_switch,grp:alts_toggle

Update2:

setxkbmap -print #with en-us layout
xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)" };
    xkb_types     { include "complete"  };
    xkb_compat    { include "complete"  };
    xkb_symbols   { include "pc+us+de:2+inet(evdev)+level3(ralt_switch_for_alts_toggle):1+level3(ralt_switch_for_alts_toggle):2+group(alts_toggle)+level3(ralt_switch)+terminate(ctrl_alt_bksp)"    };
    xkb_geometry  { include "pc(pc105)" };
};
setxkbmap -print #after switching to german layout
xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)" };
    xkb_types     { include "complete"  };
    xkb_compat    { include "complete"  };
    xkb_symbols   { include "pc+us+de:2+inet(evdev)+level3(ralt_switch_for_alts_toggle):1+level3(ralt_switch_for_alts_toggle):2+group(alts_toggle)+level3(ralt_switch)+terminate(ctrl_alt_bksp)"    };
    xkb_geometry  { include "pc(pc105)" };
};

দুঃখজনকভাবে এটি বাশ নয়, তবে লাইবক্স্ক্লাভিয়ার ব্যবহার করে, আপনার জিজ্ঞাসাটি করতে এখানে একটি [অজগর উদাহরণ] [1] এখানে রয়েছে: [1]: cgit.freedesktop.org/libxklavier/tree/tests/test_gi.py
বেলুন

1
<ant> xkb একটি অনিবন্ধিত নরক! এই একাধিক বিন্যাস সংজ্ঞা নির্ভরযোগ্যভাবে কাজ করে না; আমার জন্য তারা হঠাৎ এলোমেলো সময়ে পরিবর্তন করে এবং স্থগিতের পরে এটি নির্ধারণ করা হয়েছিল যে নির্ধারিত বিন্যাসগুলির মধ্যে কোনটি কার্যকর এবং - কী খারাপ - স্বাধীনভাবে সংযুক্ত প্রতিটি কীবোর্ডের জন্য। হ্যাঁ, এক্সকেবি আসলে বিভিন্ন কীবোর্ডের জন্য আলাদা আলাদা লেআউট রাখতে সক্ষম তবে এটি আমার কাছে যতদূর জানা যায় কোথাও এটি নথিভুক্ত করা হয়নি এবং তাই এই বৈশিষ্ট্যটি কেবল আমাদের বিরক্ত করে কারণ আমরা এটি নিয়ন্ত্রণ করতে পারি না। xkb, গুরুত্ব সহকারে, আমাকে আরম্ভ করবেন না! </ translation>
খ্রিস্টান

উত্তর:


9

স্ট্যাকওভারফ্লোতে অনুরূপ প্রশ্ন অনুসারে নিম্নলিখিতটি কৌশলটি করা উচিত:

setxkbmap -print | grep xkb_symbols | awk '{print $4}' | awk -F"+" '{print $2}'

আমি এটি যাচাই করতে পারিনি, যেহেতু বর্তমানে আমার কাছে এক্স * সহ কোনও * নিক্স মেশিন নেই (আমি বাড়িতে নেই) ...


1
Setxkbmap- প্রিন্ট চালানো নিম্নলিখিতগুলি প্রদান করে। আমি মনে করি না এটি ওপিকে সহায়তা করে। xkb_keymap { xkb_keycodes { include "evdev+aliases(qwerty)" }; xkb_types { include "complete" }; xkb_compat { include "complete" }; xkb_symbols { include "pc+us+inet(evdev)" }; xkb_geometry { include "pc(pc105)" }; };
বেলুনগুলি

সুতরাং আপনি বর্তমানে "আমাদের" লেআউট সক্রিয় আছে? আপনার ইনপুট প্রদত্ত উপরের স্টেটমেন্টটি আউটপুট হিসাবে উত্পন্ন করবে (কেবলমাত্র এই দুটি অক্ষর: "আমাদের")। আপনি যখন অন্য একটি লেআউটে স্যুইচ করেন তখন কেমন লাগে?
ইজজি

2
আপনার উত্তরের জন্য ধন্যবাদ. দুর্ভাগ্যক্রমে এটি কৌশলটি করছে না। দু'বারই আমাদের পেয়েছি। আপনাকে আউটপুট দেখানোর জন্য আমি আমার প্রশ্নটি সম্পাদনা করেছি।
ftiaronsem

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

আবারও ধন্যবাদ, কিন্তু দুর্ভাগ্যক্রমে এটিও কার্যকর হয়নি। লেআউট পরিবর্তনের আগে এবং পরে একই আউটপুট। ভার্বোসটি স্বাধীনভাবে।
ftiaronsem

4

উবুন্টু 17.10 বা তার পরে জন্য

জিনোমের সাথে উবুন্টু 17.10-এ, আপনি যখন ইনপুট উত্সটি স্যুইচ করেন তখন বর্তমান গ্যাসেটিংয়ের মান পরিবর্তন করা হয় না। এর পরিবর্তে সেখানে হয় MRU সূত্র কী ব্যবহার করুন যা তালিকাবদ্ধ করে মি Ost ecently তোমার দর্শন লগ করা ইনপুট উৎস sed।

$ gsettings get org.gnome.desktop.input-sources mru-sources
[('xkb', 'se'), ('xkb', 'us')]

সেই তালিকার প্রথম উত্স হ'ল বর্তমান, সুতরাং বর্তমান লেআউটটি পেতে কোনও অনেলাইনার এটি দেখতে দেখতে দেখতে পারেন:

gsettings get org.gnome.desktop.input-sources mru-sources | sed -r "s/\S*\s'([^']+).*/\1/"

দয়া করে মনে রাখবেন যে আপনি যদি উবুন্টু 17.10 সিস্টেমে ইউনিটি ব্যবহার করেন তবে এই উত্তরটি প্রযোজ্য নয়। ইউনিটির সাথে এটি আগের মতো কাজ করে চলেছে।


3

উবুন্টুর জন্য ১৩.০৪ এবং তার চেয়ে কম

আপনি xkblayout-stateসরঞ্জাম ব্যবহার করতে পারেন । বর্ণনা, সংকলন, ইনস্টলেশন ও ব্যবহারের জন্য README.md ফাইলটি দেখুন ।

নিম্নলিখিত কমান্ডটি আপনি যা চান ঠিক তা করবে:

xkblayout-state print "%s"

উবুন্টু 13.10 এবং উচ্চতর জন্য

উবুন্টু 13.10 এই অর্থে কিছু ভাল উন্নতি নিয়ে এসেছে এবং আপনি নিম্নলিখিত সহজ বাশ ফাংশনটি ব্যবহার করতে পারেন:

get_current_xkblayout () {
      current_input_nr=$(gsettings get org.gnome.desktop.input-sources current | \
          awk '{ print $NF }')
      shift=$(( 2 * ( $current_input_nr + 1 )))
      gsettings get org.gnome.desktop.input-sources sources | tr -d "\',[]()" | \
          awk -v cur="$shift" '{ print $cur }'
}

নিম্নলিখিত কমান্ডগুলি 13.10 এও কাজ করে:

setxkbmap -query | awk -F"(,|[ ]+)" '/layout:/ { print $2 }'

বা:

setxkbmap -print | awk -F"+" '/xkb_symbols/ {print $2}'

2

টার্মিনাল খোলার জন্য আপনার কীবোর্ডে Ctrl+ Alt+ টিপুন T। এটি খুললে নীচের কমান্ডটি চালান।

setxkbmap -query

এটি আপনার দেখতে হবে

এখানে চিত্র বর্ণনা লিখুন


আপনার প্রম্পট উত্তরের জন্য ধন্যবাদ, দুর্ভাগ্যক্রমে এটি কাজ করছে না। এখানে আউটপুট (প্রথমবার এন লেআউটে, ডি সহ দ্বিতীয়):
25:32

বিন্যাসের কারণে প্রশ্ন সম্পাদনা হিসাবে আটকানো হয়েছে ...
ftiaronsem

1
আপনার প্রম্পট জবাবের জন্য আবার ধন্যবাদ। এটি আমি যা দেখছি তা যুক্ত করা হয়েছে, তবে আমি জার্মান বা আমেরিকান বিন্যাস নির্বাচন করেছি কিনা তা আমাকে জানায় না। নাকি আমি কিছু মিস করেছি?
ftiaronsem

2

টার্মিনালটি ব্যবহার করে, আমি 'পিটি' এবং 'আমাদের' এর মধ্যে পরিবর্তন পরিবর্তন করেছি এবং প্রতিটি পরিবর্তনের পরে, আমি সাফল্যের সাথে ব্যবহৃত কীবোর্ড বিন্যাসটি সংগ্রহ করেছি:

সক্রিয় কীবোর্ড লেআউট পান

setxkbmap -print | grep xkb_symbols | awk -F"+" '{print $2}'
  • কনফিগারেশন মুদ্রণ করুন: setxkbmap -print
  • গুরুত্বপূর্ণ লাইনটি সংগ্রহ করুন: grep xkb_symbols
  • প্রথম "+" চিহ্নের পরে স্ট্রিংটি পাবেন: awk -F"+" '{print $2}'

সক্রিয় আউটপুটটিতে 'আমাদের' লেআউটটি সক্রিয় রয়েছে: us


লেআউট মধ্যে swith

sudo setxkbmap -option grp:alt_shift_toggle pt

যেখানে এটি 'পিটি' পড়েছে সেখানে প্রবেশ করুন, ভাষাটির কোডটিতে স্যুইচ করতে।

এখানে চিত্র বর্ণনা লিখুন

দ্রষ্টব্য: আমি উবুন্টু 12.04 (যথাযথ পাঙ্গোলিন) এ জিনোম ব্যবহার করছি


আপনার উত্তরের জন্য ধন্যবাদ. সমস্যাটি মনে হচ্ছে যে ব্যবহারকারীরা টাস্ক-বার অ্যাপলেট ব্যবহার করে বিন্যাসের মধ্যে স্যুইচ করতে থাকে। যদি কেউ সিএমডি থেকে লেআউট স্যুইচ করে তবে এটি কাজ করে না, তবে ব্যবহারকারী যদি টাস্ক বার অ্যাপলেট দিয়ে স্যুইচ করে।
ftiaronsem

@ ফটিয়ারনসেম, আপনি সেই অংশটির আগে উল্লেখ করেননি :) আমি এটি সন্ধান করব এবং সম্ভব হলে আমার উত্তর আপডেট করব!
Zuul

0

উবুন্টু 13.10 বা তারপরের জন্য

(এটি পূর্ববর্তী রিলিজগুলিতে কাজ করে কিনা তা নিশ্চিত নয়)

current_layout=gsettings get org.gnome.desktop.input-sources current | awk '{print $2}'
gsettings get org.gnome.desktop.input-sources sources | grep -Po "'[[:alpha:]]+'\)" | sed -ne "s/['|)]//g;$(($current_layout+1))p"

আরও বিকল্প দেখতে:

gsettings list-recursively org.gnome.desktop.input-sources
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.