GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Windows auf physischen Bildschirm maximieren, wenn eine virtuelle Auflösung mit xrandr verwendet wird?

Ich habe ein Netbook mit einem kleinen Bildschirm im Breitbildformat (1024×600), was bedeutet, dass viele Programme, deren Designer sich so etwas nicht vorgestellt haben, Fenster öffnen, deren Größe nicht geändert werden kann und deren Unterseiten verdeckt sind. Durch Ubuntu 10.04 habe ich mich mit einem xrandr-Befehl darum gekümmert:

xrandr --output LVDS1 --fb 1024x768 --panning 0x768

(beachten Sie das 0x), was dazu führte, dass ich einen normal großen virtuellen Desktop erhielt, der vertikal geschwenkt wurde, den der Fenstermanager jedoch (irgendwie) ignorierte, sodass maximierte Fenster nur den physischen Bildschirm belegten. Das Ergebnis war, dass ich nicht schwenken musste, es sei denn, ein großes Dialogfeld erschien:schön.

In 11.04 funktioniert das nicht ganz. Alles, was ich oben gesagt habe, ist wahr, aber die unteren 168 Pixel scheinen dauerhaft geschwärzt zu sein, sodass ich, wenn sich ein großes Fenster dort unten erstreckt, nicht sehen kann, was darin ist (jedoch ist es da:Die Ziehpunkte zur Größenänderung erscheinen und sind für diese nützlich Gelegenheiten, bei denen eine Größenänderung erlaubt ist). Ich kann mir vorstellen, dass dies mit Unity zusammenhängt. Das verfehlt den Zweck, also versuche ich es mit diesem xrandr-Befehl:

xrandr --output LVDS1 --fb 1024x768 --panning 1024x768

(beachten Sie die 1024x). Leider täuscht es den Fenstermanager nicht mehr, und maximierte Fenster gehen alle nach unten. Frage:

Wie richte ich die Dinge so ein, dass ein „maximiertes“ Fenster nur den physischen Bildschirm einnimmt (oder allgemeiner einen bestimmten Teil des Bildschirms einnimmt)?

Eine verwandte Frage, die ich stattdessen gerne beantwortet hätte, lautet:

Warum täuscht der erste xrandr-Befehl den Fenstermanager (das „0x“ bedeutet laut Manpage, dass das Schwenken entlang der horizontalen Achse deaktiviert ist; funktional ist dies bedeutungslos, da die virtuelle Größe gleich der physischen Größe ist)? Was läuft bei Unity schief?

Beachten Sie, dass die Aktion „Maximieren“ notwendig ist, da ein maximiertes Fenster in Unity anders gestaltet ist:Seine Titelleiste wird in die Symbolleiste oben auf dem Bildschirm aufgenommen, wodurch wertvolle Pixel für mich gespart werden. Einfach die Größe eines Fensters zu ändern, ist keine gute Alternative.

Referenzen:

Ich habe diese Frage gefunden:Ich möchte verhindern, dass die Maximierung ein Drittel des Bildschirms abdeckt. Ich war sehr enttäuscht, als Compiz Maximumize überhaupt nichts zu tun schien (es gibt einen Launchpad-Fehler:https://bugs.launchpad.net/ubuntu/+source/compiz-fusion-plugins-extra/+bug/462158).

Ich habe die gleiche Frage auch auf Superuser gefunden:https://superuser.com/questions/269966/id-like-to-prevent-maximize-from-covering-one-third-of-the-screen, die zwei Alternativen bietet. Das Compiz Grid-Plugin hilft nicht, weil es nicht maximiert, wie ich oben beschrieben habe. Ich habe den Python-Fensterorganisator nicht ausprobiert, aber er sieht Grid ähnlich. Generell erwarte ich nicht, dass schlaue Skripte helfen, da die Bedeutung von „maximieren“ vom Fenstermanager selbst gesteuert wird und die Lösung daher eine Compiz-Lösung sein sollte. Gibt es einen?

Akzeptierte Antwort:

Lassen Sie mich meine eigene Frage beantworten; Die Antwort ist bizarr verwickelt. Der Trick besteht darin, dass das gewünschte Desktop-Verhalten (das in 10.04 enthalten war) jetzt (in 11.04) von Compiz gesteuert wird, das einen Begriff von „Ausgaben“ hat:das heißt, Bildschirme, auf die gezeichnet werden kann. Diese werden im CompizConfig Settings Manager (Paket compizconfig-backend-gconf) konfiguriert oder -kconfig ), im Menü „Allgemeine Optionen“ auf der Registerkarte „Anzeigeeinstellungen“.

Verwandte Themen:Zu viel Festplatten-E/A unter Windows?

Dieses Ding hat drei Einstellungen, die alle wichtig sind. Das wichtigste ist „Ausgaben erkennen“:Das muss deaktiviert werden, da der springende Punkt ist, dass ich eine unphysische Bildschirmkonfiguration erstellen möchte, während die automatische Erkennung nur die Größe meines Bildschirms erfasst.

Das zweitwichtigste ist das Feld „Ausgaben“, das eine Liste von Auflösungen ist. Auf den ersten Blick erwarten Sie vielleicht, dass hier „1024×768“ eingegeben werden muss, aber das ist falsch:Es weist Compiz an, den gesamten virtuellen Bildschirm zu verwenden, sodass maximierte Fenster nach unten fließen; das ist das falsche verhalten. Aber das Schreiben von „1024×600“ funktioniert auch nicht, da dies Compiz mitteilt, so zu tun, als ob der Bildschirm nur 600 Pixel hoch ist; das kontraintuitive Ergebnis ist daher, dass es sich für Strecken entscheidet jedes Fenster. Dies ist hässlich und auch nicht funktionsfähig, was zu erstaunlichen grafischen Störungen führt und auf mysteriöse Weise Schaltflächen von der Stelle verschiebt, auf die Sie klicken müssen, um sie zu aktivieren. Nicht gut.

Eine viel bessere Option ist es, „1024×600+0-168“ zu schreiben, was Compiz mitteilt, dass sich unten tatsächlich 168 unbenutzte Pixel befinden:Das reproduziert das Verhalten des „schwarzen Balkens“, über das ich mich beschwert habe. Es ist gut zu wissen, woher das kommt, aber ich will es trotzdem nicht. Aber es sagt mir, was es bedeutet:Es bedeutet, dass Compiz diese Pixel einfach ignoriert:Es wird dort keine Fenster zeichnen. Meine Maus geht jedoch immer noch dorthin, weil dieses Verhalten von X gesteuert wird, das vor Compiz kommt. Es scheint, dass man Compiz irgendwie sagen muss, dass es dort zeichnen soll (damit Windows kann dorthin gehen), aber auch nicht dorthin zu zeichnen (damit sie nicht wollen dorthin zu gehen).

Die völlig richtige Lösung ist daher, zwei zu beschreiben Ausgabegeräte an Compiz:einmal „1024×600+0-168“ und einmal „1024×768“, wodurch Compiz angewiesen wird, gleichzeitig auf diesen unteren Pixeln zu zeichnen und nicht zu zeichnen. Aber wie stellt man sicher, dass es weiß, welches man „will“? Das ist die erste Option in diesem Tab:„Overlapping Output Handler“. Stellen Sie es auf „Kleinere Ausgabe bevorzugen“, was genau das ist, was ich dort oben in Worten gesagt habe.

Also die Antwort:Führen Sie xrandr --mode 1024x700 --fb 1024x768 --panning 0x768 aus; Gehen Sie zu den Anzeigeoptionen von Compiz und geben Sie zwei Ausgaben „1024 × 600 + 0-168“ und „1024 × 768“ ein. Deaktivieren Sie „Ausgänge erkennen“; und „Overlapping Output Handler“ kleinere Ausgaben bevorzugen. Puh.


Ubuntu
  1. Windows – Wie kann man verhindern, dass Windows Grub überschreibt, wenn man einen Dual-Boot-Rechner verwendet?

  2. Neupositionierung der Bildschirmauflösung? (kaputter Laptop-Bildschirm)?

  3. Nur einen Bildschirm drehen?

  4. Wie deaktiviere ich das Dimmen des Bildschirms in 14.04?

  5. Die Größe der Fenster wird nicht geändert, wenn ich sie nach oben oder an die Seite des Bildschirms ziehe?

So installieren Sie Windows 11 auf einer virtuellen VMware-Maschine

So installieren Sie Windows 11 auf einer virtuellen Hyper-V-Maschine

Linux in Windows mit VirtualBox installieren [Schritt-für-Schritt-Anleitung]

So installieren Sie Windows 11 auf Ubuntu 20.04 mit VirtualBox

Wie kann die angezeigte Bildschirmauflösung auf QEMU / KVM erhöht werden?

Warum verzögert sich mein Ubuntu-Build beim Verschieben von Fenstern?