inc*_*man 11 macos emacs terminal aquamacs org-mode
我在OSX Mavericks中使用GNU Emacs,我试图让我的背景透明而不是文本.
有一种简单的方法可以使整个框架透明:
(set-frame-parameter (selected-frame) 'alpha '(85 85))
(add-to-list 'default-frame-alist '(alpha 85 85))
Run Code Online (Sandbox Code Playgroud)
但这使得整个框架透明/半透明,包括文本.我只希望框架背景是透明的,文本是纯黑色.Emacs Wiki上有人说这样的实现必须是特定于操作系统的.那么,有没有人知道如何为OSX做这个?
使用所需的设置,Emacs将如下所示:
.
同样,我希望窗口100%透明,前景文本100%不透明,它应该在Emacs的全屏模式下工作.
以下是一些屏幕截图和使用的不同.emacs设置.我使用的是--with-ns2014年2月16日制作的Emacs Trunk ,操作系统是OSX Snow Leopard 10.6.8.
设置#1:
(set-frame-parameter (selected-frame) 'alpha '(85 85))
(add-to-list 'default-frame-alist '(alpha 85 85))
(set-face-attribute 'default nil :background "black"
:foreground "white" :font "Courier" :height 180)
Run Code Online (Sandbox Code Playgroud)

设置#2:
(set-frame-parameter (selected-frame) 'alpha '(85 85))
(add-to-list 'default-frame-alist '(alpha 85 85))
(set-face-attribute 'default nil :background "white"
:foreground "black" :font "Courier" :height 180)
Run Code Online (Sandbox Code Playgroud)

设置#3:
(set-frame-parameter (selected-frame) 'alpha '(75 75))
(add-to-list 'default-frame-alist '(alpha 75 75))
(set-face-attribute 'default nil :background "white"
:foreground "black" :font "Courier" :height 180)
Run Code Online (Sandbox Code Playgroud)

设置#4:
(set-frame-parameter (selected-frame) 'alpha '(0 0))
(add-to-list 'default-frame-alist '(alpha 0 0))
(set-face-attribute 'default nil :background "white"
:foreground "black" :font "Courier" :height 180)
Run Code Online (Sandbox Code Playgroud)

编辑(2014年2月24日):下面是相关的主题,其中Aquamacs(即大卫Reitter)的主要开发人员曾建议修改链nsterm.m作为一个潜在的解决方案: http://comments.gmane.org/gmane.emacs .aquamacs.devel/836 - "在最低限度,这些变化将是ns_clear_frame和ns_clear_frame_area,而是填充背景色的背景,你可以尝试*设置NSColor对象的Alpha组件,这样它是透明的*复制在实际窗口的背景.那么,你的框架背景是透明的.这不会照顾框架的UI元素,..." [换句话说,潜在的解决方案可能需要在构建自定义版本的Emacs之前修改源代码.]