Dwa miesiące temu przesiadłem się z standardowego Ubuntu na CrunchBang (wraz z pojawieniem się piątej wersji testowej Ubuntu 8.04 powróciłem do niego, ale ponownie zainstalowałem serce CrunchBang, czyli OpenBoksa).
CrunchBang Linux jest bardziej wersją Ubuntu niż nową dystrybucją, w której domyślnym (i jedynym dostępnym bezpośrednio po instalacji) menedżerem okien jest Openbox. Dodatkową zaletą CrunchBang jest minimalny zestaw instalowanych paczek, co gwarantuje równowagę pomiędzy funkcjonalnością i obsługą urządzeń a szybkością działania.
To, co może doskwierać klikaczom to oczywiście dotychczasowe przyzwyczajenia. Dość długo brakowało mi ładnego i prostego okienka do blokowania komputera, wylogowywania użytkownika i zamykania systemu. Na szczęście najnowsza wersja Openboksa pozwala wykorzystać w tym celu skrypty GDM. Skrypty te pozwalają wysyłać użytkownikowi komendy restartu i zamknięcia komputera do GDM spod Openboksa.

Powyższe okienko to skrypt Philipa Newborough napisany w PyGTK. Dla zainteresowanych kod źródłowy:
#!/usr/bin/env python
import pygtk
pygtk.require('2.0')
import gtk
import os
class DoTheLogOut:
# Cancel/exit
def delete_event(self, widget, event, data=None):
gtk.main_quit()
return False
# Logout
def logout(self, widget):
os.system("openbox --exit")
# Reboot
def reboot(self, widget):
os.system("gdm-control --reboot && openbox --exit")
# Shutdown
def shutdown(self, widget):
os.system("gdm-control --shutdown && openbox --exit")
def __init__(self):
# Create a new window
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.window.set_title("Exit? Choose an option:")
self.window.set_resizable(False)
self.window.set_position(1)
self.window.connect("delete_event", self.delete_event)
self.window.set_border_width(20)
# Create a box to pack widgets into
self.box1 = gtk.HBox(False, 0)
self.window.add(self.box1)
# Create cancel button
self.button1 = gtk.Button("Cancel")
self.button1.set_border_width(10)
self.button1.connect("clicked", self.delete_event, "Changed me mind :)")
self.box1.pack_start(self.button1, True, True, 0)
self.button1.show()
# Create logout button
self.button2 = gtk.Button("Log out")
self.button2.set_border_width(10)
self.button2.connect("clicked", self.logout)
self.box1.pack_start(self.button2, True, True, 0)
self.button2.show()
# Create reboot button
self.button3 = gtk.Button("Reboot")
self.button3.set_border_width(10)
self.button3.connect("clicked", self.reboot)
self.box1.pack_start(self.button3, True, True, 0)
self.button3.show()
# Create shutdown button
self.button4 = gtk.Button("Shutdown")
self.button4.set_border_width(10)
self.button4.connect("clicked", self.shutdown)
self.box1.pack_start(self.button4, True, True, 0)
self.button4.show()
self.box1.show()
self.window.show()
def main():
gtk.main()
if __name__ == "__main__":
gogogo = DoTheLogOut()
main()
Skrypt pochodzi z bloga CrunchBang: Openbox Logout, Reboot & Shutdown Script.
UWAGA: Czytając ten artykuł w czytniku kanałów RSS/Atom nie masz dostępu do systemu głosowania oraz rankingu najwyżej ocenionych wpisów. Nie widzisz oraz nie możesz dodawać komentarzy. Odwiedź oryginalną stronę, aby zobaczyć dodatkowe opcje.
Wlasnie powoli buduje sobie desktop w debianie oparty na openboksie, wiec ten wpis napewno mi sie przyda :)
Scytale
1 Kwi 2008 23:21:12
Po półtora roku pracy z Ubuntu zastanawiam się nad szybszym Xubuntu. CrunchBang będzie lepszy / szybszy?
grizzly3
1 Kwi 2008 23:23:06
@Scytale: A budujesz na własne potrzeby i użytek, czy masz zamiar udostępnić? Jeśli to drugie to najlepiej obierz taką strategię jak CrunchBang, który korzysta z podstawowych (domyślnych) repozytoriów Ubuntu.
@grizzly3: Będzie dużo szybszy, bo miałem okazje używać obu ;) Ale jak potrzeba Ci czegoś naprawdę lekkiego to zobacz też LXDE
Grzegorz | grzglo.jogger.pl
1 Kwi 2008 23:25:10
Zbliżone rozwiązanie można znaleźć także tutaj:
Taeril: Okienko kończące Openboksa
Grzegorz | grzglo.jogger.pl
3 Kwi 2008 19:49:39