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ổ.
Và 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