Terminal: Ajouter un paramètre pour contrôler le «flou» acrylique en plus de l'opacité

Créé le 1 juil. 2019  ·  38Commentaires  ·  Source: microsoft/terminal

À peu près le titre.

Pour le moment, nous n'utilisons que la quantité de flou par défaut.

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

Commentaire le plus utile

Pour clarifier, cela permettrait-il la transparence de la fenêtre sans le flou (c'est-à-dire agir comme cmd et PS)? Ce serait formidable de pouvoir lire du texte derrière la fenêtre.

Tous les 38 commentaires

Le curseur d'opacité, avec une bascule pour activer ou désactiver l'acrylique, fonctionnerait également

Tirant sur l'étiquette de triage. C'est une quantité connue de travail que nous devons juste faire.

Cela pourrait être impossible ...

Lorsque j'ai déposé ce problème, j'ai pensé à tort qu'il y avait une propriété "Flou" sur l'AcryliqueBrush, mais cela ne semble pas du tout exposé. Voir sa page sur MSDN .

Et en regardant ce problème , il semble que cela pourrait être impossible, pour des raisons de sécurité.

Dans cette veine, je voudrais que deux propriétés indépendantes définissent des valeurs acryliques pour le moment où la fenêtre est au premier plan et quand elle est en arrière-plan. Par exemple, je voudrais que la fenêtre soit à 90% d'opacité lorsque la fenêtre a le focus, et à 70% d'opacité quand ce n'est pas le cas.

Pour clarifier, cela permettrait-il la transparence de la fenêtre sans le flou (c'est-à-dire agir comme cmd et PS)? Ce serait formidable de pouvoir lire du texte derrière la fenêtre.

Lorsque j'ai déposé ce problème, j'ai pensé à tort qu'il y avait une propriété "Flou" sur l'AcryliqueBrush, mais cela ne semble pas du tout exposé. Voir sa page sur MSDN.

N'est-ce pas contrôlé par TintOpacity ? https://docs.microsoft.com/en-us/windows/uwp/design/style/acrylic#custom -acrylic-brush

Je suppose que c'est ce que la plupart des gens (ou du moins moi) veulent dire lorsqu'ils parlent de changer le niveau de flou.

J'ai trouvé (au moins un) moyen d'accomplir cet effet, mais pas via UWP. La très ancienne API de l'ère Vista DwmEnableBlurBehindWindow , si elle est appelée sur Windows 10, change l'arrière-plan de la fenêtre en un noir semi-transparent, sans flou. Quelle ironie étant donné le nom de la fonction, hein? AFAICT, cela ne présente aucun problème de sécurité, car l'application ne peut pas lire le contenu de l'arrière-plan affiché, car il est entièrement traité dans dwm.exe.

Cela étant dit, ne pourrions-nous pas utiliser SetLayeredWindowAttributes sur le HWND racine, tout comme le fait conhostV2? Si je comprends bien la documentation, cela devrait également affecter les fenêtres enfants. S'il le fait d'une manière qui ne serait pas satisfaisante, nous pouvons ensuite utiliser cette même fonction pour définir l'alpha des HWND enfants à 255 (opaque), puis effacer les fenêtres enfants avec une couleur transparente pour effacer le remplissage d'arrière-plan par défaut. Après cela, nous devrions pouvoir dessiner ce que nous voulons au-dessus de la fenêtre d'arrière-plan transparent. Cela peut prendre un peu de refactorisation de l'architecture Cascadia, mais je ne vois aucune raison pour laquelle cela ne pourrait pas être fait. J'espère que cela t'aides!

Pour ajouter mes 2 centimes, j'aimerais vraiment le type d'options de transparence et de flou que propose iterm2 sur Mac. Vous avez une transparence régulière et vous pouvez ajouter juste un peu de flou pour réduire la fatigue oculaire tout en distinguant clairement le fond d'écran ou quoi que ce soit.

L'acrylique a l'air terrible et la chose sous la fenêtre est complètement méconnaissable.

@ zadjii-msft @ DHowett-MSFT Nous ne sommes pas limités par l'API publiée en tant que développeurs MSFT. Si vous contactez les responsables de la bibliothèque, vous pouvez probablement résoudre ce problème, ils construisent leur truc de manière stupide ne signifie pas que nous devons tous vivre avec, n'est-ce pas?

Pour mémoire, c'est la dernière fonctionnalité indispensable pour moi et la transparence de la fenêtre n'est pas vraiment utilisable sans elle. Au moins, la transparence de l'image d'arrière-plan fonctionne, mais il est beaucoup plus agréable de pouvoir voir les applications réelles en dessous et / ou votre véritable bureau. Terminus, Alacritty et Conemu gèrent tous cela (bien qu'avec des degrés de succès variables).

@ zadjii-msft @ DHowett-MSFT Nous ne sommes pas limités par l'API publiée en tant que développeurs MSFT. Si vous contactez les responsables de la bibliothèque, vous pouvez probablement résoudre ce problème, ils construisent leur truc de manière stupide ne signifie pas que nous devons tous vivre avec, n'est-ce pas?

👆🏻 ceci. tellement ça.

Je noterai que https://github.com/goreliu/wsl-terminal gère très bien la transparence (et je crois que la majorité des gens ici le souhaitent), donc enquêter sur cette base de code est probablement un endroit raisonnable pour commencer.

* ÉDITER *

Et l'option de transparence vient vraiment du projet https://github.com/mintty/mintty sous-jacent

Je veux lire ce qui se cache derrière la fenêtre, généralement des exemples de code sur une page Web. Dans cette veine, serait-il préférable d'avoir un raccourci clavier qui bascule entre la transparence floue et non floue? Aka, éteint l'acrylique mais maintient la transparence. Cela pourrait être push-and-hold ou bascule, ce serait amusant d'essayer les deux.

Ce commentaire (https://github.com/microsoft/terminal/issues/1375#issuecomment-569483109) de @JasonStein pourrait être pertinent pour ce fil:

Salut les gars, je suis l'auteur de Notepads, c'est ainsi que je crée un effet acrylique d'arrière-plan "toujours activé " pour la barre de titre et le corps de la fenêtre de Notepads App: : src / Notepads / Services / ThemeSettingsService.cs @ 12940ad # L253

J'ai créé moi-même le pinceau Acrylique en utilisant "AcrylicBackgroundSource.HostBackdrop" avec l'aide de la bibliothèque UICompositionAnimations pour me faciliter la vie (ref: Sergio0694 / UICompositionAnimations ).

Il s'agit essentiellement de créer le pinceau à partir de zéro à l'aide d'API de composition (AcrylicBackgroundSource.HostBackdrop + Noise texture).

L'API AcryliqueBrush n'est pas le seul choix. J'aimerais vraiment avoir une option pour une opacité sans flou, en dehors des options acryliques. Il est étrange de supprimer une fonctionnalité utile de cmd lors de la création de ce terminal Windows en tant que cmd-ng.

La transparence sans aucun flou si cela peut être fait sans acrylique serait même géniale, donc je n'ai pas à modifier la commande mi-tab pour vérifier quelque chose.

Sur mac et Linux, j'utilise tout le temps un terminal transparent car je lis souvent un document ou un code source dans la fenêtre en dessous car je le tape extrêmement pratique.

Contrôler le flou serait alors idéal. (sur le mac, j'utilise 3% de flou juste pour faire ressortir le texte du terminal sans rendre le texte derrière celui-ci difficile à lire.)

Pour clarifier, cela permettrait-il la transparence de la fenêtre sans le flou (c'est-à-dire agir comme cmd et PS)? Ce serait formidable de pouvoir lire du texte derrière la fenêtre.

Exactement! En fait, je n'envisagerai même pas de passer au terminal Windows (autant que je l'aime) tant que cela ne sera pas implémenté. Je reviens sans cesse, mais je suis déçu de voir que cela n'a toujours pas été fait.

Cette fonctionnalité est particulièrement utile pour ceux qui ont un seul moniteur ou un espace d'écran limité. J'ai presque toujours une page Web ou un autre texte derrière mon terminal que je veux pouvoir lire lorsque je suis dans le terminal. J'ajuste ma transparence / opacité de manière appropriée pour en faire une expérience confortable afin que je puisse toujours bien lire mon terminal.

Veuillez implémenter ceci dès que possible. J'ai hâte d'utiliser WT et je le suis depuis la première version d'Alpha.

En prime, il devrait également y avoir un booléen pour déterminer si la transparence / l'opacité doit également s'appliquer au texte dans le terminal. Cela garantirait que le texte dans le terminal reste dynamique et visible pour le rendre plus distinct de tout autre texte dans les fenêtres derrière le terminal.

Si le flou doit être appelé acrylique, je ne pense pas qu'il devrait s'écarter de la construction visuelle des autres surfaces acryliques au-delà de l'opacité (qui est variable avec les pinceaux acryliques)

Si vous commencez à séparer les différents calques tels que les quantités de bruit, de luminosité ou de flou, ce n'est plus "Acrylique" mais un ensemble d'effets de calques de composition.

Je reviens sans cesse

bonnes nouvelles! Vous recevrez un e-mail lorsque nous fermons ce bug: smile: pour le meilleur ou pour le pire

Je dois me faire l'écho de ce que tout le monde dit; J'utilise actuellement l'installation de PowerShell Core msi comme shell principal. En tant que très grande composante de mon travail, je suis dans cette console en demi ou plein écran sur un ultra-large toute la journée et j'ai besoin de pouvoir voir clairement les choses en dessous.

J'adore l'idée et j'apprécie les efforts que Microsoft déploie dans certains des utilitaires d'administration de Windows, mais, à ce stade, ce nouveau terminal est tout simplement une nouveauté qui ne peut pas remplacer la console d'origine. Veuillez voir la capture d'écran ci-dessous; les deux fenêtres sont disposées au même endroit sur cette page. L'un est génial et l'autre est inutilisable, je n'ai pas à préciser lequel est lequel.

image

ce nouveau terminal est simplement une nouveauté

J'apprécie votre aimable critique du projet sur lequel nous travaillons depuis un an et demi, mais pourriez-vous _pas_?

Je comprends ce que vous ressentez; ce n'est pas un endroit amusant, mais placez-vous également dans la perspective de la base d'utilisateurs (de clients en grande partie payants) qui attend cela depuis un an et demi. Je voulais faire écho aux autres pensées qui semblent imprégner la communauté concernant ce produit et je voulais au moins fournir une capture d'écran pour être constructive puisque personne d'autre ne l'avait fait jusqu'à présent. Sans vraiment voir quel est le problème, il serait facile de le rejeter comme mineur ou pleurnichard, mais j'espère que vous reconnaissez que la console supérieure de ma capture d'écran est clairement non fonctionnelle. J'espère que cela peut être corrigé.

  1. Ne vous inquiétez pas, tout le monde dans l'équipe est un utilisateur quotidien du Terminal. Nous sommes tous autant d'utilisateurs que nos clients externes.
  2. Pour mémoire, le Terminal n'a été annoncé qu'en avril dernier, vous n'attendez donc que 13 mois 😉
  3. Nous étudions ce problème depuis un certain temps maintenant. Nous comprenons que ce n'est pas un problème graphique trivial, mais malheureusement, ce n'est pas un problème techniquement trivial à résoudre 😕

@ zadjii-msft Je comprends la troisième partie, c'est pourquoi j'ai posté la capture d'écran pour illustrer en quelque sorte ce dont tout le monde se plaint dans ce sujet et dans d'autres fils de discussion. J'apprécie que vous travailliez à créer des produits sympas avec une approche plus indépendante du système d'exploitation, j'espère que cela continuera sans trop de maux de tête pour vous.

«Notre mission est de donner à chaque personne et à chaque organisation de la planète les moyens de faire plus. - Microsoft

Malheureusement, ce nouveau terminal respecte un peu la ligne. Il est certainement livré avec des fonctionnalités étonnantes, comme des onglets! INCROYABLE!!! Cependant, en tant que développeurs, nous devons prendre le bon avec le mauvais, et parfois nous ne réalisons pas qu'il manque des fonctionnalités qui finissent par être très importantes pour l'utilisateur avant le lancement. 🤦🏼‍♂️ Il s'agit d'un logiciel libre, donc je suis extrêmement reconnaissant pour cela et pour le fantastique engagement de Microsoft envers l'Open Source ces dernières années (surtout depuis que Satya a transformé l'entreprise). Dans le même temps, la transparence de tout terminal est un must dans mon livre. Les effets acryliques sont certes jolis, mais tout le monde ne sera pas d'accord avec le flou, moi y compris, en particulier avec un écran limité. 🥰

Continuez l'excellent travail de l'équipe Windows Terminal!

J'adorerai vraiment si l'équipe Microsoft ajoute cette fonctionnalité, la question est, comment pouvons-nous demander que cette fonctionnalité soit incluse dans la prochaine version? Je suis presque sûr que cela peut être réalisé, merci pour tout le travail que vous avez accompli avec ce terminal jusqu'à présent. Ouais ce n'est pas un problème technique, c'est une nouvelle exigence pour le terminal.

J'adorerais avoir ceci dans la prochaine version, mais comme je l'ai expliqué en détail dans https://github.com/microsoft/terminal/issues/603#issuecomment -626830075, ce _est_ un problème technique qui ne avoir une solution simple, donc je ne peux pas vraiment m'engager à l'ajouter dans une version particulière.

impressionné jusqu'à présent par les efforts et j'ai hâte de voir ce flou configurable (ou même tout simplement la semi-transparence sans l'acrylique!) éventuellement ajouté .. mais jusque-là restera avec wsltty.

La transparence est un must pour une fenêtre de terminal, car la plupart des utilisateurs expérimentés ont souvent besoin de voir à travers la fenêtre. Le flou est principalement cosmétique tandis que la transparence est un véritable outil.

@harounhajem ce n'est pas la même chose discutée dans ce fil - la tâche de ce fil consiste à contrôler à quel point le terminal brouille l'arrière-plan avec l'acrylique activé. J'ai supposé que "Blur" était une propriété sur le AcrylicBrush , alors que ce n'est vraiment pas le cas.

Honnêtement, c'est probablement une dupe de # 603 à ce stade, mais je le laisse ouvert car il y a au moins 22 autres personnes qui suivent déjà ce fil pour une résolution.

Lol @ zadjii-msft il a totalement raté le point. Et il semble qu'il a supprimé son commentaire. 😅
Mais oui, beaucoup d'entre nous attendent le jour où nous pourrons utiliser cette application de terminal. 👀

Je ne sais pas si cela devrait être un problème distinct ou non. J'aimerais aussi vraiment une option pour maintenir l'opacité lorsque Terminal n'est pas la fenêtre active, ou mieux encore, l'option d'utiliser une autre valeur d'opacité lorsqu'elle est inactive.

Pour l'instant, j'ai un raccourci pour définir la fenêtre active à ~ 80% d'opacité, ce qui fonctionne très bien avec le flou acrylique car je peux voir ce qu'il y a derrière, mais l'effet de flou aide le texte du terminal à rester assez lisible.

L'acrylique de WT est défini sur 0.8 , tandis que la fonction AutoHotKey définit l'opacité sur 200 (200/255).

Pour l'instant, j'ai un raccourci pour définir la fenêtre active à ~ 80% d'opacité, ce qui fonctionne très bien avec le flou acrylique car je peux voir ce qu'il y a derrière, mais l'effet de flou aide le texte du terminal à rester assez lisible.

L'acrylique de WT est défini sur 0.8 , tandis que la fonction AutoHotKey définit l'opacité sur 200 (200/255).

Je serais curieux d'en savoir plus sur votre configuration pour cela si vous êtes prêt à partager. Cela ressemble à quelque chose que je trouverais utile.

Fonction AutoHotKey:

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

Cela fait basculer la fenêtre active entre l'opacité totale et l'opacité 180/255. Le raccourci est Win+Ctrl+Esc .
Pour Windows Terminal, définissez simplement "acrylicOpacity" sur quelque chose entre 0.7 et 0.9 , en fonction de la couleur de votre arrière-plan (plus sombre = plus sensiblement transparent). J'utilise:

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

@narfanar Merci beaucoup pour cela! J'ai un terminal transparent sur Windows maintenant!

Cela n'a pas fonctionné pour moi tel quel, pour une raison quelconque, ma version de Windows ne comprend pas le paramètre OFF , donc je l'ai légèrement modifié:

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

Fonction AutoHotKey:

OMG Merci beaucoup! Je ne suis même pas venu à l'esprit qu'AHK pouvait faire cela. Ajuster le paramètre acrylique pour obtenir la quantité de flou souhaitée semble fonctionner. Encore un peu plus distrayant que le flou que vous obtenez sur le terminal Mac, mais cela fait le travail.

Peut utiliser ce terminal comme mon principal maintenant ty @narfanar

Cette page vous a été utile?
0 / 5 - 0 notes