- Κώδικας: Επιλογή όλων
#!/usr/bin/env python
import pygtk
import os
pygtk.require('2.0')
import gtk
class Desktop:
print "Don't Run This Application In Terminal."
print "\nIf you change your desktop and application\nrun in terminal nautilus will not work"
# DESTROY PROGRAM
def Destroy(self, *args):
gtk.main_quit()
# SELECT DESKTOP DIRECTORY DIALOG
def sdd(self, *args):
self.sdd=gtk.FileChooserDialog(title="Select Desktop Directory", parent=None,
action=gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER,
buttons=(gtk.STOCK_CANCEL,gtk.RESPONSE_CANCEL,gtk.STOCK_OPEN,gtk.RESPONSE_OK), backend=None)
self.sdd.set_default_response(gtk.RESPONSE_OK)
response = self.sdd.run()
if response == gtk.RESPONSE_OK:
self.paen.set_text(self.sdd.get_filename())
self.sdd.destroy()
elif response == gtk.RESPONSE_CANCEL:
self.sdd.destroy()
# ON OK BUTTON CLICKED DEFINE
def onok(self, *args):
if (self.paen.get_text() != ''):
command='xdg-user-dirs-update --set DESKTOP '+self.paen.get_text()
os.system(command)
os.system('killall nautilus');
os.system('nautilus -n&');
self.pathload()
# DESKTOP PATH LOAD
def pathload(self, *args):
home=os.getenv("HOME")
file=open(home+'/.config/user-dirs.dirs','r')
team = "nonempty"
while (team != ""):
team = file.readline()
if (team[:15] == "XDG_DESKTOP_DIR"): self.paen.set_text(team[17:-1-1])
file.close()
# INIT DEFINE
def __init__(self):
# WINDOW
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.window.set_position(gtk.WIN_POS_CENTER)
self.window.set_title('All Desktops')
self.window.connect( 'show', self.pathload)
self.window.set_resizable(False)
## MAINBOX
self.mainbox = gtk.VBox()
self.window.add(self.mainbox)
### MAINBOX.UPS
self.ups = gtk.HBox()
self.ups.set_size_request(400, 3)
self.mainbox.pack_start(self.ups, expand=True, fill=True, padding=0)
### MAINBOX.UPBOX
self.upbox = gtk.HBox()
self.upbox.set_size_request(400, 27)
self.mainbox.pack_start(self.upbox, expand=True, fill=True, padding=0)
### MAINBOX.CENTERBOX
self.centerbox = gtk.HBox()
self.centerbox.set_size_request(400, 5)
self.mainbox.pack_start(self.centerbox, expand=True, fill=True, padding=0)
### MAINBOX.DOWNBOX
self.downbox = gtk.HBox()
self.downbox.set_size_request(400, 32)
self.mainbox.pack_start(self.downbox, expand=True, fill=True, padding=0)
#### MAINBOX.DOWNBOX.SEP
self.sep = gtk.VPaned()
self.sep.set_size_request(220, 30)
self.downbox.pack_start(self.sep, expand=True, fill=True, padding=0)
#### MAINBOX.DOWNBOX.BCLOSE
self.bclose = gtk.Button(stock=gtk.STOCK_CANCEL)
self.bclose.set_size_request(90, 30)
self.bclose.connect( 'clicked', self.Destroy)
self.downbox.pack_start(self.bclose, expand=True, fill=True, padding=0)
#### MAINBOX.DOWNBOX.BOK
self.bok = gtk.Button(stock=gtk.STOCK_APPLY)
self.bok.connect( 'clicked', self.onok)
self.bok.set_size_request(90, 30)
self.downbox.pack_start(self.bok, expand=True, fill=True, padding=0)
#### MAINBOX.UPBOX.PAEN
self.paen = gtk.Entry()
self.paen.set_size_request(360, 28)
self.upbox.pack_start(self.paen, expand=True, fill=True, padding=0)
#### MAINBOX.UPBOX.BROWSE
self.browse = gtk.Button('...')
self.browse.set_size_request(40, 10)
self.browse.connect( 'clicked', self.sdd)
self.upbox.pack_start(self.browse, expand=True, fill=True, padding=0)
self.window.show_all()
# MAIN DEFINE
def main(self):
gtk.main()
if __name__ == "__main__":
Desktop().main()
Thanks sokoban4ever

Παιδιά εδώ είναι ο κώδικας όλα δουλεύουν κανονικά απλά το πρόγραμμα δεν πρέπει να το τρέχεις από το τερματικό.
όποιος θέλει να το δοκιμάσει:
Αντιγράφει τον κώδικα σε ένα αρχείο κειμένου το αποθηκεύει με κατάληξη .py
Επάνω στο αρχείο κάνει δεξί click properties στο tab "Permissions" στο execute να τσεκάρει το "Allow executing file as program"
Και έτοιμο.
* όταν κάνεις διπλό click στο αρχείο θα εμφανίσει ένα παράθυρο εκεί πατάμε "Εκτέλεση" όχι "Εκτέλεση εντός τερματικού"
Κατά βάση αυτό είναι το πρόγραμμα τώρα ασχολούμαι με το πώς θα αλλάξω το nautilus ώστε να βλέπει το κάθε workspace ξεχωριστά.
Τώρα οι αλλαγές του φακέλου του desktop ισχύουν για όλα τα workspace.
Κάθε βοήθεια/ιδέα για το nautilus δεκτή...

Τελευταία επεξεργασία από
lyrisias και 19 Μάιος 2009, 05:16, έχει επεξεργασθεί 1 φορά/ες συνολικά