发布于 2026-01-06 10 阅读
0

如何让 Visual Studio Code (VSCode) 变得酷炫透明

如何让 Visual Studio Code (VSCode) 变得酷炫透明

透明的 VS Code 窗口
我非常喜欢能实现透明效果的应用程序。没什么特别的原因,就是喜欢那种美感。其他人可能也会觉得这很有用,比如在后台运行终端,然后透过透明效果隐约看到终端内容等等。

这在 Visual Studio Code 的 GitHub issues 中也是一个呼声很高的功能,但截至撰写本文时,还没有官方解决方案。希望这种情况很快就会改变(更多信息请参见下文 macOS 部分)。

然而,非官方地,以下是一些可以让 VSCode 在操作系统上透明运行的方法。灵感来源于这个GitHub issue。

如何在 Windows 系统上使 VSCode 透明显示(已在 Windows 10 系统上测试)

Windows 用户有最简单的解决方案。只需安装GlassIt-VSC 扩展即可。

在 VSCode 设置中(文件 > 首选项 > 设置 或Ctrl+ ,):

  • glassit.alpha (integer): Transparency level [1-255]
  • glassit.step (integer): Increment of alpha或者:ctrl+alt+z增加或ctrl+alt+c减少扩展程序设置的透明度(注意不要覆盖分配给这些热键的其他快捷键)。

如何在Linux系统上使VSCode透明显示(已在Ubuntu 18.04上测试)

对于 Linux 系统来说,这尤其简单。首先,你需要devilspie(发音为 Devil's Pie)。
如果你好奇的话,devilspie 是一个非图形界面的实用工具,它允许你通过简单的配置文件,让应用程序在指定的窗口位置、以指定大小和位置启动,并可以最小化或最大化显示,以及执行更多其他操作。



sudo apt-get install devilspie
mkdir -p ~/.devilspie
nano ~/.devilspie/vscode_transparent.ds


Enter fullscreen mode Exit fullscreen mode

然后,将以下代码复制粘贴到您刚刚创建的文件中。vscode_transparent.ds



( if
( contains ( window_class ) "Code" )
( begin
( spawn_async (str "xprop -id " (window_xid) " -f _NET_WM_WINDOW_OPACITY 32c -set _NET_WM_WINDOW_OPACITY 0xdfffffff") )
)
)


Enter fullscreen mode Exit fullscreen mode

您可以使用末尾的十六进制字符串设置所需的透明度0xdfffffff(这里设置的透明度约为 87%,对我来说足够了)。其取值范围为 1 到 99。

如果您想避免使用十六进制运算,可以在脚本中使用百分比,如下所示(将 替换87为您所需的透明度):



( if
( contains ( window_class ) "Code" )
( begin
( spawn_async (str "xprop -id " (window_xid) " -f _NET_WM_WINDOW_OPACITY 32c -set _NET_WM_WINDOW_OPACITY $(printf 0x%x $((0xffffffff * 87 / 100)))") )
)
)


Enter fullscreen mode Exit fullscreen mode

你会发现,使用 `setup` 函数devilspie,你可以编写脚本以不透明的方式启动任何程序。你只需要获取应用程序的启动名称(在本例中为“Code”),然后编写类似的脚本即可。因此,你也可以以不透明的方式启动 Sublime Text (subl)。

在 KDE Plasma 上(我还没测试过),你还可以更进一步。KDE 有一个模糊效果,你可以启用它,还有透明度功能:(参见 GitHub 上的原始评论和后续评论



(if (contains (window_class) "Code")
    (begin
        (spawn_async (str "xprop -id " (window_xid) " -f _KDE_NET_WM_BLUR_BEHIND_REGION 32c -set _KDE_NET_WM_BLUR_BEHIND_REGION 0 "))
        (spawn_async (str "xprop -id " (window_xid) " -f _NET_WM_WINDOW_OPACITY 32c -set _NET_WM_WINDOW_OPACITY 0xdfffffff"))
    )
)


Enter fullscreen mode Exit fullscreen mode

我想知道是否有人知道如何在 Ubuntu 18 上实现这种模糊效果!

如何在 macOS 上使 VSCode 透明显示(未经测试)

目前 macOS 用户在使用 VSCode 的最新版本时选择不多(除了几个效率低下的变通方法)。不过,目前有一个非常棒的 pull request 正在进行中,它将为所有三个平台(Windows、Linux 和 macOS)添加出色的透明效果。目前还没有关于该 pull request 何时合并到主要版本中的信息,但希望很快就能实现。现在,macOS 用户(以及其他用户)可以使用基于此 pull request 分支的 VSCode 源代码构建版本。

此处以及引用的拉取请求中提供了在所有三个平台上从源代码构建和运行 VSCode 的说明。

如果任何 macOS 或其他操作系统用户已经尝试过这个 PR,请告知我。我也会进行测试,并尽快更新这篇文章,分享我的测试结果。

请为该拉取请求点赞或做出贡献,以便我们能够将这项超棒的功能合并到我们最喜欢的代码编辑器中!

文章来源:https://dev.to/emmanuelnk/how-to-be-cool-and-make-vscode-transparent-56ib