Tôi muốn thiết lập một số ràng buộc chính trong nhật thực (3.7.2) liên quan đến phím (phím "cửa sổ"), nhưng dường như không chọn lên phím bổ trợ đó khi tôi nhấn nó. Tại sao? Tôi có thể làm gì để phát hiện nó?Cách thiết lập các ràng buộc khóa Super/Windows/mod4 cho eclipse
Trả lời
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.
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".
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.
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
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). –