You are not logged in.
I am hosting three #! images and the old cb-exit python script here: https://dt.iki.fi/stuff/cb/
cb-exit.txt 23-Apr-2018 04:18 3596
copyright.txt 23-Apr-2018 04:18 769
crunchbang-11-20130506-amd64.iso 06-Aug-2014 18:43 774897664
crunchbang-11-20130506-amd64.iso.md5sum 18-Oct-2020 10:55 67
crunchbang-11-20130506-i686.iso 09-Feb-2014 22:59 808452096
crunchbang-11-20130506-i686.iso.md5sum 18-Oct-2020 10:54 66
crunchbang-lite.iso 19-Aug-2014 22:26 708640768
crunchbang-lite.iso.md5sum 18-Oct-2020 11:05 54
According to this page the md5sums are as follows:
i686: 5a74e8738a095d65f58641bb47d45e0a
amd64: 47b7921a2c08fbf930ddf4e175fc92e1
This jibes with the md5sums I just calculated.
The crunchbang-lite.iso is a lightweight, CD-sized install image; I guess it's 32bit.
More information about it is hidden somewhere on these forums; can't find it right now.
Its md5sum is 1b8ee2df9471da48da868023b964db6b.
May it be of use to someone!
Additionally, it seems that the torrent files are still around, and seeded:
http://crunchbang.org/torrents/crunchba … so.torrent
http://crunchbang.org/torrents/crunchba … so.torrent
The torrent-downloaded images have the same md5sums as those on my site, which in turn are the same as the md5sums on the crunchbang archive.
Nevertheless, use at your own risk. Obviously.
Last edited by ohnonot (2020-10-19 13:05:02)
Please use CODE tags for code.
Search youtube without a browser: repo | thread
BL quote proposals to this thread please.
my repos / my repos
Offline
Hah! Cool Just checked out the exit script and it is pretty neat. Just four buttons and much faster than the exit I'm using currently.
Can I use this for my own build?
Looking forward to installing and checking out one of #! images:)
Offline
Hah! Cool
Just checked out the exit script and it is pretty neat. Just four buttons and much faster than the exit I'm using currently.
Can I use this for my own build?Looking forward to installing and checking out one of #! images:)
I reckon so. Here is the default cb-exit that I have:
#!/usr/bin/env python
import pygtk
pygtk.require('2.0')
import gtk
import os
import getpass
class cb_exit:
def disable_buttons(self):
self.cancel.set_sensitive(False)
self.logout.set_sensitive(False)
self.suspend.set_sensitive(False)
self.reboot.set_sensitive(False)
self.shutdown.set_sensitive(False)
def cancel_action(self,btn):
self.disable_buttons()
gtk.main_quit()
def logout_action(self,btn):
self.disable_buttons()
self.status.set_label("Exiting Openbox, please standby...")
os.system("openbox --exit")
def suspend_action(self,btn):
self.disable_buttons()
self.status.set_label("Suspending, please standby...")
os.system("cb-lock")
os.system("dbus-send --system --print-reply --dest=\"org.freedesktop.UPower\" /org/freedesktop/UPower org.freedesktop.UPower.Suspend")
gtk.main_quit()
def reboot_action(self,btn):
self.disable_buttons()
self.status.set_label("Rebooting, please standby...")
os.system("dbus-send --system --print-reply --dest=\"org.freedesktop.ConsoleKit\" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart")
def shutdown_action(self,btn):
self.disable_buttons()
self.status.set_label("Shutting down, please standby...")
os.system("dbus-send --system --print-reply --dest=\"org.freedesktop.ConsoleKit\" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop")
def create_window(self):
self.window = gtk.Window()
title = "Log out " + getpass.getuser() + "? Choose an option:"
self.window.set_title(title)
self.window.set_border_width(5)
self.window.set_size_request(500, 80)
self.window.set_resizable(False)
self.window.set_keep_above(True)
self.window.stick
self.window.set_position(1)
self.window.connect("delete_event", gtk.main_quit)
windowicon = self.window.render_icon(gtk.STOCK_QUIT, gtk.ICON_SIZE_MENU)
self.window.set_icon(windowicon)
#Create HBox for buttons
self.button_box = gtk.HBox()
self.button_box.show()
#Cancel button
self.cancel = gtk.Button(stock = gtk.STOCK_CANCEL)
self.cancel.set_border_width(4)
self.cancel.connect("clicked", self.cancel_action)
self.button_box.pack_start(self.cancel)
self.cancel.show()
#Logout button
self.logout = gtk.Button("_Log out")
self.logout.set_border_width(4)
self.logout.connect("clicked", self.logout_action)
self.button_box.pack_start(self.logout)
self.logout.show()
#Suspend button
self.suspend = gtk.Button("_Suspend")
self.suspend.set_border_width(4)
self.suspend.connect("clicked", self.suspend_action)
self.button_box.pack_start(self.suspend)
self.suspend.show()
#Reboot button
self.reboot = gtk.Button("_Reboot")
self.reboot.set_border_width(4)
self.reboot.connect("clicked", self.reboot_action)
self.button_box.pack_start(self.reboot)
self.reboot.show()
#Shutdown button
self.shutdown = gtk.Button("_Power off")
self.shutdown.set_border_width(4)
self.shutdown.connect("clicked", self.shutdown_action)
self.button_box.pack_start(self.shutdown)
self.shutdown.show()
#Create HBox for status label
self.label_box = gtk.HBox()
self.label_box.show()
self.status = gtk.Label()
self.status.show()
self.label_box.pack_start(self.status)
#Create VBox and pack the above HBox's
self.vbox = gtk.VBox()
self.vbox.pack_start(self.button_box)
self.vbox.pack_start(self.label_box)
self.vbox.show()
self.window.add(self.vbox)
self.window.show()
def __init__(self):
self.create_window()
def main():
gtk.main()
if __name__ == "__main__":
go = cb_exit()
main()
And here is my version that uses systemctl:
#!/usr/bin/env python
#
# Adapted from the original cb-exit script by <corenominal>
#
# Changed to support for systemd
# Added an Openbox --reconfigure option
#
# <damo> October 2014
#
######################################################################
import pygtk
pygtk.require('2.0')
import gtk
import os
import getpass
class cb_exit:
def disable_buttons(self):
self.cancel.set_sensitive(False)
self.logout.set_sensitive(False)
self.reconfigure.set_sensitive(False)
self.suspend.set_sensitive(False)
self.reboot.set_sensitive(False)
self.shutdown.set_sensitive(False)
def cancel_action(self,btn):
self.disable_buttons()
gtk.main_quit()
def logout_action(self,btn):
self.disable_buttons()
self.status.set_label("Exiting Openbox, please standby...")
os.system("openbox --exit")
def reconfigure_action(self,btn):
self.disable_buttons()
os.system("openbox --reconfigure")
gtk.main_quit()
def suspend_action(self,btn):
self.disable_buttons()
self.status.set_label("Suspending, please standby...")
os.system("cb-lock")
os.system("systemctl suspend")
gtk.main_quit()
def reboot_action(self,btn):
self.disable_buttons()
self.status.set_label("Rebooting, please standby...")
os.system("systemctl reboot")
def shutdown_action(self,btn):
self.disable_buttons()
self.status.set_label("Shutting down, please standby...")
os.system("systemctl poweroff")
def create_window(self):
self.window = gtk.Window()
title = "Log out " + getpass.getuser() + "? Choose an option:"
self.window.set_title(title)
self.window.set_border_width(5)
self.window.set_size_request(500, 80)
self.window.set_resizable(False)
self.window.set_keep_above(True)
self.window.stick
self.window.set_position(1)
self.window.connect("delete_event", gtk.main_quit)
windowicon = self.window.render_icon(gtk.STOCK_QUIT, gtk.ICON_SIZE_MENU)
self.window.set_icon(windowicon)
#Create HBox for buttons
self.button_box = gtk.HBox()
self.button_box.show()
#Cancel button
self.cancel = gtk.Button(stock = gtk.STOCK_CANCEL)
self.cancel.set_border_width(4)
self.cancel.connect("clicked", self.cancel_action)
self.button_box.pack_start(self.cancel)
self.cancel.show()
#Shutdown button
self.shutdown = gtk.Button("_Power off")
self.shutdown.set_border_width(4)
self.shutdown.connect("clicked", self.shutdown_action)
self.button_box.pack_start(self.shutdown)
self.shutdown.show()
#Reboot button
self.reboot = gtk.Button("Re_boot")
self.reboot.set_border_width(4)
self.reboot.connect("clicked", self.reboot_action)
self.button_box.pack_start(self.reboot)
self.reboot.show()
#Logout button
self.logout = gtk.Button("_Log out")
self.logout.set_border_width(4)
self.logout.connect("clicked", self.logout_action)
self.button_box.pack_start(self.logout)
self.logout.show()
#Openbox reconfigure button
self.reconfigure = gtk.Button("Recon_figure")
self.reconfigure.set_border_width(4)
self.reconfigure.connect("clicked", self.reconfigure_action)
self.button_box.pack_start(self.reconfigure)
self.reconfigure.show()
#Suspend button
self.suspend = gtk.Button("_Suspend")
self.suspend.set_border_width(4)
self.suspend.connect("clicked", self.suspend_action)
self.button_box.pack_start(self.suspend)
self.suspend.show()
#Create HBox for status label
self.label_box = gtk.HBox()
self.label_box.show()
self.status = gtk.Label()
self.status.show()
self.label_box.pack_start(self.status)
#Create VBox and pack the above HBox's
self.vbox = gtk.VBox()
self.vbox.pack_start(self.button_box)
self.vbox.pack_start(self.label_box)
self.vbox.show()
self.window.add(self.vbox)
self.window.show()
def __init__(self):
self.create_window()
def main():
gtk.main()
if __name__ == "__main__":
go = cb_exit()
main()
Be Excellent to Each Other...
The Bunsenlabs Lithium Desktop » Here
FORUM RULES and posting guidelines «» Help page for forum post formatting
Artwork on DeviantArt «» BunsenLabs on DeviantArt
Offline
sleekmason wrote:Hah! Cool
Just checked out the exit script and it is pretty neat. Just four buttons and much faster than the exit I'm using currently.
Can I use this for my own build?Looking forward to installing and checking out one of #! images:)
I reckon so. Here is the default cb-exit that I have:
#!/usr/bin/env python import pygtk pygtk.require('2.0') import gtk import os import getpass class cb_exit: def disable_buttons(self): self.cancel.set_sensitive(False) self.logout.set_sensitive(False) self.suspend.set_sensitive(False) self.reboot.set_sensitive(False) self.shutdown.set_sensitive(False) def cancel_action(self,btn): self.disable_buttons() gtk.main_quit() def logout_action(self,btn): self.disable_buttons() self.status.set_label("Exiting Openbox, please standby...") os.system("openbox --exit") def suspend_action(self,btn): self.disable_buttons() self.status.set_label("Suspending, please standby...") os.system("cb-lock") os.system("dbus-send --system --print-reply --dest=\"org.freedesktop.UPower\" /org/freedesktop/UPower org.freedesktop.UPower.Suspend") gtk.main_quit() def reboot_action(self,btn): self.disable_buttons() self.status.set_label("Rebooting, please standby...") os.system("dbus-send --system --print-reply --dest=\"org.freedesktop.ConsoleKit\" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart") def shutdown_action(self,btn): self.disable_buttons() self.status.set_label("Shutting down, please standby...") os.system("dbus-send --system --print-reply --dest=\"org.freedesktop.ConsoleKit\" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop") def create_window(self): self.window = gtk.Window() title = "Log out " + getpass.getuser() + "? Choose an option:" self.window.set_title(title) self.window.set_border_width(5) self.window.set_size_request(500, 80) self.window.set_resizable(False) self.window.set_keep_above(True) self.window.stick self.window.set_position(1) self.window.connect("delete_event", gtk.main_quit) windowicon = self.window.render_icon(gtk.STOCK_QUIT, gtk.ICON_SIZE_MENU) self.window.set_icon(windowicon) #Create HBox for buttons self.button_box = gtk.HBox() self.button_box.show() #Cancel button self.cancel = gtk.Button(stock = gtk.STOCK_CANCEL) self.cancel.set_border_width(4) self.cancel.connect("clicked", self.cancel_action) self.button_box.pack_start(self.cancel) self.cancel.show() #Logout button self.logout = gtk.Button("_Log out") self.logout.set_border_width(4) self.logout.connect("clicked", self.logout_action) self.button_box.pack_start(self.logout) self.logout.show() #Suspend button self.suspend = gtk.Button("_Suspend") self.suspend.set_border_width(4) self.suspend.connect("clicked", self.suspend_action) self.button_box.pack_start(self.suspend) self.suspend.show() #Reboot button self.reboot = gtk.Button("_Reboot") self.reboot.set_border_width(4) self.reboot.connect("clicked", self.reboot_action) self.button_box.pack_start(self.reboot) self.reboot.show() #Shutdown button self.shutdown = gtk.Button("_Power off") self.shutdown.set_border_width(4) self.shutdown.connect("clicked", self.shutdown_action) self.button_box.pack_start(self.shutdown) self.shutdown.show() #Create HBox for status label self.label_box = gtk.HBox() self.label_box.show() self.status = gtk.Label() self.status.show() self.label_box.pack_start(self.status) #Create VBox and pack the above HBox's self.vbox = gtk.VBox() self.vbox.pack_start(self.button_box) self.vbox.pack_start(self.label_box) self.vbox.show() self.window.add(self.vbox) self.window.show() def __init__(self): self.create_window() def main(): gtk.main() if __name__ == "__main__": go = cb_exit() main()
And here is my version that uses systemctl:
#!/usr/bin/env python # # Adapted from the original cb-exit script by <corenominal> # # Changed to support for systemd # Added an Openbox --reconfigure option # # <damo> October 2014 # ###################################################################### import pygtk pygtk.require('2.0') import gtk import os import getpass class cb_exit: def disable_buttons(self): self.cancel.set_sensitive(False) self.logout.set_sensitive(False) self.reconfigure.set_sensitive(False) self.suspend.set_sensitive(False) self.reboot.set_sensitive(False) self.shutdown.set_sensitive(False) def cancel_action(self,btn): self.disable_buttons() gtk.main_quit() def logout_action(self,btn): self.disable_buttons() self.status.set_label("Exiting Openbox, please standby...") os.system("openbox --exit") def reconfigure_action(self,btn): self.disable_buttons() os.system("openbox --reconfigure") gtk.main_quit() def suspend_action(self,btn): self.disable_buttons() self.status.set_label("Suspending, please standby...") os.system("cb-lock") os.system("systemctl suspend") gtk.main_quit() def reboot_action(self,btn): self.disable_buttons() self.status.set_label("Rebooting, please standby...") os.system("systemctl reboot") def shutdown_action(self,btn): self.disable_buttons() self.status.set_label("Shutting down, please standby...") os.system("systemctl poweroff") def create_window(self): self.window = gtk.Window() title = "Log out " + getpass.getuser() + "? Choose an option:" self.window.set_title(title) self.window.set_border_width(5) self.window.set_size_request(500, 80) self.window.set_resizable(False) self.window.set_keep_above(True) self.window.stick self.window.set_position(1) self.window.connect("delete_event", gtk.main_quit) windowicon = self.window.render_icon(gtk.STOCK_QUIT, gtk.ICON_SIZE_MENU) self.window.set_icon(windowicon) #Create HBox for buttons self.button_box = gtk.HBox() self.button_box.show() #Cancel button self.cancel = gtk.Button(stock = gtk.STOCK_CANCEL) self.cancel.set_border_width(4) self.cancel.connect("clicked", self.cancel_action) self.button_box.pack_start(self.cancel) self.cancel.show() #Shutdown button self.shutdown = gtk.Button("_Power off") self.shutdown.set_border_width(4) self.shutdown.connect("clicked", self.shutdown_action) self.button_box.pack_start(self.shutdown) self.shutdown.show() #Reboot button self.reboot = gtk.Button("Re_boot") self.reboot.set_border_width(4) self.reboot.connect("clicked", self.reboot_action) self.button_box.pack_start(self.reboot) self.reboot.show() #Logout button self.logout = gtk.Button("_Log out") self.logout.set_border_width(4) self.logout.connect("clicked", self.logout_action) self.button_box.pack_start(self.logout) self.logout.show() #Openbox reconfigure button self.reconfigure = gtk.Button("Recon_figure") self.reconfigure.set_border_width(4) self.reconfigure.connect("clicked", self.reconfigure_action) self.button_box.pack_start(self.reconfigure) self.reconfigure.show() #Suspend button self.suspend = gtk.Button("_Suspend") self.suspend.set_border_width(4) self.suspend.connect("clicked", self.suspend_action) self.button_box.pack_start(self.suspend) self.suspend.show() #Create HBox for status label self.label_box = gtk.HBox() self.label_box.show() self.status = gtk.Label() self.status.show() self.label_box.pack_start(self.status) #Create VBox and pack the above HBox's self.vbox = gtk.VBox() self.vbox.pack_start(self.button_box) self.vbox.pack_start(self.label_box) self.vbox.show() self.window.add(self.vbox) self.window.show() def __init__(self): self.create_window() def main(): gtk.main() if __name__ == "__main__": go = cb_exit() main()
Excellent! Am in the middle of a build so didn't want to click any buttons. Noted that line 121 had cb_exit and figured that might have been the end of that until I got it figured out:)
The systemd version has the same at line 143. Guess I will have to wait 20 minutes or so to find out:)
Offline
The systemd version is works with just a small change:)
I had to change the logout method for lxde to:
Using:
pkill -SIGTERM -f lxsession
as using openbox --exit locked up the screen as expected, but never exited to lightdm.
This is a very nice drop in replacement:)
Offline
Can I use this for my own build?
Yes!
Read the copyright.txt.
I was told by the BL team that the authenticity of these images cannot be verified?!
The md5sums are the same as on the web-archived original download page.
I don't think it's possible to get better verification for these images.
Additionally, it seems that the torrent files are still around, and seeded:
http://crunchbang.org/torrents/crunchba … so.torrent
http://crunchbang.org/torrents/crunchba … so.torrent
The torrent-downloaded images have the same md5sums as those on my site, which in turn are the same as the md5sums on the crunchbang archive.
Doesn't get much more trustworthy than that imo.
Whatever. Download at your own risk (but that applies to everything, doesn't it).
Last edited by ohnonot (2020-10-19 13:01:54)
Please use CODE tags for code.
Search youtube without a browser: repo | thread
BL quote proposals to this thread please.
my repos / my repos
Offline
sleekmason wrote:Can I use this for my own build?
Yes!
Read the copyright.txt.I was told by the BL team that the authenticity of these images cannot be verified?!
The md5sums are the same as on the web-archived original download page.
I don't think it's possible to get better verification for these images.Additionally, it seems that the torrent files are still around, and seeded:
http://crunchbang.org/torrents/crunchba … so.torrent
http://crunchbang.org/torrents/crunchba … so.torrent
The torrent-downloaded images have the same md5sums as those on my site, which in turn are the same as the md5sums on the crunchbang archive.
Doesn't get much more trustworthy than that imo.Whatever. Download at your own risk (but that applies to everything, doesn't it).
Love it:) The copyright.txt makes it perfectly clear what I can and cannot do. I will make sure to provide the same, as I agree.
I modified the script to allow for screen-lock and suspend as separate items, and moved a couple things around. Really is a nice little piece of work. Love the call for username at the top.
Think I finally got the 64 bit downloaded.
Offline
I was told by the BL team that the authenticity of these images cannot be verified?!
Just to expand a little why we don't want to officially recommend these files, even though they're very interesting both as historical artefacts and to pick apart and look at how #! was put together.
And many thanks to ohnonot for making them easily available!
The authenticity isn't the main issue in my personal opinion. (I have copies of those files which I downloaded long ago, and the md5 sums of the amd64 and i686 isos ohnonot is hosting match with mine. I also have a "crunchbang-lite" iso with a different md5 sum, but without a version number it's hard to compare.)
Anyway, why BL don't want to be seen as "endorsing" these iso files:
1) CrunchBang isos were made by Corenominal - the BL team had no hand in it at all. Trustworthyness then comes down to something between the user and Corenominal.
2) The Debian base is very old, and to install and use as-is on today's internet would be dangerous.
3) While useful for general-purpose checking, md5sums can be spoofed at any point in the chain and are no longer considered a reliable proof of authenticity, which would require digital signing with a verified key.
But going back to CrunchBang for some experimentation is a very worthwhile exercise IMO.
...elevator in the Brain Hotel, broken down but just as well...
( a boring Japan blog (currently paused), idle Twitterings and GitStuff )
Offline
But going back to CrunchBang for some experimentation is a very worthwhile exercise IMO.
Just installed 64 bit wheezy to an extra partition:) Fast and interesting. Lots to check out.
Offline