Terminal: 添加设置以控制不透明的丙烯酸“ Blur”

创建于 2019-07-01  ·  38评论  ·  资料来源: microsoft/terminal

差不多的标题。

现在,我们仅使用默认的模糊量。

Area-Settings Area-TerminalControl Help Wanted Issue-Task Product-Terminal

最有用的评论

为了澄清起见,这是否可以使窗口透明而不模糊(即像cmd和PS一样起作用)? 能够在窗口后面阅读文本会很棒。

所有38条评论

不透明滑块(带有用于打开或关闭丙烯酸的开关)也将起作用

提取分类标签。 这只是我们要做的已知工作量。

这可能是不可能的...

当我提出此问题时,我错误地认为AcrylicBrush上有一个“ Blur”属性,但看起来根本没有暴露。 参见其在MSDN上的页面

并考虑到此问题,出于安全原因,这似乎是不可能的。

在这种情况下,我希望有两个独立的属性来设置窗口在前景时和在背景时的丙烯酸值。 例如,我希望窗口具有焦点时该窗口的不透明度为90%,而没有窗口时该窗口的不透明度为70%。

为了澄清起见,这是否可以使窗口透明而不模糊(即像cmd和PS一样起作用)? 能够在窗口后面阅读文本会很棒。

当我提出此问题时,我错误地认为AcrylicBrush上有一个“ Blur”属性,但看起来根本没有暴露。 参见其在MSDN上的页面。

那不是由TintOpacity吗? https://docs.microsoft.com/zh-cn/windows/uwp/design/style/acrylic#custom -acrylic-brush

我猜这就是大多数人(或者至少是我)在谈论更改模糊级别时的意思。

我已经找到了(至少一种)方法来实现这种效果,但是没有通过UWP。 如果是在Windows 10上调用的,那么真正古老的Vista时代API DwmEnableBlurBehindWindow会将窗口背景更改为半透明黑色,而不会模糊。 给定函数名称有多讽刺,是吧? AFAICT,这不存在任何安全问题,因为该应用程序无法读取显示的背景内容,因为该应用程序完全在dwm.exe中处理。

话虽这么说,我们是否可以像conhostV2一样在根HWND上使用SetLayeredWindowAttributes ? 据我了解的文档,这也将影响子窗口。 如果这样做不能令人满意,则可以使用相同的功能将子HWND的alpha设置为255(不透明),然后用透明颜色清除子窗口以擦除默认背景填充。 之后,我们应该能够在透明背景窗口之上绘制任何我们想要的东西。 这可能需要对Cascadia架构进行一些重构,但是我看不出为什么它无法完成。 希望这可以帮助!

加上2美分,我真的很喜欢iterm2在Mac上具有的透明度和模糊选项。 您具有常规的透明度,并且可以添加少量模糊以减少眼睛疲劳,但仍可以清晰地看到背景墙纸或其他东西。

压克力看起来很糟糕,窗户下面的东西完全无法辨认。

@ zadjii-msft @ DH​​owett-MSFT我们不受MSFT开发人员所发布的API的限制。 如果您与图书馆维护者联系,您可能可以解决这些问题,他们以愚蠢的方式建造自己的东西并不意味着我们所有人都必须忍受它吗?

记录下来,这是我最后必须拥有的功能,如果没有imo,则窗口透明度实际上不可用。 虽然至少背景图片透明度可以工作,但是能够看到下面和/或您实际桌面上的实际应用程序要好得多。 总站,Alacritty和Conemu都对此进行管理(尽管取得了不同程度的成功)。

@ zadjii-msft @ DH​​owett-MSFT我们不受MSFT开发人员所发布的API的限制。 如果您与图书馆维护者联系,您可能可以解决这些问题,他们以愚蠢的方式建造自己的东西并不意味着我们所有人都必须忍受它吗?

👆🏻这个。 这么多。

我会注意到https://github.com/goreliu/wsl-terminal可以很好地处理透明度(我相信这里大多数人都希望这种方式),因此研究该代码库可能是一个合理的起点。

*编辑*

透明度选项确实来自底层的https://github.com/mintty/mintty项目

我想阅读窗口后面的内容,通常是网页上的代码示例。 从这种角度来看,让热键在模糊和非模糊透明度之间切换会更好吗? 又名,关闭丙烯酸,但保持透明度。 可以按住并切换,尝试两者都很有趣。

@JasonStein的此评论(https://github.com/microsoft/terminal/issues/1375#issuecomment-569483109)可能与此线程相关:

嗨,大家好,我是Notepads的作者,这是我如何始终使“ Notepads ”标题栏和窗口主体的背景丙烯酸效果“ JasonStein / Notepads :src / Notepads / Services / ThemeSettingsService.cs @ 12940ad #L253

我在UICompositionAnimations库的帮助下使用“ AcrylicBackgroundSource.HostBackdrop”自己创建了Acrylic画笔,使我的生活更轻松(参考: Sergio0694 / UICompositionAnimations )。

它基本上是使用合成API(AcrylicBackgroundSource.HostBackdrop +噪波纹理)从头开始创建画笔。

AcrylicBrush API不是唯一的选择。 除了丙烯酸选项之外,我真的很想为非模糊不透明度提供一个选项。 当将此Windows终端制作为cmd-ng时,丢弃cmd的有用功能很奇怪。

如果没有丙烯酸也可以做到完全透明而没有模糊,那将是非常不错的,所以我不必alt-tab mid命令来仔细检查。

在Mac和Linux上,我一直都使用透明终端,这是因为当我键入文档或某些源代码非常方便时,经常会在下面的窗口中阅读文档或某些源代码。

控制模糊将是理想的。 (在Mac上,我使用3%的模糊度只是为了使终端文本突出而不会使后面的文本难以阅读。)

为了澄清起见,这是否可以使窗口透明而不模糊(即像cmd和PS一样起作用)? 能够在窗口后面阅读文本会很棒。

究竟! 实际上,在实现此功能之前,我什至不会考虑切换到Windows Terminal(就我所爱的程度而言)。 我一直在检查,但很失望地看到它仍然没有完成。

对于具有单个监视器或有限屏幕空间的用户,此功能特别有用。 我几乎总是希望在终端后面有一些网页或其他文本,以便在终端上阅读。 我会适当调整我的透明度/不透明度,以提供舒适的体验,因此我仍然可以很好地阅读终端。

请尽快实施。 我很期待使用WT,自从第一个Alpha版本发布以来一直在关注它。

另外,还应该有一个布尔值来切换是否将透明度/不透明度也应用于终端中的文本。 这将确保终端中的文本保持生动和可见,以使其与终端后面窗口中的其他任何文本区分开。

如果将模糊称为“丙烯酸”,则我认为它不应该超出不透明性之外的其他丙烯酸表面的视觉构造(这在“丙烯酸画笔”中是可变的)

如果您开始拆开各个层,例如“噪波”,“光度”或“模糊”量-它不再是“丙烯酸”,而是一组合成效果。

我不断检查

好消息! 当我们关闭此错误时,您会收到一封电子邮件:微笑:好坏

我必须回应别人所说的话; 我目前使用PowerShell Core msi安装作为我的主要外壳。 作为我工作的重要组成部分,我整天都处于半全屏或全屏状态,因此需要能够清楚地看到下面的内容。

我喜欢这个主意,并赞赏Microsoft在Windows上的一些管理实用程序中所做的努力,但是,在这一点上,这个新的Terminal仅仅是一个新颖性,无法有意义地替代原始控制台。 请参见下面的截图; 这两个窗口都位于此页面的同一位置。 一个很棒,另一个无法使用,我不必指出哪个是哪个。

image

这个新航站楼只是一个新奇事物

感谢您对过去一年半中我们一直在从事的项目的批评,但您可以_否_吗?

我很同情你的感受; 这不是一个好玩的地方,但也会让您等待已经等待了一年半的(主要是付费客户)用户群。 我想回应其他似乎普遍存在于该产品上的想法,并且我想至少提供一张具有建设性意义的屏幕快照,因为到目前为止还没有其他人这样做。 在没有真正看到问题是什么的情况下,很容易将其视为次要问题或抱怨,但是我希望您认识到屏幕快照中的顶级控制台显然无法正常工作。 我希望它可以解决。

  1. 不用担心,团队中的每个人都是Terminal的日常用户。 我们的用户群与外部客户一样多。
  2. 根据记录,航站楼是去年4月才宣布的,所以你们都只等了13个月😉
  3. 我们已经对此问题进行了一段时间的

@ zadjii-msft我了解第三部分,这就是为什么我发布屏幕截图以说明每个人在此主题和其他主题线程中抱怨的原因。 我感谢你们致力于使用与操作系统无关的方法来构建出色的产品,希望它能继续前进,而不会给您带来太多麻烦。

“我们的使命是赋予地球上的每个人和每个组织以更大的力量。” -微软

不幸的是,这个新的终端有点像线了。 它肯定带有一些令人惊奇的功能,例如标签! 惊人!!! 但是,作为开发人员,我们必须善与恶,有时我们甚至没有意识到缺少某些功能,这些功能直到发布后才对用户非常重要。 This‍♂️这是免费软件,因此,我对此深表谢意,并感谢微软近年来对开放源代码的坚定承诺(尤其是自萨蒂亚(Satya)扭转公司命运以来)。 同时,任何终端的透明性在我的书中都是必须的。 可以肯定地确定了亚克力效果,但并不是所有人都对模糊(包括我自己)感到满意,尤其是在屏幕空间有限的情况下。 🥰

保持Windows终端团队的出色工作!

如果Microsoft团队添加了此功能,我真的很喜欢,问题是,我们如何要求该功能包含在下一个版本中? 我非常确定可以实现这一点,感谢您迄今为止使用此终端所做的所有工作。 是的,这不是技术问题,是终端的新要求。

我希望_love_在下一个版本中提供它,但是正如我在https://github.com/microsoft/terminal/issues/603#issuecomment -626830075中详细概述的那样,这__是技术问题,并非有一个简单的解决方案,所以我真的不能承诺在任何特定版本中添加它。

到目前为止,它的努力给人留下了深刻的印象,并期待最终将其添加到这种可配置的模糊效果(或什至只是普通的半透明性而没有丙烯酸!),但在那之前将坚持使用wsltty。

终端窗口必须具有透明性,因为大多数高级用户需要经常查看该窗口。 模糊主要是装饰性的,而透明度是实际的工具。

@harounhajem与该线程中讨论的不是同一件事-该线程中的任务是控制启用丙烯酸的情况下终端模糊背景的程度。 我以为“ Blur”是AcrylicBrush上的一个属性,但实际上不是。

老实说,这可能是#603的虚假,但是我将其保留为开放状态,因为至少有22个人已经在关注此线程以寻求解决方案。

大声笑@ zadjii-msft他完全错了。 并且似乎他删除了他的评论。 😅
但是,是的,我们很多人都在等待可以使用此终端应用程序的一天。 👀

不知道这是否应该是一个单独的问题。 我还非常希望在Terminal不在活动窗口时保持不透明度的选项,或者更好的是在不活动时使用备用不透明度值的选项。

现在,我有一个快捷方式可以将活动窗口设置为〜80%的不透明度,这可以与Acrylic模糊效果很好地工作,因为我可以看到背后的内容,但模糊效果有助于使终端文本保持可读性。

WT的丙烯酸设置为0.8 ,而AutoHotKey函数将不透明度设置为200 (200/255)。

现在,我有一个快捷方式可以将活动窗口设置为〜80%的不透明度,这可以与Acrylic模糊效果很好地工作,因为我可以看到背后的内容,但模糊效果有助于使终端文本保持可读性。

WT的丙烯酸设置为0.8 ,而AutoHotKey函数将不透明度设置为200 (200/255)。

如果您愿意分享,我很想阅读有关您的设置的更多信息。 听起来我觉得有用。

AutoHotKey函数:

#^Esc::
  WinGet, TransLevel, Transparent, A
  If (TransLevel = OFF) {
    WinSet, Transparent, 180, A
  } Else {
    WinSet, Transparent, OFF, A
  }
return

这将在完全不透明度和180/255不透明度之间切换活动窗口。 快捷方式是Win+Ctrl+Esc
对于Windows Terminal,只需将"acrylicOpacity"设置0.70.9之间的某个值,具体取决于您的背景色(较暗=更加明显)。 我用:

"background" : "#560152",
"acrylicOpacity" : 0.75,

@narfanar非常感谢您! 我现在在Windows上有一个透明的终端!

这对我来说不起作用,由于某种原因,我的Windows版本无法理解OFF设置,因此我对其进行了一些修改:

; Toggle window transparency.
#^Esc::
WinGet, TransLevel, Transparent, A
If (TransLevel = 255) {
    WinSet, Transparent, 205, A
} Else {
    WinSet, Transparent, 255, A
}
return

AutoHotKey函数:

OMG非常感谢! 我从未想到AHK可以做到这一点。 调整丙烯酸设置以获得所需的模糊量似乎可行。 比在Mac终端上获得的模糊效果更让人分散注意力,但它确实可以完成工作。

可以使用此终端作为我现在的主要终端@narfanar

此页面是否有帮助?
0 / 5 - 0 等级