2012-07-10 14 views

Respuesta

1

Eclipse no engancha la tecla de Windows. Lo único que puede hacer es usar una herramienta para volver a vincular la clave de Windows, por ejemplo, CTRL + ALT + SHIFT (si no usa eso). Las herramientas como AutoHotkey pueden hacer el trabajo.

Entonces, cada vez que se pulsa la tecla de Windows, será como si pulsó CTRL +ALT +SHIFT, que luego se puede utilizar para unir sus teclas de acceso rápido deseados.

1

Usted tiene "Linux" etiquetados en su pregunta, por lo que voy a suponer que está utilizando Linux y X ...

lo tanto, para utilizar Super con Eclipse, primero hay que descubrir si usted tiene a Súper, y si no, haz una. El resto de esto es probablemente mucho más de lo que necesitas sobre el tema de xmodmap.

Lo primero que debe hacer es ver si ya tiene una tecla de modificación Súper. Ejecute "xmodmap -pm" para ver cuáles son actualmente sus modificadores. Aquí hay una salida común:

$ xmodmap -pm 
xmodmap: up to 4 keys per modifier, (keycodes in parentheses): 

shift  Shift_L (0x32), Shift_R (0x3e) 
lock  Caps_Lock (0x42) 
control  Control_L (0x25), Control_R (0x69) 
mod1  Alt_L (0x40), Alt_R (0x6c), Meta_L (0xcd) 
mod2  Num_Lock (0x4d) 
mod3  
mod4  Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf) 
mod5  ISO_Level3_Shift (0x5c), Mode_switch (0xcb) 

En la salida anterior, un manojo de llaves que ya se asignan a Súper, con (hex) códigos de teclas 0x85, 0x86, 0xCE y 0xcf. Para ver si algo en su teclado es una de esas teclas (que no siempre es el caso), ejecute "xev" en un terminal y mueva el puntero del mouse a la ventana de entrada en su mayoría blanca de "xev", e intente llaves diferentes La salida típica se ve así para las teclas (prueba con el control y cambia para ver ejemplos) - presta especial atención a la tercera línea con el código clave y el nombre keysym, aquí 64 y Meta_L.

Asegúrese de probar su clave "Windows" también, para ver qué código de tecla y asignación tiene actualmente.

KeyPress event, serial 42, synthetic NO, window 0xe600003, 
    root 0x6b6, subw 0x0, time 2232472454, (-1,167), root:(871,683), 
    state 0x0, keycode 64 (keysym 0xffe7, Meta_L), same_screen YES, 
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False 

Encuentre la parte "código clave" y convertirlo a la base 16. Si usted ha golpeado una de las Súper, el código convertido coincidirá con uno de los (en el ejemplo anterior, cuatro códigos de teclas hexagonales), y muestre Super_L o Super_R en lugar del Meta_L que se muestra arriba.

Si usted no tiene ninguna tecla asignada al Súper, o resulta que ninguno de ellos existe en el teclado, a continuación, utilizar xev para encontrar el código de tecla para la tecla que desea utilizar para Super (CapsLock podría ser una buena opción para algunas personas), luego use xmodmap o alguna otra herramienta en la interfaz de usuario de su escritorio para configurarlo. Este último está fuera del alcance de esta respuesta, pero con xmodmap, usted podría hacer un archivo llamado .Xmodmap en su directorio personal con esto en él:

! note: replace the 0xff below with your *actual* Super_L key's keycode. 
! note: whether to use mod3 or mod4 depends on your environment. 
keycode 0xff = Super_L 
clear mod4 
add mod4 = Super_L 

Aplicar los resultados con "xmodmap ~/.Xmodmap ". Muchas startups X las aplicarán automáticamente. Si está utilizando Ubuntu Unity, busque Aplicaciones de inicio en el Tablero y agregue una para ese mismo comando. No estoy seguro de si "~" funciona en el contexto, es posible que desee probar $ HOME o simplemente usar su directorio particular allí. Termina produciendo un archivo en ~/.config/autostart/xmodmap.escritorio como este (Erlkonig = Me, poner su casa en su lugar):

$ cat ./.config/autostart/xmodmap.desktop 
[Desktop Entry] 
Type=Application 
Exec=/usr/bin/xmodmap /home/erlkonig/.Xmodmap 
Hidden=false 
NoDisplay=false 
X-GNOME-Autostart-enabled=true 
Name[en_US]=Xmodmap Keymap Settings 
Name=Xmodmap Keymap Settings 
Comment[en_US]=Set Keyboard Bindings 
Comment=Set Keyboard Bindings 

puede verificar los resultados con "xmodmap -pm" o "xev". Aquí está el resultado para el primero para mi entorno de una configuración más compleja (que probablemente no coincidirá con lo que te gustaría).

$ xmodmap -pm 
xmodmap: up to 4 keys per modifier, (keycodes in parentheses): 

shift  Shift_L (0x32), Shift_R (0x3e) 
lock  Caps_Lock (0x7f) 
control  Control_L (0x25) 
mod1  Meta_L (0x40), Meta_L (0xcd) 
mod2  Alt_L (0x6c), Alt_L (0xcc) 
mod3  Super_R (0x69), Super_L (0x85), Super_R (0x86), Super_L (0xce) 
mod4  Hyper_L (0x42), Hyper_L (0xcf) 
mod5  Num_Lock (0x4d) 

Hyper reemplaza CapsLock (que he trasladado a otro lugar); Lo uso para funciones de administrador de ventanas, como Hyper-f para "frontar" una ventana, Hyper-r para cambiar el tamaño, etc.

Para otro ejemplo aleatorio (ish) de lo que se puede con xmodmap, aquí hay un mapa de teclas que mapea cualquiera que sea el código clave 78 es Mode_switch, y luego te permite combinarlo con ', ",` y ~ para ingresar los prefijos que hacen que tu siguiente vocal tenga el mismo signo diacrítico. También puedes usar el Mode_switch con a para obtener æ, d para visten D,? ¿conseguir, y algunos otros.

! note: 78 is probably not the keycode most would want here; pick your own :-) 
keycode 78 = Mode_switch 
!      no mods shift   mode-switch shift+mode-switch 
keysym a   =   a A      ae AE 
keysym d   =   d D      thorn THORN 
keysym n   =   n N     ntilde Ntilde 
keysym o   =   o O     oslash Oslash 
keysym t   =   t T      eth ETH 
keysym s   =   s S     ssharp 
keysym 0   =   0 parenright   degree  
keysym 6   =   6 asciicircum dead_circumflex 
keysym 8   =   8 asterisk   multiply  
keysym apostrophe = apostrophe quotedbl   dead_acute dead_diaeresis 
keysym grave  =  grave asciitilde  dead_grave 
keysym comma  =  comma less   dead_cedilla guillemotleft 
keysym period  =  period greater   NoSymbol guillemotright 
keysym slash  =  slash question   NoSymbol questiondown 
keysym 1   =   1 exclam    NoSymbol exclamdown 
keysym equal  =  equal plus    notequal plusminus 

para más información utilice el "hombre xmodmap".

+1

Por lo que puedo decir, Eclipse no parece ver mod4 (o mod3). Así que asignar Super a mod4 en realidad no ayuda. – studgeek

+0

Ugh. Eso es lamentable. Si es realmente cierto en Linux + X11, y no acaba recibiendo otro nombre de Eclipse, pero simplemente no está allí ... bueno, maldición. Oh, bueno, es la mitad de la respuesta, lograr que el equipo de Eclipse admita que los modificadores X11 estándar sean el resto (si tienes razón y todavía no). –

0

sospecho que su objetivo principal es la creación de asociaciones de teclas en Además de su control existente y enlaces alt. Entonces, por ejemplo, haga que Windows-L haga algo diferente de Control-L, Alt-L o Shift-L.

Desafortunadamente, parece que Eclipse en Linux no es compatible con modificadores que no sean shift, control y alt (que es mod1 en xmodmap). Entonces no hay un modificador adicional para mapear la clave de Windows. La elección lógica sería mod4, pero parece que SWT no es compatible con mod4 en plataformas que no sean de Windows.

Existe un error al agregar compatibilidad con mod4 que no son de Windows al https://bugs.eclipse.org/bugs/show_bug.cgi?id=55236. Desafortunadamente, se ha marcado "no arreglará" por un tiempo. Sugiero ir allí y votar por él y compartir casos de usuarios adicionales/razones para reabrirlo si los tiene.

Cuestiones relacionadas