diff --git a/remotinator b/remotinator index 3760b34b..f846ae19 100755 --- a/remotinator +++ b/remotinator @@ -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')) diff --git a/terminatorlib/ipc.py b/terminatorlib/ipc.py index a06516d9..a1161526 100644 --- a/terminatorlib/ipc.py +++ b/terminatorlib/ipc.py @@ -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) diff --git a/terminatorlib/terminal.py b/terminatorlib/terminal.py index 0226cc1b..6bc3f9e8 100644 --- a/terminatorlib/terminal.py +++ b/terminatorlib/terminal.py @@ -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)