این مشکل برای من وجود داشت که زمانی که در تنظیمات xfce برای تغییر زبان کلید های alt + shift را تنظیم می کردم فقط با alt +shift سمت چپ درست بود و
alt+ shift سمت راست فقط زبان رو فارسی می کرد و از فارسی به انگلیسی نمی رفتبعد از جست و جو به این پست تو همین انجمن رسیدم که توضیحات کاملی رو درباره علت این مشکل داده بودند:
https://forum.ubuntu-ir.org/index.php?topic=146547.0علت این بود که ابونتو از سیستم استانداردی به نام ISIRI 9147 استفاده میکنه که در زبان فارسی alt سمت راست کاربرد دیگری دارد و برای انتخاب کارکتر سطح سوم کلید ها استفاده میشه یعنی در زبان فارسی alt سمت راست دیگه alt نیست بلکه کلید altGr محسوب میشه.
از اونجایی که همه به alt + shift سمت راست برای تغییر زبان عادت کردیم( با اینکه خیلی از دوستان در همین انجمن بسیار پیشنهاد می دادند که عادتون رو عوض کنید )ولی به قول معروف ترک عادت موجب مرض است
پس من مصر بودم همون عادت رو پیاده کنم به هر حال گنو/لینوکس هستش رو آزادی برای هر کاری
بعد از جست و جو کردن به چند تا دستور جالب رسیدم :۱-برسی کارکتر معادل و کد هر کلید روی صفحه کلید که توسط سیستم شناسایی میشه:
xev
۲-لیست تمام کد کلید های صفحه و کاراکتر اختصاص داده شده به آن کد:
xmodmap -pke
۳-تغییر کاراکتر اختصاص داده شده به هر کد کلید:
xmodmap -e 'keycode کاکترهایی که می خواهید اخصاص دهید = کد کلید'
خوب بدهی که ما کارکتر جدیدی رو نمی خواهیم اختصاص دهیم بلکه می خواهیم اونا رو ویرایش و جابجا کنیم مثلا حرف پ رو ببریم جای \ یا اینه altGr رو به alt سمت راست تبدیل کنیم پس:
ابتدا xev رو اجرا می کنیم :
روی اون پنجره ی کوچکی که باز میشه کلیک کنید و دیگه موس رو تکون ندید
اگر دقت کنید در ترمینالی که دستور xev رو اجرا کردید تمام اعمالی که با موس و کی بورد انجام میدهید رو با جزئیات نمایش میده پس اون کلیدی که می خواهید تغییر اش دهید رو فشار دهید خواهید دید که کد کلید به همذا عملکرد فعلی اون رو نمایش میده : برای مثال من کلید alt سمت راست را در حالت زبان فارسی فشار میدم خروجی ترمینال به این شکل هست :
خوب مشخص شد کد این کلید 108 هست حالا اگر دستور xmodmap -pke اجرا کنیم می بینم جلوی کد 108 نوشته
keycode 108 = Alt_R ISO_Next_Group ISO_Level3_Shift
که مشخصه که Alt_R مال زبان انگلیسی هست و ISO_Level3_Shift مال زبان فارسی هست که به همون معنی altGr هست
حالا alt سمت راست را برسی میکنیم که کد ۶۴ هست :
keycode 64 = Alt_L ISO_Next_Group Alt_L ISO_Next_Group
خوب حالا که فهمیدیم alt سمت راست چی و فرقش با alt سمت چپ چی میتونیم alt سمت راست را به شکل مشابه alt سمت چپ تغییر دهیم به این شکل :
xmodmap -e 'keycode 108 = Alt_R ISO_Next_Group Alt_R ISO_Next_Group'
کلید کد ۱۰۸ را که همون alt سمت راست هست را به عمکرد Alt_R ISO_Next_Group Alt_R ISO_Next_Group تغییر می دهیم
در نظر داشته باشید با این کار دیگر به کارکتر های سطح سوم زبان فارسی دسترسی ندارید مگر اینکه عمکرد ISO_Level3_Shift را به روش مشابه به کلید دیگری اختصاص دهید.
این فرایند فقط در زمان حضور در سیستم هست و پس از logout و login دوباره از بین میره که باید این دستور رو در startup قرار دهید
البته فکر کم راه دیگه ای هم داشته باشه از تو فایل های پیکربندی این دستور ولی منم بلد نیستم
و در اخر اینکه این همه داستان و ماجرا که نوشتم در gnome و kde خیلی راحت هست و تنظیم گرافیکی در خود تنطیمات میز کار داره که همون لینکی که اول گذاشتم اشاره شده.
موفق باشید