initial commit for remotinator background image command

This commit is contained in:
Matt Rose 2021-08-14 11:38:49 -04:00
parent b4990c3c24
commit 0434880f13
3 changed files with 28 additions and 0 deletions

View File

@ -47,6 +47,7 @@ COMMANDS={
'get_tab': [True, _('Get the UUID of a parent tab')],
'get_tab_title': [True, _('Get the title of a parent tab')],
'set_tab_title': [True, _('Set the title of a parent tab')],
'bg_img': [True, _('Set the background image')].
'switch_profile': [True, _('Switch current terminal profile')],
'switch_profile_all': [False, _('Switch profile of all currently running terminals')],
}
@ -77,6 +78,9 @@ if __name__ == '__main__':
parser.add_argument('-p', '--profile', dest='profile', type=str, default=argparse.SUPPRESS,
help=_('Terminal UUID for when not in env var TERMINATOR_UUID'))
parser.add_argument('-f', '--file', dest='file', type=str, default=argparse.SUPPRESS,
help=_('File to pass to command'))
parser.add_argument('-x', '--execute', dest='execute', type=str, default=argparse.SUPPRESS,
help=_('Terminal UUID for when not in env var TERMINATOR_UUID'))

View File

@ -124,6 +124,16 @@ class DBusService(Borg, dbus.service.Object):
"""Create a new tab"""
return self.new_terminal(uuid, 'tab')
@dbus.service.method(BUS_NAME)
def bg_img(self,uuid=None,options=None):
terminals = []
if uuid:
terminals.append(self.terminator.find_terminal_by_uuid(uuid))
else:
terminals = self.get_terminals()
for terminal in terminals:
terminal.set_background_image(options.get('file'))
@dbus.service.method(BUS_NAME)
def hsplit(self, uuid=None,options=None):
"""Split a terminal horizontally, by UUID"""
@ -422,3 +432,7 @@ def switch_profile(session, uuid, options):
def switch_profile_all(session,options):
"""Call the dbus method to return the title of a tab"""
session.switch_profile_all(options)
@with_proxy
def bg_img(session,uuid,options):
session.bg_img(uuid,options)

View File

@ -203,6 +203,16 @@ class Terminal(Gtk.VBox):
self.reconfigure()
self.vte.set_size(80, 24)
def set_background_image(self,image):
try:
self.background_image = GdkPixbuf.Pixbuf.new_from_file(image)
self.vte.set_clear_background(False)
self.vte.connect("draw",self.background_draw)
except Exception as e:
self.background_image = None
self.vte.set_clear_background(True)
err('error loading background image: %s, %s' % (type(e).__name__,e))
def get_vte(self):
"""This simply returns the vte widget we are using"""
return(self.vte)