Terminal: Adicione configuração para controlar o "Desfoque" acrílico, além da opacidade

Criado em 1 jul. 2019  ·  38Comentários  ·  Fonte: microsoft/terminal

Quase o título.

No momento, estamos usando apenas a quantidade de desfoque padrão.

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

Comentários muito úteis

Para esclarecimento, isso permitiria a transparência da janela sem o desfoque (ou seja, agir como cmd e PS)? Seria ótimo poder ler o texto atrás da janela.

Todos 38 comentários

O controle deslizante de opacidade, com uma chave para ligar ou desligar o acrílico, também funcionaria

Arrancando a etiqueta de triagem. Esta é uma quantidade conhecida de trabalho que só precisamos _fazer_.

Isso pode ser impossível ...

Quando apresentei este problema, pensei erroneamente que havia uma propriedade "Blur" no AcrylicBrush, mas não parece que está exposto. Veja sua página no MSDN .

E olhando para este problema , parece que isso pode ser simplesmente impossível, por razões de segurança.

Nesse sentido, eu gostaria de duas propriedades independentes para definir valores acrílicos para quando a janela está em primeiro plano e quando está em segundo plano. Por exemplo, eu gostaria que a janela tivesse 90% de opacidade quando ela tivesse o foco e 70% de opacidade quando não tivesse.

Para esclarecimento, isso permitiria a transparência da janela sem o desfoque (ou seja, agir como cmd e PS)? Seria ótimo poder ler o texto atrás da janela.

Quando apresentei este problema, pensei erroneamente que havia uma propriedade "Blur" no AcrylicBrush, mas não parece que está exposto. Veja sua página no MSDN.

Isso não é controlado por TintOpacity ? https://docs.microsoft.com/en-us/windows/uwp/design/style/acrylic#custom -acrylic-brush

Eu acho que é isso que a maioria das pessoas (ou, pelo menos, eu) quer dizer quando fala sobre como mudar o nível de desfoque.

Eu encontrei (pelo menos uma) maneira de conseguir esse efeito, mas não via UWP. A realmente antiga API DwmEnableBlurBehindWindow era Vista, se chamada no Windows 10, muda o fundo da janela para um preto semitransparente, sem borrão. Que ironia considerando o nome da função, hein? AFAICT, isso não apresenta nenhum problema de segurança, pois o aplicativo não pode ler o conteúdo do plano de fundo mostrado, pois é processado inteiramente em dwm.exe.

Dito isso, não poderíamos usar SetLayeredWindowAttributes no HWND raiz, assim como o conhostV2 faz? Pelo que entendi os documentos, isso também deve afetar as janelas filho. Se isso for insatisfatório, podemos usar a mesma função para definir o alfa dos HWNDs filhos para 255 (opaco) e, em seguida, limpar as janelas filhos com uma cor transparente para apagar o preenchimento do plano de fundo padrão. Depois disso, devemos ser capazes de desenhar o que quisermos no topo da janela de fundo transparente. Isso pode exigir um pouco de refatoração da arquitetura Cascadia, mas não vejo razão para que não seja possível. Espero que isto ajude!

Para adicionar meus 2 centavos, eu realmente gostaria do tipo de transparência e opções de desfoque que o iterm2 tem no Mac. Você tem transparência regular e pode adicionar apenas um pouco de desfoque para reduzir o cansaço visual, mas ainda assim distinguir o papel de parede de fundo ou qualquer coisa com clareza.

O acrílico parece horrível e a coisa sob a janela está completamente irreconhecível.

@ zadjii-msft @ DHowett-MSFT Não estamos limitados pela API publicada como desenvolvedores MSFT. Se você entrar em contato com os mantenedores da biblioteca, provavelmente poderá resolver isso, pois eles constroem suas coisas de uma forma estúpida não significa que todos temos que viver com isso, certo?

Para que conste, este é o último recurso obrigatório para mim e a transparência da janela não pode ser usada sem ele. No entanto, pelo menos a transparência da imagem de fundo funciona, mas é muito mais agradável ver os aplicativos reais por baixo e / ou sua área de trabalho real. Terminus, Alacritty e Conemu gerenciam isso (embora com vários graus de sucesso).

@ zadjii-msft @ DHowett-MSFT Não estamos limitados pela API publicada como desenvolvedores MSFT. Se você entrar em contato com os mantenedores da biblioteca, provavelmente poderá resolver isso, pois eles constroem suas coisas de uma forma estúpida não significa que todos temos que viver com isso, certo?

👆🏻 isso. tanto isso.

Notarei que https://github.com/goreliu/wsl-terminal lida perfeitamente com a transparência (e acredito da maneira que a maioria das pessoas aqui deseja), portanto, investigar essa base de código é provavelmente um lugar razoável para começar.

* EDITAR *

E a opção de transparência realmente vem do projeto https://github.com/mintty/mintty subjacente

Quero ler o que está por trás da janela, geralmente exemplos de código em uma página da web. Nesse sentido, seria melhor ter uma tecla de atalho que alterna entre desfoque e transparência sem desfoque? Aka, desativa o acrílico, mas mantém a transparência. Pode ser apertar e segurar ou alternar, seria divertido tentar ambos.

Este comentário (https://github.com/microsoft/terminal/issues/1375#issuecomment-569483109) de @JasonStein pode ser relevante para este tópico:

Olá pessoal, sou o autor de Notepads, é assim que faço o efeito acrílico de fundo "sempre ativado " para a barra de título e o corpo da janela do Notepads App: Notepads: src / Notepads / Services / ThemeSettingsService.cs @ 12940ad # L253

Eu mesmo criei o pincel Acrílico usando "AcrylicBackgroundSource.HostBackdrop" com ajuda da biblioteca UICompositionAnimations para facilitar minha vida (ref: Sergio0694 / UICompositionAnimations ).

Basicamente, é criar o pincel do zero usando APIs de composição (AcrylicBackgroundSource.HostBackdrop + Noise texture).

A API AcrylicBrush não é a única escolha. Eu realmente gostaria de ter uma opção de opacidade simplesmente sem desfoque, além das opções de acrílico. É estranho descartar um recurso útil do cmd ao fazer este Terminal do Windows como cmd-ng.

Transparência sem nenhum desfoque, se isso pudesse ser feito sem acrílico, seria ótimo, então eu não tenho que usar o comando alt-tab mid para verificar algo.

No mac e no Linux, eu uso o terminal transparente o tempo todo porque frequentemente leio um documento ou algum código-fonte na janela abaixo enquanto digito, é extremamente útil.

Controlar o desfoque seria o ideal. (no mac, uso 3% de desfoque apenas para destacar o texto do terminal, sem dificultar a leitura do texto por trás dele).

Para esclarecimento, isso permitiria a transparência da janela sem o desfoque (ou seja, agir como cmd e PS)? Seria ótimo poder ler o texto atrás da janela.

Exatamente! Na verdade, não vou nem pensar em mudar para o Terminal do Windows (por mais que eu adore) até que isso seja implementado. Eu continuo verificando, mas desapontado ao ver que ainda não foi feito.

Esse recurso é especialmente útil para aqueles com um único monitor ou espaço limitado na tela. Quase sempre tenho alguma página da web ou outro texto atrás do meu terminal que desejo ler enquanto estiver no terminal. Eu ajusto minha transparência / opacidade apropriadamente para tornar esta uma experiência confortável para que eu ainda possa ler bem meu terminal.

Por favor, implemente isso o mais rápido possível. Estou ansioso para usar o WT e o tenho seguido desde o primeiro lançamento Alpha.

Como um bônus, também deve haver um booleano para alternar se a transparência / opacidade também deve se aplicar ao texto no Terminal. Isso garantiria que o texto no terminal permanecesse vibrante e visível para torná-lo mais distinguível de qualquer outro texto nas janelas atrás do terminal.

Se o desfoque deve ser referido como acrílico, não acho que ele deva se desviar da construção visual de outras superfícies acrílicas além da opacidade (que é variável com pincéis de acrílico)

Se você começar a separar as várias camadas, como as quantidades de ruído, luminosidade ou desfoque - não é mais "acrílico", mas um conjunto de efeitos de camada de composição.

Eu continuo checando

boas notícias! Você receberá um e-mail quando fecharmos este bug: sorria: para melhor ou para pior

Eu tenho que repetir o que todo mundo está dizendo; Atualmente, uso a instalação msi do PowerShell Core como meu shell principal. Como um componente muito grande do meu trabalho, estou neste console em meio-tela ou tela inteira em um formato ultra-amplo o dia todo e preciso ser capaz de ver as coisas claramente por baixo.

Adoro a ideia e agradeço o esforço que a Microsoft está colocando em alguns dos utilitários de administração do Windows, mas, neste ponto, este novo Terminal é simplesmente uma novidade que não pode substituir o console original de forma significativa. Por favor, veja a imagem abaixo; ambas as janelas são colocadas sobre o mesmo local nesta página. Um é ótimo e o outro está inutilizável, não preciso apontar qual é qual.

image

este novo Terminal é simplesmente uma novidade

Agradeço sua crítica gentil ao projeto em que estamos trabalhando há um ano e meio, mas você poderia _não_?

Tenho empatia por como você se sente; não é um local divertido, mas também coloque-se na perspectiva da base de usuários (em grande parte clientes pagantes) que está esperando por isso há um ano e meio. Eu queria ecoar os outros pensamentos que parecem estar permeando a comunidade em relação a este produto e eu queria pelo menos fornecer uma captura de tela para ser construtiva, já que ninguém mais tinha feito isso até agora. Sem realmente ver qual é o problema, seria fácil descartá-lo como algo secundário ou lamentável, mas espero que você reconheça que o console superior em minha captura de tela está claramente não funcional. Espero que possa ser consertado.

  1. Não se preocupe, todos da equipe são usuários diários do Terminal. Somos todos uma base de usuários tanto quanto nossos clientes externos.
  2. Só para constar, o Terminal só foi anunciado em abril passado, então vocês estão esperando há apenas 13 meses 😉
  3. Estamos investigando esse problema há algum tempo. Entendemos que esse não é um problema gráfico trivial, mas, infelizmente, não é um problema tecnicamente trivial para consertar 😕

@ zadjii-msft Eu entendo a terceira parte, por isso postei a captura de tela para ilustrar o que todos estão reclamando neste e em outros tópicos de problemas. Eu aprecio vocês trabalharem para construir produtos legais com uma abordagem mais agnóstica do SO, espero que continue avançando sem muita dor de cabeça para vocês.

"Nossa missão é capacitar cada pessoa e cada organização no planeta para alcançar mais." - Microsoft

Infelizmente, este novo terminal está de acordo com a linha. Definitivamente, vem com alguns recursos incríveis, como guias! SURPREENDENTE!!! Porém, como desenvolvedores, temos que aceitar o lado bom do ruim e, às vezes, não percebemos que faltam recursos que acabam sendo muito importantes para o usuário até o lançamento. 🤦🏼‍♂️ Este é um software livre, por isso estou extremamente grato por isso e pelo fantástico compromisso da Microsoft com o Código Aberto nos últimos anos (especialmente desde que a Satya transformou a empresa). Ao mesmo tempo, a transparência de qualquer terminal é uma obrigação em meu livro. Os efeitos acrílicos são bonitos com certeza, mas nem todo mundo vai ficar bem com o desfoque, eu inclusive, especialmente com espaço limitado na tela. 🥰

Mantenha o excelente trabalho da equipe do Windows Terminal!

Eu realmente adoraria se a equipe da Microsoft adicionar esse recurso, a questão é: como podemos pedir que esse recurso seja incluído no próximo lançamento? Tenho certeza que isso pode ser alcançado, obrigado por todo o trabalho que você realizou com este terminal até agora. Sim, não é um problema técnico, é um novo requisito para o terminal.

Eu _adoro_ ter isso na próxima versão, mas conforme descrevi detalhadamente em https://github.com/microsoft/terminal/issues/603#issuecomment -626830075, isso _é_ um problema técnico que não tem uma solução fácil, então não posso realmente comprometer-me em adicioná-lo a qualquer versão em particular.

impressionado até agora com os esforços e ansioso para que esse desfoque configurável (ou mesmo semitransparência simples sem o acrílico!) eventualmente seja adicionado .. mas até então estará aderindo com wsltty.

A transparência é essencial para uma janela de terminal, já que a maioria dos usuários avançados precisa ver através da janela com frequência. O desfoque é principalmente cosmético, enquanto a transparência é uma ferramenta real.

@harounhajem não é a mesma coisa que está sendo discutida neste tópico - a tarefa neste tópico é sobre como controlar o quanto o Terminal desfoca o fundo com acrílico ativado. Presumi que "Blur" era uma propriedade de AcrylicBrush , quando na verdade não é.

Honestamente, este é provavelmente um truque de # 603 neste momento, mas estou deixando em aberto porque há pelo menos 22 outras pessoas que já estão seguindo este tópico para uma resolução.

Lol @ zadjii-msft ele perdeu totalmente o ponto. E parece que ele removeu seu comentário. 😅
Mas sim, muitos de nós estamos esperando o dia em que poderemos usar este aplicativo de terminal. 👀

Não tenho certeza se este deve ser um problema separado ou não. Eu também gostaria muito de uma opção para manter a opacidade quando o Terminal não for a janela ativa, ou melhor ainda, a opção de usar um valor de opacidade alternativo quando inativo.

Por enquanto, tenho um atalho para definir a janela ativa para ~ 80% de opacidade, o que funciona muito bem com desfoque acrílico, pois posso ver o que está por trás, mas o efeito de desfoque ajuda o texto do terminal a permanecer legível.

O acrílico de WT é definido como 0.8 , enquanto a função AutoHotKey define a opacidade como 200 (200/255).

Por enquanto, tenho um atalho para definir a janela ativa para ~ 80% de opacidade, o que funciona muito bem com desfoque acrílico, pois posso ver o que está por trás, mas o efeito de desfoque ajuda o texto do terminal a permanecer legível.

O acrílico de WT é definido como 0.8 , enquanto a função AutoHotKey define a opacidade como 200 (200/255).

Eu ficaria curioso para ler mais sobre sua configuração para isso, se você estiver disposto a compartilhar. Parece algo que eu acharia útil.

Função AutoHotKey:

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

Isso alterna a janela ativa entre opacidade total e opacidade 180/255. O atalho é Win+Ctrl+Esc .
Para o Windows Terminal, apenas defina "acrylicOpacity" para algo entre 0.7 e 0.9 , dependendo da cor do seu plano de fundo (mais escuro = mais visivelmente transparente). Eu uso:

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

@narfanar Muito obrigado por isso! Eu tenho um terminal transparente no Windows agora!

Isso não funcionou para mim do jeito que está, por algum motivo, minha versão do Windows não entende a configuração OFF , então eu modifiquei um pouco:

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

Função AutoHotKey:

OMG, muito obrigado! Nunca me ocorreu que AHK pudesse fazer isso. Ajustar a configuração de acrílico para obter a quantidade de desfoque desejada parece funcionar. Ainda é um pouco mais perturbador do que o borrão que você obtém no terminal do mac, mas faz o trabalho.

Posso usar este terminal como meu principal agora ty @narfanar

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

Wid-Mimosa picture Wid-Mimosa  ·  3Comentários

mrmlnc picture mrmlnc  ·  3Comentários

ghvanderweg picture ghvanderweg  ·  3Comentários

NickITGuy picture NickITGuy  ·  3Comentários

miniksa picture miniksa  ·  3Comentários