Terminal: Добавьте настройку для управления «Размытие» акрила в дополнение к непрозрачности

Созданный на 1 июл. 2019  ·  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/en-us/windows/uwp/design/style/acrylic#custom -acrylic-brush

Думаю, это то, что имеет в виду большинство людей (или, по крайней мере, я), когда говорят об изменении уровня размытия.

Я нашел (по крайней мере, один) способ добиться этого эффекта, но не через UWP. Действительно старый API эпохи Vista DwmEnableBlurBehindWindow при вызове в Windows 10 изменяет фон окна на полупрозрачный черный без размытия. Какая ирония, учитывая название функции, а? AFAICT, это не представляет никаких проблем с безопасностью, так как приложение не может прочитать содержимое показанного фона, так как оно полностью обрабатывается в dwm.exe.

При этом, не могли бы мы использовать SetLayeredWindowAttributes на корневом HWND, как это делает conhostV2? Насколько я понимаю, это также должно повлиять на дочерние окна. Если это будет неудовлетворительно, мы можем затем использовать ту же функцию, чтобы установить альфа-канал дочерних HWND на 255 (непрозрачный), а затем очистить дочерние окна прозрачным цветом, чтобы стереть фоновую заливку по умолчанию. После этого мы сможем рисовать все, что захотим, поверх окна с прозрачным фоном. Это может потребовать некоторого рефакторинга архитектуры Cascadia, но я не вижу причин, по которым это было бы невозможно. Надеюсь это поможет!

Чтобы добавить свои 2 цента, мне бы очень хотелось, чтобы у iterm2 были такие параметры прозрачности и размытия, которые есть на Mac. У вас обычная прозрачность, и вы можете добавить немного размытия, чтобы уменьшить нагрузку на глаза, но при этом четко разобрать фоновые обои или что-то еще.

Акрил просто ужасно смотрится, а вещь под окном совершенно неузнаваема.

@ zadjii-msft @ DHowett-MSFT Мы не ограничены опубликованным API как разработчики MSFT. Если вы обратитесь к сопровождающим библиотеки, вы, вероятно, сможете разобраться с этим, они строят свою вещь глупо, не значит, что мы все просто должны с этим жить, верно?

Для записи, это последняя обязательная функция для меня, и прозрачность окна на самом деле не может использоваться без нее, imo. По крайней мере, прозрачность фонового изображения работает, но гораздо приятнее иметь возможность видеть реальные приложения под ними и / или на вашем реальном рабочем столе. Терминус, Алакритти и Конему справляются с этим (хотя и с разной степенью успеха).

@ zadjii-msft @ DHowett-MSFT Мы не ограничены опубликованным API как разработчики MSFT. Если вы обратитесь к сопровождающим библиотеки, вы, вероятно, сможете разобраться с этим, они строят свою вещь глупо, не значит, что мы все просто должны с этим жить, верно?

👆🏻 это. так много этого.

Я отмечу, что https://github.com/goreliu/wsl-terminal отлично справляется с прозрачностью (и я считаю, что так, как этого хочет большинство людей здесь), поэтому исследование этой кодовой базы, вероятно, является разумным местом для начала.

* РЕДАКТИРОВАТЬ *

И опция прозрачности действительно исходит из базового проекта https://github.com/mintty/mintty.

Я хочу прочитать, что находится за окном, обычно это образцы кода на веб-странице. В этом ключе, было бы лучше иметь горячую клавишу, которая переключает между размытием и прозрачностью без размытия? Также он отключает акрил, но сохраняет прозрачность. Это может быть нажатие и удерживание или переключение, было бы интересно попробовать и то, и другое.

Этот комментарий (https://github.com/microsoft/terminal/issues/1375#issuecomment-569483109) от @JasonStein может иметь отношение к этой теме:

Привет, ребята, я являюсь автором блокнотов, вот как я делаю фоновый акриловый эффект «всегда включенным » для строки заголовка и тела окна приложения «Блокноты»: : src / Notepads / Services / ThemeSettingsService.cs @ 12940ad # L253

Я сам создал акриловую кисть с помощью AcrylicBackgroundSource.HostBackdrop с помощью библиотеки UICompositionAnimations, чтобы облегчить себе жизнь (ref: Sergio0694 / UICompositionAnimations ).

По сути, это создание кисти с нуля с использованием API-интерфейсов композиции (AcrylicBackgroundSource.HostBackdrop + Noise texture).

AcrylicBrush API - не единственный выбор. Я действительно хотел бы иметь возможность просто непрозрачности без размытия, помимо акриловых опций. Странно упускать полезную функцию cmd, когда этот терминал Windows превращается в cmd-ng.

Прозрачность без размытия вообще, если это можно сделать без акрила, было бы здорово, поэтому мне не нужно нажимать среднюю команду alt-tab, чтобы что-то перепроверить.

В Mac и Linux я все время использую прозрачный терминал, потому что я часто читаю документ или какой-то исходный код в окне внизу, когда я печатаю его очень удобно.

Хотя контроль размытия был бы идеальным. (на Mac я использую 3% -ное размытие, чтобы выделить текст терминала, не делая текст позади него трудным для чтения.)

Для пояснения, позволит ли это прозрачность окна без размытия (т.е. действовать как cmd и PS)? Было бы здорово иметь возможность читать текст за окном.

Точно! Фактически, я даже не буду рассматривать возможность перехода на Терминал Windows (как бы мне это ни нравилось), пока это не будет реализовано. Я продолжаю проверять, но разочарован тем, что этого еще не сделано.

Эта функция особенно полезна для людей с одним монитором или ограниченным экраном. У меня почти всегда есть какая-то веб-страница или другой текст за моим терминалом, который я хочу читать в терминале. Я соответствующим образом настраиваю прозрачность / непрозрачность, чтобы сделать это удобным, чтобы я мог хорошо читать свой терминал.

Пожалуйста, внедрите это как можно скорее. Я с нетерпением жду возможности использовать WT и слежу за ним с момента первого выпуска Alpha.

В качестве бонуса также должно быть логическое значение, чтобы переключать, должна ли прозрачность / непрозрачность также применяться к тексту в Терминале. Это гарантирует, что текст в терминале останется ярким и видимым, чтобы его можно было отличить от любого другого текста в окнах за терминалом.

Если размытие называется акриловым, я не думаю, что оно должно отклоняться от визуального построения других акриловых поверхностей за пределами непрозрачности (которая изменяется с помощью акриловых кистей).

Если вы начнете раздвигать различные слои, такие как уровни шума, яркости или размытия - это уже не «акрил», а набор эффектов композиционного слоя.

Я продолжаю проверять

хорошие новости! Когда мы закроем эту ошибку, вы получите электронное письмо: smile: к лучшему или к худшему

Я должен повторить то, что говорят все остальные; В настоящее время я использую установку msi PowerShell Core в качестве основной оболочки. Как очень важный компонент моей работы, я нахожусь на этой консоли в полу- или полноэкранном режиме на сверхшироком экране весь день, и мне нужно иметь возможность ясно видеть вещи под ней.

Мне нравится эта идея, и я ценю усилия, которые Microsoft вкладывает в некоторые административные утилиты в Windows, но на данный момент этот новый Терминал - просто новинка, которая не может заменить оригинальную консоль. См. Снимок экрана ниже; оба окна накладываются на одно и то же место на этой странице. Один отличный, а другой непригодный, мне не нужно указывать, что есть что.

image

этот новый Терминал - просто новинка

Я ценю вашу любезную критику проекта, над которым мы работали последние полтора года, но не могли бы вы _не_?

Я сочувствую твоим чувствам; это не забавное место, но также позвольте себе взглянуть на базу пользователей (в основном платящих клиентов), которые ждали этого уже полтора года. Я хотел повторить другие мысли, которые, кажется, пронизывают сообщество относительно этого продукта, и я хотел по крайней мере сделать снимок экрана, чтобы он был конструктивным, поскольку до сих пор никто этого не сделал. На самом деле, не видя, в чем проблема, было бы легко отклонить проблему как незначительную или жалкую, но я надеюсь, вы признаете, что верхняя консоль на моем снимке экрана явно нефункциональна. Надеюсь, это можно исправить.

  1. Не волнуйтесь, все в команде ежедневно пользуются Терминалом. Мы все являемся такой же пользовательской базой, как и наши внешние клиенты.
  2. Для протокола, Терминал был анонсирован только в апреле прошлого года, так что вы ждали всего 13 месяцев 😉
  3. Мы уже некоторое время

@ zadjii-msft Я понимаю третью часть, поэтому я разместил снимок экрана, чтобы проиллюстрировать, на что все жалуются в этой и других темах. Я благодарен вам, ребята, за то, что вы работаете над созданием крутых продуктов с более независимым от ОС подходом, я надеюсь, что он продолжит развиваться без лишней головной боли.

«Наша миссия - дать возможность каждому человеку и каждой организации на планете достичь большего». - Microsoft

К сожалению, этот новый Терминал идет в ногу со временем. В нем определенно есть потрясающие функции, например вкладки! УДИВИТЕЛЬНЫЙ!!! Однако, как разработчики, мы должны сочетать хорошее с плохим, и иногда мы не осознаем, что отсутствуют некоторые функции, которые в конечном итоге становятся очень важными для пользователя до момента запуска. 🤦🏼‍♂️ Это бесплатное программное обеспечение, поэтому я невероятно благодарен за это и за фантастическую приверженность Microsoft Open Source в последние годы (особенно после того, как Сатья перевернул компанию). В то же время, прозрачность любого терминала - необходимость в моей книге. Эффекты Acrylic, конечно, хороши, но не все будут в порядке с размытием, включая меня, особенно с ограниченным пространством экрана. 🥰

Продолжайте в том же духе, команда Windows Terminal!

Мне очень понравится, если команда Microsoft добавит эту функцию, вопрос в том, как мы можем попросить включить эту функцию в следующий выпуск? Я почти уверен, что этого можно достичь, спасибо за всю работу, которую вы проделали с этим терминалом до сих пор. Да это не техническая проблема, это новое требование к терминалу.

Я бы _любил_, чтобы это было в следующем выпуске, но, как я подробно изложил в https://github.com/microsoft/terminal/issues/603#issuecomment -626830075, это _является_ технической проблемой, которая не у меня есть простое решение, поэтому я не могу действительно добавить его в какой-либо конкретный выпуск.

до сих пор впечатлен этими усилиями и с нетерпением жду, когда это настраиваемое размытие (или даже простая полупрозрачность без акрила!) в конечном итоге будет добавлено .. но до тех пор буду придерживаться wsltty.

Прозрачность - обязательное условие для окна терминала, поскольку большинству опытных пользователей необходимо часто видеть сквозь окно. Размытие в основном косметическое, а прозрачность - это реальный инструмент.

@harounhajem , это не то же самое, что обсуждается в этой ветке - задача в этой ветке - контролировать, насколько Терминал размывает фон с включенным акрилом. Я предположил, что "Blur" был свойством на AcrylicBrush , хотя на самом деле это не так.

Честно говоря, на данный момент это, вероятно, обман # 603, но я оставляю его открытым, потому что есть как минимум 22 человека, которые уже подписаны на эту ветку для решения.

Lol @ zadjii-msft, он полностью упустил суть. И, похоже, он удалил свой комментарий. 😅
Но да, многие из нас ждут того дня, когда мы сможем использовать это приложение-терминал. 👀

Не уверен, должно ли это быть отдельной проблемой или нет. Мне также очень хотелось бы иметь возможность поддерживать непрозрачность, когда Терминал не является активным окном, или, что еще лучше, возможность использовать альтернативное значение непрозрачности, когда оно неактивно.

На данный момент у меня есть ярлык, позволяющий установить для активного окна непрозрачность ~ 80%, что очень хорошо работает с акриловым размытием, поскольку я могу видеть, что позади, но эффект размытия помогает тексту терминала оставаться вполне читаемым.

Акрил WT установлен на 0.8 , а функция AutoHotKey устанавливает непрозрачность на 200 (200/255).

На данный момент у меня есть ярлык, позволяющий установить для активного окна непрозрачность ~ 80%, что очень хорошо работает с акриловым размытием, поскольку я могу видеть, что позади, но эффект размытия помогает тексту терминала оставаться вполне читаемым.

Акрил 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.7 до 0.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, но оно выполняет свою работу.

Теперь я могу использовать этот терминал в качестве основного ty @narfanar

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

zadjii-msft picture zadjii-msft  ·  3Комментарии

mrmlnc picture mrmlnc  ·  3Комментарии

alabuzhev picture alabuzhev  ·  3Комментарии

dev-logan picture dev-logan  ·  3Комментарии

carlos-zamora picture carlos-zamora  ·  3Комментарии