Windows 11 | Transparente Taskbar mit Windhawk

Hallo zusammen, ich wünsche euch ein gutes neues und vor allem gesundes Jahr!

Ich muss zugeben, dass dieser Beitrag eigentlich nicht mein Arbeitsgebiet ist. Er hat sich letztlich aus einer Kundensituation heraus ergeben.

“Losing my Religion?”

Selbstverständlich ist das Gras auf der anderen Seite immer ein bisschen grüner, weshalb in einem Kundenprojekt entschieden wurde, auf Apple-Hardware zu setzen. Es kam zur Ausstattung von Mitarbeitern mit MacBooks und iPads, da angeblich alles webbasierend ist. Ich will hier auch keinen Hate gegen Apple fahren und die Details wieso man auf einmal trotzdem Windows benötigt, spielen keine Rolle. Auf jeden Fall sollten auf einmal eine Reihe von Windows-Laptops zum Einsatz kommen. Man hatte sich für die Surface Laptops aus dem Hause Microsoft entschieden. Alles kein großes Ding, aber … der Kunde wollte einen „Mod“, damit die Microsoft-Geräte mehr nach Apple ausschauen? Bis mir klar wurde, worauf das hinausläuft, hatten wir satte zwei Stunden diskutiert, aber vor allem um den heißen Brei herumgeredet.

Windows 11 wäre nun wohl doch in Ordnung, aber die Taskleiste gefiel nicht – sie sollte mehr nach macOS von Apple aussehen. Damit kam Windhawk ins Spiel. Meine ohnehin schon minimierte Taskleiste unter Windows 11 genügte nicht.

{578D3CD8-38D6-4EC0-A5FA-60B7F37D406F}

Ich schalte generell die Suche, Task view und die Widgets ab und erreiche damit ein recht schlankes Aussehen, aber nein man wünschte sich eine “gewisse Transparenz”.

Installation von Windhawk

Windhawk ist kostenlos und kann direkt unter https://windhawk.net heruntergeladen werden. In diesem Fall war dazu noch ARM-Support gefordert, genauso wie der Einsatz als Portable-Version (was während der Installation ausgewählt werden kann).

Darum hatte ich mich entschieden das Portable unter \Users\Public\.Windhawk zu installieren und dafür schon ein Verzeichnis erstellt. Nach dem Download des Installers und der Auswahl der Sprache besteht die Möglichkeit zwischen einer Installation oder der Verwendung der Portable Version zu wählen.

{7C5F1C13-2F52-4F91-A683-F11E47502CAE}

Wie schon geschrieben, sollte es hier die Portable sein und darum habe ich das dafür erstellte Verzeichnis ausgewählt.

{520DF6AA-4A87-4D4C-BAB0-75ADD8232DC4}

Ein Klick auf Install schließt die Installation ab und Windhawk kann konfiguriert werden. Der Zugang ins Internet ist dabei zwingend notwendig, da Windhawk noch einiges an Dateien nachladen muss.

Ein Klick auf Browse for Mods bringt einem dann auch gleich zum Taskbar Styler.

image

Dieser wird mit einen Klick auf Details geöffnet und kann seiner Installation wiederum konfiguriert werden.

image

Nach dem Bestätigen eines Sicherheitshinweises startet die Installation und dauert wiederum eine Weile. Danach stehen über 10 Themes zur Verfügung, von denen ich dachte das Docklite wohl das richtige wäre. Aber weit gefehlt, am Ende fiel die Entscheidung für das SimplyTransparent-Theme, was mir wiederum auch recht sein sollte Smile

Das Theme kann unter Details ausgewählt und bei Bedarf nochmals angepasst werden.

image

Save Settings aktiviert das Theme und damit bleibt nur noch das automatische Start von Windhawk, der allerdings bei der Portable-Version über shell:startup nicht wirklich funktioniert.

Darum habe ich einen Task angelegt, der den Start von Windhawk mit der Anmeldung des Benutzers verbindet. Dazu den Task Scheduler starten und einen Task mit den folgenden Einstellungen anlegen.

Create a Basic Task / Name: Starting Windhawk with user logon

image

Next öffnet den Dialog für den Task Trigger, wo When I log on ausgewählt werden soll.

image

Wiederum mit Next kommt man zur Konfiguration der eigentlichen Action mit Start a program. Hier wird der Pfad zur Windhawk.exe in Verbindung mit einem Parameter zur Anzeige von Windhawk im Windows Tray konfiguriert.

image

Abermals mit Next und dann Finish wird die Konfiguration abgeschlossen und Windhawk lädt die eingestellte Konfiguration automatisch nach der Anmeldung des Benutzers.

Noch ein kleiner Hinweis, die Pfade können selbstverständlich auch qualifiziert werden, also C:\Public anstatt \Public …

Sieht dann am Ende wie folgt aus, wem es gefällt … ?!

{858E22B1-4AFC-47A7-8E6D-24390C2F6280}

Nachtrag … natürlich ein wenig PowerShell-Magie

Den Task könnt ihr auch mit einem PowerShell-Skript anlegen.

{60EF6513-6CA4-4011-9BD4-6BED9E541657}

Wichtig ist, dass die Einträge davor angepasst werden. Die Zeile 12 funktioniert sowohl bei PCs die in einer Domäne sind, als auch bei PCs in einer Workgroup. Ich halte es für sinnvoll, Windhawk nur für einen expliziten Benutzer laufen zu lassen und zum Beispiel einen lokalen administrativen Account davon auszunehmen – nur für den Fall, dass man den Explorer abschießen sollte Winking smile

Enjoy it, b!

Synology VMM | Windows VM mit starker CPU Auslastung durch “System interrupts”

Ich muss hier einen Fall von Layer-8 Ignoranz schildern – mit etwas Vorgeschichte.

Alles Cloud …

Vor vier Monaten erzählte mir ein Freund, dass er eine Praxis übernehmen würde – mit einer Softwarelösung, die zu 100% in der Cloud läuft. „Wir brauchen nur ein paar Tablets und Internet, da kannst du mir vielleicht helfen?“ Wo fängt man da an …

  1. Es gab PCs, Baujahr 2018 oder 2019 – so genau wusste das niemand. Man hielt sie für „relativ neu“. OK – relativ. Und mit <Panikmodus>Festplatten</Panikmodus>
  2. Ein neues, dreidimensionales Röntgengerät musste her. Die Daten sollten direkt in die Cloud gespeichert werden – allerdings braucht es dazwischen ein „Laufwerk“ als Cloud-Cache
  3. Dazu kamen diverse Konnektoren – wofür auch immer

Die Informationen sickerten nach und nach durch. Ein vollständiges Bild hatten wir erst 14 Tage vor der Wiedereröffnung der Praxis.

Where the rubber meets the road …

Für Punkt 1 konnte ich mit etwas Überzeugungsarbeit ein Synology-NAS (RS822+) ins Spiel bringen. Dank Synology Directory Server gab es eine kleine Domäne, über die sich die PCs (nun mit SSDs ausgestattet) verwalten ließen.

Mit maximalem RAM ausgestattet, liefen darauf zwei bis drei kleine VMs. Der AMD Ryzen 1500B ist zwar kein Kraftpaket, aber für kleine Aufgaben reicht’s. Die Bereitstellung der VMs übernahm der Synology Virtual Machine Manager (VMM), also QEMU/KVM so mehr oder weniger.

Zwei Windows-VMs wurden eingerichtet:

  • Eine mit 4 vCPUs, 16 GB RAM und 2 TB Speicher für den Cloud-Cache (Punkt 2).
  • Eine weitere mit 10 GB RAM für einen Healthconnector.

Nach einigen Optimierungen liefen die VMs stabil und flott – auch dank SSD-Cache im NAS.

Punkt 3: Die Konnektoren

Der erste Konnektor ließ sich problemlos installieren. Kein Thema. Dann kam der RISE-Konnektor – und wie so oft: ein Dienstleister, der sich als besonders „resistent“ erwies.

Natürlich, der Dienstleister ist immer der andere … Winking smile

Die „Anforderung“, in der virtuellen Windows-VM (QEMU/KVM-basiert) das „Hyper-V Networking“ zu installieren, war für mich nicht nachvollziehbar. Angeblich sei das für WireGuard-VPN nötig?! Das Eventlog zeigte jedenfalls mehr als nur „Hyper-V Networking“ – vielleicht hatte er sich jemand verklickt.

image

Mir ist kein explizites „Hyper-V Networking“ bekannt. Windows bietet auf dem Client die folgenden Features an:

Vor dem Reboot sah der Taskmanager noch wie folgt aus …

image

Die Konsequenzen waren aber dem Reboot zu sehen und verheerend.

image

Der Screenshot zeigt nicht das gesamte Ausmaß des Desasters, die virtuellen CPUs liefen über weite Strecken auf 100% und ein Arbeiten war nicht mehr möglich. Weder RDP-Sitzungen noch TeamViewer funktionierten. Auch mehr vCPUs halfen nicht wesentlich.

Ich konnte die Last auf etwa 40 % drücken – aber die VM blieb träge. Sehr träge.

image

Sobald die Hyper-V-Rolle innerhalb des Windows 11-Gastsystems installiert ist, beginnt sich die virtuelle Maschine selbst wie ein Hyper-V-Host zu verhalten (oder versucht es zumindest). Dies verändert die Art und Weise, wie Windows mit der zugrunde liegenden Hardware und der Virtualisierungsschicht interagiert und führt häufig zu:

  • Konflikten bei verschachtelter Virtualisierung: Hyper-V innerhalb einer VM (Nested Virtualization) kann mit den eigenen Virtualisierungsmechanismen von QEMU/KVM interferieren.
  • Problemen bei der Interrupt-Verarbeitung: Das System kann auf andere Taktquellen oder Interrupt-Modelle umschalten (z. B. hyperv_clocksource_tsc_page vs. tsc), was zu übermäßigen System-Interrupts und einer verschlechterten Leistung führen kann
  • Verändertes Timer- und Polling-Verhalten: Hyper-V kann beeinflussen, wie das Gastbetriebssystem Leerlaufzustände und Interrupts behandelt – insbesondere, wenn Funktionen wie halt_poll nicht abgestimmt sind

Ein zeitaufwändig erstellter Dump des Systemprozesses (PID 4) zeigte massenhaft IRPs – ein weiteres Indiz für Probleme durch Hypervisor-Verschachtelung.

image

Hyper-V musste also wieder runter

Final blieb nur die Möglichkeit Hyper-V zu entfernen, was dem Dienstleister nicht wirklich gefallen hat. Die Lösung war die Installation des RISE-Konnektors auf einen der PCs in der Praxis, wobei hier auf das Hinzufügen der Hyper-V Rolle verzichtet wurde?!Wir fragen nicht und nehmen die Alternative mal einfach so hin Sick smile

Die beiden folgenden PowerShell Aufrufe zeigten halfen das System dann anschließend zu korrigieren und in einen nutzbaren Zustand zu versetzen:

# Anzeigen aller aktivierten (enabled) Features in Windows 11
Get-WindowsOptionalFeature -Online | Where-Object {$_.State -eq "Enabled"}
# Deaktivieren der Hyper-V Rolle + manuellem Reboot hinterher
Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All

Nach dem Neustart lief der RISE-Konnektor mit ~10 % Systemlast. Der Dienstleister war da schon am nächsten PC – und ich hatte ehrlich gesagt keine Lust mehr. Hauptsache, die VM lief wieder.

So, genügend Angry smile – einfach aufpassen und schauen, was “Fachkräfte” auf den Systemen so installieren und sich die Systemanforderungen im Vorfeld schriftlich per Mail besorgen.

Enjoy it, b!

Windows 11 | Change what opening the lid does

In Windows gibt es seit langem die Möglichkeit, ein Verhalten beim Schließen des Bildschirms (bei Notebooks) zu konfigurieren. Die Möglichkeiten sind sind im Control Panel / Power Options/ Change what closing the lid does vorhanden.

image

image

Nun wäre es natürlich sinnvoll, wenn es auch die Möglichkeit gäbe, das Verhalten beim Öffnen des Displays zu beeinflussen.

Da ich selbst ein Freund des Surface Laptop Studio bin, habe ich hier einen Punkt der mich wirklich stört. Wenn ich ein bisschen Yoga auf dem Display machen will, dann geht das Ding meistens an und das ist ärgerlich, vor allem wenn Hello mich begrüßt hat und ich dann aus Versehen eine Reihe von Fenstern, Apps und so weiter öffne, schließe oder was auch immer damit mache.

Aber mit ein wenig Akrobatik in der Eingabeaufforderung kann man auch dieses Verhalten ändern.

:: Add Lid open action to the current Powerplan - ## THE POWER OF DARKNESS ##
powercfg -attributes SUB_BUTTONS 99ff10e7-23b1-4c07-a9d1-5c3206d741b4
:: Query the Powerplan if Lid-Option is there
powercfg /q | findstr /i "99ff10e7"
 :: Set Lid open action to 0
REM powercfg -SETACVALUEINDEX {guidPlan-New} {guidSubgroup-Display} {guidPowerSetting-Brightness} 0
REM powercfg -SETACVALUEINDEX {guidPlan-New} {guidSubgroup-Display} {guidPowerSetting-Brightness} 0

powercfg -SETACVALUEINDEX 381b4222-f694-41f0-9685-ff5bb260df2e 4f971e89-eebd-4455-a8de-9e59040e7347 99ff10e7-23b1-4c07-a9d1-5c3206d741b4 0
powercfg -SETDCVALUEINDEX 381b4222-f694-41f0-9685-ff5bb260df2e 4f971e89-eebd-4455-a8de-9e59040e7347 99ff10e7-23b1-4c07-a9d1-5c3206d741b4 0

Vor dem Setzen des Wertes sieht die Einstellung wie folgt aus.

image

Danach stehen die beiden Werte der Power Settings auf 0:

  • Current AC Power Setting Index: 0x00000000
  • Current DC Power Setting Index: 0x00000000

image

Hier noch die Befehle für die Eingabeaufforderung, welche möglicherweise angepasst werden müssen. Dieser Artikel ist dabei eine große Hilfe.

Enjoy it, b!

Windows 11 | Erste Anpassungen

Mit Windows 11 hat Microsoft der Welt auch ein neues Design der Benutzeroberfläche geschenkt, von dem ich sagen kann das es mir sehr gefällt. Nur damit keine Missverständnisse aufkommen, in die professionelle Variante von Windows bin ich relativ spät, mit NT 3.51 eingestiegen. Davor war IBM OS/2 mein favorisiertes OS auf dem PC und Linux auf dem Server.

Meine aktuellen Einstellungen für das Startmenü und die Taskleiste will ich Euch hiermit vorstellen und die eine oder andere Erläuterung dazu geben. Darüber hinaus habe ich die Screenshots in Deutsch gemacht, da die meisten Leser hier wohl ein Windows 11 mit DE haben.

Personalisierung Start(menü)

Hier muss ich gleich zugeben, dass ich das Startmenü lasse, wo es ist. Erinnert es mich doch ein wenig an Elementary oder ChromeOS.

Beginnen wir mit dem Menü selbst.

Untitled - 4

Hier habe ich erst einmal alle Apps deinstalliert oder zumindest vom Startmenü gelöst die ich nicht brauche.

Reihe 1 wurde dann mit Office Apps bestückt und Reihe 2 mit Anwendungen, die ich sonst häufiger verwende.

Windows 11 bietet die Möglichkeit unten neben dem Netzschalter Elemente einzublenden, die von dort gestartet werden können (grüner Kasten im Bild oben).

Windows 11 Startmenü

Das sind bei mir die Einstellungen (formerly known as Systemsteuerung), die Persönlichen Ordner und der Datei-Explorer (Windows Explorer). Durch das Öffnen des Persönlichen Ordner sind danach alle weiteren Ordner der Auswahl wie Musik, Downloads sichtbar und damit schnell im Zugriff.

Wichtiger ist mir aber der Datei-Explorer, dieser mit der Einstellung Datei-Explorer öffnen für: Dieser PC zeigt dann sofort die Übersicht all meiner Ordner und Laufwerke inklusive der UNC-Pfade des Servers (NAS).

Untitled - 2

Natürlich zeigt der Datei-Explorer bei mir alle Dateiendungen an, auch wenn diese bekannt sind sowie versteckte Dateien. Diese Einstellungen sind im Detail einen weiteren Blog wert, hängen aber auch stark vom eigenen Nutzerverhalten ab.

Personalisierung Taskleiste

Hier ging es mir ebenfalls um die Darstellung der wichtigen Funktionen. Darum habe ich die Suche, Widgets und den Chat ausgeblendet. Die Suche funktioniert übrigens trotzdem, einfach die Windows-Taste drücken und den Suchbegriff eintippen. Dazu brauche ich kein Icon.

Untitled - 1

Die Symbole in der Taskleistenecke habe ich ebenfalls bis auf das Stiftmenü auf meinem Surface Pro reduziert, auf einem normalen PC kann man diese Option ebenfalls abschalten.

image

Abschließend habe ich auf die Taskleiste noch ein paar Apps wie den Edge- und Brave-Browser, OneNote und PowerShell gepinnt. Damit müssen die sich nicht um einen Platz im Startmenü prügeln.

Enjoy it, b!