Ubuntu lưu cấu hình phím tắt ở đâu?


34

Có một vị trí nào trong "Ubuntu" lưu trữ một danh sách đầy đủ các phím / tổ hợp / phím tắt nào bị ràng buộc với cái gì không?

Phím tắt và chuột của Unity là gì? liệt kê một số phím tắt "Unity" cho Dash, Launcher, v.v. và Làm thế nào để liệt kê các phím bấm Compiz đang sử dụng? chỉ ra một cách để liệt kê các ràng buộc compiz, nhưng tôi đang tìm kiếm nhiều hơn thế (không chỉ một vài trong số các keybindings chỉ giới hạn ở Unity hoặc Compiz) mặc dù đó là một sự khởi đầu.

Có một danh sách toàn cầu về các ràng buộc chính / tổ hợp phím / Phím tắt đang sử dụng, được lưu trữ ở đâu đó trong Ubuntu hoặc có cách nào để biên dịch và liệt kê chúng không? Một ứng dụng cho Ubuntu và những thứ chạy trong đó (Unity, Compiz, Shortcut to Programs, v.v.).

Chắc chắn, Ubuntu phải lưu trữ cái này ở đâu đó để tổ hợp phím được nhấn trên bàn phím được hướng đến những gì nó được kết nối? Nếu không có vị trí như vậy trong Ubuntu, thì hãy đăng để trả lời, vì vậy người dùng trong tương lai, tìm kiếm đó, sẽ biết.


1
Ok, tôi đã đổi tên nó thành ít trùng lặp hơn
Jorge Castro

Hai câu trả lời cho đến nay đã đưa ra hai chuỗi sự kiện mâu thuẫn. Lakritsbollar tuyên bố Trình quản lý cửa sổ sẽ kiểm soát trước và sau đó chuyển nó xuống các ứng dụng, nfirvine tuyên bố các ứng dụng có được vết nứt đầu tiên sau đó chuyển cho trình quản lý Window. Đường nào vậy?
James

Một vài phím tắt khác có thể được tìm thấy tại
James

Câu trả lời:


10

Trình quản lý cửa sổ của bạn nhận được bất kỳ sự kiện quan trọng nào trước khi ứng dụng thực hiện, vì vậy nếu nó muốn tiêu thụ những sự kiện đó, thì nó sẽ làm như vậy và các ứng dụng của bạn sẽ không bao giờ nhận được chúng. Nếu trình quản lý cửa sổ không muốn phản ứng với các sự kiện chính, nó sẽ chuyển chúng tới ứng dụng.

Bạn có thể tự xác minh điều này theo cách sau:

  1. Bắt đầu một thiết bị đầu cuối.
  2. Bắt đầu xev | grep KeyPress, trình xem sự kiện X.
  3. Nhấn Alt, lưu ý rằng xevnó có sự kiện quan trọng trong cửa sổ đầu cuối của nó.
  4. Nhấn Ctrl, một lần nữa lưu ý rằng xevcó sự kiện. Hãy lưu ý những gì các cửa sổ thiết bị đầu cuối trông như thế nào ngay bây giờ.
  5. Nhấn Left arrowđể đi đến không gian làm việc khác. (Tôi giả sử bạn có khóa phím tắt của trình quản lý cửa sổ.)
  6. Nhấn Right arrowđể quay lại nơi bạn đang chạy xev. Lưu ý rằng nó không bao giờ nhận được bất kỳ sự kiện quan trọng nào để bạn chuyển đổi không gian làm việc thông qua các phím mũi tên trái và phải - đầu ra giống như trong Bước 4.

Vì vậy, bạn thấy rằng trình quản lý cửa sổ trong thực tế có tất cả các sự kiện chính và nếu nó không muốn nắm bắt chúng, nó sẽ chuyển chúng đến ứng dụng. Sau đó, ứng dụng sẽ thực hiện tương tự cho các widget của riêng nó (như cách bạn có thể nhấn Entercả ngày trong trình duyệt web của mình nhưng nó sẽ không làm gì cho đến khi bạn đặt con trỏ vào thanh địa chỉ hoặc một số trường nơi bạn có thể nhập văn bản) .

Tùy thuộc vào ứng dụng để đặt các phím tắt riêng và các ứng dụng được cấu hình độc lập với nhau.

Trong KDE 3.x, nếu tôi nhớ chính xác, bạn có thể đặt các phím tắt mặc định (ví dụ: Ctrl-sđể lưu) trong Trung tâm điều khiển KDE và nó sẽ áp dụng cho tất cả các ứng dụng được viết bằng bộ công cụ Qt, nhưng tôi không biết liệu điều đó có còn khả thi hay không kể từ khi họ chuyển sang KDE 4.


Đó không phải là câu trả lời 100%, nhưng đó là câu trả lời. Về cơ bản không có nơi trung tâm nơi các ràng buộc / phím tắt được lưu trữ. Trình quản lý cửa sổ bị bẻ khóa đầu tiên tại các lần nhấn phím và sau đó các ứng dụng đang hoạt động. Tập trung cũng đóng một phần.
James

20

Kể từ Ubuntu 17.10

Trên đường dẫn này :

dconf dump /org/gnome/desktop/wm/keybindings/
dconf dump /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/  # Custom

Bạn cũng có thể sử dụng dconf-editor(GUI) hoặc gsettings(CLI).

Kể từ Ubuntu 12.10-17.04

~/.config/dconf/user(trong trình soạn thảo dconf: org.gnome.settings-daemon.plugins.media-keys.custom-keybindings(phím tắt tùy chỉnh)

~/.config/compiz-1/compizconfig

Cho đến Ubuntu 12.04

Các phím tắt được đặt khác nhau tùy thuộc vào máy tính để bàn bạn đang sử dụng (gnome / unity, kde, xfce, lxde, v.v.).

Đối với gnome, chúng nằm dưới
~/.gconf/desktop/gnome/keybindings(phím tắt tùy chỉnh)

và dưới
~/.gconf/apps/metacity.


11.10 không sử dụng Gnome hoặc Metacity.
nfirvine

Nhưng đường dẫn đến các phím tắt vẫn hoạt động khi tôi sử dụng nó.
desgua

Khi nhìn vào bản cài đặt Ubuntu 11.10 khá mới trên macbook pro, vị trí đầu tiên không có tệp keybinding nhưng vị trí thứ hai có cái này:general/ global_keybindings/ window_keybindings/
Victor S

1
Vị trí đầu tiên là cho các phím tắt tùy chỉnh.
desgua

1
@AnonymousPlatypus xem tại đây để được gsettingshướng dẫn
wjandrea

4

Không, không có nơi duy nhất mà tất cả các phím tắt được lưu trữ. Các ứng dụng có thể chọn để lưu trữ cấu hình của chúng bất cứ nơi nào chúng chọn.

Điều đó nói rằng, bạn chủ yếu nhìn vào hai cấp độ: cấp độ ứng dụng (như Ctrl-C để sao chép trong Firefox) và cấp độ trình quản lý cửa sổ (như Win + D để hiển thị máy tính để bàn). Compiz sử dụng gconf để lưu trữ cấu hình của nó .

Đối với các ứng dụng, bạn có thể phân chia chúng theo bộ công cụ của chúng. Cụ thể, các ứng dụng GTK cũng sử dụng gconf.

Chắc chắn, Ubuntu phải lưu trữ cái này ở đâu đó để tổ hợp phím được nhấn trên bàn phím được hướng đến những gì nó được kết nối?

Không hẳn. Ứng dụng tập trung được kích hoạt đầu tiên tại một sự kiện bàn phím X, nhưng nếu không, nó sẽ tạo ra các ứng dụng khác, cụ thể là trình quản lý cửa sổ. Do đó, bạn có thể có một trò chơi bắt Alt + F4 và không đóng cửa sổ (chết tiệt, Jamestown!). Tôi nghĩ rằng bạn đang nghĩ rằng nó đi đến một số bộ định tuyến sự kiện trung tâm, sau đó khớp với một số cơ sở dữ liệu và được chuyển đến đích của nó. Nó giống như vượt qua một chai đồ uống xung quanh: vượt qua, uống một chút nếu bạn muốn và vượt qua phần còn lại, hoặc lấy toàn bộ và tham lam.

Môi trường Linux / FOSS (bạn có thể nhận thấy) khá dân chủ và việc tất cả các ứng dụng đồng ý trên một kho lưu trữ cấu hình bàn phím trung tâm duy nhất là một việc vặt. Đối với một điều, bạn đã có các ứng dụng không rõ ràng đã được viết từ lâu và sẽ không biết về nó.

Cập nhật: Theo các tài liệu Xlib về chủ đề này :

Bắt đầu với cửa sổ nguồn, máy chủ X tìm kiếm phân cấp cửa sổ cho đến khi nó xác định vị trí cửa sổ đầu tiên được chỉ định bởi khách hàng có hứng thú với các sự kiện này. Nếu một trong các cửa sổ can thiệp có mặt nạ không tuyên truyền được đặt để cấm tạo loại sự kiện, các sự kiện của các loại đó sẽ bị loại bỏ.

Cũng thế,

Để nhận các sự kiện KeyPress, KeyRelease, ButtonPress và ButtonRelease, hãy đặt các bit KeyPressMask, KeyReleaseMask, ButtonPressMask và ButtonReleaseMask trong thuộc tính mặt nạ sự kiện của cửa sổ.

bạn có thể đặt một thuộc tính để vô hiệu hóa lan truyền .

Vấn đề là, bạn không nói cho X biết những phím nào để nghe, vì vậy bạn không bao giờ có thể nói cho tiên nghiệm biết ứng dụng đó nghe những phím nào (huống chi là những gì họ làm) hoặc thực sự liệu họ có ý định tuyên truyền nó nếu thực tế chúng là lắng nghe nó Do đó, đăng ký trung tâm là không thể ở cấp X, vì vậy bạn phải thực hiện ở cấp công cụ, điều này thực tế là không thể. : D


Tôi đã đi đến khá nhiều kết luận tương tự, trọng tâm đó xác định những gì xử lý đầu vào. Điều này có thể được quan sát bằng cách mở một cửa sổ trình duyệt, sau đó mở một cửa sổ đầu cuối mà bây giờ trở thành cửa sổ hoạt động. Nếu bạn giữ chuột trên cửa sổ trình duyệt thì sử dụng bánh xe cuộn, nó sẽ cuộn cửa sổ trình duyệt mặc dù cửa sổ Terminal là cửa sổ hoạt động.
James

Tôi đã hy vọng có một câu trả lời dễ dàng cho câu hỏi của mình, hoặc ít nhất là một cách dễ dàng để biên dịch và liệt kê các phím tắt, nhưng dường như không thể đưa ra cách nhấn phím cuối cùng đến nơi chúng được xác định. Các phím tắt / phím bấm dường như được trải đều ra và việc sử dụng chúng có xu hướng phụ thuộc vào những gì đang hoạt động và nơi tập trung hiện tại.
James

1
Tuy nhiên, tôi không cùng bạn trên ứng dụng nhận sự kiện quan trọng trước trình quản lý cửa sổ. Tôi nghĩ rằng Trình quản lý cửa sổ có bản crack đầu tiên tại sự kiện và sau đó là các ứng dụng đang hoạt động.
James

1

Các ứng dụng lưu trữ các phím tắt của chúng một cách độc lập, do đó không có vị trí trung tâm, nơi chúng được lưu trữ.

Tôi không hiểu toàn bộ quá trình của bàn phím tương tác - HĐH - kernel - X11 - Trình quản lý cửa sổ - Môi trường máy tính để bàn - Ứng dụng, nhưng nếu một cửa sổ nhất định, như Gedit, có tiêu điểm bàn phím, nó có thể xử lý đầu vào của chính nó, và nó làm như vậy.


-1

Trong 11.10, trong Cấu hình hệ thống -> Bàn phím -> Phím tắt, bạn sẽ nhận được một danh sách khá lớn về chúng. Có phải đó là những gì bạn đang tìm kiếm?


Anh ấy đang tìm kiếm tập tin chứa tất cả các phím tắt, không chỉ là một danh sách của chúng.
Đánh dấu O'Sullivan
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.