8

这个问题是这里之前一个问题的连续性:How make emacs console mode inherit shell colors

在 Ubuntu 12.10 和 Gnome Shell 3.6.2 上,我正在运行 Emacs。在http://www.emacswiki.org/emacs/TransparentEmacs之后,我可以使用以下方法在我的 Emacs X 窗口上设置 alpha 透明度:

(set-frame-parameter (selected-frame) 'alpha '(85 50))
(add-to-list 'default-frame-alist '(alpha 85 50))

不幸的是,这为我的 emacs 窗口中的所有“项目”设置了透明度,包括包含文本的前景。因此,阅读 Emacs 内容变得困难。我正在寻找的是一种只在背景上设置 alpha 值的方法。通过这种方式,我将能够清楚地看到我的 Emacs 窗口的内容并从 emacs 后面的窗口中读取信息(我使用非常好的 gnome 终端成功地做到了这一点)。

4

2 回答 2

1

看起来这是不久前提出的问题,但我看不出曼努埃尔在哪里得到了完整的解决方案。我有同样的问题,这就是我想出的。

如果你设置了 shell 的透明度然后运行emacs -nw -q,Emacs 的默认行为似乎是遵循你的 shell 设置。如果您没有这样做,那么您可能在某处设置了一些冲突的设置。也许您正在使用将默认背景设置为颜色的主题?如果是这样,您需要更改该设置。

如果您使用的是内置主题之一(例如 adwaita、tango、wombat 等),则这些主题已设置默认背景颜色,这将覆盖 alpha 帧参数。一种解决方案是找到该主题文件并注释掉设置此默认值的行。我的主题位于 /usr/share/emacs/25.3/etc/themes。如果不存在,则切换到暂存缓冲区并评估数据目录变量的值。该目录应该有一个主题子目录。要修改主题文件,您可能需要管理员权限。

杰夫之前给出的代码应该可以工作。请参阅 ELisp 手册的第28.4 节:框架参数。另外,请查看51.1.7: Emacs 手册的自定义主题。Jeff 的代码将为 Emacs 设置框架的透明度。如果您希望它与您的 shell 应用程序的透明度不同,这很好。如果你只是想让它遵循你的 shell 的行为,就像我说的那样,那是默认的。

于 2018-04-14T13:07:34.323 回答
0

我的工作正常 - 前景以我在 .Xresources 中设置的颜色可见。也许您可以尝试一下,例如:

emacs*foreground: gold
emacs*background: black

可以进去~/.Xresources,然后使用命令

$ xrdb ~/.Xresources

在用你给出的那两行调用 emacs 之前(在 ~/.emacs 中):

(set-frame-parameter (selected-frame) 'alpha '(85 50))
(add-to-list 'default-frame-alist '(alpha 85 50))

我更新了上面的内容,将这两行包含在 ~/.emacs 中,因为这些是设置透明度的原因。此外,我确实注意到当我的 emacs 窗口失去焦点时,前景也变得透明。也许这就是你的意思?

于 2013-06-18T05:22:09.790 回答