خانه > آموزش, ترفند ها, خط فرمان, لینوکس > تغییر زبان صفحه کلید در محیط X

تغییر زبان صفحه کلید در محیط X

سلام
تغییر زبان صفحه کلید در میزکارهای مختلف به روش های گوناگون امکان پذیره! در محیط گنوم از طریق Keyboard Layout در منوی System، صفحه کلید Iran و در محیط KDE از قسمت Configure Desktop بخش Regional and language از طریق keyboard layout این کار انجام میگیره. اما گاهی اوقات در میز کاری قرار داریم که راهنما درخصوص تغییرات در میز کار چندان فراوان نیست و ممکنه انجام بعضی کارها به این سادگی ها هم نباشه. از جمله همین تغییر زبان صفحه کلید!
به طور مثال: در میز کار Xfce من هیچ راهی برای تغییر زبان صفحه کلید به فارسی پیدا نکردم. تنها راه حلی که مشکل منو حل میکرد فراخوانی لایه صفحه کلید مورد نظر از طریق خط فرمان بود. در واقع ما لایه زبان مورد نظر در محیط X رو فراخوانی می کنیم و این به میز کار بستگی نداره.
دستورات این عمل به صورت زیر:
برای صفحه کلید فارسی

setxkbmap ir

برای صفحه کلید انگلیسی

setxkbmap us

راحت بود!
اما یه مشکل وجود داره که در نظر اول اصلا دیده نمیشه و اون بازگشت از زبان فارسی به زبان انگلیسیه! وقتی ما صفحه کلید رو به زبان فارسی بر میگردونیم دیگه نمی تونیم به زبان انگلیسی تایپ کنیم! پس دیگه نمیتونیم دستور دوم رو وارد کنیم تا سیستم به زبان انگلیسی برگرده! راه حلی که داریم ریست کردن سیستمه! خب مسلمه که برای هر بار تغییر زبان نمیشه سیستم رو ریست کرد. پس به فکر راه دیگری باید باشیم.
از جمله راه هایی که امکان پذیره اینه که این دستور رو در جایی ذخیره کنیم و برای استفاده اونو کپی/پیست کنیم. همچنین میشه این دو دستور رو در دو فایل مجزا قرار داد و بهش قابلیت اجرایی داد.
مثلا:

#! /bin/bash
setxkbmap us

اینطوری با اجرا کردن هرکدوم از فایل ها صفحه کلید به زبان مورد نظر تبدیل میشه.
راه حل دیگه هم اینه که دستور رو در یک launcher قرار بدیم. برای این کار هم روی دسکتاپ یا پنل راست کلیک کرده و Crate Launcher رو انتخاب می کنیم. بعد دستور مورد نظر رو در قسمت command قرار میدیم.

  1. ۲۶ آذر ۱۳۹۰ در ۲۳:۱۶ | #1

    درود به شما،
    بر حسب اتفاق مطالب شما رو مطالعه کردم و خوشحال شدم از اینکه دیدم در مورد نرم افزار آزاد مطلب می نویسید.
    در مورد سوئیچ کردن به زبانی دیکر در محیط Xfce مراحل شما همه درست بودند با این نکته که (همونظور که خودتون هم اشاره کردید) مراحلی که گفتید همه تمام کننده و مطلوب نهایی نیستند.
    کاربر باید از مسیر Settings/Keyboard به زبانه‌ی Layout رفته و با برداشتن تیک روی گزینه‌ی Use system defaults امکان (Add) اضافه کردن Keyboard Leyoutهای بیشتری را برای خود فراهم کند (مانند اضافه کردن Iran/Persian, with persian Keypad) حالا که دو Keyboard Leyout در اختیار دارد می نواند با رفتن به Tab میانی (Application Sourtcuts) و فشردن کلید Add دو کلید میانبر جدید مورد نیاز را ایجاد کند. حالا باید همین کامند‌هایی را که شما هم بالا به آنها اشاره کردید را در یخش Command وارد کند. وقتی کامند را نوشته و کلید OK زده می‌شود ویزاردی باز می‌شود و منتظر دریافت یک کلید یا یک کلید ترکیبی از کاربر می‌ماند یه محض زدن کلید مورد نظر، این کلید میانبر ایجاد می‌شود و قابل استفاده است. به روال معمول ما Alt+Shift چپ را برای رفتن به زبان انگلیسی و به دنبال آن Alt+Shift راست را برای تغییر وضعیت کیبورد به زبان فارسی استفاده می‌کنیم :-)
    پیروز باشید

    • ۲۶ آذر ۱۳۹۰ در ۲۳:۳۳ | #2

      سلام
      متشکرم! البته من از این میزکار استفاده نمی کنم و این موضوع هم با توجه به اینکه، برای یک نیاز موقتی یک راه حل موقتی کفایت میکنه، برام کافی بود…
      باز هم سپاس…

  2. mrmrn
    ۱۰ فروردین ۱۳۹۱ در ۱۰:۰۱ | #3

    سلام.
    مهدی جان خیلی این کاربردیه.مخصوصا الان که تو آرچ بنگ هستم.
    ولی خب من الان با استفاده از همین راهنمایی یه فایل اجرایی ساختم و این هم محتویاتشه:
    #! /bin/bash
    setxkbmap -model pc104 -layout us,ir -option grp:alt_shift_toggle
    اینجوریاس که با alt+shift به راحتی سوئیچ میکنم و نیاز به رفتن به ترمینال نیست هی.

    • ۱۰ فروردین ۱۳۹۱ در ۱۸:۰۹ | #4

      سلام
      اسکریپت مختصر و فوق‌العاده کاربردی…
      ممنون….

  3. سینا
    ۶ بهمن ۱۳۹۱ در ۱۸:۰۱ | #5

    سلام با تشکر از راهنمای شما که عالی بود من در دبیان ۶ از طریق add new items در panel که با راست کلیک روی پنل به keyboard layout دسترسی پیدا کردم واین مشکل حل شد باتشکر از راهنمایی های شما

    • ۶ بهمن ۱۳۹۱ در ۲۳:۳۳ | #6

      سلام
      در دبیان ۶ که از گنوم ۲ استفاده میکنه بله اما در فدورا ۱۸ که از گنوم ۳.۶ استفاده میکنه متاسفانه keyboard layout گنوم به صورت پیش فرض امکان alt shift نداره…. تا گنوم ۳.۴ میشد ولی در ۳.۶ تغییر کرده…