Review your favorite Linux distribution.
Go Back > Forums > Linux Forums > Linux - General
User Name
Linux - General This Linux forum is for general Linux questions and discussion.
If it is Linux Related and doesn't seem to fit in any other forum then this is the place.


  Search this Thread
Old 03-05-2005, 12:42 PM   #1
Registered: Jan 2004
Distribution: Kubuntu 14.04 (Dell Linux-preinstalled laptop + 2 other laptops)
Posts: 117

Rep: Reputation: 21
How do I get Right-Alt key to be just Alt and not generate special characters? (KDE)

I note that there is a posting on Success Stories about how to generate characters with diacriticals, such as this "e-acute" (é). On my Mandrake (10.0-official) system, I've always been able to use Right-Alt-semicolon, "e" to get the e-acute, for example. My problem is the opposite.

I want the Right-Alt to behave NORMALLY. I want to be able to hit Alt-Enter (for example) without reaching all the way to the other Alt key on the left. I'm used to using either Alt key and I don't want some new meaning assigned to the one on the right. I don't want special characters (and when I do, I want access to the 20000 Chinese characters, hardly something that a Right-Alt key can cope with).

How do I change this? I've tried the KDE Control Centre (Accessibility > Keyboard Layout > xkb options > Compose Key > turn off R-Alt Is Compose Key), the Mandrake Control Centre, and have even tried diddling with the XFree86 config file. I'm sure that last one is the key to the whole thing, but I haven't yet been able to figure out exactly what to do. All I want is an Alt key that's an Alt key. Can anyone point the way?
Old 03-05-2005, 02:12 PM   #2
Registered: Jan 2004
Distribution: Kubuntu 14.04 (Dell Linux-preinstalled laptop + 2 other laptops)
Posts: 117

Original Poster
Rep: Reputation: 21
I figured it out! How to set X keyboard options

Okay, it turns out that Mandrake had been driving me nuts for all this time and I was able to fix it with a simple setting. It's always this way in Linux: if you know how to do it, it's easy; if you don't know how to do it, it is a completely counterintuitive thing to figure it out. Hey, KDE creators --you ever test your product on newbies?

In this case, I am referring to KDE Control Center (on Mandrake 10, it's Menu > System > Configuration > Configure Your Desktop) > Accessibility > Keyboard Layout > Xkb Options

Anyway, here's what happens: you can make changes to the settings on your keyboard using the KDE Control Center, but you MUST set the "Reset old options" checkbox or else any changes you make are IN ADDITION TO the settings already present; contrary to what obviously seems like a display of settings status, when you UNCHECK a checkbox, it does NOT turn off that option! It merely FAILS TO SET that option (but if the option was already set, then there is no effect). The way to get around this is to check the box "Reset old options", which first turns everything off and then applies what you've selected.

How anyone at KDE could think that "Reset old options" was an appropriate label is beyond me. Why can't they call it "Retain previous settings" or "Don't retain previous settings"? Or, better yet, why don't they do away with that concept altogether and just make the options on or off as it shows in the checkboxes? If the box is checked, it's on. If the box is unchecked, it's off. Come on, it's not that hard to grasp.
Old 06-25-2005, 10:26 PM   #3
Registered: Jan 2004
Distribution: Kubuntu 14.04 (Dell Linux-preinstalled laptop + 2 other laptops)
Posts: 117

Original Poster
Rep: Reputation: 21
Use xmodmap (better than xkb) to redefine keyboard: a primer

I have figured out how to get my R Alt key back; Mandrake Linux kept (re)defining the R alt key as the "Compose" key. In the process, I learned how to re-define the keyboard completely. Last time I said I'd use the KDE Control Centre to do this, but it didn't last; somehow, Mandrake keeps re-defining them. It looks like a Mandrake bug; its boot-up scripts keep reverting many changes that I've made in KDE.

Anyway, the reason my new method will work is because it is a command-line command, which means I can stick it into a script or access it directly, rather than relying on KDE GUI front-ends to interact properly. And it uses "xmodmap", which is easier to understand and use than "setxkbmap". The latter is part of the set of "xkb" utilities, which apparently "don't play well" with the "xmodmap" utility.

Anyway, here are some pointers to getting started with the "xmodmap" utility. To get the keyboard definitions, type

xmodmap -pke

This outputs a list of how every single key is defined, but moreover, it outputs it in such a format that you can cut-and-paste each line back into the xmodmap command as an 'expression'.

For example, somewhere in the output from the above command were the lines:

keycode 24 = q Q at Greek_OMEGA
keycode 25 = w W lstroke Lstroke
keycode 26 = e E
keycode 27 = r R paragraph registered
keycode 28 = t T tslash Tslash
keycode 29 = y Y leftarrow yen

Obviously, keycode 24 is the Q key, which gives the letter 'q' by itself, 'Q' if you press the Shift key; and if you press the Mode_switch key (explained below), you get the 'at' sign, and Shift+Mode_switch, you get the capital 'Greek_OMEGA'. This tells us that the "xmodmap" command has some built-in names for the symbols; it knows that 'at' means the @ sign, and not the letters 'a' and 't'. I'm not sure how to get the complete list of symbol names yet.

Now, if you didn't want the Q key to put out the letter Q, but instead (for some silly reason) the letter A, then you would give this command:

xmodmap -e 'keycode 24 = a A at Greek_OMEGA'

Note that this is in the form 'xmodmap -e <expression>', where <expression> can be cut-and-pasted directly from the output of the 'xmodmap -pke' command above. This makes it easy to modify the keyboard to whatever it is.

The 'Mode_switch' key is like the Shift key in that it is used in combination with other keys to produce special characters. It appears in my list from the 'xmodmap -pke' command, as follows:

keycode 113 = Mode_switch
keycode 114 = Pause Break
keycode 115 = F13
keycode 116 = Multi_key
keycode 117 = Menu

From experimentation, I've found out that keycode 113 corresponds to the right Alt key. I don't want that to be 'Mode_switch' (a predefined name under xmodmap); I want the right Alt key to be the right Alt key, and the right Windows key (keycode 116) can be the Mode_switch key. So I type:

xmodmap -e 'keycode 113 = Alt_R'
xmodmap -e 'keycode 116 = Mode_switch'

And now I can happily use the R Alt key. The commands above can be stored in a script file that is run automatically at start-up. (How to do that will be a separate topic.)

If you want to store the list of keycodes in a file, just redirect the output as follows:

xmodmap -pke > your_keycode_filename

Hope that helps!

I don't know if this belongs in "success stories" or not.


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Similar Threads
Thread Thread Starter Forum Replies Last Post
ALT+B, ALT+F key combinations in xterm don't work nIMBVS cAos 5 05-06-2020 10:23 AM
How do I insert special character with alt? Meriadoc Linux - Newbie 5 05-17-2006 11:42 AM
dark screen when pressing Ctrl + Alt + Backspace or Ctrl + Alt F1-F6 in Gnome or KDE trinoo Slackware 5 01-28-2005 09:13 AM
Special Keybind CTRL+ALT+END fr0zen Linux - General 4 05-25-2004 01:08 AM
right ALT key problem with kde-3.2/3.2.1 phase9 Slackware 2 03-24-2004 02:09 PM > Forums > Linux Forums > Linux - General

All times are GMT -5. The time now is 07:14 PM.

Main Menu
Write for LQ is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration