ฉันพยายามที่จะบรรลุพฤติกรรมดังต่อไปนี้ใน Emacs24:
ฉันชอบที่จะใช้ชุดรูปแบบที่แตกต่างกัน (solarized-dark เทียบกับ solarized-light) ขึ้นอยู่กับว่าฉันเชื่อมต่อกับเซิร์ฟเวอร์ที่รันด้วยเฟรมเทอร์มินัล
% emacsclient -t
หรือด้วยเฟรม gtk
% emacsclient -c
ดูเหมือนว่าจะทำงานใน Emacs รุ่นเก่า แต่ Emacs ปัจจุบันฉันไม่สามารถหาวิธีได้ ฉันตรวจสอบแล้ว alreday ดังนั้น (เช่น/programming//q/18904529/152439และคำตอบ) และรายชื่อผู้รับจดหมาย (เช่นhttps://lists.gnu.org/archive/html/help-gnu-emacs/ 2012-02 / msg00227.htmlและhttps://lists.gnu.org/archive/html/help-gnu-emacs/2012-02/msg00237.html )
การตั้งค่าปัจจุบันของฉันมีลักษณะดังนี้:
(add-to-list 'custom-theme-load-path "~/.emacs.d/themes/solarized")
(if (daemonp)
(add-hook 'after-make-frame-functions
(lambda (frame)
(select-frame frame)
(if (display-graphic-p frame)
(load-theme 'solarized-light t)
(load-theme 'solarized-dark t)
)
)
)
(load-theme 'solarized-light t)
)
ปัญหานี้คือถ้าฉันเปิดเฟรมกราฟิกและเปิดเทอร์มินัลเฟรมด้วยemacsclient -t
ชุดรูปแบบพลังงานแสงอาทิตย์มืดจะถูกนำไปใช้กับทั้งกรอบเทอร์มินัลใหม่ (ซึ่งถูกต้อง) และเฟรมกราฟิกที่เปิดอยู่แล้ว มิได้ถูกแตะต้อง) emacsclient -c
เทียบเท่าที่เกิดขึ้นเมื่อกรอบขั้วเปิดอยู่แล้วและผมเปิดกรอบกราฟิกใหม่ที่มี
แก้ไข:ในกรณีที่เป็นไปไม่ได้กับ Emacs24 ปัจจุบันมีแผนจะทำให้มันเป็นไปได้อีกหรือไม่?
color-theme.el
IIRC ที่มีการตั้งค่าสีตามเฟรม ไม่มีข้อได้เปรียบที่ยอดเยี่ยมในการใช้ความสามารถในชุดรูปแบบนอกเหนือจากความแพร่หลาย
color-theme
ระบบ Emacs 24 และธีม ธีมโซล่าร์เวอร์ชันของฉันยังรองรับทั้งสองระบบหากคุณตัดสินใจที่จะใช้เส้นทางนี้