diff --git a/terminator b/terminator index ab6477b8..18f9cba2 100755 --- a/terminator +++ b/terminator @@ -68,7 +68,7 @@ class TerminatorTerm: 'background_type' : 'solid', 'backspace_binding' : 'ascii-del', 'delete_binding' : 'delete-sequence', - 'cursor_blinks' : False, + 'cursor_blink' : False, 'emulation' : 'xterm', 'font_name' : 'Serif 10', 'foreground_color' : '#AAAAAA', @@ -86,7 +86,7 @@ class TerminatorTerm: 'link_userchars' : '-A-Za-z0-9', 'link_passchars' : '-A-Za-z0-9,?;.:/!%$^*&~"#\'', '_palette' : '%s/palette', - 'default_palette' : '', + 'default_palette' : '#000000000000:#CDCD00000000:#0000CDCD0000:#CDCDCDCD0000:#30BF30BFA38E:#A53C212FA53C:#0000CDCDCDCD:#FAFAEBEBD7D7:#404040404040:#FFFF00000000:#0000FFFF0000:#FFFFFFFF0000:#00000000FFFF:#FFFF0000FFFF:#0000FFFFFFFF:#FFFFFFFFFFFF', 'word_chars' : '-A-Za-z0-9,./?%&#:_', 'mouse_autohide' : True, } @@ -181,17 +181,44 @@ class TerminatorTerm: self._vte.fork_command (command = shell, argv = args, envv = [], loglastlog = login, logwtmp = update_records, logutmp = update_records) + def reconf (self, property): + value = self.gconf_client.get ('%s/%s'%(self.profile, property)) + ret = None + if not value: + try: + ret = self.defaults[property] + except: + pass + else: + if value.type == gconf.VALUE_STRING: + print "string" + ret = value.get_string () + elif value.type == gconf.VALUE_INT: + print "int" + ret = value.get_int () + elif value.type == gconf.VALUE_FLOAT: + print "float" + ret = value.get_float () + elif value.type == gconf.VALUE_BOOL: + print "bool" + ret = value.get_bool () + + if ret == None: + print _('Unknown value requested. Unable to find in gconf profile or default settings: ') + property + sys.exit (1) + return ret + def reconf_s (self, property): - return self.gconf_client.get_string (self.profile + "/" + property) or self.defaults[property] + return self.reconf (property) def reconf_b (self, property): - return self.gconf_client.get_bool (self.profile + "/" + property) or self.defaults[property] + return self.reconf (property) def reconf_i (self, property): - return self.gconf_client.get_int (self.profile + "/" + property) or self.defaults[property] + return self.reconf (property) def reconf_f (self, property): - return self.gconf_client.get_float (self.profile + "/" + property) or self.defaults[property] + return self.reconf (property) def reconfigure_vte (self): # Set our emulation @@ -240,6 +267,7 @@ class TerminatorTerm: self._vte.set_allow_bold (self.reconf_b ('allow_bold')) # Set our color scheme, preferably from gconf settings + # FIXME: This is wrong, we should be pulling 'palette' out of gconf, but reverting to self.defaults['default_palette'] which means we need to reorganise self.defaults to make this available under the same name as gconf palette = self.reconf_s ('default_palette') if (not self.profile) or self.gconf_client.get_bool (self.profile + "/use_theme_colors"): fg_color = self._vte.get_style ().text[gtk.STATE_NORMAL] @@ -270,7 +298,7 @@ class TerminatorTerm: self._vte.set_colors (fg_color, bg_color, palette) # Set our cursor blinkiness - self._vte.set_cursor_blinks = (self.reconf_b ('cursor_blinks')) + self._vte.set_cursor_blinks = (self.reconf_b ('cursor_blink')) # Set our audible belliness # FIXME: What on earth are we doing here. We should match the profile setting name and try not to set things this way