Allow font dimming in inactive terminals
This commit is contained in:
parent
8fb3d5a19d
commit
780c295cf0
|
@ -1,3 +1,6 @@
|
||||||
|
terminator 0.97:
|
||||||
|
* Allow font dimming in inactive terminals
|
||||||
|
|
||||||
terminator 0.96:
|
terminator 0.96:
|
||||||
* Unity support for opening new windows (Lucian Adrian Grijincu)
|
* Unity support for opening new windows (Lucian Adrian Grijincu)
|
||||||
* Fix searching with infinite scrollback (Julien Thewys #755077)
|
* Fix searching with infinite scrollback (Julien Thewys #755077)
|
||||||
|
|
|
@ -102,6 +102,11 @@ Default value: \fB'#000000'\fR
|
||||||
Sets the colour of the background of the titlebar of any terminal that will \fBnot\fR receive input from the active terminal.
|
Sets the colour of the background of the titlebar of any terminal that will \fBnot\fR receive input from the active terminal.
|
||||||
Default value: \fB'#C0BEBF'\fR
|
Default value: \fB'#C0BEBF'\fR
|
||||||
.TP
|
.TP
|
||||||
|
.B inactive_color_offset
|
||||||
|
Controls how much to reduce the colour values of fonts in terminals that do not have focus. It is a simple multiplication
|
||||||
|
factor. A font colour that was RGB(200,200,200) with an inactive_color_offset of 0.5 would set inactive terminals to
|
||||||
|
RGB(100,100,100).
|
||||||
|
.TP
|
||||||
.B enabled_plugins
|
.B enabled_plugins
|
||||||
A list of plugins which should be loaded by default. All other plugin classes will be ignored. The default value includes two
|
A list of plugins which should be loaded by default. All other plugin classes will be ignored. The default value includes two
|
||||||
plugins related to Launchpad, which are enabled by default to provide continuity with earlier releases where these were the
|
plugins related to Launchpad, which are enabled by default to provide continuity with earlier releases where these were the
|
||||||
|
|
|
@ -98,6 +98,7 @@ DEFAULTS = {
|
||||||
'title_receive_bg_color' : '#0076c9',
|
'title_receive_bg_color' : '#0076c9',
|
||||||
'title_inactive_fg_color' : '#000000',
|
'title_inactive_fg_color' : '#000000',
|
||||||
'title_inactive_bg_color' : '#c0bebf',
|
'title_inactive_bg_color' : '#c0bebf',
|
||||||
|
'inactive_color_offset': 0.8,
|
||||||
'enabled_plugins' : ['LaunchpadBugURLHandler',
|
'enabled_plugins' : ['LaunchpadBugURLHandler',
|
||||||
'LaunchpadCodeURLHandler',
|
'LaunchpadCodeURLHandler',
|
||||||
'APTURLHandler'],
|
'APTURLHandler'],
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -457,6 +457,9 @@ class PrefsEditor:
|
||||||
'title_inactive_fg_color', 'title_inactive_bg_color']:
|
'title_inactive_fg_color', 'title_inactive_bg_color']:
|
||||||
widget = guiget(bit)
|
widget = guiget(bit)
|
||||||
widget.set_color(gtk.gdk.Color(self.config[bit]))
|
widget.set_color(gtk.gdk.Color(self.config[bit]))
|
||||||
|
# Inactive terminal shading
|
||||||
|
widget = guiget('inactive_color_offset')
|
||||||
|
widget.set_value(float(self.config['inactive_color_offset']))
|
||||||
|
|
||||||
## Background tab
|
## Background tab
|
||||||
# Radio values
|
# Radio values
|
||||||
|
@ -881,6 +884,11 @@ class PrefsEditor:
|
||||||
self.config['title_transmit_fg_color'] = color2hex(widget)
|
self.config['title_transmit_fg_color'] = color2hex(widget)
|
||||||
self.config.save()
|
self.config.save()
|
||||||
|
|
||||||
|
def on_inactive_color_offset_change_value(self, widget, scroll, value):
|
||||||
|
"""Inactive color offset setting changed"""
|
||||||
|
self.config['inactive_color_offset'] = round(value, 2)
|
||||||
|
self.config.save()
|
||||||
|
|
||||||
def on_handlesize_change_value(self, widget, scroll, value):
|
def on_handlesize_change_value(self, widget, scroll, value):
|
||||||
"""Handle size changed"""
|
"""Handle size changed"""
|
||||||
value = int(value)
|
value = int(value)
|
||||||
|
|
|
@ -56,6 +56,7 @@ class Terminal(gtk.VBox):
|
||||||
(gobject.TYPE_BOOLEAN, gobject.TYPE_OBJECT)),
|
(gobject.TYPE_BOOLEAN, gobject.TYPE_OBJECT)),
|
||||||
'tab-top-new': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, ()),
|
'tab-top-new': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, ()),
|
||||||
'focus-in': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, ()),
|
'focus-in': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, ()),
|
||||||
|
'focus-out': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, ()),
|
||||||
'zoom': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, ()),
|
'zoom': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, ()),
|
||||||
'maximise': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, ()),
|
'maximise': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, ()),
|
||||||
'unzoom': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, ()),
|
'unzoom': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, ()),
|
||||||
|
@ -95,6 +96,12 @@ class Terminal(gtk.VBox):
|
||||||
custom_font_size = None
|
custom_font_size = None
|
||||||
layout_command = None
|
layout_command = None
|
||||||
|
|
||||||
|
fgcolor_active = None
|
||||||
|
fgcolor_inactive = None
|
||||||
|
bgcolor = None
|
||||||
|
palette_active = None
|
||||||
|
palette_inactive = None
|
||||||
|
|
||||||
composite_support = None
|
composite_support = None
|
||||||
|
|
||||||
cnxids = None
|
cnxids = None
|
||||||
|
@ -346,6 +353,7 @@ for %s (%s)' % (name, urlplugin.__class__.__name__))
|
||||||
self.emit('title-change', self.get_window_title()))
|
self.emit('title-change', self.get_window_title()))
|
||||||
self.vte.connect('grab-focus', self.on_vte_focus)
|
self.vte.connect('grab-focus', self.on_vte_focus)
|
||||||
self.vte.connect('focus-in-event', self.on_vte_focus_in)
|
self.vte.connect('focus-in-event', self.on_vte_focus_in)
|
||||||
|
self.vte.connect('focus-out-event', self.on_vte_focus_out)
|
||||||
self.vte.connect('size-allocate', self.deferred_on_vte_size_allocate)
|
self.vte.connect('size-allocate', self.deferred_on_vte_size_allocate)
|
||||||
|
|
||||||
self.vte.add_events(gtk.gdk.ENTER_NOTIFY_MASK)
|
self.vte.add_events(gtk.gdk.ENTER_NOTIFY_MASK)
|
||||||
|
@ -602,28 +610,34 @@ for %s (%s)' % (name, urlplugin.__class__.__name__))
|
||||||
pass
|
pass
|
||||||
self.vte.set_allow_bold(self.config['allow_bold'])
|
self.vte.set_allow_bold(self.config['allow_bold'])
|
||||||
if self.config['use_theme_colors']:
|
if self.config['use_theme_colors']:
|
||||||
fgcolor = self.vte.get_style().text[gtk.STATE_NORMAL]
|
self.fgcolor_active = self.vte.get_style().text[gtk.STATE_NORMAL]
|
||||||
bgcolor = self.vte.get_style().base[gtk.STATE_NORMAL]
|
self.bgcolor = self.vte.get_style().base[gtk.STATE_NORMAL]
|
||||||
else:
|
else:
|
||||||
fgcolor = gtk.gdk.color_parse(self.config['foreground_color'])
|
self.fgcolor_active = gtk.gdk.color_parse(self.config['foreground_color'])
|
||||||
bgcolor = gtk.gdk.color_parse(self.config['background_color'])
|
self.bgcolor = gtk.gdk.color_parse(self.config['background_color'])
|
||||||
|
|
||||||
|
factor = self.config['inactive_color_offset']
|
||||||
|
self.fgcolor_inactive = self.fgcolor_active.copy()
|
||||||
|
|
||||||
|
for bit in ['red', 'green', 'blue']:
|
||||||
|
setattr(self.fgcolor_inactive, bit,
|
||||||
|
getattr(self.fgcolor_inactive, bit) * factor)
|
||||||
|
|
||||||
colors = self.config['palette'].split(':')
|
colors = self.config['palette'].split(':')
|
||||||
palette = []
|
self.palette_active = []
|
||||||
|
self.palette_inactive = []
|
||||||
for color in colors:
|
for color in colors:
|
||||||
if color:
|
if color:
|
||||||
palette.append(gtk.gdk.color_parse(color))
|
newcolor = gtk.gdk.color_parse(color)
|
||||||
self.vte.set_colors(fgcolor, bgcolor, palette)
|
newcolor_inactive = newcolor.copy()
|
||||||
if self.config['cursor_color'] == self.config['foreground_color']:
|
for bit in ['red', 'green', 'blue']:
|
||||||
try:
|
setattr(newcolor_inactive, bit,
|
||||||
self.vte.set_color_cursor(None)
|
getattr(newcolor_inactive, bit) * factor)
|
||||||
except TypeError:
|
self.palette_active.append(newcolor)
|
||||||
# FIXME: I think this is only necessary because of
|
self.palette_inactive.append(newcolor_inactive)
|
||||||
# https://bugzilla.gnome.org/show_bug.cgi?id=614910
|
self.vte.set_colors(self.fgcolor_active, self.bgcolor,
|
||||||
pass
|
self.palette_active)
|
||||||
elif self.config['cursor_color'] != '':
|
self.set_cursor_color()
|
||||||
self.vte.set_color_cursor(gtk.gdk.color_parse(
|
|
||||||
self.config['cursor_color']))
|
|
||||||
if hasattr(self.vte, 'set_cursor_shape'):
|
if hasattr(self.vte, 'set_cursor_shape'):
|
||||||
self.vte.set_cursor_shape(getattr(vte, 'CURSOR_SHAPE_' +
|
self.vte.set_cursor_shape(getattr(vte, 'CURSOR_SHAPE_' +
|
||||||
self.config['cursor_shape'].upper()))
|
self.config['cursor_shape'].upper()))
|
||||||
|
@ -730,6 +744,19 @@ for %s (%s)' % (name, urlplugin.__class__.__name__))
|
||||||
self.titlebar.update()
|
self.titlebar.update()
|
||||||
self.vte.queue_draw()
|
self.vte.queue_draw()
|
||||||
|
|
||||||
|
def set_cursor_color(self):
|
||||||
|
"""Set the cursor color appropriately"""
|
||||||
|
if self.config['cursor_color'] == self.config['foreground_color']:
|
||||||
|
try:
|
||||||
|
self.vte.set_color_cursor(None)
|
||||||
|
except TypeError:
|
||||||
|
# FIXME: I think this is only necessary because of
|
||||||
|
# https://bugzilla.gnome.org/show_bug.cgi?id=614910
|
||||||
|
pass
|
||||||
|
elif self.config['cursor_color'] != '':
|
||||||
|
self.vte.set_color_cursor(gtk.gdk.color_parse(
|
||||||
|
self.config['cursor_color']))
|
||||||
|
|
||||||
def get_window_title(self):
|
def get_window_title(self):
|
||||||
"""Return the window title"""
|
"""Return the window title"""
|
||||||
return(self.vte.get_window_title() or str(self.command))
|
return(self.vte.get_window_title() or str(self.command))
|
||||||
|
@ -1009,8 +1036,18 @@ for %s (%s)' % (name, urlplugin.__class__.__name__))
|
||||||
|
|
||||||
def on_vte_focus_in(self, _widget, _event):
|
def on_vte_focus_in(self, _widget, _event):
|
||||||
"""Inform other parts of the application when focus is received"""
|
"""Inform other parts of the application when focus is received"""
|
||||||
|
self.vte.set_colors(self.fgcolor_active, self.bgcolor,
|
||||||
|
self.palette_active)
|
||||||
|
self.set_cursor_color()
|
||||||
self.emit('focus-in')
|
self.emit('focus-in')
|
||||||
|
|
||||||
|
def on_vte_focus_out(self, _widget, _event):
|
||||||
|
"""Inform other parts of the application when focus is lost"""
|
||||||
|
self.vte.set_colors(self.fgcolor_inactive, self.bgcolor,
|
||||||
|
self.palette_inactive)
|
||||||
|
self.set_cursor_color()
|
||||||
|
self.emit('focus-out')
|
||||||
|
|
||||||
def on_window_focus_out(self):
|
def on_window_focus_out(self):
|
||||||
"""Update our UI when the window loses focus"""
|
"""Update our UI when the window loses focus"""
|
||||||
self.titlebar.update('window-focus-out')
|
self.titlebar.update('window-focus-out')
|
||||||
|
|
Loading…
Reference in New Issue