我在 OSX Mavericks 中使用 GNU Emacs,我试图使背景透明,但文本不透明。
有一个简单的方法可以使整个框架透明:
(set-frame-parameter (selected-frame) 'alpha '(85 85))
(add-to-list 'default-frame-alist '(alpha 85 85))
但这使得整个框架透明/半透明,包括文本。我只希望框架背景是透明的,文本是纯黑色的。 Emacs Wiki 上的某人说这样的实现必须是特定于操作系统的。那么,有人知道如何在 OSX 上执行此操作吗?
根据所需的设置,Emacs 将如下所示:
.
同样,我希望窗口 100% 透明,前景文本 100% 不透明,并且它应该在 Emacs 的全屏模式下工作。
最佳答案
以下是一些屏幕截图和所使用的不同 .emacs
设置。我使用的是 2014 年 2 月 16 日构建的 Emacs Trunk --with-ns
,操作系统是 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)
<小时/>
设置#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)
<小时/>
设置#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)
<小时/>
设置#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)
<小时/>
编辑(2014 年 2 月 24 日):以下是相关主题的链接,其中 Aquamacs 的首席开发人员(即 David Reitter)建议修改 nsterm.m
作为潜在的解决方案:http://comments.gmane.org/gmane.emacs.aquamacs.devel/836 -- “至少,更改将是 ns_clear_frame
和 ns_clear_frame_area
。您可以尝试 *
,而不是用背景颜色填充背景> 设置 NSColor 对象的 alpha 分量,使其在窗口的实际背景中复制为透明的 *
。因此,您可以将框架背景设置为透明。这并不能解决框架 UI 元素,...” [换句话说,潜在的解决方案可能需要在构建自定义版本的 Emacs 之前修改源代码。]
关于macos - 如何在 OSX 上的 GNU Emacs 中获得透明窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21946382/