Làm cách nào để thay đổi bố cục bàn phím hiện được chọn từ dòng lệnh?


12

Tôi có bố trí bàn phím của mình (hai trong số chúng) và chuyển đổi giữa chúng được cấu hình thông qua lệnh sau:

setxkbmap -layout us,ru -option -option "grp:lctrl_lshift_toggle,ctrl:nocaps"

Bây giờ tôi muốn chuyển sang usbố trí, sử dụng một số lệnh dòng lệnh. Điều đó có thể không?

Câu trả lời:


13

Bạn có thể sử dụng xkb-switch ( -nchuyển sang bố cục tiếp theo):

xkb-switch -n

hoặc trạng thái xkblayout ( set +1trong trường hợp của bạn): trong trường hợp của bạn):

xkblayout-state set +1

hoặc xtetừ xautomation để mô phỏng Control_L+ Shift_Lnhấn / nhả phím:

xte 'keydown Control_L' 'keydown Shift_L' 'keyup Shift_L' 'keyup Control_L'

xkblayout-state rất tuyệt, cảm ơn! Tôi chỉ sử dụng xkblayout-state set 1, và tôi ngay lập tức nhận được usbố trí.
Rogach

2

Tìm kiếm của Stack Exchange cho kbdmap tìm thấy trang này mà không đề cập đến từ đó. Để rõ ràng, đây là một câu trả lời (không chính xác phù hợp với thẻ X11 của câu hỏi, nhưng nó sẽ giúp được ai đó)

Khi giới hạn trong bảng điều khiển ảo

- không có X.

kbdmap (1)

kbdmap, vidfont- kết thúc trước cho syscons và vt

Khoan cho phép dễ dàng cài đặt các keymaps có sẵn

Thực sự, nó dễ dàng và (đối với tôi, thay đổi cách bố trí bàn phím ở Anh) hiệu quả.

Khi sử dụng X

- ví dụ, với TrueOS Desktop dựa trên FreeBSD.

Từ bài 5 dưới Thay đổi bố cục bàn phím? | Diễn đàn FreeBSD (2015-08-03):

kbdmaplà dành cho giao diện điều khiển. setxkbmaplà tiện ích bạn muốn cho X11. Giáo dục

Có một cảnh báo, ví dụ như khi đổi sang Vương quốc U :

$ kbdmap
kbdcontrol: getting keymap: Inappropriate ioctl for device
You are not on a virtual console - expect certain strange side-effects
lang_default = en
dialect = en_...UTF-8
lang_abk = en

…

keymap="uk.kbd"
$ 

1

Tùy thuộc vào bản phân phối cho bố trí bàn phím, lệnh là

loadkeys <path/to/file>

loadkey /lib/kbd/keymaps/i386/qwerty/pt_PT.map.gz

Nếu tôi nhớ chính xác. Đồng thời kiểm tra manpage cho loadkey nếu bạn muốn gán các khóa cụ thể cho hành vi cụ thể.


Vấn đề là sau khi tôi làm (ví dụ) loadkeys us, nó đặt lại các cài đặt tôi đã tạo bằng setxkbmap (hai bố cục và chuyển đổi giữa chúng)
Rogach

Theo như tôi biết đây là lệnh thay đổi bố cục, nếu bạn có một thông tin cụ thể, thì tôi đoán cách tốt nhất là có một bí danh trong vỏ của bạn sẽ gọi các loadkey bằng cài đặt yout. ví dụ: load_us sẽ tải bàn phím cho chúng tôi và thực sự sẽ gọi loadkey /lib/kbd/keymaps/i386/qwerty/us.map.gz hoặc tương tự. Và tương tự cho các bố trí khác.
BitsOfNix

Nhưng làm thế nào để tôi thay đổi cài đặt bàn phím sau đó? Hiện tại, tôi thay đổi bố cục bằng cách nhấn Ctrl-Shift, sử dụng vít tải.
Rogach

hãy lùi lại một bước ở đây, từ dòng lệnh Tôi giả sử rằng bạn đang đề cập đến một thiết bị đầu cuối tty. Có nghĩa là bạn không sử dụng xterm / terminology / gnome-terminal hoặc bất kỳ trình giả lập nào khác nhưng thực tế bạn đang ở trong một môi trường không có máy chủ X. Lấy cái này sau đó bạn cần sử dụng loadkey, theo câu hỏi của bạn, tôi đã đưa cho bạn dòng lệnh, những gì bạn thực sự muốn dường như là một phím tắt. Nếu bạn có các khóa cụ thể được ánh xạ, thì bạn cần tạo bố cục của riêng mình và tải sau đó theo yêu cầu với các phím tải từ quan điểm cli. Nếu bạn muốn một phím tắt thay thế, sau đó cập nhật câu hỏi của bạn.
BitsOfNix

Không, tôi thực sự sử dụng môi trường đồ họa và thiết bị đầu cuối gnome nói riêng. Chỉ là tôi cần thay đổi lập trình bố cục X, để phản ứng với một số sự kiện - do đó, công cụ tty sẽ không hoạt động.
Rogach

0

Hãy xem bài viết hướng dẫn giả mạo này có tiêu đề: Thay đổi bố cục ngôn ngữ và bàn phím trên các bản phân phối khác nhau , cho các lệnh khác nhau để thay đổi bố cục bàn phím của bạn trên các bản phát hành khác nhau.

Hầu hết các lệnh này hiện dưới dạng GUI nhưng nếu bạn nhìn hầu hết chúng có thể được chạy từ dòng lệnh. Ví dụ: tôi đang sử dụng Fedora (Bản phân phối dựa trên Red Hat). Lệnh system-config-keyboardkhi chạy không có đối số hiển thị cho tôi GUI.

Nhưng nếu tôi chạy system-config-keyboard --helpnó cũng có thể chạy từ dòng lệnh:

$ system-config-keyboard --help
Usage: system-config-keyboard [--help] [--noui] [--text] [<keyboardtype>]
       --help            Print out this message.
       --noui            Run in command line mode.
       --text            Run in text interface mode.

       <keyboardtype> options are: ar-azerty, ar-azerty-digits, ar-digits, ar-qwerty, ar-qwerty-digits, be-latin1, ben, ben-probhat, bg_bds-utf8, bg_pho-utf8, br-abnt2, cf, croat, cz-lat2, cz-us-qwertz, de, de-latin1, de-latin1-nodeadkeys, dev, dk, dk-latin1, dvorak, es, et, fi, fi-latin1, fr, fr-latin1, fr-latin9, fr-pc, fr_CH, fr_CH-latin1, gr, guj, gur, hu, hu101, ie, is-latin1, it, it-ibm, it2, jp106, ko, la-latin1, mk-utf, nl, no, pl2, pt-latin1, ro, ro-cedilla, ro-std, ro-std-cedilla, ru, sg, sg-latin1, sk-qwerty, slovene, sr-cy, sr-latin, sv-latin1, tj, tml-inscript, tml-uni, trq, ua-utf, uk, us, us-acentos

Vì vậy, để thay đổi cách bố trí bàn phím của tôi sang tiếng Nga, tôi có thể chạy lệnh sau:

$ system-config-keyboard ru
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.