Quickshell Game Mode und HUD/OSD-Integration für Linux-Spieler
Bewertung —Vollbilderkennung in Steam- und Proton-Spielen, automatische Ressourcenverwaltung, FPS/Temperatur-OSD-Panel und Benachrichtigungsunterdrückung.
Inhalt
Zusammenfassung: Ich beschreibe, wie Quickshell ein Vollbildspiel erkennt und den Desktop automatisch in den Spielmodus versetzt: das Stummschalten von Benachrichtigungen und das Ausblenden der oberen Leiste, das Festlegen von Prozessor-, GPU- und E/A-Prioritäten mit Feral GameMode und eine kleine FPS- und Temperaturanzeige, die sich per Tastenkürzel öffnen lässt.
Spiele unter Linux sind nach den Fortschritten von Proton und Wayland inzwischen zu einer reibungslosen Erfahrung geworden. Dass Desktop-Shells während des Spielens unbedacht Benachrichtigungen anzeigen, im Hintergrund Animationen rendern und dabei GPU-Speicher belegen oder Mikro-Ruckler (Stutter) in der Frame-Zeit verursachen, ist jedoch ein ernstes Problem.
Quickshell erkennt auf Ebene der Wayland-Protokolle sofort, dass ein Vollbildspiel gestartet wurde, und versetzt den Desktop automatisch in den Game Mode.
1. Vollbilderkennung und automatisches „Do Not Disturb“ (DND)
Wenn auf Hyprland Vollbildfenster ausgelöst werden, greift der Ereignis-Listener von Quickshell ein:
import QtQuick 2.15
import Quickshell.Hyprland 1.0
Item {
id: gameDetector
readonly property bool isGameActive: {
const win = Hyprland.activeWindow;
return win && win.fullscreen && (win.class.includes("steam_app") || win.class.includes("gamescope"));
}
onIsGameActiveChanged: {
if (isGameActive) {
console.log("[Quickshell] Game Mode aktif: Bildirimler bastırılıyor.");
NotificationManager.mute();
TopBar.exclusiveZone = 0;
TopBar.visible = false;
} else {
console.log("[Quickshell] Game Mode pasif: Masaüstü panelleri geri yüklendi.");
NotificationManager.unmute();
TopBar.exclusiveZone = 36;
TopBar.visible = true;
}
}
}
So erscheinen mitten im spannendsten Moment des Spiels keine Pop-up-Benachrichtigungen in der Bildschirmmitte; die obere Leiste wird vollständig deaktiviert, sodass die Grafikkarte das gesamte Zeichenbudget an das Spiel abgibt.
2. Feral GameMode und CPU/GPU-Verwaltung
Wenn der Game Mode ausgelöst wird, erfolgt im Hintergrund ein Handshake mit gamemoded über D-Bus:
- CPU Governor: Wird in den Modus
performanceversetzt, Schwankungen der Kernfrequenz werden verhindert. - GPU-Energieprofil: Wird auf die höchste Leistungsstufe festgelegt.
- I/O-Priorität: Dem Spielprozess wird Echtzeitpriorität (RT) zugewiesen.
3. Kompaktes OSD-Widget im Stil von MangoHud
Ein minimales QML-Telemetriefenster, das auf Wunsch per Tastenkürzel in der Bildschirmecke geöffnet werden kann, zeigt die Bildrate im Spiel (FPS), die GPU-Temperatur und die Speichernutzung in einer transparenten Ebene an.
Meine Lesart
- Während des Spiels sollte sich der Desktop zurückziehen: Dass Benachrichtigungen bei erkanntem Vollbild verstummen und die Leiste sich schließt, überlässt sowohl die Aufmerksamkeit als auch das Zeichenbudget dem Spiel.
- Ressourcenverwaltung automatisch: Mit GameMode wird der Prozessor in den Performance-Modus versetzt, die GPU auf das hohe Profil festgelegt und dem Spiel Priorität gegeben; dafür muss man nichts von Hand tun.
- Die Messung immer griffbereit: Das per Tastenkürzel geöffnete OSD-Panel zeigt Bildrate, GPU-Temperatur und Speichernutzung, ohne das Spiel zu unterbrechen.