[gelöst] Verschieben "unsichtbarer" Fenster

KDE, Gnome, Windowmanager, X11, Grafiktreiber und alles was dazu notwendig ist. Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
TomL

[gelöst] Verschieben "unsichtbarer" Fenster

Beitrag von TomL » 07.11.2015 23:09:11

Moin

Gibts nen Trick die Fenster blind zu verschieben, die nicht-sichtbar auf dem ausgeschalteten zweiten Monitor erstellt werden?

Ich habe heute mit DeadBeef Musik gehört und wollte dann die Einstellungen öffen. Das Dialog-Fenster wurde auch geöffnet, ich habs unten im lxpanel gesehen, nur wurde es auf dem zweiten Monitor geöffnet.... dem ausgeschalteten TV. Das Fenster vom DeadBeaf selber war (wo es sein soll) auf dem normalen PC-Monitor geöffnet. Nur der Child-Dialog wurde merkwürdigerweise auf dem anderen Monitor geöffnet. Über das XFCE-Panel und auch das Cinnamon-Panel konnte ich bislang unten mit rechts-click auf den Task-Button des Programms einen Dialog öffnen, der neben maximize, minimize, usw. auch eine Option "Verschieben" angeboten hat. Damit konnte ich das Fenster dann "blind" rüberziehen, so dass ich's sehen und bearbeiten konnte. Leider gibts diese Option im LXPanel nicht. Und anklicken des Fensters mit der Maus geht nicht.... ich seh's ja nicht, also kann ich auch nicht "zielen" und den Mauszeiger positionieren. Es würde schon helfen, wenn ich via Hotkey das Fenstermenü des aktiven Fensters öffnen könnte, die Taste "c" wählt in meinen Menüs dann "verschieben" aus. Aber ich krieg auch nicht blind das Fenstermenü geöffnet.

Gibts da ne Lösung, die mir erspart den anderen Monitor einschalten zu müssen, damit ichs sehen und rüberziehen kann? Leider gibts auch in OpenBox keinen passenden HotKeys, mit der ich das Fenster zum verschieben deklarieren kann.... aktivieren kann ichs ja, nur lässt es sich leider nicht blind verschieben.
Zuletzt geändert von hikaru am 10.05.2021 19:10:34, insgesamt 1-mal geändert.
Grund: als [gelöst] markiert

Benutzeravatar
Revod
Beiträge: 3788
Registriert: 20.06.2011 15:04:29
Lizenz eigener Beiträge: MIT Lizenz

Re: Verschieben "unsichtbarer" Fenster

Beitrag von Revod » 07.11.2015 23:20:53

LXPanel > auf minimiertes xy Fenster mit rechter Maustaste anklicken > erscheint im Kontext " Verschieben auf Arbeitsfläche "

... wenn ich Dich richtig verstanden habe, diesmal... :mrgreen:
Systemd und PulseAudio, hmmm, nein danke.

Benutzeravatar
hikaru
Moderator
Beiträge: 13559
Registriert: 09.04.2008 12:48:59

Re: Verschieben "unsichtbarer" Fenster

Beitrag von hikaru » 07.11.2015 23:21:29

In ~/.config/openbox/rc.xml gibt es diesen Abschnitt:

Code: Alles auswählen

<placement>
    <policy>Smart</policy>
    <!-- 'Smart' or 'UnderMouse' -->
    <center>yes</center>
    <!-- whether to place windows in the center of the free area found or
       the top left corner -->
    <monitor>Primary</monitor>
    <!-- with Smart placement on a multi-monitor system, try to place new windows
       on: 'Any' - any monitor, 'Mouse' - where the mouse is, 'Active' - where
       the active window is, 'Primary' - only on the primary monitor -->
    <primaryMonitor>1</primaryMonitor>
    <!-- The monitor where Openbox should place popup dialogs such as the
       focus cycling popup, or the desktop switch popup.  It can be an index
       from 1, specifying a particular monitor.  Or it can be one of the
       following: 'Mouse' - where the mouse is, or
                  'Active' - where the active window is -->
  </placement>
Wenn du dort den Wert für <primaryMonitor> in 2, Mouse oder Active änderst sollte sich dein Problem lösen.

TomL

Re: Verschieben "unsichtbarer" Fenster

Beitrag von TomL » 07.11.2015 23:37:29

Beide Lösungen funktionieren leider nicht....

"Verschieben auf Arbeitsfläche" bedeutet nur, dass ich einen von vier Desktops auswählen kann. Aber alle 4 haben immer zwei Monitore :mrgreen: Das heisst, schiebe ichs von Desktop 1 auf den Desktop 2, 3 oder 4, so bleibt die Position "zweiter Monitor" trotzdem immer erhalten.

Und die Einstellung in der rc.xml kann ich komfortabler via GUI-Dialog über das Programm "obconf" einstellen. Das schreibt genau diese Änderungen in die genannte rc.xml... eigentlich sollte damit ja vorgegeben sein, wo sich die Fenster öffnen, nur leider schert sich der Child-Dialog des Programms nicht drum und platziert sich trotzdem auf dem zweiten Monitor. Ich habe die Einstellungen "Monitor unter der Maus, aktiver Monitor und fester Monitor probiert, bevor ich hier geschrieben habe.... alles erfolglos... :roll:

Benutzeravatar
hikaru
Moderator
Beiträge: 13559
Registriert: 09.04.2008 12:48:59

Re: Verschieben "unsichtbarer" Fenster

Beitrag von hikaru » 07.11.2015 23:47:18

Hast du Openbox danach neugestartet?

Benutzeravatar
Revod
Beiträge: 3788
Registriert: 20.06.2011 15:04:29
Lizenz eigener Beiträge: MIT Lizenz

Re: Verschieben "unsichtbarer" Fenster

Beitrag von Revod » 07.11.2015 23:52:19

... und ( XFCE und LXDE ) kann man doch das zweite Monitor gänzlich deaktivieren, wenn man es nicht nutzt ....> Desktop Einstellungen > ( unter LXDE ) Startmenu > Einstellungen > LXMonitor Einstellungen > Haken raus beim zweites Monitor ... XFCE via XFCE Einstellungen irgend wo und bei allen anderen WM keine Ahnung...
Systemd und PulseAudio, hmmm, nein danke.

TomL

Re: Verschieben "unsichtbarer" Fenster

Beitrag von TomL » 08.11.2015 12:12:40

hikaru hat geschrieben:Hast du Openbox danach neugestartet?
Gute Frage... ich glaube nicht... ich glaube, dass ich davon ausgegangen bin, dass die Einstellung sofort wirksam ist. Blöd ist, dass ich den Fehler jetzt nicht mehr reproduzieren kann, weil das Fenster, nach dem ich es auf dem richtigen Bildschirm gezogen habe, beim erneuten Start auf der letzten Position geöffnet wird. Jetzt muss ich auf das nächste Programm warten, welches seinen Child-Dialog auf dem anderem Monitor öffnet. Das ist ja nicht das erste Mal, dass mich dieser Effekt ärgert.

Aber ich habe auch ne Lösung gefunden.... total umständlich und kompiliziert, aber trotzdem noch schneller, als wenn ich erst den anderen Monitor einschalten und auf den entsprechenden Kanal wechseln muss.

1. Rechtsklick auf Task-Button und "maximieren" auswählen
2. Maus "blind" rüber moven und mit Alt-LeftClick-Hold rüberziehen. Da das Fenster maximiert ist, erwischt man es immer
3. Über Fenster-Menü "Größe ändern" auswählen und durch Maus-Move das Vollbild etwas verkleinern. (Clickt man nur oben Rechts in der Fenstersteuerung auf den "Nicht-Vollbild"-Button, verschwindet das Fenster sofort wieder auf den anderen Monitor :facepalm: )

Das ist echt bekloppt.... da hat anscheinend jemand bei den Programm-Task-Buttons im Panel den Menüpunkt "Verschieben" vergessen. Die Funktionalität ist ja grundsätzlich da, das Fenster-Menü selber kennt diese Option.

Wiko
Beiträge: 376
Registriert: 11.05.2006 23:07:35

Re: Verschieben "unsichtbarer" Fenster

Beitrag von Wiko » 10.05.2021 18:35:51

super, genau so einen Tipp wie in der (letzten) Antwort habe ich gesucht. Da sieht man mal wieder, dass auch nach 6 Jahren so ein Beitrag noch hilfreich ist. Vielen Dank!
Vielleicht magst Du Deinen Forumsbeitrag noch im Titel mit [gelöst] markieren!? Dann findet man ihn noch besser.

Mein Use Case war, dass ich mit Steam ein Spiel gestartet habe, dass ein Vollbildfenster immer auf dem falschen Monitor gestartet hat. Mit dem rüberziehen mit Alt+ der Maustaste hat es super geklappt. #Steam #Vollbild #zweiter Monitor
Das Alt+Ziehen kannte ich vorher schon, aber in genau der Situation ist es mir nicht eingefallen :facepalm:

Benutzeravatar
hikaru
Moderator
Beiträge: 13559
Registriert: 09.04.2008 12:48:59

Re: Verschieben "unsichtbarer" Fenster

Beitrag von hikaru » 10.05.2021 21:01:21

Wiko hat geschrieben: ↑ zum Beitrag ↑
10.05.2021 18:35:51
Vielleicht magst Du Deinen Forumsbeitrag noch im Titel mit [gelöst] markieren!? Dann findet man ihn noch besser.
Da TomL nicht mehr hier ist hab ich das mal erledigt.

Beim nochmaligen Nachdenken über das Problem und die Lösung ist mir aber, glaube ich, ein (in der Bedienung) einfacherer Weg eingefallen um das mittels Debianwmctrl zu lösen:

Code: Alles auswählen

wmctrl -r :ACTIVE: -e 0,200,100,$(wmctrl -lG | grep $(xprop -root | grep _NET_ACTIVE_WINDOW | head -n 1 | egrep -o -m 1 '0x[0-9a-f][0-9a-f]+' | sed 's/0x/0x0/') | awk '{print $5,$6}' | sed 's/ /,/')
Zur Erklärung:
wmctrl -r :ACTIVE: -e g,x,y,w,h verschiebt das aktuelle Fenster (linke obere Ecke) an die Koordinaten x,y des virtuellen Desktops und ändert die Größe auf w mal h Pixel. x und y werden hier fix mit 200 und 100 gesetzt (nach Bedarf anpassen!). w und h sind bisher unbekannt. Der Rest des Kommandos dient nur dazu, diese Werte zu ermitteln um sie beibehalten zu können. Man könnte auch diese fix setzen und sich den Rest sparen, wenn die Originalgröße beizubehalten nicht wichtig ist.

wmctrl -lG gibt eine Liste der offenen Fenster mit Fenster-ID und Geometrie aus. Leider sagt uns das nicht, welches Fenster aus der Liste das Aktive ist.

Die ID des aktiven Fensters holen wir uns über xprop um damit wmctrl füttern zu können, wofür wir aber nur die erste Zeile des xprop-Outputs brauchen (head).

Aus dieser Zeile wiederum brauchen wir nur die Fenster-ID. Leider gibt xprop 7-stellige IDs aus während wmctrl 8-Stellige mit führender Null nutzt. Daher das erste sed

Nachdem wir die Zeile des aktiven Fensters extrahiert haben, holen wir uns aus dieser die Breite und die Höhe (awk). awk gibt beide Werte mit einem Leerzeichen getrennt aus, wmctrl braucht sie aber mit Komma getrennt. also noch das zweite sed hinterher um das Zeichen umzuwandeln.*


Was nun noch zu tun bleibt ist, das Kommando an irgendetwas zu binden (einen Panel-Starter oder eine Tastenkombination) um das aktive Fenster zu verschieben.
Ich habe z.B. auf meinem Xfce-Desktop einen Starter im Panel, der per wmctrl Fenster an eine bestimmte Stelle schiebt und auf eine Inhaltsgröße von 1920x1080 Pixeln setzt:

Code: Alles auswählen

wmctrl -v -r :ACTIVE: -e 0,-3,25,1926,1084
Den nutze ich um auf meinem Monitor (1920x1200) 1080p-Videos und VNC-Fenster auf meinen HTPC (an 1080p-Fernseher) zu zentrieren, was händisch durch die Xfwm-Fenster-Deko unmöglich wäre.


*) Was sicher direkt in awk geht und das 2. sed überflüssig macht. Aber mit awk bin ich nicht vertraut.

Wiko
Beiträge: 376
Registriert: 11.05.2006 23:07:35

Re: [gelöst] Verschieben "unsichtbarer" Fenster

Beitrag von Wiko » 10.05.2021 21:35:43

gute Ergänzung, danke. Für das "profane" Problem mit dem Steam Fenster ist das sicherlich Overkill, aber um das Fenster verschieben zu automatisieren bietet sich Deine Lösung an. Oder als Keybind,

Antworten