Make Alt_R an Alt (A-) modifier key (instead of a Meta (M-) modifier key)

emacs, x11

Solution

Below is my `.Xmodmap`. It doesn't exactly implement your specification, but should give you an idea how to achieve it. Only Sec-2 should need modification in your case; assuming your keyboard is similar to mine, you will only need 1 line in this section: `keycode 108 = Alt_R`, since `Alt_L` is already recognized as `Meta_L` by the X-server.

Here is my `.Xmodmap` which makes all modifiers recognized by Emacs available (Alt, Meta, Super, Hyper, Control, Shift):

!!! Implement the following layout:
!!!     Alt  A S D F ...
!!!     Shift Z     X    C V B N M ...
!!!     Hyper Super Meta --Space-- Control Super Hyper

!!! by transforming from the conventional layout:
!!!     Caps:66
!!!     Shift
!!!     Ctrl:37 Win:133 Alt:64 Space AltGr:108 Menu:135 Ctrl:105

!! Sec-1.
clear Control
clear Lock
clear mod1
clear mod2
clear mod3
clear mod4
clear mod5

!! Sec-2. System dependent; use xev to find the exact keycodes:
keycode  37 = Hyper_L
keycode  64 = Meta_L
keycode  66 = Alt_L
keycode 105 = Hyper_R
keycode 108 = Control_R
keycode 135 = Super_R

!! Sec-3.
add Control = Control_L Control_R
add mod1 = Meta_L Meta_R
add mod2 = Hyper_L Hyper_R
add mod3 = Num_Lock
add mod4 = Alt_L Alt_R Multi_key
add mod5 = Super_L Super_R Mode_switch

Problem

I want to set `Alt_L` as META (ie. M- in emacs) but `Alt_R` as ALT. How do I modify `.Xmodmap` and/or `.emacs` to achieve this?

Original source