def __init__(self): self.scriptDir = os.path.dirname(os.path.realpath(__file__)) # Load window and widgets self.builder = Gtk.Builder() self.builder.add_from_file( join(self.scriptDir, '../../share/lightdm-manager/lightdm-manager.glade')) # Main window objects go = self.builder.get_object self.window = go('ldmWindow') self.swUsers = go('swUsers') self.tvUsers = go('tvUsers') self.btnSave = go('btnSave') self.imgBackground = go('imgBackground') self.btnUsers = go('btnUsers') self.btnAppearance = go('btnAppearance') self.chkHideUsers = go('chkHideUsers') self.ebFace = go('ebFace') self.imgFace = go('imgFace') self.nbLightDM = go('nbLightDM') self.cmbThemes = go('cmbThemes') # Read from config file self.cfg = Config('lightdm-manager.conf') self.lightdmConf = self.cfg.getValue('CONFIG', 'lightdmConf') self.desktopbaseDir = self.cfg.getValue('CONFIG', 'desktopbaseDir') gktGreeterConf = self.cfg.getValue('CONFIG', 'gtkGreeterConf') kdeGreeterConf = self.cfg.getValue('CONFIG', 'kdeGreeterConf') if exists(gktGreeterConf): self.greeterConf = gktGreeterConf else: self.greeterConf = kdeGreeterConf # Translations title = _("LightDM Manager") self.window.set_title(title) self.btnUsers.set_label("_{}".format(_("Users"))) self.btnAppearance.set_label("_{}".format(_("Appearance"))) go('lblBackground').set_label(_("Background")) go('lblTheme').set_label(_("Theme")) go('lblLightDmMenu').set_label(_("Menu")) self.chkHideUsers.set_label(_("Hide users")) go('lblUsersFace').set_label(_("User icon")) go('lblUsersAutologin').set_label(_("Auto-login")) # Get current background image self.cfgGreeter = Config(self.greeterConf) try: self.curBgPath = self.cfgGreeter.getValue('greeter', 'background') self.curTheme = self.cfgGreeter.getValue('greeter', 'theme-name') except: self.curBgPath = None self.curTheme = None # Get current auto-login user self.cfgLightdm = Config(self.lightdmConf) try: self.curAutoUser = self.cfgLightdm.getValue( 'SeatDefaults', 'autologin-user').strip() self.curHideUsers = False ghu = self.cfgLightdm.getValue('SeatDefaults', 'greeter-hide-users').strip() if 'true' in ghu: self.curHideUsers = True except: self.curAutoUser = None self.curHideUsers = False # Init self.usr = User() self.newbgImg = self.curBgPath self.newAutoUser = self.curAutoUser self.newTheme = self.curTheme self.themes = [] self.selectedMenuItem = None self.debug = False self.logPath = '' self.prevPath = None self.tempFace = "/tmp/face" self.newFaces = [] self.loggedUser = functions.getUserLoginName() self.curUser = self.loggedUser self.selectImg = join(self.scriptDir, '../../share/lightdm-manager/select.png') # Handle arguments try: opts, args = getopt.getopt(sys.argv[1:], 'dl:', ['debug', 'log=']) except getopt.GetoptError: print(("Arguments cannot be parsed: %s" % str(sys.argv[1:]))) sys.exit(1) for opt, arg in opts: if opt in ('-d', '--debug'): self.debug = True elif opt in ('-l', '--log'): self.logPath = arg # Initialize logging if self.debug: if not self.logPath: self.logPath = 'lightdm-manager.log' self.log = Logger(self.logPath, 'debug', True, None, self.window) # Backup config files because ConfigParser does not preserve commented lines if not exists("%s.org" % self.greeterConf): copy(self.greeterConf, "%s.org" % self.greeterConf) self.log.write( "%(conf1)s copied to %(conf2)s.org" % { "conf1": self.greeterConf, "conf2": self.greeterConf }, 'LightDMManager.main', 'debug') if not exists("%s.org" % self.lightdmConf): copy(self.lightdmConf, "%s.org" % self.lightdmConf) self.log.write( "%(conf1)s copied to %(conf2)s.org" % { "conf1": self.lightdmConf, "conf2": self.lightdmConf }, 'LightDMManager.main', 'debug') # Initiate the treeview handler and connect the custom toggle event with usersCheckBoxToggled self.tvHandler = TreeViewHandler(self.tvUsers, self.log) self.tvHandler.connect('checkbox-toggled', self.usersCheckBoxToggled) # Get users self.users = self.usr.getUsers() self.fillUsers() self.tvHandler.selectValue(self.curUser, 1) self.setBackground(self.curBgPath) self.cmbHandlerThemes = ComboBoxHandler(self.cmbThemes) self.listThemes() self.chkHideUsers.set_active(self.curHideUsers) # Show users menu self.on_btnUsers_clicked(None) self.on_tvUsers_cursor_changed(None) self.version = functions.getPackageVersion('lightdm-manager') # Connect the signals and show the window self.builder.connect_signals(self) self.window.show()
def __init__(self): self.scriptDir = abspath(dirname(__file__)) self.shareDir = join(self.scriptDir, '../../../share/solydxk/constructor') self.userAppDir = join(get_user_home_dir(), ".constructor") self.distroFile = join(self.userAppDir, "distros.list") # Create the user's application directory if it doesn't exist if not isdir(self.userAppDir): user_name = getUserLoginName() makedirs(self.userAppDir) old_distro_file = join(self.scriptDir, "distros.list") if exists(old_distro_file): move(old_distro_file, self.distroFile) system("chown -R %s:%s %s" % (user_name, user_name, self.userAppDir)) # Load window and widgets self.builder = Gtk.Builder() self.builder.add_from_file(join(self.shareDir, 'constructor.glade')) # Main window objects go = self.builder.get_object self.window = go('constructorWindow') self.tvDistros = go('tvDistros') self.lblOutput = go('lblOutput') self.statusbar = go('statusbar') self.btnAdd = go('btnAdd') self.chkSelectAll = go('chkSelectAll') self.btnRemove = go('btnRemove') self.btnEdit = go('btnEdit') self.btnUpgrade = go('btnUpgrade') self.btnLocalize = go('btnLocalize') self.btnBuildIso = go('btnBuildIso') # Add iso window objects self.windowAddDistro = go('addDistroWindow') self.txtIso = go('txtIso') self.txtDir = go('txtDir') self.btnDir = go('btnDir') self.btnSave = go('btnSave') self.btnHelp = go('btnHelp') self.lblIso = go('lblIso') self.boxIso = go('boxIso') self.lblDir = go('lblDir') self.chkFromIso = go('chkFromIso') # Main window translations self.window.set_title(_("SolydXK Constructor")) self.chkSelectAll.set_label(_("Select all")) self.btnAdd.set_label("_{}".format(_("Add"))) self.btnRemove.set_label("_{}".format(_("Remove"))) self.btnEdit.set_label("_{}".format(_("Edit"))) self.btnUpgrade.set_label("_{}".format(_("Upgrade"))) self.btnLocalize.set_label("_{}".format(_("Localize"))) self.btnBuildIso.set_label("_{}".format(_("Build"))) self.btnHelp.set_label("_{}".format(_("Help"))) # Add iso window translations self.windowAddDistro.set_title(_("Add Distribution")) self.lblIso.set_text(_("ISO")) go('lblFromIso').set_label("Create from ISO") go('btnCancel').set_label("_{}".format(_("Cancel"))) # Init self.ec = ExecCmd() self.ec.run("modprobe loop", False) self.queue = Queue() self.mountDir = "/mnt/constructor" self.distroAdded = False self.iso = None self.dir = None self.isoName = None self.doneWav = join(self.shareDir, 'done.wav') self.htmlDir = join(self.shareDir, "html") self.help = join(self.get_language_dir(), "help.html") self.chkFromIso.set_active(True) self.toggleGuiElements(False) # Treeviews self.tvHandlerDistros = TreeViewHandler(self.tvDistros) self.fillTreeViewDistros() # Version information ver = _("Version") self.version = "%s: %s" % (ver, getPackageVersion('solydxk-constructor')) self.showOutput(self.version) # Connect the signals and show the window self.builder.connect_signals(self) self.window.show()
def __init__(self): self.scriptDir = os.path.dirname(os.path.realpath(__file__)) # Load window and widgets self.builder = Gtk.Builder() self.builder.add_from_file(join(self.scriptDir, '../../share/lightdm-manager/lightdm-manager.glade')) # Main window objects go = self.builder.get_object self.window = go('ldmWindow') self.swUsers = go('swUsers') self.tvUsers = go('tvUsers') self.btnSave = go('btnSave') self.imgBackground = go('imgBackground') self.btnUsers = go('btnUsers') self.btnAppearance = go('btnAppearance') self.chkHideUsers = go('chkHideUsers') self.ebFace = go('ebFace') self.imgFace = go('imgFace') self.nbLightDM = go('nbLightDM') self.cmbThemes = go('cmbThemes') # Read from config file self.cfg = Config('lightdm-manager.conf') self.lightdmConf = self.cfg.getValue('CONFIG', 'lightdmConf') self.desktopbaseDir = self.cfg.getValue('CONFIG', 'desktopbaseDir') gktGreeterConf = self.cfg.getValue('CONFIG', 'gtkGreeterConf') kdeGreeterConf = self.cfg.getValue('CONFIG', 'kdeGreeterConf') if exists(gktGreeterConf): self.greeterConf = gktGreeterConf else: self.greeterConf = kdeGreeterConf # Translations title = _("LightDM Manager") self.window.set_title(title) self.btnUsers.set_label("_{}".format(_("Users"))) self.btnAppearance.set_label("_{}".format(_("Appearance"))) go('lblBackground').set_label(_("Background")) go('lblTheme').set_label(_("Theme")) go('lblLightDmMenu').set_label(_("Menu")) self.chkHideUsers.set_label(_("Hide users")) go('lblUsersFace').set_label(_("User icon")) go('lblUsersAutologin').set_label(_("Auto-login")) # Get current background image self.cfgGreeter = Config(self.greeterConf) try: self.curBgPath = self.cfgGreeter.getValue('greeter', 'background') self.curTheme = self.cfgGreeter.getValue('greeter', 'theme-name') except: self.curBgPath = None self.curTheme = None # Get current auto-login user self.cfgLightdm = Config(self.lightdmConf) try: self.curAutoUser = self.cfgLightdm.getValue('SeatDefaults', 'autologin-user').strip() self.curHideUsers = False ghu = self.cfgLightdm.getValue('SeatDefaults', 'greeter-hide-users').strip() if 'true' in ghu: self.curHideUsers = True except: self.curAutoUser = None self.curHideUsers = False # Init self.usr = User() self.newbgImg = self.curBgPath self.newAutoUser = self.curAutoUser self.newTheme = self.curTheme self.themes = [] self.selectedMenuItem = None self.debug = False self.logPath = '' self.prevPath = None self.tempFace = "/tmp/face" self.newFaces = [] self.loggedUser = functions.getUserLoginName() self.curUser = self.loggedUser self.selectImg = join(self.scriptDir, '../../share/lightdm-manager/select.png') # Handle arguments try: opts, args = getopt.getopt(sys.argv[1:], 'dl:', ['debug', 'log=']) except getopt.GetoptError: print(("Arguments cannot be parsed: %s" % str(sys.argv[1:]))) sys.exit(1) for opt, arg in opts: if opt in ('-d', '--debug'): self.debug = True elif opt in ('-l', '--log'): self.logPath = arg # Initialize logging if self.debug: if not self.logPath: self.logPath = 'lightdm-manager.log' self.log = Logger(self.logPath, 'debug', True, None, self.window) # Backup config files because ConfigParser does not preserve commented lines if not exists("%s.org" % self.greeterConf): copy(self.greeterConf, "%s.org" % self.greeterConf) self.log.write("%(conf1)s copied to %(conf2)s.org" % { "conf1": self.greeterConf, "conf2": self.greeterConf }, 'LightDMManager.main', 'debug') if not exists("%s.org" % self.lightdmConf): copy(self.lightdmConf, "%s.org" % self.lightdmConf) self.log.write("%(conf1)s copied to %(conf2)s.org" % { "conf1": self.lightdmConf, "conf2": self.lightdmConf }, 'LightDMManager.main', 'debug') # Initiate the treeview handler and connect the custom toggle event with usersCheckBoxToggled self.tvHandler = TreeViewHandler(self.tvUsers, self.log) self.tvHandler.connect('checkbox-toggled', self.usersCheckBoxToggled) # Get users self.users = self.usr.getUsers() self.fillUsers() self.tvHandler.selectValue(self.curUser, 1) self.setBackground(self.curBgPath) self.cmbHandlerThemes = ComboBoxHandler(self.cmbThemes) self.listThemes() self.chkHideUsers.set_active(self.curHideUsers) # Show users menu self.on_btnUsers_clicked(None) self.on_tvUsers_cursor_changed(None) self.version = functions.getPackageVersion('lightdm-manager') # Connect the signals and show the window self.builder.connect_signals(self) self.window.show()
def __init__(self): self.scriptDir = abspath(dirname(__file__)) self.shareDir = join(self.scriptDir, '../../../share/trail/constructor') self.userAppDir = join(get_user_home_dir(), ".constructor") self.distroFile = join(self.userAppDir, "distros.list") # Create the user's application directory if it doesn't exist if not isdir(self.userAppDir): user_name = getUserLoginName() makedirs(self.userAppDir) old_distro_file = join(self.scriptDir, "distros.list") if exists(old_distro_file): move(old_distro_file, self.distroFile) system("chown -R %s:%s %s" % (user_name, user_name, self.userAppDir)) # Load window and widgets self.builder = Gtk.Builder() self.builder.add_from_file(join(self.shareDir, 'constructor.glade')) # Main window objects go = self.builder.get_object self.window = go('constructorWindow') self.tvDistros = go('tvDistros') self.lblOutput = go('lblOutput') self.statusbar = go('statusbar') self.btnAdd = go('btnAdd') self.chkSelectAll = go('chkSelectAll') self.btnRemove = go('btnRemove') self.btnEdit = go('btnEdit') self.btnUpgrade = go('btnUpgrade') self.btnLocalize = go('btnLocalize') self.btnBuildIso = go('btnBuildIso') # Add iso window objects self.windowAddDistro = go('addDistroWindow') self.txtIso = go('txtIso') self.txtDir = go('txtDir') self.btnDir = go('btnDir') self.btnSave = go('btnSave') self.lblIso = go('lblIso') self.boxIso = go('boxIso') self.lblDir = go('lblDir') self.chkFromIso = go('chkFromIso') # Main window translations self.window.set_title(_("Constructor")) self.chkSelectAll.set_label(_("Select all")) self.btnAdd.set_label("_{}".format(_("Add"))) self.btnRemove.set_label("_{}".format(_("Remove"))) self.btnEdit.set_label("_{}".format(_("Edit"))) self.btnUpgrade.set_label("_{}".format(_("Upgrade"))) self.btnLocalize.set_label("_{}".format(_("Localize"))) self.btnBuildIso.set_label("_{}".format(_("Build"))) # Add iso window translations self.lblIso.set_text(_("ISO")) go('btnCancel').set_label("_{}".format(_("Cancel"))) # Init self.ec = ExecCmd() self.ec.run("modprobe loop", False) self.queue = Queue() self.mountDir = "/mnt/constructor" self.distroAdded = False self.iso = None self.dir = None self.isoName = None self.chkFromIso.set_active(True) self.toggleGuiElements(False) # Treeviews self.tvHandlerDistros = TreeViewHandler(self.tvDistros) self.fillTreeViewDistros() # Version information ver = _("Version") self.version = "%s: %s" % (ver, getPackageVersion('constructor')) self.showOutput(self.version) # Connect the signals and show the window self.builder.connect_signals(self) self.window.show()