help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Dvorak layout except when modifier key is pressed


From: B. T. Raven
Subject: Re: Dvorak layout except when modifier key is pressed
Date: Thu, 27 Dec 2007 21:05:58 -0600
User-agent: Thunderbird 2.0.0.9 (Windows/20071031)

Peter Dyballa wrote:

Am 27.12.2007 um 18:45 schrieb B. T. Raven:

Does any of you know what xmodmap expressions I can put in some file so that my two users (ec and su or sudo) can have the same keyboard with bottom row super, alt, ctl, space, ctl, alt, super, hyper?

In shell you can 'man xmodmap', in GNU Emacs you have two more choices: manual-entry and woman.


Are Mod1 thru Mod5 synonyms for these modifiers keys? More importantly, is this system level stuff off topic here?


These are the generic symbols. You can make them being this or that or something else. To change a previous setting (xmodmap -pm), you first need to "reset" it:

    clear Shift

    clear Lock   !! I think this is the only one I need to clear if the ones 
below are already appropriately bound. Right?

    clear Control
    clear Mod1
    clear Mod2
    clear Mod3
    clear Mod4
    clear Mod5

Thanks for this. I learned more from your response that from a lot of googling and reading man and info pages.


then ad(d)just:

    add    Shift   = Shift_L    Shift_R

! add Lock = Caps_Lock !! I want this to be Hyper_L . Will this conflict with your Mod4 assignment below?

    add    Control = Control_L    Control_R

! add Mod1 = Mode_switch Mode_switch !! This I don't understand at all. Is it the M$ Menu key?

! add Mod2 = Meta_L Meta_R !! I don't need this since I don't have a Meta key, right?

    add    Mod3    = Alt_L        Alt_R
    add    Mod4    = Hyper_L    Hyper_R
    add    Mod5    = Super_L    Super_R

Generally you can set the "key bindings" like:

    keycode 0x35 =  n               N               dead_tilde      U203A
    keycode 66 = Meta_L

This keycode method seems like the easiest way to swap keys since I can get the keycodes from xev. Are the above "clear" and "add" lines still needed? In my /etc/X11/Xmodmap file (all commented out) I read:


! keycode and keysym remapping should generally be used only if the X
! server config file has been configured to disable the XKEYBOARD
! extension

Where is the server config file? Is this something I have to worry about or can I just add these lines to that file? :

clear Lock
!.
!. maybe other expressions
!.
add Lock = Hyper_L !! Is that meaningful?

keycode 66 = Hyper_L !! is this needed even with the above add Lock expression?

keycode 37 = Super_L
keycode 115 = Alt_L  !! It says Alt on the keycap.
keycode 64 = Control_L
keycode 113 = Control_R
keycode 116 = Alt_R !! Again that's on keycap. Can't I just say alt-is-meta or something somewhere?

keycode 117 = Super_R
keycode 109 = Hyper_R






(first line hex value for key code, second example with decimal value)

First column: no modifier
Second column: with Shift modifier
Third column: with Alt modifier
Fourth column: with Shift and Alt modifiers

I read that there can be eight columns but that most apps don't support beyond four. Does Emacs? Could I globalsetkey something to [(shift control alt super hyper h)] ? Of course this would be difficult to touch type unless all keychords that included the shift modifier and at least one other modifier were made sticky. The whole point of this for me is to be able to touch type most keychord combinations.



The names are defined in /usr/X11/include/X11/keysymdef.h.

In Fedora 8 this was in /usr/include/X11/keysymdef.h



Multi_key is a nice thing: pressing Multi_key o / could produce ø. Not sure whether it's still supported ...

I want to do all this sort of thing with Emacs (leim) input methods.


--
Mit friedvollen Grüßen

  Pete

Eat the rich – the poor are tough and stringy.

Thanks again. If you don't have time to answer this I can probably figure it out with some (a lot) of experimenting but I don't know what's safe and what's dangerous.

Ed


reply via email to

[Prev in Thread] Current Thread [Next in Thread]