You are not logged in.
Ok, This is a replacement Openbox Logout script designed especially for #!, It's based on a few existing scripts by iggkoopa and adcomp, but it's almost a complete rewrite.
So I'd like to introduce cb-openbox-logout/Openbox Logout/oblogout (I've not picked a name yet!)
This is a graphical logout, allowing for buttons and few fancy rendering effects, such as darkening the background. If compositing is enabled then you'll have a "live" view of the background, much like setting the transparency on a window.
You can download it at: http://assets.tensixtyone.com/releases/oblogout/
Please, read the README file before installing. An example screenshot can be found here
CURRENT VERSION 0.2
KNOWN ISSUES
* On small screens, the button may run off the screen.
Offline
Issue quasi-resolved by resizing the images, btw everyone.
I resized mine to half size and it's looking fine.
*screenie will be edited in*
Ex-KDE user.
Collects old PC's (Coz he can't afford new ones =P)
Crunchbang @ Distrowatch
My Blog (updated infrequently, and on the #! Planet too.)
Offline
Wow! I have just installed it, it looks amazing! I will try and test it out on a few more machines as and when I get chance.
Offline
I think this is great stuff, a real improvement over the standard logout controls.
For my part I plan to revamp the icons: I'm going to try a set making better use of PNG transparency, and also provide a smaller size (64x64?). Of course, I'll also make the SVGs available. 

Offline

Apologies for the minor cut out of the suspend button. This was caused by my mouse being annoying and not doing what I told it, so I ended up paintbrushing over that part of the image. I nvr noticed till I ran oblogout, and I'll fix it later. [=
edit: as I said, those have been resized. they are now 64x64 (so half the default size)
Last edited by Mehall (2009-01-19 23:26:50)
Ex-KDE user.
Collects old PC's (Coz he can't afford new ones =P)
Crunchbang @ Distrowatch
My Blog (updated infrequently, and on the #! Planet too.)
Offline
Offline
Andrew, cool. Downloaded, read README and ran
./setup.py installand got an error. Shame on me for not looking at it closer. Setup.py exited with error complaining of permissions with /usr/lib/python2.5...blah blah blah. Me's thought "permission!" I'll show ya.
sudo !!and whipped into submission it ran nicely. Sorry I didn't write down the error exactly and now that it is installed I can not reproduce the error. When I try reinstalling it now reports
changing mode of /usr/bin/oblogout to 755
error: /usr/bin/oblogout: Operation not permittedMaybe the problem is unique to me but I thought you'd like to know. Installing with sudo worked for me.
Offline
I had to sudo to. saw permission error, sudo'd and thought nothing of it - oops.
If I get my POS system running #! lite, I'll install there and give you the exact error.
Ex-KDE user.
Collects old PC's (Coz he can't afford new ones =P)
Crunchbang @ Distrowatch
My Blog (updated infrequently, and on the #! Planet too.)
Offline
installed on my eee pc 1000h, everything fits and works. Great job guys!
Offline
Ack, need to update the readme 
fshm, as for the shortcuts, it is on my todo list. Hopefully it should be in by the next release (0.2 is looking like quite a bit of coding).
Offline
This looks really exciting.
I tried to install it but i got
wmdiem@diem-acer:~/openboxlogout-0.1-1$ sudo ./setup.py
[('/etc/', ['openbox-logout.conf'])]
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
or: setup.py --help [cmd1 cmd2 ...]
or: setup.py --help-commands
or: setup.py cmd --help
error: no commands suppliedI did ./setup.py --help and i didn't see anything important
I also read the README and it seemed to say I could just run setup.
Running the openboxlogout alone gives me traceback/misisng module error.
wmdiem@diem-acer:~/openboxlogout-0.1-1$ sudo ./openboxlogout.py
Traceback (most recent call last):
File "./openboxlogout.py", line 28, in <module>
from PIL import Image, ImageFilter
ImportError: No module named PILThanks, can't wait to get it working.
EDIT: I went back and looked over the help, and noticed the build and install options.
Both return the same error:
wmdiem@diem-acer:~/openboxlogout-0.1-1$ sudo ./setup.py install
[('/etc/', ['openbox-logout.conf'])]
running install
running build
running build_py
error: package directory 'openboxlogout' does not exist
wmdiem@diem-acer:~/openboxlogout-0.1-1$ sudo ./setup.py build
[('/etc/', ['openbox-logout.conf'])]
running build
running build_py
error: package directory 'openboxlogout' does not exist
wmdiem@diem-acer:~/openboxlogout-0.1-1$ Last edited by wmdiem (2009-01-20 11:30:25)
Offline
...
Mmm, very strange.
Ok, so heres some steps:
cd /tmp
wget http://assets.tensixtyone.com/releases/oblogout/openboxlogout-0.1-1.tar.gz
tar zxvf openboxlogout-0.1-1.tar.gz
cd openboxlogout-0.1
./oblogoutIf that works, then:
sudo ./setup.py install[EDIT]
INFACT, you've experienced a very odd error. What version of #! are you using? I suspect your missing a few python packages required for this software to run.
Offline
Everything went fine, no errors or anything, until "./oblogout" which gave the the error reported above.
I'm using 8.04.1
thanks for the help.
Offline
Ahh right, it's not tested on 8.04, so i'm not sure how to proceed.
I guess you need to sort the dependancies problem, so
sudo apt-get install python-imagingAnd give ./oblogout a try.
Offline
After adding the python imaging mentioned above:
wmdiem@diem-acer:/tmp/openboxlogout-0.1$ ./oblogout
Traceback (most recent call last):
File "./oblogout", line 30, in <module>
app = openboxlogout.OpenboxLogout(config)
File "/tmp/openboxlogout-0.1/openboxlogout/openboxlogout.py", line 50, in __init__
self.load_config(config)
File "/tmp/openboxlogout-0.1/openboxlogout/openboxlogout.py", line 184, in load_config
self.bgcolor = gtk.gdk.Color(self.parser.get("looks", "bgcolor"))
TypeError: an integer is requiredLast edited by wmdiem (2009-01-20 14:17:29)
Offline
So I came up with a kind of hack:
in openboxlogout.py I commented out lines 182-187
# Set background color
# try:
# self.bgcolor = gtk.gdk.Color(self.parser.get("looks", "bgcolor"))
# except ValueError:
# self.logger.warning(_("Color %s is not a valid color, defaulting to black") % self.parser.get("looks", "bgcolor"))
# self.bgcolor = gtk.gdk.Color("black")The images are coming in as little error icons of some sort. Not sure what the deal is with that.
But on the plus side it runs.
Any idea how i could troubleshoot that?
I don't know python and I've never developed anything in a graphical environment, so I'm not sure where to start looking.
Last edited by wmdiem (2009-01-20 15:45:25)
Offline
No earthy idea why, but i have it working.
I went back to the version you had me wget. Ran the setup again. some reason it ran this time without any problem.
Then when i ran the script ./oblogout it gave me the *edit* integer required */edit* errors. I dug around and found the openboxlogout/openboxlogout.py and commented out the same lines i did before (on the other version).
Now it works perfectly. And it's very slick. Nice work.
One issue: The white text is almost unreadable if you have light colored window open under it. I assume I can correct this by changing the fade in the config file, but just an observation on the default settings.
Last edited by wmdiem (2009-01-20 17:03:45)
Offline
You could use PIL's histogram, you'd be able to tell if the background is light or dark and change the text color between black and white accordingly. some psuedo code following to base it off of:
hist = pilimg.histogram()
half = len(hist) / 2
text_color = "white"
darkness = 0
lightness = 0
for item in range(half):
darkness = darkness + hist[item]
for item in range(half, len(hist)):
lightness = lightness + hist[item]
if lightness > darkness:
text_color = "black"it's very basic brightness detection but it's a start. Also you would probably want to crop the detection area to the text area to improve detection speed.
Last edited by iggykoopa (2009-01-20 16:32:26)
I say never be complete, I say stop being perfect, I say lets evolve, let the chips fall where they may.
Offline
No earthy idea why, but i have it working.
I went back to the version you had me wget. Ran the setup again. some reason it ran this time without any problem.
Then when i ran the script ./oblogout it gave me the module errors. I dug around and found the openboxlogout/openboxlogout.py and commented out the same lines i did before (on the other version).
Now it works perfectly. And it's very slick. Nice work.
One issue: The white text is almost unreadable if you have light colored window open under it. I assume I can correct this by changing the fade in the config file, but just an observation on the default settings.
I'll have a gander at the code tonight, thats a little odd.
As for text issues, real easy to resolve that with some dropshadow/text outline. I'd like to avoid using PIL for anything (as i'm trying to phase it out for the next release).
Offline
sounds good, guess I'm just to used to the military
trying to over-engineer a simple problem.
I say never be complete, I say stop being perfect, I say lets evolve, let the chips fall where they may.
Offline
Installed and replaced 'Exit' on my menu with oblogout.
Kudos to Nik_Doof as well as adcomp and iggykoopa.
Great addition!
Michael
The 1-Man IT Department | Ubuntu User #16666 | Linux User #451972
My Social Nets: Identi.ca | twitter | friendfeed
Crunchbangin' and Loving Every Minute of IT!
Offline
so, as I've said, I'm really impressed with the script, an I think it would be a great addition to future #! versions.
I would like to recommend, however, that suspend, should first start gnome-screensaver to lock the screen, so when the computer gets brought back it is locked. As it is, coming back directly into the last session from a suspend, seems somewhat insecure.
And lest I be one of those annoying people who just makes recommendations and expects everyone else to implement them:
I made the following changes from line 309 openboxlogout.py:
elif (data == 'shutdown'):
self.dbus_powermanagement.Shutdown()
#os.system('gdm-control --shutdown && openbox --exit')
elif (data == 'suspend'):
os.system('gnome-screensaver-command -l')
os.system('sync')
self.dbus_powermanagement.Suspend(0)
#os.system('dbus-send --system --print-reply --dest=org.freedesktop.Hal /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.SystemPowerManagement.Suspend int32:0')
self.quit()
elif (data == 'hibernate'):
os.system('gnome-screensaver-command -l')
os.system('sync')
self.dbus_powermanagement.Hiberate()
#os.system('dbus-send --system --print-reply --dest=org.freedesktop.Hal /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.SystemPowerManagement.Hibernate')
self.quit()As you see i also added it for hibernate too, and threw in a sync for good measure (I want to know my data is saved, not just floating around in RAM). Now when I suspend, it comes back up locked, which makes me feel good inside.
Last edited by wmdiem (2009-01-21 10:25:45)
Offline
so, as I've said, I'm really impressed with the script, an I think it would be a great addition to future #! versions.
I would like to recommend, however, that suspend, should first start gnome-screensaver to lock the screen, so when the computer gets brought back it is locked. As it is, coming back directly into the last session from a suspend, seems somewhat insecure.
It was an easy (perhaps unelegant) change. from line 309 openboxlogout.py:elif (data == 'shutdown'): self.dbus_powermanagement.Shutdown() #os.system('gdm-control --shutdown && openbox --exit') elif (data == 'suspend'): os.system('gnome-screensaver-command -l') os.system('sync') self.dbus_powermanagement.Suspend(0) #os.system('dbus-send --system --print-reply --dest=org.freedesktop.Hal /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.SystemPowerManagement.Suspend int32:0') self.quit() elif (data == 'hibernate'): os.system('gnome-screensaver-command -l') os.system('sync') self.dbus_powermanagement.Hiberate() #os.system('dbus-send --system --print-reply --dest=org.freedesktop.Hal /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.SystemPowerManagement.Hibernate') self.quit()
The execution of gnome-screensaver-command is exactly what I would do, but I dont understand the sync call. As part of the Hibernate/Suspend the kernel would sync everything to disc to clear the buffers, doing this seems a little unneeded 
Offline
Copyright © 2012 CrunchBang Linux.
Proudly powered by Debian. Hosted by Linode.
Debian is a registered trademark of Software in the Public Interest, Inc.