Làm cách nào tôi có thể liên tục sắp xếp lại các khóa trong Ubuntu 16.04?


23

Điều này đang làm việc cho phiên hiện tại:

costales@dev:~/Desktop$ xmodmap -e "keycode 166 = less"
costales@dev:~/Desktop$ xmodmap -e "keycode 167 = greater"

Sau đó, tôi đã tạo tập tin cấu hình này:

costales@dev:~/Desktop$ cat ~/.Xmodmap 
keycode 166 = less
keycode 167 = greater
costales@dev:~/Desktop$ 

Nhưng nó không hoạt động sau khi khởi động lại. Làm thế nào tôi có thể buộc bản remap để sống sót khởi động lại?


Chỉ cần trả lời điều này bằng cách sử dụng xkbở đây: askubfox.com/a/960097/554991 .
danwild

Câu trả lời:


15

Tôi đã sử dụng 16.04 một chút và dường như nó sử dụng sddm làm trình quản lý máy tính để bàn. Nó từng là LightDM và GDM trước đó. Cả hai tiền thân của nó đều được ghi nhận để tải ~/.Xmodmaptự động nhưng tôi không thể tìm thấy bất cứ điều gì rõ ràng nói sddm làm.

Do đó, có thể chỉ nên buộc nó tải với một tập lệnh mới. Bạn chỉ cần chạy xmodmap ~/.Xmodmapvà bạn có thể làm điều đó một số cách:

Có lẽ có vài chục cách khác để quản lý việc này, về cơ bản là làm điều tương tự.


2
Cảm ơn vì tiền hỗ trợ! Thêm vào để khởi động không hoạt động và ~ / .xinitrc không thoát. Nhưng nối "xmodmap ~ / .Xmodmap" vào ~ / .bashrc đã hoạt động! :)
Costales

1
Thêm nó thông qua các công cụ khởi động đồ họa (tạo ra một mục mới ~/.config/autostart) hoạt động khoảng một nửa thời gian. Tôi đã khởi động lại khoảng 10 lần và 5 lần lệnh đã được thực thi và 5 lần khác thì không. :-(
Alexander Rechsteiner

1
@Alexander Rechsteiner: Đây dường như là một vấn đề trong Ubuntu 16.04. Tôi đã loay hoay với các lệnh khởi động và ánh xạ lại, và hành vi có vẻ rất không nhất quán. Tôi không phải là một chuyên gia về loại điều này, nhưng dường như nó hoàn toàn vô lý khi nó xảy ra ...
nicorellius

6

Tôi đã thêm một tập tin /etc/X11/Xsession.d/80_xmodmapvới những nội dung sau:

#!/bin/sh
# Set custom keycodes
#
# This file is sourced by Xsession(5), not executed.
# The "|| true" is to ensure that the Xsession script does not terminate on error

USRMODMAP="$HOME/.Xmodmap"

if [ -x /usr/bin/xmodmap ]; then
        if [ -f "$USRMODMAP" ]; then
                /usr/bin/xmodmap "$USRMODMAP" || true
        fi
fi

Điều này hoạt động mọi lúc.


Nó có vẻ hoạt động nhưng đây là thông báo tôi nhận được .xsimes-error: .Xmodmap: 1: keyymym trong danh sách sửa đổi 'Caps_Lock', không có mã khóa tương ứng nào 9 = Mã khóa thoát 66 = Thoát
MaikoID

4

mở gnome-session-property. thêm lệnh và tên. tập tin máy tính để bàn sẽ được tạo trong ~ / .config / autostart.

remenber: sử dụng đường dẫn tuyệt đối , ví dụ /home/xxx/.Xmodmap. không bao giờ sử dụng '~' làm thư mục nhà của bạn.


2

Trong kinh nghiệm lâu năm của tôi với Remapping phím trong Ubuntu, các giải pháp lâu dài là để sửa đổi một tập tin gọi evdevtrong /usr/share/X11/xkb/keycodes.

Chạy lệnh này trong dấu nhắc lệnh.

sudo gedit /usr/share/X11/xkb/keycodes/evdev

Hãy nhớ gedit là một trình soạn thảo văn bản Ubuntu để bạn có thể sử dụng nano hoặc vim thay vì gedit.

Các tập tin có định dạng: ALIAS: CODE. Bạn có thể trao đổi các nút bằng cách hoán đổi mã của các khóa khác nhau. Ví dụ: để hoán đổi RCONTROL với RETURN, hãy chỉnh sửa hai dòng trong evdev thành:

<RTRN> = 105;

<RCTL> = 36;

Để biết mã số cho một nút chạy xevtrên thiết bị đầu cuối.

Tham khảo tài liệu để biết thêm thông tin. https://buildmedia.readthedocs.org/media/pdf/python-evdev/latest/python-evdev.pdf


1

Hướng đến

/usr/share/X11/xkb/symbols

Với đặc quyền sudo, trong trình chỉnh sửa, hãy mở bố cục mà bạn muốn chỉnh sửa. Thay thế các giá trị.

Sau khi khởi động lại, những thay đổi sẽ được áp dụng.


Dưới đây là một ví dụ tôi sử dụng để ánh xạ lại bàn phím của mình vì sự cố phần cứng bàn phím.

ví dụ bàn phím


2
Những chỉnh sửa đó sẽ được ghi đè vào lần tới khi các gói sở hữu các tệp đó được nâng cấp.
muru

Điều đó có thể đúng, nhưng tôi nghi ngờ những điều này đặc biệt được cập nhật rất thường xuyên. Tôi đã hài lòng với giải pháp này trong một vài tháng kể từ khi tôi giải quyết vấn đề và chưa một lần tôi phải làm gì thêm. Và để ngăn chặn điều này, bạn có thể lưu tệp và thay thế nó trong trường hợp sự kiện đó hoặc, (có vẻ an toàn hơn) chỉ cần tạo lại quy trình.
qua

1

Sau khi tìm kiếm trên Google, tôi đã có thể giải quyết lỗi ánh xạ lại cho máy tính xách tay của mình. Tất cả các phím bị lỗi trên Thinkpad T400 của tôi đều hoạt động tốt sau khi ánh xạ lại. Ngoài ra, nó là vĩnh viễn mà không cần tải thêm vào lõi CPU.

  • Trước tiên hãy tìm bố cục bàn phím hoặc mã phím bằng lệnh bên dưới.

    xevv -event keyboard 
    
  • Ví dụ: trên mã khóa Thinkpad T400 của tôi được tìm thấy như sau:

    Keycode of "z" key is 52
    Keycode of "x" key is 53
    Keycode of "c" key is 54
    Keycode of "v" key is 55
    Keycode of "F6" key is 72
    Keycode of "F10" key is 76
    Keycode of "F11" key is 95
    Keycode of "F12" key is 96 
    
  • Ánh xạ lại các phím ký tự "z" "x" "c" "v" bằng cách gán các phím chức năng "F6" "F10" "F11" "F12".

  • Sửa đổi các dòng như dưới đây (Sao lưu tệp trước khi thực hiện bất kỳ thay đổi nào để khôi phục dễ dàng nếu xảy ra sự cố).

    sudo vi /usr/share/X11/xkb/keycodes/evdev
    
  • Tìm các dòng và thay đổi giá trị như dưới đây:

    <AB01> = 72;
    <AB02> = 76;
    <AB03> = 95;
    <AB04> = 96;
    
  • Nhận xét các dòng này hoặc loại bỏ các dòng:

    //  <FK06> = 72;
    //  <FK10> = 76;
    //  <FK11> = 95;
    //  <FK12> = 96;
    
  • Lưu và thoát.

  • Nhắc lại các phím đặc biệt.

  • Sao lưu tập tin trước khi thực hiện thay đổi để rollback nếu mọi thứ đi sai.

    cd /usr/share/X11/xkb/symbols/
    
    sudo vi pc
    
  • Thêm hoặc sửa đổi các dòng dưới đây trong chức năng "xkb_symbols" chỉnh sửa "{"

    key [SCLK] {    [  Prior        ]   };
    key [PAUS] {    [  Next         ]   };
    
  • Lưu và thoát.

  • Xóa bộ nhớ cache.

    sudo rm -rf /var/lib/xkb/*
    
  • Khởi động lại.


Tôi đã ánh xạ lại một phím mũi tên (con trỏ) bị hỏng sang một phím khác bằng kỹ thuật này. Nó chỉ đơn giản là (xev) và nhấn phím mới để lấy scancode của nó, sau đó chỉnh sửa / usr / share / X11 / xkb / keycodes / evdev để thay thế mã khóa gốc của phím mũi tên bằng mã khóa mới và xóa dòng khóa mũi tên mới bằng mã gốc scancode. Tôi đã nhận xét bất cứ nơi nào tôi thực hiện thay đổi và giữ một bản sao lưu của tập tin. Sau khi khởi động lại, nó hoạt động hoàn hảo, bao gồm các kết hợp shift / ctrl / alt với phím mũi tên mới. Và thay đổi nên được giữ nguyên ngay cả khi nâng cấp gói và nâng cấp phiên bản HĐH.
Matthew

1

Biên tập đồ họa

gnome-tweaks > Bàn phím và chuột> Tùy chọn bố cục bổ sung

Bản đồ chính


0

Vì các tệp .Xmodmap dễ chỉnh sửa hơn xkb, tôi sử dụng .Xmodmap làm tệp 'nguồn', sau đó chuyển đổi nó thành xkb (tiêu chuẩn hiện tại) và tự động tải khi khởi động bằng phương thức .bashrc.

Đó là một vài bước đơn giản được đăng ở đây .

Hoạt động hoàn hảo và sử dụng các bằng chứng xkb trong tương lai khi không hỗ trợ cho .Xmodmap.

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.