2012-07-10 27 views

Trả lời

1

Eclipse không móc khóa Windows. Điều duy nhất bạn có thể làm là sử dụng công cụ để khôi phục khóa cửa sổ, ví dụ: CTRL + ALT + SHIFT (nếu bạn không sử dụng). Các công cụ như AutoHotkey có thể thực hiện công việc.

Sau đó, bất cứ khi nào bạn nhấn phím cửa sổ, nó sẽ được như nếu bạn nhấn tổ hợp phím CTRL + ALT +SHIFT, sau đó bạn có thể sử dụng để ràng buộc các phím nóng mong muốn của bạn.

1

Bạn có "Linux" được gắn thẻ trong câu hỏi của bạn, vì vậy tôi sẽ giả sử bạn đang sử dụng Linux và X ...

Vì vậy, để sử dụng Super với Eclipse, trước tiên bạn phải khám phá cho dù bạn có một Siêu, và nếu không, hãy thực hiện một. Phần còn lại của điều này có lẽ là cách nhiều hơn bạn cần về chủ đề của xmodmap.

Điều đầu tiên cần làm là xem liệu bạn đã có khóa Siêu sửa đổi chưa. Chạy "xmodmap -pm" để xem những gì bạn đang sửa đổi. Dưới đây là một kết quả chung:

$ 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) 

Trong sản lượng trên, một loạt các phím đã được ánh xạ Super, với (hex) mã phím 0x85, 0x86, 0xce, và 0xcf. Để xem liệu có bất cứ điều gì trên bàn phím của bạn không phải là một trong những phím đó (không phải luôn luôn như vậy), hãy chạy "xev" trong một thiết bị đầu cuối và di chuyển con trỏ chuột của bạn vào cửa sổ nhập màu chủ yếu là "xev" và thử các phím khác nhau. Đầu ra điển hình trông như thế này cho các phím (thử điều khiển và dịch chuyển để xem các ví dụ) - đặc biệt chú ý đến dòng thứ ba với mã khóa và tên keysym, ở đây 64 và Meta_L.

Hãy chắc chắn cũng thử khóa "Windows" của bạn để xem mã khóa và ánh xạ nào hiện có.

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 

Tìm "keycode" phần và bí mật nó căn cứ 16. Nếu bạn đã trúng một trong những supers, mã chuyển đổi của bạn sẽ phù hợp với một trong những (trong ví dụ trên, bốn) mã phím hex, và hiển thị Super_L hoặc Super_R thay vì Meta_L được hiển thị ở trên.

Nếu bạn không có bất kỳ khóa nào được ánh xạ tới Siêu hoặc hóa ra là không có khóa nào tồn tại trên bàn phím của bạn, hãy sử dụng xev để tìm mã khóa cho khóa bạn muốn để sử dụng cho Super (CapsLock might là một lựa chọn tốt cho một số người), sau đó sử dụng xmodmap hoặc một số công cụ khác trong giao diện người dùng của máy tính để bàn của bạn để thiết lập nó. Sau đó nằm ngoài phạm vi của bài trả lời này, nhưng với xmodmap, bạn chỉ có thể làm cho một file có tên .Xmodmap trong thư mục chính của bạn với điều này trong đó:

! 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 

Áp dụng các kết quả với "xmodmap ~/.Xmodmap ". Nhiều công ty khởi nghiệp X sẽ tự động áp dụng những điều này cho bạn. Nếu bạn đang sử dụng Ubuntu Unity, hãy tra cứu các ứng dụng khởi động trong Dash và thêm một ứng dụng cho cùng lệnh đó. Tôi không chắc chắn nếu "~" hoạt động trong ngữ cảnh, bạn có thể muốn thử $ HOME hoặc chỉ sử dụng thư mục chính của bạn ở đó. Nó kết thúc bằng việc tạo ra một tập tin trong ~/.config/autostart/xmodmap.máy tính để bàn như thế này (erlkonig = me; đặt nhà của bạn thay vào đó):

$ 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 

Bạn có thể xác minh kết quả bằng "xmodmap -pm" hoặc "xev". Đây là đầu ra cho môi trường trước đây của tôi từ một thiết lập phức tạp hơn (có thể sẽ không khớp với những gì bạn muốn).

$ 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 thay thế CapsLock (mà tôi đã di chuyển ở nơi khác); Tôi sử dụng nó cho các chức năng quản lý cửa sổ, như Hyper-f để "phía trước" một cửa sổ, Hyper-r để thay đổi kích thước, v.v.

Ví dụ khác (ví dụ) về những gì bạn có thể với xmodmap, đây là sơ đồ bàn phím bất kỳ keycode 78 nào là Mode_switch, và sau đó cho phép bạn kết hợp nó với ',', `, và ~ để nhập các tiền tố làm cho nguyên âm tiếp theo của bạn có dấu phụ tương tự trên chúng. Bạn cũng có thể sử dụng Mode_switch với a để nhận æ, d để có được ð,? để có được ¿, và một số người khác.

! 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 

để biết thêm thông tin sử dụng "người đàn ông xmodmap".

+1

Theo như tôi có thể nói, Eclipse dường như không thấy mod4 (hoặc mod3). Vì vậy, gán Super cho mod4 không thực sự hữu ích. – studgeek

+0

Ugh. Thật không may. Nếu nó thực sự đúng trên Linux + X11, và nó không chỉ kết thúc bằng việc đặt tên một cái gì đó khác của Eclipse nhưng chỉ là không có ở đó ... tốt, darn. Vâng, đó là một nửa câu trả lời, với việc nhóm Eclipse hỗ trợ các bộ sửa đổi chuẩn X11 là phần còn lại (nếu bạn đã đúng và chưa). –

0

tôi nghi ngờ mục tiêu cốt lõi của bạn là tạo ra tổ hợp phím trong ngoài điều khiển hiện tại của bạn và các ràng buộc alt. Vì vậy, ví dụ, có Windows-L làm điều gì đó khác với Control-L, Alt-L hoặc Shift-L.

Thật không may, có vẻ như Eclipse trên Linux không hỗ trợ các công cụ sửa đổi ngoài thay đổi, điều khiển và alt (là mod1 trong xmodmap). Vì vậy, không có bổ trợ bổ sung cho bạn ánh xạ phím Windows. Sự lựa chọn hợp lý sẽ là mod4, nhưng có vẻ như SWT không hỗ trợ mod4 trên nền tảng không phải Windows.

Có lỗi khi thêm hỗ trợ mod4 không thuộc windows tại https://bugs.eclipse.org/bugs/show_bug.cgi?id=55236. Thật không may nó đã được đánh dấu "sẽ không sửa chữa" trong một thời gian. Tôi đề nghị đến đó và bỏ phiếu cho nó và chia sẻ thêm các trường hợp người dùng/lý do để mở lại nó nếu bạn có chúng.

Các vấn đề liên quan