Openbox - Hintergrund wechseln?

M

miret

im Ghost-Modus
Jetzt brüte ich schon stundenlang darüber und habe das halbe Internet durchwühlt aber finde nichts, aber auch rein gar nichts funktionelles darüber:

Wie ändere ich den Hintergrund in Openbox???

In Fluxbox war das nach kurzer Eingewöhnung ja alles recht einfach und man fand auch reichlich dazu im WWW, aber Openbox scheint da ein ganz geheimnisvoller Kandidat zu sein. Und die Dateien sind auch alle anders als bei Fluxbox und liegen ganz woanders als bei Fluxbox - eigentlich hat Openbox so rein gar nichts mehr mit Mama Blackbox und Schwester Fluxbox gemein!

Benutzt einer von euch Openbox? Kann mir einer möglichst Dummyfreundlich erklären, wie er das schafft, wenn er es denn schafft, das Hintergrundbild zu wechseln :hilfe2: ?
 
entweder "Esetroot $datei" (es muss Eterm installiert sein!)
oder "fbsetbg $datei" (da brauchste glaub ich fluxbox für , geht aber auch @ openbox)

MFG

Dennis
 
Mit Python und Esetroot

Das hier ist mein Pythoncode.
Ich nutze die Möglichkeit in das Openboxmenü dynamische Inhalte einzupflegen.
Der Code liest alle Bilder aus /home/jo/bilder/wallpaper/ und erzeugt ein XML-Menü.

Ist ganz nett.

Code:
<menu id="wallpapers" label="wallpapers" execute="~/bin/openbox/wallpaper.py"/>

Code:
#!/usr/bin/python
# Generates a dynamic menu
import glob


wallpapers = glob.glob('/home/jo/bilder/wallpaper/*').sort()
#wallpapers.sort()
print '<openbox_pipe_menu>'
for pic in wallpapers:
        name = pic.split('/')[-1]
        print '''
        <item label="%s">
                <action name="Execute"><execute>Esetroot -center -back black  %s</execute></action>
        </item>''' % (name, pic)
print '</openbox_pipe_menu>'
 
11dennis schrieb:
entweder "Esetroot $datei" (es muss Eterm installiert sein!)
oder "fbsetbg $datei" (da brauchste glaub ich fluxbox für , geht aber auch @ openbox)

MFG

Dennis


So hab ich´s unter Fluxbox gemacht.... Openbox3 hat mit Fluxbox nicht mehr viel zu tun, daher wüsste ich jetzt nicht, wie ich das bewerkstelligen sollte... ?(
Ähnliches gilt wohl auch für mo_no´s Aussage...
Oder sehe ich das falsch???
Noch mal: Mit Fluxbox und seiner Konfiguration kam ich weitestgehend klar (hatte ich aber auch geschrieben), mit Openbox ist das alles etwas anders... (Wäre auch bei Flux geblieben, aber der startete auf einmal nicht mehr nach meinem letzten You-Update, hab da auch ´nen anderen Thread in diesem Topic zu)


Den Vorschlag von hehejo würde ich ja gerne mal probieren, sobald der in allgemeinverständlicher Sprache abgefasst ist! :devil: :brav:
Soll heissen, wie muß ich was wo machen??? ;)
 
Die Tools sind eigentlich unabhängig vom WM.
 
wieso nicht Esetroot benutzen , das ist im Eterm drin :)
außerdem funktioniert ja auch das pythin script mit Esetroot

MFG

dennis
 
mo_no schrieb:
Die Tools sind eigentlich unabhängig vom WM.


Ist ja schön und gut, aber ich weiß halt nicht, wie ich das bei Openbox zum laufen bekomme... also bspw. sowas wie ein Autostart oder ein festes Hintergrundbild. Die Dateien sind ja völlig anders aufgebaut und befinden sich an völlig anderen Orten als bei Flux- o. Blackbox!!! ;( Da ist halt nix mit init oder so.... :think: :hilfe2: ?(
Ich bin ein kleiner Normal-User, sonst würde ich doch wohl nicht fragen! :think: :hilfe2: ?( :D

Wie wäre es denn mal mit ´nem Beispiel?

Ich habe zum Bleistift bei Fluxbox in der .fluxbox im Homeverzeichnis ein fluxstartup.sh genanntes Shellscript in dem der Hintergrund und auch beispielsweise ein eterm im Autostart ist...
Diese wird über einen Eintrag in der init-Datei gestartet...
SOWAS gibt´s doch bei Openbox gar nicht mehr...


#######################################


Habe gerade bemerkt, das wenn ich mein Shellscript einfach ausführe, es auch gestartet wird, also das Hintergrundbild und der eterm. Würde das ev. bei Openbox auch irgendwie zu automatisieren gehen, also beim Start? Weil wie gesagt diese init fehlt bei Openboxx...
 
Zuletzt bearbeitet:
Das mit dem Hintergrund funktioniert so:
Der xserver startet. Dann kriegt das root-window (also dein Bildschirm) ein Hintergrund von dir verpasst (mit den schon genannten Tools z.B.). Danach lädst du den Windowmanager. Deswegen hat der Hintergrund nichts mit diesen Windowmanagern zu tun.
Bei mir sieht das wie folgt aus:

Home-Verzeichnis: .xinitrc öffnen
Code:
display -window root -geometry 1600x1200 ~/daten/galerie/wallpaper/Prisitine_Entrapment___Collab_by_hameed.jpg
#exec ion3 
exec openbox

Ich benutze "display" der ImageMagick-Suite. Solltest du eigentlich schon in deinem System haben. Damit kann man z.B. auch screenshots machen.
Die Option "-window root" gibt an, dass sich das eben alles auf dein Hauptfenster, also deinen Hintergrund bezieht;
Die Option "-geometry" gibt an, wie das Bild skaliert werden soll.
Danach folgt dann nur noch der Pfad zum Bild. Die .xinitrc wird dann bei jedem xserver-Start automatisch ausgelesen und ausgeführt.
 
angelsfall schrieb:
Das mit dem Hintergrund funktioniert so:
Der xserver startet. Dann kriegt das root-window (also dein Bildschirm) ein Hintergrund von dir verpasst (mit den schon genannten Tools z.B.). Danach lädst du den Windowmanager. Deswegen hat der Hintergrund nichts mit diesen Windowmanagern zu tun.
Bei mir sieht das wie folgt aus:

Home-Verzeichnis: .xinitrc öffnen
Code:
display -window root -geometry 1600x1200 ~/daten/galerie/wallpaper/Prisitine_Entrapment___Collab_by_hameed.jpg
#exec ion3 
exec openbox

Ich benutze "display" der ImageMagick-Suite. Solltest du eigentlich schon in deinem System haben. Damit kann man z.B. auch screenshots machen.
Die Option "-window root" gibt an, dass sich das eben alles auf dein Hauptfenster, also deinen Hintergrund bezieht;
Die Option "-geometry" gibt an, wie das Bild skaliert werden soll.
Danach folgt dann nur noch der Pfad zum Bild. Die .xinitrc wird dann bei jedem xserver-Start automatisch ausgelesen und ausgeführt.



Danke für das Beispiel, das könnte ich mal ausprobieren...
Wäre es ev. möglich (siehe den Zusatz, den ich noch an mein letztes Posting gehangen habe) mein Shellscript auf gleiche Art auszuführen, wie du es beschrieben hast?


###############

Finde bei mir im Home-Verzeichnis leider auch nur eine .xinitrc-template...
 
Zuletzt bearbeitet:
miret schrieb:
Finde bei mir im Home-Verzeichnis leider auch nur eine .xinitrc-template...
Habe leider keine Ahnung von Shell-Scripten.
Du kannst die Datei einfach erstellen und füllen, wenn sie nicht exisitert.
 
angelsfall schrieb:
Habe leider keine Ahnung von Shell-Scripten.
Du kannst die Datei einfach erstellen und füllen, wenn sie nicht exisitert.


Deshalb wird sie wohl auch als Template da sein, nehme ich mal an... ;)

Ich werde dann einfach mal nicht das script da reinbringen, weil die xinit.rc ja selbst eins ist, sondern einfach mal die einzelnen Programmaufrufe!
 
Zuletzt bearbeitet:
Ich hab mir auch wie hehejo nen tool zum Setzen des Wallpapers geschrieben.
Wenn du willst kann ich es dir zukommen lassen, kannst aber auch den Python Skript vom hehejo nehmen :)
Das programm erstellt auch XML code für das Openbox menü!
 

Anhänge

  • wp.jpg
    wp.jpg
    173,5 KB · Aufrufe: 19
Also grundsätzlich gerne... kannst mir das ja mal schicken.

Nun ist allerdings so etwas mein Ehrgeiz geweckt und ich möchte das mal mit der xinitrc hinbekommen, denn der Weg scheint mir ja so falsch nicht zu sein.
Haber allerdings Probleme, bessser gesagt keine Ahnung, von dem ganzen Zeug was da in der Beispiel-xinitrc so alles drinsteht.
Wenn ich beispielsweise nur die Sachen as meinem alten scrpt da reinschreibe und bspw. noch den kicker und alles andere weg lasse, startet zwar X mit ´nem Hintergrundbild und der eterm und dem kicker, aber openbox nicht, da wohl die Angaben, welcher wm zu starten ist fehlen.
Ich poste mal das xinitrc-template, welche mir vorliegt:
#!/bin/bash
#
# Sample .xinitrc for SuSE Linux
# This script is called from 'startx' when you start an X session
#

#
# In case everything goes wrong, we at least fall back to a plain xterm
#
failsafe="xterm -ls -T Failsafe -geometry 80x24-0-0"
trap "exec $failsafe" EXIT SIGHUP SIGINT SIGPIPE SIGTERM SIGIO

#
# Some bash (1 and 2) settings to avoid trouble on a
# failed program call.
#
test -n "$BASH" && set +o posix
no_exit_on_failed_exec=1
type shopt > /dev/null 2>&1 && shopt -s execfail
set +e > /dev/null 2>&1

#
# This should be the default
#
export TERM=xterm

#
# choose a window manager
#
if test -n "$WINDOWMANAGER" ; then
WINDOWMANAGER=`type -p $WINDOWMANAGER`
fi
if test -z "$WINDOWMANAGER" ; then
if test -x /usr/X11R6/bin/kde ; then
WINDOWMANAGER=/usr/X11R6/bin/kde
elif test -x /usr/X11R6/bin/startkde ; then
WINDOWMANAGER=/usr/X11R6/bin/startkde
elif test -x /usr/X11R6/bin/fvwm2 ; then
WINDOWMANAGER=/usr/X11R6/bin/fvwm2
elif test -x /usr/X11R6/bin/wmlist ; then
for i in `/usr/X11R6/bin/wmlist` ; do
WINDOWMANAGER=`type -p $i`
test -n "$WINDOWMANAGER" && break
done
elif test -x /usr/X11R6/bin/twm ; then
WINDOWMANAGER=/usr/X11R6/bin/twm
fi
fi

if test -z "$WINDOWMANAGER" ; then
echo "Error: Unable to find a window manager. Please make sure you installed one!"
echo "Exiting..."
xmessage -timeout 10 -default okay -center -file - <<-EOF
Error: Unable to find a window manager. Please make sure you installed one!
Exiting...
EOF
exit 1
fi

# add dbus-launch if found
dbuslaunch="`which dbus-launch 2>/dev/null`"
if [ -n "$dbuslaunch" ] && [ -x "$dbuslaunch" ]; then
WINDOWMANAGER="$dbuslaunch --sh-syntax --exit-with-session $WINDOWMANAGER"
fi

#
# Load system and users resources if not already done
# (XSESSION_IS_UP set by xdm in $XLIBDIR/xdm/Xsession)
#
if test "$XSESSION_IS_UP" != "yes" ; then
XLIBDIR=/usr/X11R6/lib/X11
test -r $XLIBDIR/Xmodmap && xmodmap $XLIBDIR/Xmodmap
test -r $HOME/.Xmodmap && xmodmap $HOME/.Xmodmap
test -r $XLIBDIR/Xresources && xrdb -load -retain $XLIBDIR/Xresources
test -r $HOME/.Xdefaults && xrdb -I$HOME -merge $HOME/.Xdefaults
test -r $HOME/.Xresources && xrdb -I$HOME -merge $HOME/.Xresources
fi

# Start the XIM server
XIMFILE=/etc/X11/xim
test -r $HOME/.xim && XIMFILE=$HOME/.xim
test -r $XIMFILE && source $XIMFILE

# Enable Numlock if set
test -r /var/run/numlock-on -a -x /usr/X11R6/bin/numlock && /usr/X11R6/bin/numlock

# Disable new Xcursor themes if none is specified resp. located in $HOME
# (use "unset XCURSOR_CORE" to enable them again later)
#if [ "x$XCURSOR_THEME" == "x" -a ! -d $HOME/.icons ]; then
# export XCURSOR_CORE=true
#else
# unset XCURSOR_CORE
#fi

# load nvidia settings
if [ -x /usr/bin/nvidia-settings -a -r $HOME/.nvidia-settings-rc ]; then
/usr/bin/nvidia-settings --load-config-only &> /dev/null &
fi

#
# Uncomment next line to activate asking for ssh passphrase
#
# ssh-add

#
# Add your own lines here...
#


# day planer deamon
# pland &

#
# finally start the window manager
#
exec $WINDOWMANAGER

# call failsafe
exit 0

und dann mal so, wie ich es im ersten Versuch (offensichtlich falsch) gemacht habe:

#!/bin/bash

# Setzen des Wallpapers, Alternativen: fbsetbg, Esetroot, ... Beispiel mit Esetroot:
# fbsetbg -f /pfad/zum/wallpaper
Esetroot /opt/kde3/share/wallpapers/underground1.png

kicker

# Hier, dann andere Befehle die ausgeführt werden sollen

# Eterm starten, transparent und zu 50% geshaded, mit ensprechenden
# Geometrie, und direktes ausführen von top
Eterm -x --buttonbar=off --shade=50 --scrollbar=off --trans -g 80x16+000+000


exit 0


Also auf den eterm kann ich getrost verzichten, aber mir geht´s in erster Linie um den Background und um Kicker!!
Wäre nett, wenn da mal jemand etwas Ornung in meine beiden Hirnhälften bringen könnte... ;) :think:
 
Ich weiss jetzt nicht, was Kicker ist, aber du musst alle Programme beim Aufruf in den Hintergrund schieben (mittels "&" anhängen), sonst wartet er, bis das eine Programm beendet ist und führt dann erst das nächste aus.

Meine derzeitige .xinitrc:
Code:
display -window root -geometry 1600x1200 ~/daten/galerie/wallpaper/Prisitine_Entrapment___Collab_by_hameed.jpg &
rxvt &
torsmo &
#exec ion3 
exec openbox
Wenn ich z.B. beim Terminal (rxvt) und dem Systemmonitor (torsmo) das "&" weglassen würde, würde er in dem Falle erst das Wallpaper setzen, dann das Terminal ausführen. Da habe ich dann noch keinen WM. Erst, wenn ich das Terminal beendet hätte, würde er den Systemmonitor ausführen, welchen ich auch erst beenden müsste, damit er dann endlich den Windowmanager lädt. Ich hoffe, du hast das Prinzip verstanden :)
 
Ja angelsfall, das Prinzip hab ich nun verstanden, hatte es aber beim Test noch nicht gemacht, aber.... es funktioniert trotzdem! :think:
Hier mal kurz, wie meine .xinitrc jetzt aussieht:

#!/bin/bash

# Setzen des Wallpapers, Alternativen: fbsetbg, Esetroot, ... Beispiel mit Esetroot:
# fbsetbg -f /pfad/zum/wallpaper

Esetroot /opt/kde3/share/wallpapers/underground1.png

# Hier, dann andere Befehle die ausgeführt werden sollen

kicker

openbox

exit 0

Und alles läuft jetzt so, wie ich es haben wollte... (kicker ist übrigens die KDE-Startleiste, auf die ich nicht verzichten möchte :] )

Ich hänge mal ein Foto mit an...
 

Anhänge

  • Bildschirmphoto2.png
    Bildschirmphoto2.png
    167,2 KB · Aufrufe: 14
Hi Miret!

Ich mache das so:
In meiner ~/.xinitrc steht das drin
Code:
Esetroot -center -black ~/bilder/wallpaper/space.jpg&
thunderbird&
firefox&
exec openbox
Damit hab ich ein Hintergrundbild am Start.

Diesen Schippsel
Code:
<menu id="wallpapers" label="wallpapers" execute="~/bin/openbox/wallpaper.py"/>
schreibst du in die Datei ~/.config/openbox/menu.xml.

Und fügst dann dieses Menü dem Rootmenü hinzu.
 
Und wie kommt das jetzt, das es bei mir auch ohne & hinter den Befehlen geht???
 
Zurück
Oben