Làm cách nào để biết tệp ~ / .XCompose đã được tải?


18

Tôi đã thêm một chuỗi đơn giản, nhưng nó sẽ không hoạt động. Làm cách nào để biết hệ điều hành (Ubuntu 12.10 với Unity) có thực sự đang tải tệp không?


Tôi thấy điều này - không, đó không phải là một tập lệnh thông thường nên những phương thức đó không hoạt động, rõ ràng. Chà, sau đó tôi không biết. Nhưng kiểm tra các liên kết; có lẽ bạn có thể chọn một cái gì đó
Emanuel Berg

Câu trả lời:


15

Các định nghĩa soạn ( $XCOMPOSE, ~/.XComposehoặc một tập tin dưới /usr/share/X11/locale) được nạp bởi mỗi ứng dụng client, không phải do máy chủ X. Vì vậy, hãy chắc chắn rằng ứng dụng bạn đang thử nghiệm đang tải ~/.XCompose. Bạn có thể xem những gì tập tin đang đọc với strace:

$ strace -e open xterm |& grep Compose
open("/home/gilles/.XCompose", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/X11/locale/en_US.UTF-8/Compose", O_RDONLY) = 5
$ touch .XCompose
$ strace -e open xterm |& grep Compose
open("/home/gilles/.XCompose", O_RDONLY) = 5

Hầu hết các ứng dụng chỉ tải tệp khi chúng khởi động, vì vậy bạn sẽ phải khởi động lại ứng dụng nếu bạn thay đổi định nghĩa soạn thảo.

Nếu ứng dụng không tải các tệp này, có khả năng chúng không sử dụng 'Phương thức nhập X' (xim). Bạn có thể buộc các ứng dụng GTK hoặc QT sử dụng xim:

$ GTK_IM_MODULE=xim QT_IM_MODULE=xim strace -e open xterm |& grep Compose

Nếu điều này khắc phục được sự cố, thì bạn nên xem xét việc đặt các biến môi trường trên toàn cầu hoặc sử dụng aliasnhư một cách giải quyết trên cơ sở mỗi ứng dụng.

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.