staging.inyokaproject.org

Fensterregeln für 2 Fenster der gleichen Anwendung

Status: Ungelöst | Ubuntu-Version: Kubuntu 22.04 (Jammy Jellyfish)
Antworten |

dxu2005

Avatar von dxu2005

Anmeldungsdatum:
3. November 2005

Beiträge: 253

Hallo Leute,

einer der Gründe, warum ich KDE so gerne nutze nennt sich

"Spezielle Einstellungen für dieses Fenster einrichten..." "Spezielle Einstellungen für dieses Programm einrichten..."

Screenshot: https://pixelfed.de/storage/m/_v2/407181281253411026/e942685c2-4a0fac/PE42xvwMb5tn/gi65klIF5nn1jnlgCNEdtz5POjESxtkQOiBHXYJD.png

Hiermit kann genau definiert werden wie sich ein Fenster verhalten soll.

Soll z.B. dein Messenger auf einem bestimmten, Desktop oder Bildschirm starten, soll er dabei maximiert oder an einer bestimtmen Position und dabei vielleicht horizontal oder vertikal maximiert angezeigt werden und soll er den Fenstertitel und -rahmen zeigen, im aktiven oder eher im inaktiven Modus einen Grad von Transparenz vorweisen und und und...

Verantwortlich dafür ist kwin und seine Regeln. Wie im Screenshot zu sehen können diese über das Kontextmenü eines Fensters eingestellt werden und sind auch über die

**Systemeinstellung -Fensterverhalten - Fensterregeln**

zu finden und zu bearbeiten. Gespeichert sind sie dann unter $HOME/.config/kwinrulesrc Findest Du dort nichts, hast Du einfach noch keine entsprechenden Regeln definiert.

siehe Screenshot (ignoriere den blauen Pfeil)

So starten bei mir diverse Messenger und einige andere Tools per Autostart gleich auf den gewünschten virtuellen Desktops an entsprechenden Positionen mit gewünschtem Aussehen und Verhalten. Und auch dann starte ich Browser, Mailclient und anderes bei Bedarf und muss nicht überlegen auf welchen noch freien Desktop sie liegen sollen, das ist für die häufigsten Anwendungen so definiert. (Kleiner Wermutstropfen am Rande, mit dem Upgrade von Kubuntu 20.04x zu 22.04 sind diese Einstellungen verloren gegangen und alles lag wenig aufgeräumt auf Desktop 1. Es war aber schnell wieder Ordnung geschafft)

siehe auch https://docs.kde.org/trunk5/de/kwin/kcontrol/windowspecific/windowspecific.pdf

Und jetzt komme ich endlich zur Frage und Herausforderung.

Folgendes Beispiel:

"element-desktop" soll an Position 1 gestartet werden

und macht es auch

"element-desktop --profile XYZ" soll an Position 2 gestartet werden  

startet aber ebenfalls an Position 1

(Profil ist hier keine kwin Option sondern eben ein Profil des Programms, mit dem er einen definierten Account startet)

also in dem Besipiel 2x das gleiche Programm mit 2 verschiedenen Accounts die nebeneinander liegen sollen. Ich habe hier schon viel mit Regeln für Programm vs. Fenster versucht. Auch über den Fenstertitel schaffe ich keine klare Definition, weil der Fenstertitel idR "element | NAME DES AKTUELLEN CHATS" lautet und der Teil hinter dem Pipe ändert sich eben ständig und ist beim Beenden und somit auch beim nächsten Start des Programms oft ein anderer.

Hat jemand eine Idee, wie ich das lösen kann.

Um so mehr ich hier versuche um so mehr wiederkehrende, ignorierte oder widersprüchliche Regeln landen in oben genannter Konfigurationsdatei, teilweise mit nicht gewünschten oder eben Ausbleiben von irgendwelchen Auswirkungen.

Edit:

nochmal genauer gesagt, es geht nicht darum dass ich das Programm/Fenster nicht über obige Einstellungen positionieren, anpassen usw könnte. Das geht wunderbar, wie mit jedem anderen Programm. Es geht darum dass die App eben 2x gestartet wird. Und dann eben der eben defineirten Regel auch genau an der gleichen Position, und Eigenschaften. Das soll es aber eben beim 2. mal nicht sondern daneben, also in meinem Bsop liegt element einmal links und einmal rechtzs auf dem Desktop.

Oder anders gesagt

wenn "app" startet dann an Position 1

wenn "app -parameter/option" startet dann an Position 2

kwin erkennt aber eben nur dass die app gestartet wurde, egal ob mit oder ohne den Parameter.

Beste Grüße DxU

Bilder

dxu2005

(Themenstarter)
Avatar von dxu2005

Anmeldungsdatum:
3. November 2005

Beiträge: 253

still hier,

na ich hab zumindest das einfache tiling von kde mal als Notlösung gefunden heisst in meinem Fall Anwendung startet zum ersten mal und wird per "Spezielle Einstellungen...:" wie schon beschrieben z.B links positioniert. Starte ich die gleiche App mit enem anderen Parametern/Profil/...usw... startet die eben an gleicher Stelle, dann ein beherztes Super + Cursor_Taste_nach_rechts legt dieses Fenster dann komfortabel da ab wo es soll. Jut nicht so automatisch wie gewollt, aber immerhin. Folgender Artikel, lässt aber hoffen, dass das künftig besser geht.

https://linuxnews.de/2022/11/04/plasmas-fenstermanager-kwin-lernt-natives-tiling/

ChickenLipsRfun2eat Team-Icon

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12067

Hallo!

Lässt sich in deinem Programm vielleicht ein Name für Wayland definieren? Title, class, etc. per Kommandozeile? Falls das Programm unter X läuft, hilft das natürlich nicht, da gibt es nur „window“. Ansonsten könntest du als Filter den Fenstertitel als Bedingung angeben.

Auf welcher Basis läuft programm? GTK, Qt, EFL,…? Alle Frameworks bieten etwas andere Optionen für Wayland.

dxu2005

(Themenstarter)
Avatar von dxu2005

Anmeldungsdatum:
3. November 2005

Beiträge: 253

Ich nutze noch kein Wayland.
Bin auch noch nicht weiter gekommen mit dem Problem.
Vielleicht muss ich tatsächlich mal ne Wayland Testinstallation machen

ChickenLipsRfun2eat Team-Icon

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12067

Um welches Programm handelt es sich denn? Bei GTK/Qt kannst du Optionen angeben. Siehe PROGRAMM --help-gtk (gtk) oder PROGRAMM --help-all (Qt und andere). Bei manchen kannst du allerdings nur das display festlegen (:0, :1, etc.). Eventuell gibt es auch Umgebungsvariablen, die sich setzen lassen.

Das mit Wayland wäre nur eine Möglichkeit, da sich bei Wayland jedes Fenster einzeln verwalten lässt.

dxu2005

(Themenstarter)
Avatar von dxu2005

Anmeldungsdatum:
3. November 2005

Beiträge: 253

ChickenLipsRfun2eat schrieb:

Um welches Programm handelt es sich denn? Bei GTK/Qt kannst du Optionen angeben. Siehe PROGRAMM --help-gtk (gtk) oder PROGRAMM --help-all (Qt und andere). Bei manchen kannst du allerdings nur das display festlegen (:0, :1, etc.). Eventuell gibt es auch Umgebungsvariablen, die sich setzen lassen.

Wie im Eingangstext beschrieben, gehts um Element, gilt aber für Schildichat genauso

element kennt aber weder --help-gtk noch --help-all sondern startet einfach die App

Das mit Wayland wäre nur eine Möglichkeit, da sich bei Wayland jedes Fenster einzeln verwalten lässt.

Ja langfristig werde ich mich wohl mit Wayland anfreunden müssen

dxu2005

(Themenstarter)
Avatar von dxu2005

Anmeldungsdatum:
3. November 2005

Beiträge: 253

ChickenLipsRfun2eat schrieb:

Um welches Programm handelt es sich denn? Bei GTK/Qt kannst du Optionen angeben. Siehe PROGRAMM --help-gtk (gtk) oder PROGRAMM --help-all (Qt und andere). Bei manchen kannst du allerdings nur das display festlegen (:0, :1, etc.). Eventuell gibt es auch Umgebungsvariablen, die sich setzen lassen.

Hab mir das nochmal so durch den Kopf gehen lassen. Also vielelicth wäre es wirklich ne Idee kwin Optionen in einer .desktop Datei mitzugeben. Aber so richtig weiss ich nicht wo ich da anfangen soll. Den Artikel .desktop-Dateien und auch kwin hab ich mir mal angeschaut, aber was wo ei rein kommt verstehe ich da nicht so recht.

ChickenLipsRfun2eat Team-Icon

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12067

Element und Schildichat sind node.js-Programme. Wie das da funktioniert, kann ich dir auch nicht sagen. Das hab ich bisher vermieden, ich habe schon genug Paketmanager. Lässt sich leider auch nur schwer suchen mit dem Namen „element“.

Ich muss sowieso kommende Woche meinen Desktop-PC wieder aktualisieren und dran sitzen. Da kann ich dann mal rumspielen.

Die Umgebungsvariablen in einer desktop-Datei kannst du aber so setzen:

Exec=env MOZ_ENABLE_WAYLAND=1 /usr/bin/icecat %u

Im Beispiel wird Wayland für GNU IceCat aktiviert (freie Version des Firefox). env kannst du auch einfach in einem Terminal eingeben, um die aktuellen Variablen anzuzeigen.

dxu2005

(Themenstarter)
Avatar von dxu2005

Anmeldungsdatum:
3. November 2005

Beiträge: 253

Hi,

habe jetzt nicht ganz verstanden was mein Thema mit dem Paketmanager zu tun hat.

Oder fragst du wo man die apps findet?
Also die sind zum einen als flatpak verfügbar. Oder man bindet sich das Repo ein, was ich bevorzuge
siehe:

https://element.io/download#linux-details

https://schildi.chat/desktop/

Letzteres zusätzlich auch noch als appimage, wer drauf steht

Aber zurück zum Thema.
Du hast mich auf die Idee gebracht, die kwin Regeln über eine .desktop Datei mitzugeben. Aber da komme ich eben nicht weiter. Vielleicht hat ja noch jemand hier ne Idee.

Guß DxU

ChickenLipsRfun2eat Team-Icon

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12067

dxu2005 schrieb:

habe jetzt nicht ganz verstanden was mein Thema mit dem Paketmanager zu tun hat.

Diverse Scriptsprachen haben eigene Paketmanager, wie bspw. Pip für Python, RubyGems, etc. npm ist ein Beispiel für node.js-Anwendungen. Node.js bietet die Möglichkeit mit JavaScript zu arbeiten. Du schreibst also deine Scriptchen in JavaScript und irgend ein Interpreter wandelt das dann zur Laufzeit in ein funktionierendes Programm um. Wie da das Fenstermanagement funktioniert, weiß ich aber nicht. Bei Python gibt es ja auch diverse Ansätze dafür. Und je nachdem wie das implementiert ist, gibt es wiederum Optionen, die man an den Fenstermanager weitergeben kann.

https://element.io/download#linux-details

Gibt bei mir nur ne leere Seite. Vermutlich geblockte Inhalte (Stalking, Tracking, Seitenmanipulationen, etc.).

Du hast mich auf die Idee gebracht, die kwin Regeln über eine .desktop Datei mitzugeben. Aber da komme ich eben nicht weiter. Vielleicht hat ja noch jemand hier ne Idee.

Es gäbe die Möglichkeit per kwin scripting Einfluss zu nehmen. Habe ich aber auch noch nie gemacht.

Antworten |