Thay đổi mũ khóa để kiểm soát trong bảng điều khiển ảo trên Ubuntu 17


10

Tôi muốn thay đổi hành vi Caps Lock trong các thiết bị đầu cuối ảo (ví dụ: tty CtrlAltF3) để nó hoạt động như một công cụ sửa đổi Điều khiển. Lý tưởng nhất là tôi cũng muốn nó hoạt động như Escape khi bị ép một mình, nhưng chỉ cần thực hiện hành vi Điều khiển là khó khăn.

Tôi đang chạy Ubuntu 17.04. Tôi đã đọc và thử nhiều cách tiếp cận để thực hiện thay đổi này, nhưng dường như không có cách nào áp dụng cho hệ thống của tôi như được mô tả. Tôi có cảm giác rằng systemd đóng một phần trong điều này, nhưng các chi tiết không rõ ràng.

Tôi đã viết một tập tin caps_control.kmap, mà ánh xạ mũ để kiểm soát,

keymaps 0-255
keycode  58 = Control

Nếu tôi chạy loadkeys caps_control.kmaptừ một bảng điều khiển ảo, nó hoạt động. Bây giờ tôi muốn tải nó tự động khi khởi động / đăng nhập / bất cứ điều gì ...

Tôi tìm thấy tài liệu tham khảo để sử dụng /etc/rc.localđể làm như vậy, nhưng hệ thống của tôi không có tập tin như vậy, mặc dù nó có một vài thư mục thích /etc/rc0.d/, /etc/rc1.d/...

Nghe có vẻ như vì Ubuntu 17 sử dụng sytemd, tôi nên sử dụng localectlđể quản lý loại điều này, nhưng tôi không rõ làm thế nào để làm điều đó. Ví dụ,

$ localectl status
   System Locale: LANG=en_US.UTF-8
       VC Keymap: n/a
      X11 Layout: us
       X11 Model: pc105
$ localectl list-keymaps
Couldn't find any console keymaps.

Trang hướng dẫn cho localectlđề cập /etc/locale.conf/etc/vconsole.conf, không có trang nào tồn tại trên hệ thống của tôi.

Tôi hoàn toàn thua lỗ. ai đó có thể chỉ cho tôi phương hướng đúng không?


Bạn có cần thay đổi này để hoạt động cho tất cả người dùng hoặc chỉ của riêng bạn không?
acer

@acer Dù bằng cách nào cũng phù hợp với tôi, vì tôi thực sự là người dùng duy nhất trên máy này.
ivan

Hmm ... Bạn thêm một dòng trong ~ / .profile với dòng loadkeys caps_control.kmapđó sẽ thực thi khi bạn đăng nhập.
acer

@acer Gọi loadkeystừ ~ / .profile dường như có vấn đề. Khi tôi đăng nhập, tôi gặp lỗi "Không thể nhận được mô tả tệp tham chiếu đến bảng điều khiển".
ivan

Câu trả lời:


11

Để biến Caps Lock thành một công cụ sửa đổi Ctrl bổ sung, cũng hiệu quả trong các bảng điều khiển tty, hãy mở /etc/default/keyboardđể chỉnh sửa và thiết lập:

XKBOPTIONS=ctrl:nocaps

Nếu bạn đã XKBOPTIONSthiết lập, hãy thêm ctrl:nocapsvào giá trị hiện tại của nó bằng dấu phẩy cho dấu phân cách, ví dụ:

XKBOPTIONS="terminate:ctrl_alt_bksp,ctrl:nocaps"

Nên có hiệu lực sau khi khởi động lại tiếp theo hoặc ban hành setupconlệnh.

Tùy chọn nên có mặt khi chạy localectl status:

$ localectl status | grep caps
     X11 Options: ctrl:nocaps

Và trong phiên X, một cách khác để xác minh rằng nó đã được đặt là:

$ gsettings get org.gnome.desktop.input-sources xkb-options
['ctrl:nocaps']

1
một tùy chọn XKB khác là "ctrl:nocaps". trong X, sự khác biệt là tinh tế: với ctrltùy chọn xevvà các công cụ khác sẽ thấy Control_Lbiểu tượng khi nhấn phím CapsLock, trong khi capstùy chọn vẫn sẽ hiển thị Caps_Lockphím. Tôi không chắc sự khác biệt đó sẽ chuyển sang sơ đồ bàn điều khiển ảo.
quixotic

@quixotic: Cảm ơn đã đề cập ctrl:nocaps. Tôi đã thêm nó vào câu trả lời của tôi.
Gunnar Hjalmarsson

Bất cứ ý tưởng tại sao điều này không làm việc cho tôi? Đó thực sự là một trong những điều đầu tiên tôi đã thử, và tôi thích cách tiếp cận. Thật không may, nó không có tác dụng trên hệ thống của tôi.
ivan

1
@ivan: Tôi vừa tự kiểm tra, và thấy rằng đề xuất đầu tiên của tôi ( caps:ctrl_modifier) không hiệu quả trong tty. Tuy nhiên, đối với tôi (vào ngày 17.10) ctrl:nocapslà. Xin vui lòng xem câu trả lời chỉnh sửa của tôi.
Gunnar Hjalmarsson

1
@GunnarHjalmarsson Tôi không quá quen thuộc với phương pháp dịch các bản đồ XKB của debian / ubfox sang các bản đồ điều khiển ( ckbcomptôi nghĩ vậy?). Tôi không nhớ caps:ctrl_modifiertùy chọn mà bạn đề cập lần đầu tiên, vì vậy đã tìm kiếm nó để so sánh với tùy chọn ctrl:nocapstôi thường sử dụng và nghĩ rằng sự khác biệt có thể đáng được đề cập ở đây. rất vui vì nó hữu ích
quixotic
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.