Thay đổi phím tắt TTY mặc định


8

Tôi muốn thay đổi phím tắt mặc định để chuyển qua lại thành tty. Theo mặc định, nó là ctrl + alt + F #. Tôi đã thử tạo một lối tắt tùy chỉnh bằng cài đặt bàn phím của Ubuntu nhưng nó chỉ hoạt động trong khi sử dụng giao diện đồ họa khi tôi quay lại tty nó không hoạt động. Vì vậy, tôi cần tìm ra cách thay đổi ràng buộc mặc định của phím tắt ctrl + alt + F # để tạo một phím duy nhất chuyển đổi qua lại giữa hai TTY.


2
Bạn có chắc chắn đây không phải là bản sao của Askubfox.com/questions/77982/ mẹo
Jacob Tomlinson

Bạn có ý nghĩa gì khi "khóa đơn chuyển đổi qua lại giữa hai TTY?"
ish

@jacob phần nào nhưng có lẽ không chính xác :)
Rinzwind

À đúng rồi, tôi hiểu rồi, đây là yêu cầu một khóa duy nhất bật tắt thay vì một bộ khóa khác.
Jacob Tomlinson

Câu trả lời:


10

Bạn có thể sử dụng bindđể liên kết một khóa với một số chức năng. Đây là những gì tôi đã làm:

bind '"\ea": ". ~/newScript.sh\n" '

Đây newScript.shlà tập tin thay đổi tty và \eacó nghĩa là bất cứ khi nào Alt+Ađược nhấn, tập lệnh sẽ thực thi.

Nội dung của newScript.sh:

#! /bin/bash
ttyNum="$(tty)"
ttyNum=$(echo ${ttyNum##*y})
ttyNum=$(( (ttyNum +1) % 7))
chvt $ttyNum

Lưu ý rằng nếu bạn muốn lưu trữ các ràng buộc khóa vĩnh viễn, bạn có thể lưu trữ chúng trong tệp `~ / .inputrc 'của bạn. Để biết thêm thông tin, bạn có thể truy cập liên kết này: http://www.techrepublic.com/article/find-and-bind-key-fterences-in-bash/5683375

Cập nhật: Bạn có thể lưu trữ binddòng trong ~/.bashrctệp của mình để không phải làm lại.


Lưu ý rằng điều này sẽ không hoạt động nếu bạn chưa đăng nhập hoặc nếu bạn không chạy bash. Giải pháp sử dụng remap.inc (xem câu trả lời của tôi bên dưới) sẽ hoạt động cho dù bạn có đăng nhập hay không.
tháng

7

Có một lệnh cho điều đó chvt.

chvtlệnh là viết tắt của CHange Virtual Terminal. Nó có một tùy chọn là một số cho biết thiết bị đầu cuối ảo để chuyển sang.

Ví dụ: nếu bạn đã đăng nhập tại thiết bị đầu cuối ảo đầu tiên và bạn muốn chuyển sang thứ 7 nơi xserver thường hiển thị GUI, sau đó chạy chvtnhư sau:

chvt 7

Và để trở về thiết bị đầu cuối ảo thứ 1, gõ:

chvt 1

Vì vậy, tất cả những gì bạn cần làm là thêm lệnh đó vào 7 phím tắt và bạn có thể chuyển đổi.


1
Làm thế nào bạn sẽ làm điều đó khi bạn nhấn phím trong khi nói, tty1?
John S Gruber

@john: trói nó lại. green7 đã giải thích rằng.
Rinzwind

5

EDIT: ngớ ngẩn tôi! Chỉ cần nhìn vào tệp /etc/console-setup/remap.inc

Bạn sẽ tìm thấy mọi thứ bạn cần trong tập tin đó. Trong mọi trường hợp, giải thích được đưa ra dưới đây.

Thật không may, "liên kết" sẽ chỉ hoạt động với phiên shell.

Những gì bạn cần làm là thay đổi ánh xạ giao diện điều khiển. Bạn có thể làm điều đó bằng cách sử dụng chương trình "loadkey" (man loadkey). Đầu tiên, kết xuất ánh xạ hiện tại để xem định dạng của tệp sẽ như thế nào:

dumpkeys > default_keys.txt

Lưu ý rằng bạn cần phải làm điều đó từ bảng điều khiển văn bản chứ không phải X, vì vậy hãy nhấn Ctrl-Alt-F1 trước để chuyển sang một!

Đây là một dòng ví dụ từ tập tin đó:

alt keycode  59 = Console_1

Điều đó có nghĩa là khóa tạo mã 59, được nhấn bằng công cụ sửa đổi "alt" (được xác định ở một nơi khác trong tệp đó) sẽ tạo ra một sự kiện "Console_1" - chuyển sang bảng điều khiển ảo 1.

Làm thế nào để tìm ra khóa nào tạo mã nào? Sử dụng showkey chương trình cho điều đó. Tôi bắt đầu chương trình và nhấn "F1":

komp $ showkey
keycode  59 press
keycode  59 release

Cách duy nhất để thoát khỏi chương trình này là nhắm mắt lại và suy ngẫm về bản chất của Nguồn mở trong mười giây. Hoặc chỉ cần kiềm chế chạm vào bàn phím trong mười giây, cũng hoạt động. Sử dụng phương pháp này để tìm ra dòng nào trong tệp sơ đồ bàn phím mà bạn sẽ cần thay đổi ánh xạ chính.

Giả sử, bạn muốn chuyển sang giao diện điều khiển 1 bằng cách sử dụng "ctrl 1". Bạn sẽ thấy rằng mã khóa cho 1 là 2. Lưu dòng sau vào tệp có tên "myownkeys.txt":

control keycode 2 = Console_1

Chuyển sang bảng điều khiển văn bản (nếu bạn chưa thực hiện) và chạy

sudo loadkeys myownkeys.txt

Presto, Ctrl-1 sẽ chuyển bạn đến bảng điều khiển 1. Thêm nhiều dòng vào tệp của bạn cho các phím tắt. Nếu bạn muốn làm cho nó vĩnh viễn, bạn có thể [EDIT] sửa đổi tệp /etc/console-setup/remap.inc

Nhân tiện, ngoài Console_n, bạn còn có "Decr_console" và "Incr_Console" - chuyển sang bảng điều khiển bên trái và bảng điều khiển bên phải, tương ứng. Theo mặc định, chúng bị ràng buộc với alt-left và alt-right.

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.