* Alternative to arrow keys (more ergonomic)?
@ 2014-06-12 14:00 Martin Beck
2014-06-12 14:41 ` Jorge A. Alfaro-Murillo
0 siblings, 1 reply; 8+ messages in thread
From: Martin Beck @ 2014-06-12 14:00 UTC (permalink / raw
To: emacs orgmode-mailinglist
[-- Attachment #1: Type: text/html, Size: 924 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Alternative to arrow keys (more ergonomic)?
2014-06-12 14:00 Alternative to arrow keys (more ergonomic)? Martin Beck
@ 2014-06-12 14:41 ` Jorge A. Alfaro-Murillo
2014-06-12 14:45 ` Thorsten Jolitz
2014-06-13 7:18 ` Martin Beck
0 siblings, 2 replies; 8+ messages in thread
From: Jorge A. Alfaro-Murillo @ 2014-06-12 14:41 UTC (permalink / raw
To: emacs-orgmode
Hi Martin,
"Martin Beck" <elwood151@web.de> writes:
> I'm using Shift+RightArrow and Shift+LeftArrow quite often to change
> the scheduled or deadline dates of a task in my agenda view. As I have
> a normal large keyboard (where the arrow keys are between the
> alphanumeric block and the numeric keypad like here:
> http://www.microsoft.com/hardware/_base_v1//products/wireless-desktop-3000/mk_
> wd3000_otherviews01.jpg ). So the arrow key is difficult to reach and
> forces me to leave the QUERTZ keys with the right hand. Can I define
> an additional key or key combination which does the same thing like
> RightArrow and is easier to reach? Which one would be available in the
> agenda view?
I have the (totally useless) CapsLock key of my keyboard remapped to
Hyper, which allows me to use an extra modifier for emacs commands.
For your case after you have a Hyper key you could "make" your own arrow
keys without your right fingers moving away from J K L ; where they
belong:
#+BEGIN_SRC emacs-lisp
(global-set-key (kbd "H-i") 'previous-line)
(global-set-key (kbd "H-k") 'next-line)
(global-set-key (kbd "H-j") 'left-char)
(global-set-key (kbd "H-l") 'right-char)
#+END_SRC
and for org:
#+BEGIN_SRC emacs-lisp
(define-key org-mode-map (kbd "H-S-i") 'org-shiftup)
(define-key org-mode-map (kbd "H-S-k") 'org-shiftdown)
(define-key org-mode-map (kbd "H-S-j") 'org-shiftleft)
(define-key org-mode-map (kbd "H-S-l") 'org-shiftright)
#+END_SRC
In Linux I use xmodmap for the remapping of the CapsLock key. While you
are at it you can also remap the Alt key to Cntrl and the Super to Meta,
to that you press C- commands with your left thumb and not with your
left pinky, avoiding the common emacs pinky problem.
Best,
Jorge.
PS: http://i.stack.imgur.com/2kbJv.jpg
http://www.splitreason.com/Product_Images/4e3477bef139.jpg
PPS: to be fair some very fast typists use CapsLock
(http://seanwrona.com/typing.php)
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Alternative to arrow keys (more ergonomic)?
2014-06-12 14:41 ` Jorge A. Alfaro-Murillo
@ 2014-06-12 14:45 ` Thorsten Jolitz
2014-06-12 15:19 ` Jorge A. Alfaro-Murillo
2014-06-13 7:18 ` Martin Beck
1 sibling, 1 reply; 8+ messages in thread
From: Thorsten Jolitz @ 2014-06-12 14:45 UTC (permalink / raw
To: emacs-orgmode
jorge.a.alfaro@gmail.com (Jorge A. Alfaro-Murillo) writes:
Hi,
> I have the (totally useless) CapsLock key of my keyboard remapped to
> Hyper, which allows me to use an extra modifier for emacs commands.
>
> For your case after you have a Hyper key you could "make" your own arrow
> keys without your right fingers moving away from J K L ; where they
> belong:
>
> #+BEGIN_SRC emacs-lisp
> (global-set-key (kbd "H-i") 'previous-line)
> (global-set-key (kbd "H-k") 'next-line)
> (global-set-key (kbd "H-j") 'left-char)
> (global-set-key (kbd "H-l") 'right-char)
> #+END_SRC
>
> and for org:
>
> #+BEGIN_SRC emacs-lisp
> (define-key org-mode-map (kbd "H-S-i") 'org-shiftup)
> (define-key org-mode-map (kbd "H-S-k") 'org-shiftdown)
> (define-key org-mode-map (kbd "H-S-j") 'org-shiftleft)
> (define-key org-mode-map (kbd "H-S-l") 'org-shiftright)
> #+END_SRC
>
> In Linux I use xmodmap for the remapping of the CapsLock key. While you
> are at it you can also remap the Alt key to Cntrl and the Super to Meta,
> to that you press C- commands with your left thumb and not with your
> left pinky, avoiding the common emacs pinky problem.
Just out of curiosity - did you try this on the console (without X) too?
--
cheers,
Thorsten
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Alternative to arrow keys (more ergonomic)?
2014-06-12 14:45 ` Thorsten Jolitz
@ 2014-06-12 15:19 ` Jorge A. Alfaro-Murillo
2014-06-12 17:24 ` Thorsten Jolitz
0 siblings, 1 reply; 8+ messages in thread
From: Jorge A. Alfaro-Murillo @ 2014-06-12 15:19 UTC (permalink / raw
To: emacs-orgmode
Thorsten Jolitz <tjolitz@gmail.com> writes:
> Just out of curiosity - did you try this on the console (without X) too?
Xmodmap does not work without X, at least I suppose that is what the X
stands for =)
If someone knows how to remap outside of X please let me know.
Since I use emacs not in X in my phone, my workaround is to create a
hyper key in another place (F6 is a good place for the keyboard of
JuiceSSH in Android). It is not really a modifier, so to press 'H-j',
you actually do 'F6 j', that is 'F6' followed by 'j', but I guess that
is as good as you can get with a keyboard onscreen without installing a
super tiny keyboard (e.g. Hacker's Keyboard).
#+BEGIN_SRC emacs-lisp
(defun hyperify (prompt)
(let ((e (read-event)))
(vector (if (numberp e)
(logior (lsh 1 24) e)
(if (memq 'hyper (event-modifiers e))
e
(add-event-modifier "H-" e))))))
(defun add-event-modifier (string e)
(let ((symbol (if (symbolp e) e (car e))))
(setq symbol (intern (concat string
(symbol-name symbol))))
(if (symbolp e)
symbol
(cons symbol (cdr e)))))
(define-key key-translation-map (kbd "<f6>") 'hyperify)
#+END_SRC
Best,
Jorge.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Alternative to arrow keys (more ergonomic)?
2014-06-12 15:19 ` Jorge A. Alfaro-Murillo
@ 2014-06-12 17:24 ` Thorsten Jolitz
0 siblings, 0 replies; 8+ messages in thread
From: Thorsten Jolitz @ 2014-06-12 17:24 UTC (permalink / raw
To: emacs-orgmode
jorge.a.alfaro@gmail.com (Jorge A. Alfaro-Murillo) writes:
> Thorsten Jolitz <tjolitz@gmail.com> writes:
>
>> Just out of curiosity - did you try this on the console (without X) too?
>
> Xmodmap does not work without X, at least I suppose that is what the X
> stands for =)
I know, thats why I asked.
> If someone knows how to remap outside of X please let me know.
In Archlinux, I copied console keymap
,---------------------
| de-latin1-nodeadkeys
`---------------------
adapted it to my emacs needs, saved it and put
,----------------------------------
| KEYMAP=de-latin1-nodeadkeys-emacs
`----------------------------------
in my /etc/vconsole.conf.
It looks somehow like this:
,--------------------------------------------------------------------------------------
| # de-latin1-nodeadkeys-emacs.map: German keymap with special keybindings for Emacs
|
| include "de-latin1.map"
|
| # control keycode 7 = Control_asciicircum
| keycode 13 = apostrophe grave
| keycode 27 = plus asterisk asciitilde
| # keycode 41 = asciicircum degree
|
| # corresponding keys in de-latin1.map:
| # keycode 13 = dead_acute dead_grave
| # keycode 27 = plus asterisk dead_tilde
| # keycode 41 = dead_circumflex degree
|
| # unterste Zeile:
| keycode 29 = AltGr AltGr AltGr AltGr
| [...]
| etc etc
`--------------------------------------------------------------------------------------
Would be interesting if (and how) it works to actually define and use a
hyper-key on the console, because even the standard modifiers like C-,
M- and don't always work, especially when combined (see 'org on a
tty' in the manual) or in combination with S-.
> Since I use emacs not in X in my phone, my workaround is to create a
> hyper key in another place (F6 is a good place for the keyboard of
> JuiceSSH in Android). It is not really a modifier, so to press 'H-j',
> you actually do 'F6 j', that is 'F6' followed by 'j', but I guess that
> is as good as you can get with a keyboard onscreen without installing a
> super tiny keyboard (e.g. Hacker's Keyboard).
>
> #+BEGIN_SRC emacs-lisp
> (defun hyperify (prompt)
> (let ((e (read-event)))
> (vector (if (numberp e)
> (logior (lsh 1 24) e)
> (if (memq 'hyper (event-modifiers e))
> e
> (add-event-modifier "H-" e))))))
>
> (defun add-event-modifier (string e)
> (let ((symbol (if (symbolp e) e (car e))))
> (setq symbol (intern (concat string
> (symbol-name symbol))))
> (if (symbolp e)
> symbol
> (cons symbol (cdr e)))))
>
> (define-key key-translation-map (kbd "<f6>") 'hyperify)
> #+END_SRC
sounds interesting ...
--
cheers,
Thorsten
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Alternative to arrow keys (more ergonomic)?
2014-06-12 14:41 ` Jorge A. Alfaro-Murillo
2014-06-12 14:45 ` Thorsten Jolitz
@ 2014-06-13 7:18 ` Martin Beck
2014-06-13 7:33 ` Martin Beck
1 sibling, 1 reply; 8+ messages in thread
From: Martin Beck @ 2014-06-13 7:18 UTC (permalink / raw
To: emacs-orgmode
Jorge A. Alfaro-Murillo <jorge.a.alfaro <at> gmail.com> writes:
> I have the (totally useless) CapsLock key of my keyboard remapped to
> Hyper, which allows me to use an extra modifier for emacs commands.
>
Hi Jorge,
thanks a lot for your suggestion - for me, that CapsLock key is useless too,
so it's a good idea to use it for that.
Sorry, if it may be obvious, but how do I remap CapsLock to H (Hyper)?
Kind regards
Martin
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Alternative to arrow keys (more ergonomic)?
2014-06-13 7:18 ` Martin Beck
@ 2014-06-13 7:33 ` Martin Beck
2014-06-13 14:24 ` Jorge A. Alfaro-Murillo
0 siblings, 1 reply; 8+ messages in thread
From: Martin Beck @ 2014-06-13 7:33 UTC (permalink / raw
To: emacs-orgmode
Martin Beck <elwood151 <at> web.de> writes:
> Sorry, if it may be obvious, but how do I remap CapsLock to H (Hyper)?
>
> Kind regards
>
> Martin
>
>
p.s. I tried
;; remap CapsLock Key to Hyper Key
;;source: http://ergoemacs.org/emacs/emacs_hyper_super_keys.html ,
http://emacs-fu.blogspot.de/2008/12/remapping-caps-lock.html
(setq w32-enable-caps-lock nil)
(global-set-key [capslock] 'hyper)
but when trying to use your keys, it returns an error, that function hyper
is void.
How can I define/enable it?
Martin
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Alternative to arrow keys (more ergonomic)?
2014-06-13 7:33 ` Martin Beck
@ 2014-06-13 14:24 ` Jorge A. Alfaro-Murillo
0 siblings, 0 replies; 8+ messages in thread
From: Jorge A. Alfaro-Murillo @ 2014-06-13 14:24 UTC (permalink / raw
To: emacs-orgmode
Martin Beck <elwood151@web.de> writes:
>> Sorry, if it may be obvious, but how do I remap CapsLock to H
>> (Hyper)?
>>
>
> p.s. I tried ;; remap CapsLock Key to Hyper Key ;;source:
> http://ergoemacs.org/emacs/emacs_hyper_super_keys.html ,
> http://emacs-fu.blogspot.de/2008/12/remapping-caps-lock.html (setq
> w32-enable-caps-lock nil) (global-set-key [capslock] 'hyper)
Dear Martin,
I think you should try to do that outside of emacs, in the configuration
of your system. I use Linux so I only have an answer for that.
I think the easiest way is to create a configuration file for xmodmap,
the common location and name is "~/.Xmodmap". My file looks like this:
#+BEGIN_EXAMPLE
clear control
clear lock
clear mod1
clear mod3
clear mod4
keycode 66 = Hyper_L
keycode 37 = Super_L
keycode 133 = Alt_L Meta_L
keycode 64 = Control_L
keycode 108 = Control_R
keycode 135 = Alt_R Meta_R
keycode 105 = Menu
add mod1 = Alt_R Alt_L Meta_R Meta_L
add mod3 = Hyper_L
add mod4 = Super_L
add control = Control_R Control_L
#+END_EXAMPLE
In this case I have Hyper where the CapsLock key is, and the final row
which in the keyboard is:
"Control Super Alt Space Alt MenuKey Control"
gets mapped to:
"Super Alt/Meta Control Space Control Alt/Meta MenuKey"
(which drives anyone that tries my computer nuts, but it is very
comfortable for emacs.)
The keycodes with numbers in the example are the positions of the keys
in my keyboard. This is different depending on your keyboard, so you
have to figure out yours. For that, use the program xev (in a terminal
type xev) and press the keys that you are interested to map. Between
many information it will give you the keycode for each key you press.
Once you finish with the .Xmodmap file, you can load the configuration
by typing in a terminal 'xmodmap .Xmodmap' (without the single quotes).
If you are using GDM, XDM or KDM, in particular under Gnome or KDE, the
.Xmodmap file is loaded automatically every time you start a session. If
you are not using any of those, you can modify the file ~/.xinitrc (or
~/.config/openbox/autostart in Openbox):
#+BEGIN_EXAMPLE
if [ -s ~/.Xmodmap ]; then
xmodmap ~/.Xmodmap
fi
#+END_EXAMPLE
I hope it helps.
Best,
Jorge
PS: For linux check also XKB.
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2014-06-13 14:24 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-06-12 14:00 Alternative to arrow keys (more ergonomic)? Martin Beck
2014-06-12 14:41 ` Jorge A. Alfaro-Murillo
2014-06-12 14:45 ` Thorsten Jolitz
2014-06-12 15:19 ` Jorge A. Alfaro-Murillo
2014-06-12 17:24 ` Thorsten Jolitz
2014-06-13 7:18 ` Martin Beck
2014-06-13 7:33 ` Martin Beck
2014-06-13 14:24 ` Jorge A. Alfaro-Murillo
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.