xlib hilfe bei conky clon für arme



  • Hallo liebe community!
    Ich hänge schon einige Zeit an ein paar Problemen.
    Momentan probiere ich mich an einem Conky Clon für Arme (das Ding soll nur die Zeit auf dem Desktop ausgeben).
    Doch hier liegt schon mein Problem: Mein Window soll immer ganz unten sein und außerdem nicht beweglich! Ich hab mal reinguckt wie Conky das macht, hab in der x11.c aber nix gefunden was bei mir funktioniert...
    Hat jemand ein !kleines! Beispiel in C?



  • Nur ganz schnell in die Sourcen reingeschaut. Das hier klingt gut; schau dir das mal an:

    https://github.com/brndnmtthws/conky/blob/3414955ad64580731fbd5d46a96f0b313c4b6a32/src/x11.cc#L458-L525



  • Habs mir angeguckt, aber es scheint als ob nur das rootwindow gesucht wird.
    Das Conky Window ist ja immer ganz unten, aber ich find die funktion nicht die dafür zuständig ist...

    Aber trotzdem danke für die Antwort!



  • xlibnoob schrieb:

    Das Conky Window ist ja immer ganz unten, aber ich find die funktion nicht die dafür zuständig ist...

    XLowerWindow vielleicht? Ich habe keine Ahnung von der xlib, aber etwas ähnliches wie das hier könntest du mal ausprobieren:

    https://github.com/brndnmtthws/conky/blob/3414955ad64580731fbd5d46a96f0b313c4b6a32/src/x11.cc#L670-L675

    Die Manpage sagt dazu folgendes:

    The XLowerWindow function lowers the specified window to the bottom of the stack so that it does not obscure any sibling windows. If the windows are regarded as overlapping sheets of paper stacked on a desk, then lowering a window is analogous to moving the sheet to the bottom of the stack but leaving its x and y location on the desk constant.

    Such dich durch das File einfach mal durch; sieht schon so aus, als könnte man das gut als Vorlage verwenden.



  • Trotz der funktion bleibt das Window bei mir ganz oben.
    Es wird sogar wenn ich mein Window erstelle direkt oben positioniert.
    Aber danke für den Hinweis (hab ich glatt im source übersehen)!

    Edit: hab die Lösung für alle die sie vielleicht brauchen:
    (habs im code von nem gui toolkit gefunden)

    stateAbove = XInternAtom(display, "_NET_WM_STATE_BELOW", False);
    state = XInternAtom(display, "_NET_WM_STATE", False);
    
    XChangeProperty(display, window, state , XA_ATOM, 32, PropModeReplace, (unsigned char*) &stateAbove , 1);
    

Anmelden zum Antworten