2012-02-15 31 views
8

Dựa trên câu hỏi này: How to set emacsclient background as Emacs background?làm thế nào để kiểm tra xem emacs trong khung hoặc trong thiết bị đầu cuối?

Tôi chỉ cần nền cho khung chứ không phải cho thiết bị đầu cuối và không cho bàn điều khiển.

Dưới đây là cách tôi đang cố gắng để thêm bản sửa lỗi cho giao diện điều khiển

(when (display-graphic-p) 
    (tool-bar-mode -1) 
    (scroll-bar-mode t) 
    (require 'nyan-mode) 
    (nyan-mode) 
    (nyan-start-animation) 
    (mouse-wheel-mode t) 
    (setq default-frame-alist 
      '((background-color . "#101416") 
      (foreground-color . "#f6f3e8")) 
     ) 
) 

Nhưng với điều đó tôi không có được nền tảng về emacsclient (ngay cả đối với khung). Có lẽ kiểm tra thậm chí không chạy trong emacsclient?

Về cơ bản, tôi không muốn thêm nền vào emacsclient trong thiết bị đầu cuối và bảng điều khiển nhưng trong khung.

+0

Mã của bạn đang được đánh giá ở đâu? Hãy nhớ rằng .emacs chỉ được đánh giá một lần khi Emac bắt đầu, không phải khi emacsclient kết nối. – phils

+1

Được rồi, vì vậy tệp .emacs của bạn đánh giá trực tiếp hàm '(nCdy-mode)', có nghĩa là phần tử '(when (display-graphic-p) ...)' của bạn sẽ được đánh giá một lần tại hầu hết *, và sau đó chỉ khi '(display-graphic-p)' là true tại thời điểm Emac bắt đầu. (*) Trừ khi bạn cũng đang gọi (nCdy-mode) ở nơi khác, nhưng bạn không nói rằng bạn đang có. – phils

Trả lời

5
(defun my-frame-config (frame) 
    "Custom behaviours for new frames." 
    (with-selected-frame frame 
    (when (display-graphic-p) 
     (set-background-color "#101416") 
     (set-foreground-color "#f6f3e8")))) 
;; run now 
(my-frame-config (selected-frame)) 
;; and later 
(add-hook 'after-make-frame-functions 'my-frame-config) 
+0

Có, móc là những gì tôi cần ở đây, cảm ơn bạn. – Cynede

2

lẽ là giải pháp đơn giản hơn là không chạm * frame-alist, cũng không phải set-frame- *, nhưng thay vào đó Mx tùy chỉnh đối mặt RET RET mặc định và sau đó click chuột giữa vào nút "Nhà nước" và chọn "Đối với tất cả các loại màn hình", tại thời điểm đó bạn sẽ có thể đặt giao diện khuôn mặt khác nhau cho các màn hình khác nhau. Phần này của giao diện người dùng không được sử dụng nhiều và hiển thị, nhưng bạn sẽ làm: nhấp chuột giữa vào INS để chèn tập hợp cài đặt thứ hai, sau đó nhấp chuột giữa vào "Hiển thị" và chọn "nil", sau đó nhấp trên nút gạt ở bên trái "Loại" và sau đó trên nút gạt ở bên trái "TTY": điều này làm cho tập hợp cài đặt đầu tiên chỉ áp dụng cho khung tty trong khi khung kia (có lẽ vẫn nói "Hiển thị: tất cả") áp dụng cho các trường hợp còn lại (tức là các khung không phải là tty).

+0

Ah, đẹp quá! FWIW Tôi thấy rằng nhấp chuột trái giống như nhấp chuột giữa cho các tiện ích con đó (cả hai đều được liên kết với 'widget-button-click')? Và đối với câu hỏi cụ thể này, bạn sẽ cần phải nhấp vào "Hỗ trợ các thuộc tính" và "Hiển thị tất cả các thuộc tính" để truy cập các tùy chọn màu nền trước và nền sau. – phils

+0

Thực ra, tôi đoán bạn không để trống cài đặt mới và thay đổi các màu đó trong cài đặt mặc định. Tôi đã thử nghịch đảo (thay đổi màu nền trước/nền cho cài đặt TTY) bằng thiết bị đầu cuối mặc định của Ubuntu và không thể làm cho nó có hiệu lực (mặc dù tùy chọn 'video nghịch đảo' đã hoạt động). YMMV? – phils

Các vấn đề liên quan