Ánh xạ lại phím nguồn để xóa


14

Tôi có macbook pro chạy Ubuntu 13.10 với FluxBox. Thật không may, nút nguồn nằm phía trên không gian phía sau nơi tôi mong đợi phím xóa sẽ xuất hiện. Trong OS X, chương trình PowerKey có thể được sử dụng để ánh xạ lại phím nguồn để xóa. Làm thế nào tôi có thể làm một cái gì đó tương tự trong X Windows?

Tôi đã tắt phím nguồn bằng cách chỉnh sửa /etc/systemd/logind.confvà cài đặt HandlePowerKey = ignore Sau đó, tôi có thể nhấn nút nguồn mà không cần tắt máy tính xách tay.

Chạy xev -event keyboardcho thấy KeyPress cho phím nguồn thường bị ăn bởi một quy trình khác:

MappingNotify event, serial 36, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248

KeymapNotify event, serial 36, synthetic NO, window 0x0,
    keys:  1   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   
           0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   

KeymapNotify event, serial 37, synthetic NO, window 0x0,
    keys:  1   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   
           0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   

Tuy nhiên, chỉ bằng cách chạy xterm trực tiếp từ bảng điều khiển, tôi đã có thể lấy mã khóa thành công và ánh xạ lại khóa.

xinit /usr/bin/xterm -- :1
xev -event keyboard | tee /tmp/junk.txt
tail -n ???? /tmp/junk.txt
MappingNotify event, serial 28, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248

KeyPress event, serial 28, synthetic NO, window 0x600001,
    root 0xa1, subw 0x0, time 720369, (146,89), root:(148,91),
    state 0x0, keycode 124 (keysym 0x1008ff2a, XF86PowerOff), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 28, synthetic NO, window 0x600001,
    root 0xa1, subw 0x0, time 720369, (146,89), root:(148,91),
    state 0x0, keycode 124 (keysym 0x1008ff2a, XF86PowerOff), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

MappingNotify event, serial 29, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248

Tại thời điểm này, cũng có thể ánh xạ khóa bằng xmodmap. Tôi đã ánh xạ nó tới dấu gạch chéo ngược dễ nhìn hơn xóa:

 xmodmap -e "keycode 124 = backslash bar"

Tôi có thể có được một chức năng gần như tương đương để chạy bằng cách thêm cái này vào ~/.fluxbox/keysnhưng cái này vừa xấu vừa đủ chậm để không thể sử dụng được.

  # Remap the power off to a delete key...
  XF86PowerOff :Exec xdotool key Delete

Làm cách nào tôi có thể sử dụng xmodmap hoặc setxkbmap để sử dụng nút nguồn cùng lúc với trình quản lý cửa sổ bình thường?

Câu trả lời:


3

Tôi không hiểu chính xác câu cuối cùng, câu hỏi, nhưng tôi có thể liên quan đến tiêu đề của câu hỏi: "Nhắc lại phím nguồn để xóa".

Hãy thử thay thế bất kỳ "XF86PowerPack" hoặc chỉ một cái tương ứng với bàn phím của bạn bằng "Xóa" trong / usr / share / X11 / xkb /bols / inet.

Bạn cần lặp lại điều này sau khi cập nhật hệ thống cập nhật tập tin đó.


xem Askubfox.com/questions/325272/ để biết chi tiết. Câu trả lời này nên được chấp nhận.
phil294

1

Đây không phải là một câu trả lời chính xác, nhưng bạn đã thử nhấn fn+ deletechưa? Thao tác này sẽ hoạt động như một Xóa thực sự , so với hành động thực tế của 'backspace' và rất gần với phím nguồn.

Một mẹo khác:

fn+ enterhoạt động như một nút Chèn , do đó bạn sẽ có thể nhấn shift+ fn+ enterDán như nhấp chuột giữa.


0

Thật khó để nói chắc chắn. Đây có thể là những điều bạn đã thử, nhưng chúng có thể dẫn đến một giải pháp dễ dàng.

Xmodmap có hoạt động cho các khóa khác không, hoặc có điều gì mà fluxbox đang làm đang phá vỡ hoàn toàn xmodmap?

Điều gì xảy ra nếu bạn khởi động x, sửa đổi phím nguồn và sau đó khởi động fluxbox? Bản đồ có dính không?

Nếu chạy xmodmap trước khi fluxbox hoạt động và giữ cài đặt của bạn, bạn có thể viết tập lệnh shell để gọi cả hai theo thứ tự phù hợp hoặc nếu bạn đang sử dụng gdm, nó sẽ tự động đọc ~/.xmodmaphoặc ~/.xmodmaprctự động cho bạn trước khi fluxbox vào hình ảnh.


Có, xmodmap hoạt động. Ngay bây giờ, tôi có lệnh alt và phải được ánh xạ lại để xóa và chèn tương ứng bằng xmodmap -e "remove mod1 = Alt_L" -e "remove mod4 = Super_L" -e "add mod1 = Super_L" -e "add mod4 = Alt_L "-e" xóa mod1 = Alt_R "-e" xóa mod4 = Super_R "-e" keyym Alt_R = Xóa "-e" keyym Super_R = Chèn "
nathan

Bạn có thể bao gồm đầu ra của xmodmap -pke trong fluxbox không?
Mike Fairhurst

@nathan vì vậy đây là vấn đề khi xmodmap được chạy, sau fluxbox hoặc trước đó. Có cùng một vấn đề với wm tuyệt vời
Darek
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.