Alt এবং সুপার অদলবদল করুন


27

আমার একটি ম্যাকবুক এয়ার রয়েছে যা লিনাক্স চালায়। আমি একে অপরের সাথে কীবোর্ডের উভয় পক্ষের altএবং superকীগুলি অদলবদল করতে চাই ।

ক্লাইট সরঞ্জামগুলি দিয়ে আমি এটি কীভাবে করব?

হালনাগাদ

দ্রা স্লোনের উত্তর অনুসরণ করে আমি নিম্নলিখিতটি ব্যবহার করেছি:

keycode 64 = Alt_L
keycode 133 = Super_L
remove Mod1 = Alt_L
remove Mod4 = Super_L
add Mod1 = Super_L
add Mod4 = Alt_L

keycode 108 = Alt_R
keycode 134 = Super_R
remove Mod1 = Alt_R
remove Mod4 = Super_R
add Mod1 = Super_R
add Mod4 = Alt_R

1
অদ্ভুতভাবে, জিনিসগুলি আমার জন্য কাজ করেছিল (ম্যাক এয়ার) যখন আমি প্রথম প্রথম 6 লাইন নিয়েছিলাম এবং বোটটম একবারে কোনও ফাইলে প্রবেশ করি নি এবং এতে xmobmap ফাইলটি চালিত করি। নীচের লাইনগুলির সাথে আমার ত্রুটি ছিল।
লিও উফিমটসেভ

উত্তর:


20

ওয়ান ওয়ে যে অর্জন করা মারফত xmodmap। আপনি xevমূল ইভেন্টগুলি পেতে দৌড়াতে পারেন । চলমান অবস্থায় xevএকটি বাক্স উপস্থিত হওয়া উচিত এবং আপনি এটি ফোকাস করতে এবং কী কী অদলবদল করতে চান তা টিপতে পারেন। এটির জন্য Altকী সম্পর্কিত অনুরূপ বিবরণ আউটপুট করা উচিত :

KeyPress event, serial 28, synthetic NO, window 0x8800001,
  root 0x25, subw 0x0, time 2213877115, (126,91), root:(1639,475),
  state 0x0, keycode 14 (keysym 0xffe9, Alt_L), same_screen YES,
  XLookupString gives 0 bytes: 
  XmbLookupString gives 0 bytes: 
  XFilterEvent returns: False

আমি একটি পিসিতে আছি, এবং একটি "কমান্ড কী" নেই, তবে সমতুল্য "উইন্ডোজ কী" আছে, এবং xev দেয়:

KeyPress event, serial 28, synthetic NO, window 0x8000001,
  root 0x25, subw 0x0, time 2213687746, (111,74), root:(1624,98),
  state 0x0, keycode 93 (keysym 0xffeb, Super_L), same_screen YES,
  XLookupString gives 0 bytes: 
  XmbLookupString gives 0 bytes: 
  XFilterEvent returns: False

যেহেতু এক্সমোডম্যাপটির কোনও ধারণা নেই state, এবং কী কী ম্যাপিংগুলি সহজেই ভেঙে ফেলতে পারে, তাই আমি আপনাকে এটি করার পরামর্শ দিই:

xmodmap -pke > defaults

তারপরে আমরা একটি xmodmap ফাইল তৈরি করব:

keycode 14 = Alt_L
keycode 93 = Super_L
remove Mod1 = Alt_L
remove Mod4 = Super_L
add Mod1 = Super_L
add Mod4 = Alt_L

আমি কী কী কোডগুলি ব্যবহার করেছি সেগুলি কীভাবে ব্যবহার করেছি তা নোট করুন xev। এছাড়াও এখানে আমি কেবল বাম সুপার এবং ওয়েল কীগুলি প্রতিস্থাপন করছি (এবং ডানগুলি তাদের পুরানো আচরণে রেখে দিচ্ছি)। তারপরে xmodmapএই কীগুলি সেট করতে আমরা সহজেই চালাতে পারি :

$ xmodmap -v modmap.file
! modmap:
! 1:  keycode 14 = Alt_L
        keycode 0xe = Alt_L
! 2:  keycode 93 = Super_L
        keycode 0x5d = Super_L
! 3:  remove Mod1 = Alt_L
! Keysym Alt_L (0xffe9) corresponds to keycode(s) 0xe
        remove mod1 =  0xe
! 4:  remove Mod4 = Super_L
! Keysym Super_L (0xffeb) corresponds to keycode(s) 0x5d
        remove mod4 =  0x5d
! 5:  add Mod1 = Super_L
        add mod1 = Super_L
! 6:  add Mod4 = Alt_L
        add mod4 = Alt_L
!
! executing work queue
!
        keycode 0xe = Alt_L
        keycode 0x5d = Super_L
        remove mod1 =  0xe
        remove mod4 =  0x5d
        add mod1 = Super_L
        add mod4 = Alt_L

আপনি -vনিঃশব্দ চলার জন্য (ভার্বোস) স্যুইচ ছাড়াই চলতে পারেন, তবে আপনি যদি নিজের মোডম্যাপ ফাইলটিতে ভুল করেন তবে আমি এটি দরকারী বলে মনে করি। যদি জিনিসগুলি অগোছালো হয় তবে কেবল আপনার ডিফল্টগুলি আবার প্রয়োগ করুন:

xmodmap defaults

মোডম্যাপটি প্রায়শই এক্স এর শুরুতে চালানো হয়, তাই আপনি যদি নিজের মোডম্যাপ কমান্ডগুলি ভিতরে রাখেন তবে এগুলি ডিফল্ট হিসাবে প্রয়োগ করতে পারেন ~/.xmodmaprc


এর সাথে কি করার উপায় আছে setxkbmap? আমি এর setxkbmap -option compose:raltসাথে একসাথে বিকল্পটি ব্যবহার করতে চাই ।

আমি অন্য উত্তরে swap_opt_cmd সমাধানটি ব্যবহার করেছি, তবে এটি এতদ্বারা প্রাপ্য কারণ এটি এত পুঙ্খানুপুঙ্খভাবে এবং স্পষ্টভাবে লিখিত। ব্রাভো, স্যার।
জন ফ্র্যাঙ্কলিন 21

ধন্যবাদ। আমি এক্সমোডম্যাপ
টিম

26

আপনি যদি কোনও অ্যাপল কীবোর্ডে এটি করতে চাইছেন তবে এটি ব্যবহার করে দেখুন:

echo 1|sudo tee /sys/module/hid_apple/parameters/swap_opt_cmd

এটি লিনাক্সের নিম্ন সংস্করণে কাজ করার জন্য আপনি এটি ব্যবহার করে দেখতে পারেন: http://blog.chaselambda.com/2014/10/09/apple-keyboard-on-linux-3.8.html


যদিও অন্যান্য উত্তর এছাড়াও কাজ, এই ম্যাক বই সমাধান; মোহন মত কাজ!
sinisterstuf

1
কেন এটি ডিফল্ট নয় ?!
জন ফ্র্যাঙ্কলিন 21

এই ফাইলটিতে আমার কোনও লেখার অ্যাক্সেস নেই। :-(
Itmuckel

1
@ মাইখা 90 - আপনার ব্যবহার করা দরকার tee: echo "1" | sudo tee /sys/module/hid\_apple/parameters/swap\_opt\_cmd
জাস্টিন

2
Xmodmap কনফিগার করে এক ঘন্টা ব্যয় করুন। এটা কাজ করে। তারপর 2nd উত্তর দেখার ...
Bilow

17

আপনি যদি কেবলমাত্র বাম Alt ও অদলবদল করতে চান এবং সুপার কী আপনার টার্মিনালে কমান্ডটি কার্যকর করে:

setxkbmap -option altwin:swap_alt_win

ডিফল্ট আচরণ পুনরুদ্ধার করতে কেবল ব্যবহার করুন:

setxkbmap -option

দ্রষ্টব্য: এটি অস্থায়ী। আপনি যদি প্রভাবগুলি স্থায়ীভাবে চান তবে এটি আপনার স্টার্টআপ ফাইলে যুক্ত করুন।


4
এটি গ্রহণযোগ্য সমাধান হওয়া উচিত, কারণ এটি পরিষ্কার এবং বিল্ট ইন ফাংশন ব্যবহার করে। আপনার উল্লেখ করা উচিত ছিল, যে আপনি যে ডিফল্ট আচরণটি স্রেফ ব্যবহার করতে পারেন তা পুনরুদ্ধার করতে setxkbmap -option। এবং যদি আপনি শুধুমাত্র করতে চান swap 'র বাম Alt এবং সুপার চাবি , তারপর এই কমান্ড প্রয়োগ করুন: setxkbmap -option altwin:swap_lalt_lwin
এরিক

1
আমার লজিটেক কীবোর্ড রয়েছে এবং এটি আমার উইন্ডো কী (সুপার_এল) বাম Alt (Alt_L) দিয়ে স্যুইচ করতে কাজ করেছে। ধন্যবাদ!
ডেরেক

4
$ xmodmap -pke

কোন কীকোডগুলি Alt এবং সুপারের সাথে আবদ্ধ তা নোট করুন, তারপরে আপনার বাড়ির ফোল্ডারে একটি নতুন ফাইল খুলুন / তৈরি করুন .xmodmaprc। উদাহরণস্বরূপ, আমার সুপার / Alt কীগুলি যেমন আবদ্ধ

keycode  64 = Alt_L Meta_L Alt_L Meta_L
keycode 108 = Alt_R Meta_R Alt_R Meta_R
keycode 133 = Super_L NoSymbol Super_L
keycode 134 = Super_R NoSymbol Super_R

তবে কীগুলি অদলবদল করতে, আপনি .xmodmaprc এ নিম্নলিখিতটি লিখবেন

keycode  64 = Super_L NoSymbol Super_L
keycode 108 = Super_R NoSymbol Super_R
keycode 133 = Alt_L Meta_L Alt_L Meta_L
keycode 134 = Alt_R Meta_R Alt_R Meta_R

কীকোড / রোল অ্যাসোসিয়েশনগুলিকে ওভাররাইটিং করা হচ্ছে ... সহজ, এবং এটি কার্যকর। remove ...সমাধানের তুলনায় যদি কোনও অসুবিধা থাকে তবে অবাক হন ।
রিং Ø

মনে রাখবেন আপনি grepফিল্টার আউটপুট ব্যবহার করতে পারেন তাই xmodmap -pke | grep -i "super\|alt"আপনার কী প্রয়োজন তা আরও সহজ করা উচিত।
বেঞ্জামিন আর

0

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

আপনি যদি ডান আল্ট এবং ই টিপেন এবং আপনি get পান তবে এই সমাধানটি আপনার জন্য (উন্নতির প্রয়োজন)।

এটি টার্মিনালে চালান (xev সহ আপনার কীকোডগুলি পরীক্ষা করুন):

xmodmap -e "keycode 108 = Alt_R Meta_R Alt_R Meta_R"

তারপরে এই কোডটি আপনার .Xmodmap এ রাখুন:

remove Control = Control_R
remove Mod1 = Alt_R
keycode 105 = Alt_R
keycode 108 = Control_R
add Control = Control_R
add Mod1 = Alt_R

এই কোডটি আপনার Alt_Gr কীটি Alt_R তে সেট করে এবং তারপরে এটি Alt_r কে Ctrl_R এর সাথে অদলবদল করে।

লগআউট করার পরেও যদি আপনি এটি থেকে যেতে চান, তবে আপনার আরম্ভের শেল ফাইলগুলির মধ্যে নিম্নলিখিত কমান্ডগুলি রাখুন, উদাহরণস্বরূপ ~ /। প্রোফাইল:

if [ -f $HOME/.Xmodmap ]; then
  xmodmap -e "keycode 108 = Alt_R Meta_R Alt_R Meta_R"
  /usr/bin/xmodmap $HOME/.Xmodmap
fi

উত্স: প্রশ্ন 1 প্রশ্ন 2

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