Câu trả lời:
Các công cụ để thao tác bố trí bàn phím trên bảng điều khiển ảo là loadkeys
, dumpkeys
và showkey
. Đọc các trang của họ và thông báo cho bạn về sự phức tạp của họ.
Lưu ý rằng các công cụ này chỉ hoạt động trong bảng điều khiển ảo, không phải trong trình giả lập thiết bị đầu cuối trong môi trường đồ họa như gnome. Tìm hiểu về sự khác biệt đọc câu hỏi và câu trả lời này: https://askubfox.com/questions/14284/why-is-a-virtual-terminal-virtual-and-what-why-where-is-the-real-terminal .
Dưới đây là một hướng dẫn ngắn để làm những gì bạn muốn:
Lưu bố cục bàn phím hiện tại của bạn:
$ dumpkeys > backup.kmap
Trong trường hợp có lỗi xảy ra, bạn có thể khôi phục sơ đồ bàn phím của mình bằng lệnh:
$ sudo loadkeys backup.kmap
Nếu bàn phím bị rối đến mức bạn thậm chí không thể làm điều này thì tùy chọn duy nhất của bạn không liên quan đến phép thuật hạt nhân cổ là khởi động lại.
Kiểm tra mã khóa nào được gán cho khóa của bạn:
$ showkey
Bây giờ nhấn phím ESC và phím CAPSLOCK. Các mã khóa sẽ hiển thị trên màn hình. Lưu ý các mã khóa. Trên hệ thống của tôi, ESC có mã khóa 1 và CAPSLOCK có mã khóa 58. showkey
sẽ chấm dứt sau 10 giây không hoạt động (ít nhất là trên Ubuntu 10.04 của tôi).
Lưu ý tên của các phím ESC và CAPSLOCK từ thùng rác:
$ dumpkeys | grep 1
...
keycode 1 = Escape
...
$ dumpkeys | grep 58
...
keycode 58 = CtrlL_Lock
...
Lưu ý dòng keymap từ dumpkey:
$ dumpkeys | head -1
keymaps 0-127
Tạo một tệp sơ đồ phím chuyển ESC và CAPSLOCK:
keymaps 0-127
keycode 1 = CtrlL_Lock
keycode 58 = Escape
Tải sơ đồ:
$ sudo loadkeys swap_esc_capslock.kmap
Kiểm tra: Kiểm tra khóa CAPSLOCK là hiển nhiên. Chỉ cần nhấn phím CAPSLOCK và kiểm tra xem các phím khác có được viết hoa không. Để kiểm tra khóa ESC, bạn có thể sử dụng CTRL + V theo sau là ESC. Nó nên in ^[
. CTRL + V làm cho shell in nguyên văn khóa tiếp theo thay vì diễn giải nó.
Để tải sửa đổi này trên mỗi lần khởi động lại, hãy đặt dòng sau vào /etc/rc.local
tệp của bạn :
/usr/bin/loadkeys /path/to/swap_esc_capslock.kmap
Thông tin được thu thập từ nhiều trang khác nhau, bao gồm, nhưng không giới hạn ở:
/usr/bin/loadkeys
trong /etc/rc.local
vì biến môi trường đường dẫn không đảm bảo được thiết lập ở giai đoạn này. Và sudo
không cần thiết trong rc.local
.
rc.local
thực thi mỗi khi hệ thống khởi động. @ bukzor của sudo setupcon
là không trong rc.local
, đó là một thiết lập lệnh một lần, thay thế sơ đồ bàn phím mặc định của hệ thống, mà không cần thêm bất kỳ mã khởi động chạy. Thêm loadkeys
vào rc.local
, thêm mã khởi động bổ sung và sao chép những gì đã được thực hiện bởi các trình tải mặc định của hệ thống. Các rc.local
phương pháp thực sự có thể là ít an toàn vì nó phụ thuộc vào một con đường phi tiêu chuẩn với sơ đồ bàn phím.
setupcon
phương pháp. Thêm câu trả lời của riêng bạn hoặc chỉnh sửa của tôi nếu bạn muốn.
setupcon
. Dường như tháng tám đã giả định rằng sudo setupcon --save
sẽ đi vào rc.local
mà tôi không nghĩ là đúng, nhưng nếu có, bạn không cần phải sudo
ở rc.local
. Tôi nghĩ rằng chúng tôi cần thêm thông tin trước khi cập nhật câu trả lời của bạn. Câu hỏi chính là "Làm thế nào để cài đặt sơ đồ bàn phím đã sửa đổi để nó được tải tự động trong quá trình khởi động?" Tôi thực sự không biết cách nào tốt hơn rc.local
hoặc cài đặt sơ đồ bàn phím hoặc ngay cả khi cài đặt sơ đồ bàn phím sẽ hoạt động. Tôi đã nghiên cứu điều này gần đây và tôi sẽ kiểm tra lại ở đây.
Sử dụng 'ctrl: nocaps' thay vì 'ctrl: hoán đổi' nếu bạn chỉ muốn có hai khóa mũ (capslock bởi một tên khác vẫn siêu vô dụng).
X11: (xem thêm /usr/share/X11/xkb/rules/base.lst
:)
sudo vim /etc/default/keyboard
XKBOPTIONS="ctrl:swapcaps"
udevadm trigger --subsystem-match=input --action=change
sudo restart lightdm
Bảng điều khiển văn bản: (bị đánh cắp từ setupcon)
#!/bin/sh
. /etc/default/console-setup
. /etc/default/keyboard
ckbcomp $acm_option $rules_option -model "$XKBMODEL" \
"$XKBLAYOUT" "$XKBVARIANT" "$XKBOPTIONS" \
| gzip -9 2>/dev/null >/etc/console-setup/cached.kmap.gz
loadkeys /etc/console-setup/cached.kmap.gz
sudo setupcon --save
để thay đổi vĩnh viễn, thay vì chỉnh sửa RC.local. Điều đó về cơ bản giống nhưdumpkeys < /dev/tty1 | gzip > /etc/console-setup/cached.kmap.gz