Đặt vĩnh viễn các tùy chọn bố trí bàn phím với setxkbmap trong gnome / unity


28

Ubuntu 13.10 1 (và có thể là gnome ngược dòng) đã giới thiệu một lỗi rất khó chịu : nhấn phím tắt chuyển đổi bố cục bàn phím làm cho tiêu điểm đi vào một số cửa sổ hệ thống, sau đó quay lại cửa sổ nơi nhấn phím tắt. Một số ứng dụng có một số hành động bị ràng buộc để thay đổi tiêu điểm, ví dụ twitter (trong trình duyệt) sẽ đóng trường nhập văn bản trả lời khi mất tiêu điểm, v.v.

X có cơ chế chuyển đổi dựng sẵn, và nó tốt hơn nhiều, ngoài ra nó không liên quan đến chuyển đổi lấy nét, nó chuyển đổi ngay lập tức (trình chuyển đổi gnome đôi khi cũng bị chậm).

Làm cách nào tôi có thể thiết lập tùy chọn xkbmap để cài đặt sẽ duy trì sau khi khởi động lại và sẽ không được Gnome đặt lại?

Những gì tôi đã thử:

Đầu tiên, chỉ cần thực thi setxkbmap:

setxkbmap -layout "us,ru"
setxkbmap -option "grp:caps_toggle,grp_led:scroll,compose:ralt"

Nhưng nó chỉ hoạt động:

  1. Đối với phiên hiện tại
  2. Cho đến khi Gnome sẽ ghi đè lên nó (ví dụ như chạm vào một cái gì đó trong org.gnome.desktop.input-sourcesthiết lập lại kích hoạt của gconf ).

Thứ hai, thêm tùy chọn xkb vào cấu hình Xorg:

Một tùy chọn khác là thêm sau vào xorg config:

Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout" "us,ru"
        Option "XkbModel" "pc105"
        Option "XkbVariant" "pc105"
        Option "XkbOptions" "grp:rctrl_toggle,grp_led:scroll"
EndSection

Xorg hiểu rằng trong quá trình khởi động:

[    33.791] (**) Option "xkb_rules" "evdev"
[    33.791] (**) Option "xkb_model" "pc105"
[    33.791] (**) Option "xkb_layout" "us,ru"
[    33.791] (**) Option "xkb_variant" "pc105"
[    33.791] (**) Option "xkb_options" "grp:rctrl_toggle,grp_led:scroll"

Nhưng chuyển đổi cấu hình vẫn đặt lại sau, có thể bởi gnome.

Thứ ba, tin tưởng

nhập mô tả hình ảnh ở đây

Tôi đã xkb-optionssourcesthiết lập org.gnome.desktop.input-sources, nhưng Gnome vẫn đặt xkb thành bố cục tiếng Anh duy nhất:

$ setxkbmap -print -verbose 10
Setting verbose level to 10
locale is C
Trying to load rules file ./rules/evdev...
Trying to load rules file /usr/share/X11/xkb/rules/evdev...
Success.
Applied rules from evdev:
rules:      evdev
model:      pc105
layout:     us
options:    grp_led:scroll
Trying to build keymap using the following components:
keycodes:   evdev+aliases(qwerty)
types:      complete
compat:     complete+ledscroll(group_lock)
symbols:    pc+us+inet(evdev)
geometry:   pc(pc105)
xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)" };
    xkb_types     { include "complete"  };
    xkb_compat    { include "complete+ledscroll(group_lock)"    };
    xkb_symbols   { include "pc+us+inet(evdev)" };
    xkb_geometry  { include "pc(pc105)" };
};

Thứ tư, một lựa chọn khác trong gconf

nhập mô tả hình ảnh ở đây

Cài đặt org.gnome.settings-daemon.peripherals.keyboardcũng không hoạt động đối với tôi. Không có gì thay đổi.

Cập nhật 1 : Có thảo luận đề nghị loại bỏ /usr/lib/gnome-settings-daemon-3.0/libkeyboard.so. Ít nhất điều này sửa một số thiết lập lại của xkbmap (tức là sau màn hình khóa).

1 Tôi sử dụng 14.04, nhưng vấn đề mất tập trung vẫn không được khắc phục. ( Báo cáo chưa được xác nhận trong Gnome ngược dòng )


Bạn đã thử thiết lập bố cục chính xác trong gnome và sau đó thêm hai setxkbmaplệnh vào của bạn ~/.profile? Bằng cách đó, chúng sẽ được chạy mỗi khi bạn đăng nhập và vì có cùng cài đặt trong Gnome, nên nó không thay đổi bất cứ điều gì nếu nó được đặt lại.
terdon

1
@terdon nó đặt lại ngay cả sau khi khóa màn hình. Và nó đặt lại về trạng thái "chỉ chúng tôi, không chuyển đổi", không chuyển sang cài đặt được xác định trong org.gnome.desktop.input-sources.
đánh cắp

Lạ thật. Bạn có chắc chắn rằng bạn đang sử dụng Gnome chứ không phải Unity? Bạn đã thử thay đổi cài đặt thông qua GUI thông thường thay vì dconf-editorchưa?
terdon

@terdon vâng, đó là sự thống nhất, nhưng nó sử dụng những thứ bị mất của gnome, như gnome-settings-daemon, vốn thiết lập lại sơ đồ bàn phím.
đánh cắp

Vì vậy, bạn đã thử cài đặt các cài đặt chính xác từ Unity GUI chưa?
terdon

Câu trả lời:


19

Để ngăn gnome đặt lại cài đặt bàn phím trong X, tôi sử dụng lệnh này:

gsettings set org.gnome.settings-daemon.plugins.keyboard active false

Điều này làm việc cho tôi.


4
Tôi đã thử điều này trên Ubuntu 14.04 và nó không làm gì cả. Bạn có bất kỳ giải thích lại: làm thế nào điều này được cho là làm việc?
Nickolai Leschov

2
Làm việc cho tôi vào 14.04
ndemou

2
Làm việc cho tôi vào 16.04, sau khi thử mọi thứ khác.
Leonardo Castro

1
Phương pháp duy nhất tôi thấy làm việc trong 17.04.
Cnly

1
Hãy nhớ rằng Ubuntu thực sự đã tạo ra một unity-settings-daemon trong một khoảng thời gian, nhưng bây giờ họ sẽ quay trở lại Gnome một lần nữa, điều này có thể tiếp tục hoạt động.
dragon788

6

Tôi cũng đã từng làm điều này giống như bạn, nhưng với Ubuntu 14.04 (LTS), Xubfox, xfce 4.12 và xkbd (từ các tính năng xfce). Ctrl + Space để thay đổi bố cục bàn phím hoạt động, nhưng Alt + Shift thì không (các phím chỉ sửa đổi).

Cuối cùng quản lý để làm cho mọi thứ hoạt động-

1. Run ibus-setup (Keyboard Input Methods application).
2. Goto Advanced tab.
3. Check 'Use system keyboard layout'.
4. Click 'Close'

5. Run xfce4-keyboard-settings (Keyboard application).
6. Goto Layout tab.
7. Uncheck 'Use system defaults'
8. Select 'Keyboard model' (typically 'Generic 105-key (Intl) PC' will do)
9. Set 'Change layout option' to your required switching keys combination (typically Alt+Shift will do).
10. Add languages to 'Keyboard layout'.
11. Click 'Close'.
12. Restart the computer

Bạn đã hoàn tất! Sử dụng Alt + Shift để thay đổi bố cục bàn phím.


1
Tại sao bạn khuyên bạn nên sử dụng xfce4-keyboard-settingstrong câu hỏi yêu cầu trợ giúp với gnome / unity, cụ thể?
Nickolai Leschov

2

Tôi chỉ đọc bài viết này về khóa màn hình, có thể liên quan. Theo bài báo, khóa màn hình có hậu quả dự định là chặn các thiết bị đầu vào và thao tác địa phương. Có vẻ như bạn có một vài lựa chọn:

  1. Dừng khóa màn hình, có lẽ điều này bao gồm cả màn hình chào cũng có chức năng tương tự
  2. Sử dụng các công cụ quản lý năng lượng khác nhau
  3. Ngừng sử dụng ibus để chuyển đổi im (Có lẽ FCITX?)
  4. Tạo một cái móc cho các sự kiện mở khóa màn hình như được mô tả ở đây .

Có một cuộc thảo luận thú vị về sự kiện này và các sự kiện liên quan có thể được tìm thấy trong danh sách gửi thư ubfox-dev: https : //lists.ub Ubuntu.com/archives/ubfox-devel/2013-November/037768.html


1

Cách giải quyết của thành viên WoF trong Ubuntu lỗi tracker, cho Ubuntu 14.10 sử dụng gxkb :

https://bugs.launchpad.net/gnome-sinstall-daemon/+orms/1244090/comments/39

cách giải quyết này hoạt động cho Ubuntu 14.10:

  • trong Cài đặt-> Nhập văn bản xóa tất cả các nguồn đầu vào, chỉ để lại tiếng Anh
  • cài đặt gxkb (trình chuyển đổi bố cục): sudo apt-get install gxkb
  • thêm gxkb vào các ứng dụng khởi động thông qua gnome-chỉnh-tool
  • thiết lập các phím nóng gxkb trong ~ / .config / gxkb (mặc định là alt_shift, nhưng trong 14.10 thì nó không hoạt động. ctrl_shift hoạt động tốt)

Phiên bản mới của gxkb có appindicator cho ubfox. có thể được cài đặt qua ppa: zen-root / gxkb-ổn định


(Chưa thử)
kolen

E: Không thể xác định vị trí gói gxkb
e18r

0

Đầu tiên, chỉ cần thực thi setxkbmap:

setxkbmap -layout "chúng tôi, ru" setxkbmap -option "grp: caps_toggle, grp_led: scroll, compose: ralt"

Nhưng nó chỉ hoạt động:

For current session
Until Gnome will overwrite it (for example touching something in gconf's org.gnome.desktop.input-sources triggers reset).

Cũng như Gnome "đặt lại" nó tôi không biết. Tôi biết làm thế nào bạn có thể ở lại mỗi lần khởi động lại mặc dù tôi phải làm chính xác loại điều tương tự cho con chuột Logitech của tôi. Nó có nhiều nút mà tôi muốn ánh xạ lại theo một cách nhất định và tôi phải cài đặt nó khi khởi động lại.

Vì vậy, những gì bạn làm cho đó là tạo một tệp văn bản. Sau đó, trong tệp văn bản đó:

#!/bin/bash

và ngay bên dưới mà đưa vào các lệnh của bạn. Ví dụ chuột của tôi trông như thế này:

#!/bin/bash
xinput set-button-map "Logitech USB-PS/2 Optical Mouse" 1 2 3 4 5 8 9 6 7 10 11 12 13 14 15 16

Tiếp theo bạn sẽ lưu nó như bất kỳ tên nào bạn muốn và di chuyển nó đến một nơi nào đó như thư mục nhà của bạn. nó phải ở đó "mãi mãi".

sau đó chỉ cần mở Ứng dụng khởi động của bạn và Thêm tệp vào phần khởi động của bạn và sau đó bạn không phải lo lắng về việc nó chỉ kéo dài cho phiên. Sẽ ổn khi khởi động lại máy tính của bạn vì cài đặt của bạn sẽ quay trở lại thông qua tệp bạn vừa thêm.

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.