在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终端成功地做到了这一点).
解决方法
@H_502_11@ 看起来这是前一段时间的问题,但我不知道曼努埃尔在哪里得到了完整的解决方案.我有同样的问题,这就是我提出的问题.如果您已设置shell的透明度然后运行emacs -nw -q,则Emacs的默认行为似乎是遵循您的shell设置.如果你的不这样做,那么你可能在某处设置了一些冲突的设置.也许你正在使用一个主题,将默认背景设置为一种颜色?如果是这样,您需要更改该设置.
如果您使用其中一个内置主题(例如adwaita,tango,wombat等),那些设置了默认背景颜色,它将覆盖alpha框架参数.一种解决方案是找到该主题文件并注释掉设置此默认值的行.我的主题位于/usr/share/emacs/25.3/etc/themes.如果不存在,则切换到暂存缓冲区并评估数据目录变量的值(如果您不知道如何执行此操作,则需要花费更多时间阅读Emacs手册).该目录应该有一个themes子目录.要修改主题文件,您可能需要管理员权限.
杰夫之前给出的代码应该可行.参见第28.4节:ELisp手册的框架参数.另外,请查看51.1.7:Emacs手册的自定义主题. Jeff的代码将为Emacs设置框架的透明度.如果您希望它与shell应用程序的透明度不同,那么这很好.如果你只是想让它遵循shell的行为,就像我说的那样,这是默认的.