im WAYLAND unterwegs mit labwc, heute sfwbar

pit234a

Well-Known Member
in https://www.bsdforen.de/threads/my-way-to-wayland-and-inside.37380/post-342834 habe ich einen Stempel gesetzt und zwar am Sa. 21 Juni 2025 17:45:21 CEST und seither bin ich mit labwc beinahe ununterbrochen unterwegs und arbeite mal damit.
Das ist nur mal so, also noch gar nicht endgültig und ich halte mir den Weg offen, alles über den Haufen zu werfen und mit anderen Dingen neu zu beginnen. Deshalb will ich mich auch nicht umfassend äußern, außer so viel: es scheint doch zu klappen.
Einmal habe ich meine laufende Sitzung durch falsche Tastenkombination unbeabsichtigt zerschossen, hernach lief die kleine Autostart nicht automatisch, aber ich habe halt alles manuell wieder gestartet und bin wieder dabei.

Ich möchte ein Panel haben, vergleichbar zu meinem bisher genutzten fbpanel.
xfce4-panel tut es im Grunde, gefällt mir aber gar nicht so gut, ohne das genauer benennen zu können.
lxqt-panel startet unsichtbar und ich konnte daran auf die Schnelle nichts ändern.

Also sfwbar...
darum soll es hier ganz kurz gehen, um vielleicht anderen Testern eine ähnliche Zeitvergeudung zu ersparen.
Die Dokumentation zu sfwbar ist... vorhanden, umfangreich und für mich vollkommen unverständlich. In solchen Fällen kann es hilfreich sein, sich erst mal Beispiele anzusehen um davon zu lernen. Beispiele fand ich im Internet und kein einziges funktionierte! Damit habe ich unsinnige Stunden verbracht.
Und dann erinnerte ich mich daran, dass viele Programme Beispiele direkt mit installieren und fand in /usr/local/share/sfwbar/ allerhand Beispiele, ähnlich, wie im Internet, nur: diese funktionierten!
Es ist also ein guter Start mit sfwbar, den Inhalt des kompletten Verzeichnisses zu seinem ~/.config/sfwbar zu kopieren, Rechte anzupassen und mal die vorbereiteten Konfigurationen zu testen und dann natürlich anzusehen.
Seither geht es auch bei mir voran, sehr langsam, aber viel schneller, als der Dokumentation zu folgen und "alles neu zu erfinden".

Unfertig, wie es ist, scheint sfwbar mir tatsächlich besser zu gefallen, als das xfce4-panel und ich hoffe, damit klar zu kommen.
 
2025-06-28_15-06-1751118227-grim.webp
kleines Bild vom großen Desktop ohne DE.
Gerade, weil ich keinen eigentlich Desktop nutze, auf dem dann Icons doch ständig hinter den Fenstern verdeckt liegen, ist mir ein Panel wichtig, von dem aus ich evtl Anwendungen starten kann oder von dem aus ich von Anwendung zu Anwendung über verschiedene Arbeitsflächen schalten kann und schließlich auch die Arbeitsflächen selbst wechseln kann.
Der screenshot von vorhin soll mal den Stand der Dinge mit dem sfwbar zeigen, nachdem ich ja oben schon beschrieben hatte, dass es nun endlich voran geht.
Und bei der Gelegenheit: Geschmackssache! Darüber sollten wir lieber nicht streiten und ich bin ja noch nicht mal sicher, ob es mir so gefällt oder ob ich doch noch dringenden Änderungsbedarf sehe. Mir selbst gefallen einige Dinge noch nicht, für die ich im Augenblick keine Herangehensweise sehe oder anders gesagt: was ich versuchte ist bisher gescheitert.

Was ich bisher (erfolgreich) gemacht habe, ist, die funktionierenden, vorkonfigurierten Panels zu starten und anzusehen. Das sind die Konfigurationen sfwbar.config, t2.config und w10.config. Nach einigen Spielereien, schien mir sfwbar.config am ehesten auf meiner Linie zu liegen und fortan änderte ich das dann nach meinen Vorlieben ab, wobei ich die beiden anderen Konfigurationen als Hilfe betrachtete, um zu lernen, was vielleicht wie geht.
Ich habe große Probleme, die Syntax der configs zu verstehen.
Irgendwie ist das hierarchisch gehalten, aber dann erscheinen genauere Bestimmungen doch außerhalb der Hierarchie und seltsamerweise mit ganz ähnlichen oder sogar identischen Begriffen, die aber manchmal unterschiedlich wirken. Es ist quasi so, dass irgendwie Begriffe definiert werden, um sie dann in der Konfiguration zu verwenden und man deshalb nicht einfach von a nach b kopieren kann, was einem gefällt, sondern man muss die notwendigen Rahmenbedingen finden und ebenfalls verfügbar machen.
Leute, die gewohnt sind, Programme zu schreiben, finden sich damit womöglich ausgezeichnet zu Recht. Für mich ist es ein Kampf gegen Windmühlen, die ich dauernd anrenne und mich durch Versuch und Irrtum nähere.
Sodann gibt es Dinge, sogenannte widgets, die zusätzlich geladen werden können. Die Standard-Konfigurationen machen von den Standard-Widgets Gebrauch und hier gibt es einige Schalter, mit denen man deren Aussehen innerhalb der config verändern kann, aber andere Dinge, die man direkt im entsprechenden widget verändern muss. Das logo zum Startmenü, das ist das erste Icon in der Bar ganz links, musste ich in solch einem widget festlegen und auch die Farben zur Kalander-Ansicht ganz rechts.
Verwirrend ist auch der Begriff button, der offenbar ganz anders gebraucht wird, wie beim fbpanel, naja, ist ja auch ganz etwas anderes.

Nochmal: alles unfertig, noch nicht zufrieden damit, bleibt noch viel zu tun, aber ich wollte einfach mal zeigen, dass man da schon voran kommt und ich würde mich freuen, wenn das anderen Nutzern ebenfalls Mut macht.
 
Also mir gefällt dein Desktop schon gut. Ansonsten gehe ich einen ähnlichen Weg wie Du, wobei ich auch recht gut vorankomme. Dabei arbeite ich zweigleisig und parallel mit wayfire und labwc. Beide machen inzwischen weitgehend das, was ich will und das auch absolut robust. Auch mit sway hab ich auch einige Stunden durch, aber es bleibt dabei: Tiling ist nicht meine Welt.
Als kleines Zwischen-Resumee kann ich sagen, dass mir Wayland mittlerweile mehr zusagt als xorg. Die Lernkurve ist jedoch, zumindest für mich, recht steil. Will damit sagen, dass Wayland bislang alles andere ist, als ein System aus einem Guss. Vielleicht der Nachteil verteilter Systeme.
Für meine anderen BSD's (open und Net) sehe ich derzeit in Sachen Wayland aber noch etwas schwärzer.
 
Auch mit sway hab ich auch einige Stunden durch, aber es bleibt dabei: Tiling ist nicht meine Welt.
ist zwar ganz leicht OT, aber mir geht es ja auch so und ich kann jedoch nicht anders, mich selbst dabei Lügen zu strafen, denn in OpenBox und auch in labwc habe ich einige Shortcuts, die nichts anderes machen, als Fenster wie "getiled" an zu ordnen. So ganz von der Hand zu weisen sind die Tiling-Dinger vielleicht doch nicht, nur kann man sich so schlecht daran gewöhnen...

Nachdem ich mit dem sfwbar nun halbwegs schon mal zufrieden bin, werde ich es vielleicht erst mal nutzen, bevor ich lauter Unsinn mache, den ich hinterher bereue. Es gibt noch Nachholbedarf beim labwc, den ich ja auch noch nicht fertig habe. Mal sehen, erst mal Sonntag.
 
sfwbar: ~/.config/sfwbar/weather.widget, das Wetter-Widget

2025-06-30_22-06-1751315276-slurpgrim.webp


Was das soll?
Mir selbst ist der Sinn solcher Wetter-Anzeigen noch nie klar gewesen.
Wenn ich wissen will, wie das Wetter ist, kann ich aus dem Fenster schauen oder auch mal vor die Tür gehen.
Wenn ich wissen will, wie das Wetter wird, dann kann ich nochmal hinschauen.
Das ist nun kein Witz: lokale Einflüsse sind oft stärker zu bewerten, als globale Eindrücke von Wetter-Satelliten und hier kann man schon sehr viel erkennen, wenn man halt gelernt hat, danach zu sehen.

Bei der Hitze dieses Tages erinnerte ich mich immerhin daran, dass das Wetter-Widget bei mir ja auch gar nicht funktioniert hatte, als ich das mal probieren wollte. Das Hauptproblem war damals auch, dass die Datei aus dem Internet nicht passte. Die Datei in /usr/local/share/sfwbar/weather.widget hätte hingegen wohl direkt ein Ergebnis gebracht.
Das Bild in der sfwbar-Leiste von oben entsteht mit diesem widget::
Code:
# Parse met.no weather forecast
scanner {
  Exec("wget --no-check-certificate --no-proxy -O - \"https://api.met.no/weatherapi/locationforecast/2.0/complete?lat=49.47&lon=6.90&altitude=200\"")
  {
    WthrTemp= Json(".properties.timeseries.0.data.instant.details.air_temperature")
    WthrPrs= Json(".properties.timeseries.0.data.instant.details.air_pressure_at_sea_level")
    WthrCond= Json(".properties.timeseries.1.data.next_12_hours.summary.symbol_code")
  }
}

layout {
  style = "frame"
  label {
    interval = 300000
    css = "* { font: 0.5cm Sans; font-weight: 700; -GtkWidget-align: 0.5; padding-left: 1mm; padding-right: 1mm; }"
    value = Str(WthrTemp.val,0)
}
  label {
    interval = 300000
    css = "* { font: 0.5cm Sans; font-weight: 700; -GtkWidget-align: 0.5; padding-left: 1mm; padding-right: 1mm; }"
    value = Str(WthrPrs.val,0)
}

  image {
    interval = 300000
    css = "* { -GtkWidget-hexpand: true; -GtkWidget-vexpand: true; padding-left: 1mm; padding-right: 1mm; }"
    value = 'icons/weather/'+$WthrCond+'.svg'
  }
}
Ich verstehe zu wenig davon, aber, wenn ich mir mal die entsprechende HP in meinem FireFox ansehe, gibt es da eine ganze Menge an weiteren Informationen, die man benutzen könnte und sogar die oben von mir ausgelesene Information funktioniert im Wetter-Widget nur ohne Zehntel-Stellen, weshalb ich die auch weg gelassen habe.


Ich glaube, dass dies ein weiteres Gimmick ist, das ich nicht haben will.
Aber, besser es zeigt dann überhaupt etwas an, als es versagt den Dienst vollkommen.
Und Noch besser, wenn einer mit mehr Ahnung sich dessen mal annehmen möchte und alle Möglichkeiten voll ausreizen würde. --- obwohl, ich weiß immer noch nicht, wofür ich es dann brauchen könnte....
 
sfwbar hab ich anfangs auch mal probiert, aber das läuft hier nicht und crasht bei jedem Aufruf:

Code:
(sfwbar:1915): Gdk-CRITICAL **: 08:48:34.301: gdk_wayland_display_get_wl_display: assertion 'GDK_IS_WAYLAND_DISPLAY (display)' failed

Habs dann nicht weiter verfolgt.
 
sfwbar hab ich anfangs auch mal probiert, aber das läuft hier nicht und crasht bei jedem Aufruf:

Code:
(sfwbar:1915): Gdk-CRITICAL **: 08:48:34.301: gdk_wayland_display_get_wl_display: assertion 'GDK_IS_WAYLAND_DISPLAY (display)' failed

Habs dann nicht weiter verfolgt.
das ist ja merkwürdig.
Seit ich die vorgefertigten Konfigurationen aus /usr/local/share/sfwbar benutzt habe, läuft es bei mir wunderbar und ich restarte es nur dann und wann, um etwas neu zu testen.
Nun muss es ja aber auch nicht sfwbar sein....
Ich glaube aber, dass ich tatsächlich dabei bleiben werde. Es macht so grob, was ich will und ich sage mal, dass es eine eigenwillige Ordnung hat, damit kann ich leben. fbpanel, das ich vorher nutzte, sortierte genau umgekehrt oder jedenfalls anders.
 
Hallo
Anfänger Frage:
Du hast oben bei #8 so ein Codeblock eingegeben, soweit ich weiss kann man da Einstellungen machen. Wie nennt man das jetzt, ist das ein Script und wo kann man nachlesen wie so etwas funktioniert um zu verstehen wie man da einstellt. Oder kann man sagen, dass es keine Anleitung in dem Sinne gibt weil es für Leute gemacht ist die vom Fach sind? Ich meine ist ein Script eigentlich auch eine Programmiersprache? Oder wie ist das so als Laie zu verstehen?
 
Unter wayfire staret die sfwbar dagegen einwandfrei .....:confused:
mein derzeitiges Environment:
Code:
pit@Mifcom ~:- > env
TERM=rxvt
COLORTERM=rxvt-xpm
COLORFGBG=12;default
WINDOWID=35651593
DISPLAY=:0
WAYLAND_DISPLAY=wayland-0
XDG_SESSION_TYPE=wayland
LABWC_VER=0.8.4
LABWC_PID=84325
MOZ_ENABLE_WAYLAND=1
QT_QPA_PLATFORMTHEME=qt6ct
XKB_DEFAULT_LAYOUT=de
_JAVA_AWT_WM_NONREPARENTING=1
XDG_CURRENT_DESKTOP=labwc:wlroots
DBUS_SESSION_BUS_ADDRESS=unix:path=/tmp/dbus-4Aq4GPrZ3X,guid=ada6ad160d48dec15ef05c26685d26e6
USER=pit
LOGNAME=pit
HOME=/home/pit
SHELL=/bin/tcsh
BLOCKSIZE=K
MAIL=/var/mail/pit
MM_CHARSET=UTF-8
LANG=de_DE.UTF-8
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/home/pit/bin
XDG_RUNTIME_DIR=/var/run/xdg/pit
HOSTTYPE=FreeBSD
VENDOR=amd
OSTYPE=FreeBSD
MACHTYPE=x86_64
SHLVL=2
PWD=/home/pit
GROUP=wheel
HOST=Mifcom.Pit
EDITOR=/usr/bin/ee
PAGER=more
NTFS_USE_UBLIO=0
LC_ALL=de_DE.UTF-8
LSCOLORS=EcFhchdhBhegedabagBcDc
dagegen:
Code:
pit@Mifcom ~:- > cat .config/labwc/environment
XKB_DEFAULT_LAYOUT=de
QT_QPA_PLATFORMTHEME=qt6ct
MOZ_ENABLE_WAYLAND=1
#LIBSEAT_BACKEND=consolekit2
#XDG_RUNTIME_DIR=/var/run/pit/
labwc wurde mit dem Aufruf gestartet, den @bluescreen empfohlen hatte und der zunächst so gar nicht bei mir funktioniert hatte: ck-launch-session dbus-run-session labwc
 
Hallo
Anfänger Frage:
Du hast oben bei #8 so ein Codeblock eingegeben, soweit ich weiss kann man da Einstellungen machen. Wie nennt man das jetzt, ist das ein Script und wo kann man nachlesen wie so etwas funktioniert um zu verstehen wie man da einstellt. Oder kann man sagen, dass es keine Anleitung in dem Sinne gibt weil es für Leute gemacht ist die vom Fach sind? Ich meine ist ein Script eigentlich auch eine Programmiersprache? Oder wie ist das so als Laie zu verstehen?
das Thema ist im Grunde etwas komplexer, als dass man mit Ja - Nein antworten könnte.
Und ich bin kein Experte oder irgendwie ein Eingeweihter.

Fangen wir mit Programm an.
Also als Programm kann man grundsätzlich alles bezeichnen, was Vorgänge automatisiert. Im Engeren Sinne werden aber Programmiersprachen verwendet, die dann durch spezielle Prozeduren in Maschinen-Code umgewandelt werden. Der Maschinen-Code wird dann direkt ausgeführt, weshalb diese Methode schnellere Ergebnisse liefert und auch für größere Mengen an Code geeignet ist. Nochmal: es gibt zunächst den Menschen-lesbaren-Code, der durch einen Vorgang (das Kompilieren) in Maschinen-Code verwandelt wird.
Genau dies passiert nicht bei sogenannten Scripten. Diese bleiben im Menschen-lesbaren-Code und werden von einem Interpreter gelesen und ausgeführt. Eine Untergruppe dieser Scripte ist ein Shell-Script. Hier ist der Interpreter die (besser gesagt EINE) Shell. Eine Shell ist, in meinen eigenen Worten erklärt, die unterste Schicht, auf der ein Anwender mit einem Betriebssystem kommunizieren kann. Nachdem sich ein Anwender am System angemeldet hat, landet er für gewöhnlich in einer Shell. Welche dieses ist, muss eingestellt werden; ja, es gibt sehr viele verschiedene und unterschiedlich funktionierende Shells. Ein Shell-Script bedient sich dieser Shell und ihren eingebauten Eigenheiten. Es trägt deshalb als eine Art Hinweis in der ersten Zeile die Angabe der Shell, etwa #!/bin/sh um die sogenannte sh als shell zu nutzen. Diese sh ist eine besondere Shell und man tut gut, diese als shell für Scripte zu benutzen, weil sie auf quasi jedem System vorhanden ist. Bei FreeBSD sieht man schon an dem Pfad /bin/sh, dass sie zum Basis-System gehört und also nicht, wie andere Shells, erst noch installiert werden muss. Letzteres gilt etwa für die bash: /usr/local/bin/bash, die nicht zum Standard in FreeBSD gehört, aber sehr häufig die Standard-Shell in GNU/Linux Systemen ist (oder gewesen ist, ich habe schon lange kein modernes GNU/Linux mehr benutzt). Leute, die hervorragend mit einer Shell arbeiten, nutzen heute gerne moderne Versionen, die ebenfalls in FreeBSD hinzu installiert werden müssen und dann entsprechend mehr können, als die veraltete (t)csh, die ich etwa noch benutze.
Hat man nun ein Shell-Script, kann man dieses ausführbar machen und es an Ort und Stelle aufrufen. Dann wird die erste Zeile ausgewertet und der interpreter interpretiert die Befehle, die man in dem Script aufrufen will. Statt dessen kann man aber auch das Script direkt dem Interpreter übergeben und es etwa aufrufen durch sh /pfad/zu/script-Datei.
Eine Untergruppe an Scripten, die sich in die bisher genannten Schubladen nicht so einordnen lassen, stellen etwa python-Scripte dar. Diese sind zunächst ähnlich den Shell-Scripten Menschen-lesbar und brauchen einen eigenen Interpreter. Dann gibt es aber auch spezielle Compiler, mit denen sich diese Scripte in Binär-Versionen verwandelt lassen. Mit dieser Aussage gilt es aber, vorsichtig zu sein: möglicherweise habe ich da auch etwas falsch verstanden.

Nun zu meinem Beispiel aus #8
Hier zeige ich den Code eines sogenannten Widgets zu sfwbar.
sfwbar ist das "Programm" und ich habe zunächst keine Ahnung, in welcher Sprache es geschrieben ist und wie das funktioniert. Als Endanwender muss mich das ja nicht interessieren. Das Programm selbst ist so ausgelegt, dass es diese Widgets benutzen kann. In einer Konfiguration zu sfwbar kann man das Aussehen der Bar beeinflussen und hier können auch solche widgets aufgerufen werden. Solche Widgets kann man selbst erschaffen, wenn man den Anweisungen dazu folgt, wozu man letztere auch verstehen sollte. Ich habe einfach ein bereits vorhandenes Widget genommen, das ich irgendwo im Internet gefunden hatte und das aber gar nicht funktioniert hatte. Dann habe ich mir dieses Widget angesehen, es also in einem Text-Editor geöffnet und erst mal probiert, Antwort von der angegebenen Web-Seite zu erhalten. Nach einer Weile ist mir dies gelungen, nachdem ich den wget-Befehl verändert und das Ziel neu eingegeben hatte. Anschließend probierte ich dann, eine zusätzliche Information ins Widget hinein zu legen. Das Ergebnis daraus postete ich dann.
Hier war also quasi gar keine Kenntnis von Nöten, außer vielleicht, wie man einen Texteditor bedient, sondern ich habe einfach nur hingesehen und nachgeahmt, was ich schon vorfand. Der Funktion durch Versuch und Irrtum langsam angenähert.
Das ist also kein Script im zuvor benannten Sinne, aber man kann es mit einem Script insofern vergleichen, als dass es durch das Programm sfwbar interpretiert und ausgeführt wird.


Wenn übrigens nur von Script gesprochen wird, meint das in aller Regel die Gruppe von Shell-Scripten und hier findet sich viel Information im Netz, manchmal auch unter Begriffen wie Unix-Script oder Linux-Shell.
 
Tausend Dank!
Dann kann ich quasi mit einem Editor in einer Shell Dinge verändern. Der Editor stellt quasi die Darstellung einer Datei oder eines Scriptes dar. Also wenn ich verstehe was der Inhalt ist und wie oder was ich darin tun kann, kann ich Dinge verändern.
 
Dann kann ich quasi mit einem Editor in einer Shell Dinge verändern.
der Editor muss nicht in einer shell laufen, es geht um die Bearbeitung eines Textes. Im Grunde genommen kann das auch LibreOffice, nur, man wird es selten damit machen, weil es eben doch eher für andere Dinge gemacht ist.
Ich selbst benutze seit vielen Jahren geany und seit einigen Wochen eher Versuchsweise mal kwrite. Der Vorteil ist, dass man einfach einen grafischen Modus bekommen kann, in welchem Farben dabei helfen, Zusammenhänge zu erkennen.
Allerdings können die besseren Editoren so etwas auch auf der shell und "Profis" nutzen oft solche Dinger, die man aber erst erlernen muss.

Du hattest in einem früheren Beitrag die /etc/rc.conf editiert und dazu einen Befehl benutzt, der Dinge direkt hinein geschrieben hatte. Du kannst dir das mal ansehen und mit einem Editor die Datei aufrufen. Ich weiß natürlich nicht, welche Editoren (grafische Editoren) du installiert hast. Ein kleiner und schneller ist etwa leafpad. pkg install leafpad installiert den und dann kannst du starten und die /etc/rc.conf in ihm öffnen.
 
Achso, dann kann ich Editor den vollständigen Pfad angeben damit er weiss was er öffnen soll.
 
nochmal weather.widget:
2025-07-02_20-07-1751481913-slurpgrim.webp

gibt das einem nun etwas?
Ich möchte nach wie vor niemanden überreden, weder zum Gebrauch von sfwbar und schon gar nicht zum Gebrauch eines Weather-Widgets.
Da ich selbst das Ding aber nun mal bei mir eingeführt hatte, habe ich nochmal genauer hingesehen und dann gemacht:
Code:
# Parse met.no weather forecast
scanner {
  Exec("wget --no-check-certificate --no-proxy -O - \"https://api.met.no/weatherapi/locationforecast/2.0/compact?lat=49.47&lon=6.90&altitude=200\"")

#ca alle 120 Minuten gibt es einen Update
#timeseries.0. ... enthält das
#timeseries.1. ... eine Stunde später
#um 120 Minuten sinnvoll zu überbrücken, wählen wir timeseries.2 als Ausgang
#davon ab, schauen wir dann in die Zukunft
#timeseries.26 sind also von da ab 24h in die Zukunft geschaut...

  {
    WthrTemp= Json(".properties.timeseries.2.data.instant.details.air_temperature")
    WthrPrs= Json(".properties.timeseries.2.data.instant.details.air_pressure_at_sea_level")
    WthrCond_8= Json(".properties.timeseries.8.data.next_1_hours.summary.symbol_code")
    WthrCond_14= Json(".properties.timeseries.14.data.next_1_hours.summary.symbol_code")
    WthrCond_20= Json(".properties.timeseries.20.data.next_1_hours.summary.symbol_code")
    WthrCond_26= Json(".properties.timeseries.26.data.next_1_hours.summary.symbol_code")
  }
}

layout {
  style = "weather"
  label {
    interval = 6000000
    css = "* { font: 0.6cm Sans; font-weight: 700; -GtkWidget-align: 0.5; padding-left: 1mm; padding-right: 4px; }"
    value = Str(WthrTemp.val,0)
}
  label {
    interval = 6000000
    css = "* { font: 0.4cm Sans; font-weight: 500; padding-left: 2px; padding-right: 2px; }"
    value = Str(WthrPrs.val,0)
}

{
  image {
    interval = 6000000
    css = "* { -GtkWidget-hexpand: true; -GtkWidget-vexpand: true; padding-left: 2px; padding-right: 1px; }"
    value = 'icons/weather/'+$WthrCond_8+'.svg'
  }
  image {
    interval = 6000000
    css = "* { -GtkWidget-hexpand: true; -GtkWidget-vexpand: true; padding-left: 1px; padding-right: 1px; }"
    value = 'icons/weather/'+$WthrCond_14+'.svg'
  }
  image {
    interval = 6000000
    css = "* { -GtkWidget-hexpand: true; -GtkWidget-vexpand: true; padding-left: 1px; padding-right: 1px; }"
    value = 'icons/weather/'+$WthrCond_20+'.svg'
  }
  image {
    interval = 6000000
    css = "* { -GtkWidget-hexpand: true; -GtkWidget-vexpand: true; padding-left: 1px; padding-right: 1mm; }"
    value = 'icons/weather/'+$WthrCond_26+'.svg'
  }
}
Die Kommentierung erklärt schon all meine Erkenntnis, die ja nun nicht so groß ist.
Zusätzliche Angaben sind vorhanden und würden womöglich auch Sinn machen, aber irgendwann ist der Platz auch begrenzt, den ich diesem Widget überhaupt einräumen möchte. Hier würde sich ein Menü eher lohnen, das dann mit Maus abgearbeitet werden könnte, aber ich selbst kann so etwas nicht erzeugen.
Natürlich könnte sicherlich auch die oben verwendete Syntax vereinfacht werden. Es stört mich immer, wenn ich gleiche Dinge wiederhole, statt sie zu referenzieren. Aber ich habe mich auch dabei nicht gewagt...
Ob es sinnvoll ist, die Icons der Vorschau auf 4 x 6h zu staffeln und 24h ab zu decken? Ich habe das halt mal so gemacht.
Ob der Luftdruck überhaupt sinnvoll ist? Die Antwort ist noch kryptischer: ich lese gerade Jules Verne und der hat es mit Geschichten um "Robinsonaden" und Helden, die nur auf dürftige Mittel in unbekannter Umgebung angewiesen sind und ganz oft ist der Luftdruck hier ein wichtiger Zeiger für einen Wetter-Umschwung. Deshalb will ich das mal im Auge behalten.

Immerhin: das Widget liefert mir die gewünschten Daten und Icons, ob sinnvoll, oder nicht.

Nachsatz:
style = "weather" wird nicht funktionieren, muss aber auch nicht sein.
Bei mir findet es in sfwbar.config den Part:
Code:
grid#weather {
  background-color: rgba(246,246,200,0.1);
  border-radius: 3px;
  border-color: rgba(0,0,0,1);
  border-style: solid;
  border-width: 1px;
  margin: 0px;
  padding: 0px;
}
 
clipboard-manager

Eines der Dinger, die ich noch nicht hinbekommen habe, ist ein Ersatz für deskutils/parcellite
Code:
Description    :
Parcellite is a lightweight GTK+ clipboard manager. This is a stripped down,
basic-features-only clipboard manager with a small memory footprint for those
who like simplicity
parcellite nistete sich normalerweise in meinem fbpanel ein und dort konnte ich dann eine Liste der zuletzt zwischen-gespeicherten Daten (Texte) anzeigen und einen gewünschten Eintrag auswählen, um diesen zu verwenden.
Der Vorteil ist, dass man manchmal schon einen Text kopiert, dann aber noch etwas macht und wenn man nun später diesen Text wieder benutzen möchte, ist er nicht mehr in der Zwischenablage. Parcellite bietet also eine Art Historie der Zwischenablage, zumindest für Texte (für mehr habe ich es nie benutzt).

Für sfwbar finde ich keinen Ersatz dafür.
Im Gegenteil habe ich sogar gelesen, dass mit Wayland diese Aufgabe nicht in ein panel gehört, sondern Aufgabe des Compositors ist.
xfce4-panel hingegen konnte das schon.

Ich habe es nicht hinbekommen, etwas für sfwbar zu basteln, was mir mal wieder zeigt, wie wenig ich verstanden habe.
Vielleicht gibt es aber noch Tips von eurer Seite?

Inzwischen lebe ich mit einer holperigen Notlösung: ich starte
Code:
wl-paste --watch cliphist store &
in meiner labwc Sitzung (inzwischen automatisiert) und greife dann über das labwc-rechter-Maus_Menu auf den Befehl
Code:
sh -c 'cliphist list | rofi -dmenu | cliphist decode | wl-copy'
zu. Dazu muss natürlich alles erst installiert sein, was hier gebraucht wird.
Der rechte Maus-Klick in labwc funktioniert auf dem Hintergrund. Um diesen zu bekommen, habe ich dann noch ein Widget showdesktop in der sfwbar aktiviert und eingerichtet. Das toggelt dann kurz zum Hintergrund, wenn mal keiner da ist und wieder zurück.

Geht schon.
Aber schöner wärs schon, direkt aus sfwbar und das schien mir doch nicht besonders schwer, habe es aber nicht hinbekommen. Kommt vielleicht noch, aber vielleicht weiß jemand auch eine viel bessere und einfachere Lösung?
 
2025-07-14_22-07-1752525118-grim.webp

2025-07-14_22-07-1752525964-slurpgrim.webp


Es soll nicht so aussehen, als wenn ich aufgegeben hätte oder, als wenn ich schon lange zufrieden wäre und nur zu faul, das mit euch zu teilen.
Ich bin durchaus noch nicht zufrieden!
Allerdings war ich das auch nach vielen vielen Jahren niemals vollkommen mit Openbox und fbpanel und habe es trotzdem gut nutzen können.

Vor allen Dingen (das ist geschummelt) durchblicke ich nicht, wie sfwbar funktioniert (denn ich durchblicke fast gar nichts, rede hier aber nur über labwc und sfwbar).
Es macht sich nun schon ganz gut und ich bin wild entschlossen, dabei zu bleiben und auch die Dinge zu akzeptieren, die ich nicht ändern kann, weil mir die Fähigkeiten fehlen.

Wie zuvor schon mit Openbox und fbpanel, ist ja Vieles eine Frage der persönlichen Leidensfähigkeit und weniger eine Frage der generellen Brauchbarkeit.

Um einen Eindruck zu vermitteln, habe ich zwei Screenshots angehängt. Beide aus laufender Sitzung, also alles Gut?
Halbwegs!

Es geht schon in etwa, wie ich das will, aber blickt man auf das Detail, wird sofort klar, dass das nicht passt!
Der Button mit dem FreeBSD-Logo ist zu klein im Verhältnis zur BAR, der Button für Show-Desktop sitzt nicht in der Mitte, die Rahmen-Farbe bei den auf-klappenden Einträgen ist unterschiedlich zum Rest und der Text sollte nicht so eng an den Icons kleben....

Ich werde weiter daran arbeiten.
Allerdings muss ich gestehen, dass ich in der Dokumentation verloren gehe, vor allen Dingen mit sfwbar. Ich blicke nicht durch und mache deshalb viel Mist und viel Versuch und Irrtum und meine Konfig ist deshalb eine Katastrophe, die ich selbst kaum noch überblicke. Nichts, was man hier teilen wollen würde!
 
nun bin ich nicht überzeugt von meiner Lösung, die auch noch gar nicht fertig ist, aber wegen: https://www.bsdforen.de/threads/my-way-to-wayland-and-inside.37380/post-343202 und ähnlichen, will ich trotzdem meine sfwbar.config mal herstellen.
Also, alle Endungen .txt sind natürlich falsch.
Die Dateien sind so von mir verwendet, was bedeutet, es sind direkte Pfade zu Bildern enthalten, die natürlich bei niemandem sonst gehen können. Das betrifft, sofern ich mich erinnere, das showdesktop.widget und das startmenu.widget. Die Pfade sollten dann irgendwo ein "pit" enthalten, worüber sie gefunden werden können.
Im weather.widget benutze ich Kooridinaten, die nahe zu einem Ort liegen, der mich interessiert, was irgendwo im Saarland ist. Da dürften andere Leute andere Präferenzen haben ;)
Die sfwbar.config geht von zwei Monitoren aus und legt die Leiste auf einen davon fest. Das muss sicher auch angepasst werden.
Und über alles andere und besonders meine Farbwahl, schweige ich lieber. Das ist eben mein Ding.

Wer aber ebenso vor einem leeren Bildschirm steht und nicht recht weiter kommt, kann damit vielleicht einfacher einen Start hinlegen. Alle Dateien kurz anpassen, nach ~/.config/sfwbar legen und einen sfwbar & absetzen.
 

Anhänge

2025-07-21_14-07-1753102301-grim.webp

ich sende das mal auf die Schnelle ab und wechsele dann aber von hier, dem "vernachlässigten Laptop", auf meinen "echten PC", um den Beitrag zu vollenden ;)

edit:
Da bin ich wieder. Natürlich musste ich inzwischen den Beitrag speichern, weshalb nun alles Weitere unter edit läuft.

Ich glaube, dass ich mal das Wort vom "vernachlässigten Laptop" etwas besser beleuchten muss. Es handelt sich dabei um einen lenovo T430, mit
" Intel(R) Core(TM) i7-3632QM CPU @ 2.20GHz"
"16G RAM"
"vgapci0@pci0:0:2:0: class=0x030000 rev=0x09 hdr=0x00 vendor=0x8086 device=0x0166 subvendor=0x17aa subdevice=0x21f3
vendor = 'Intel Corporation'
device = '3rd Gen Core processor Graphics Controller'
class = display
subclass = VGA" oder kurz gesagt, einem i915.
Vernachlässigt nenne ich den deshalb, weil ich ihn quasi niemals nutze.
Er ist ein Fallback-Medium.
Wenn mein PC mal versagt, möchte ich ja immer noch an meine Mails kommen und Zugriff auf die Backups haben usw. Dazu habe ich dann allerdings auch noch einen anderen Ersatz-PC, der noch mehr "vernachlässigt" ist, weil ich damit gar nichts mache und nur im Falle eines Falles ein hoffentlich funktionierendes Boot-Medium aus dem Haupt-PC einlegen und davon starten kann.
So läuft der "vernachlässigte Laptop" auch auf Quarterly, bekommt auch nur alle par Monate einen Update und daher der Ausdruck "vernachlässigt".
Wenn aber...
dann soll er doch funktionieren und zwar möglichst identisch bedient werden können, wie ich das vom Haupt-PC aus gewöhnt bin...

Nachdem ich nun fast keine Wünsche mehr offen habe, wurde es Zeit, meine inzwischen gefundenen Configs auf den Laptop zu senden und dort zu nutzen, was geringe Anpassungen erfordert, logisch.
Auf meinem PC brauche ich etwa keine Batterie-Anzeige und kein Wlan-Tool. Mein Laptop hat nur recht dürftige 1600 x 900 Auflösung (auf meinem PC sind es zwei Monitore mit insgesamt 7680 × 2160), also beinahe illusorisch zu glauben, dass die eine Config auch auf dem Anderen PC funktionieren kann.
Nach geringen Anpassungen startete ich dann labwc (inzwischen immer mit ck-lauch-session dbus-run-session labwc, wie von @bluescreen empfohlen und habe auch den dbus-start generell wieder in der rc.config enabled, bekomme aber einige Fehlermeldungen deswegen, die scheinbar nicht so ernst genommen werden müssen, weil ja alles startet und läuft).

Auf diese Kleinigkeiten will ich indessen gar nicht eingehen und erwähne das nur der Vollständigkeit halber.
Auch will ich nun nicht alle fünfzehn Minuten ein neues Bild meines aktuellen Desktiops senden: ist halt alles noch im Wachsen und Gedeihen und nicht endgültig.

Aber: bemerkenswert ist es doch, dass mein benutzes Terminal, nämlich x11/rxvt-unicode mit dem i915 zusammen Transparenz kann, mit dem nvidia auf meinem PC aber nicht!
labwc kann keine Transparenz (und ich weiß auch nicht, ob ich das wirklich brauche), aber diverse Anwendungen können das eben doch und zwar auch in labwc. Dazu gehört ohne Zweifel das sfwbar.

So etwas halte ich für wichtig, weil offenbar gleiche Configs auf unterschiedlicher HW unterschiedlich wirken und Ergebnisse dann vielleicht kontrovers diskutiert werden.
 
Zuletzt bearbeitet:
Aber: bemerkenswert ist es doch, dass mein benutzes Terminal, nämlich x11/rxvt-unicode mit dem i915 zusammen Transparenz kann, mit dem nvidia auf meinem PC aber nicht!
labwc kann keine Transparenz (und ich weiß auch nicht, ob ich das wirklich brauche), aber diverse Anwendungen können das eben doch und zwar auch in labwc. Dazu gehört ohne Zweifel das sfwbar.

und nach einem Pakete-Update & Neustart ist dann auch die Transparenz vom rxvt-unicode verschwunden und es verhält sich, wie auf dem großen PC.
 
Außer mir benutzt vermutlich niemand hier labwc und deshalb will ich dafür keinen neuen Thread starten, aber es geht jetzt nicht um sfwbar in labwc, sondern direkt um labwc.
2025-07-26_11-07-1753522723-slurpgrim.webp

dies ist ein leeres leafpad-Fenster, das ich deshalb hierher stelle, um die Rahmen zu zeigen und zwar nicht, weil ich mich künstlerisch hervorheben will.

Solche Rahmen hatte ich in Openbox auch benutzt und da hatte die picom gezeichnet.
Weil nämlich, vielleicht kennt ihr das auch: gelegentlich sehe ich in einem Fenster etwas, das ich editieren möchte, tippe drauf los und merke gar nicht, dass mein Hinsehen das Fenster nicht aktiviert hatte. Besonders überraschende Effekte kann so etwas dann haben, wenn man in ein falsches Editorfenster tippt, mittels Tastenkürzel abspeichert, testet, sich wundert, weshalb die Änderung nicht gelungen ist und dann später sogar ein Desaster erlebt, weil man den angerichteten Schaden durch das falsche Editieren erst später bemerkt.
Also deshalb will ich solche Rahmen, die das aktive Fenster deutlich hervorheben.

labwc kann so etwas, wenngleich die Funktion etwas merkwürdig und eingeschränkt ist.
labwc kann themesrc Dateien auswerten und in meinem Fall nutzte es ein altes Thema, das unter Openbox funktioniert hatte. Dahinein schrieb ich:
Code:
window.active.border.color: #ff0000
window.active.shadow.size:70
window.active.shadow.color: #ff33ff

window.inactive.border.color: #404850
window.inactive.shadow.size:60
window.inactive.shadow.color: #000066
zusätzlich fügte ich in der rc.xml des labwc noch in die Sektion theme hinzu
Code:
        <dropShadows>yes</dropShadows>
        <dropShadowsOnTiled>yes</dropShadowsOnTiled>
Trotzdem verschwinden die Schatten bei action "SnapToRegion", die border aber bleiben erhalten.

Außerdem funktionieren manche Fenster etwas unerwartet, ich denke, vor allen Dingen, wenn sie neuere GTK oder Plasma-Styles verwenden, die nicht so ganz kompatibel zu meinem alten Thema sind.
Erstaunlich gut funktioniert die Sache bei allen Xwayland-Anwendungen.

Vielleicht ein kleiner Hinweis, falls jemand doch mal in labwc taucht.
 
Zurück
Oben