@@ -172,7 +172,7 @@ def on_tab_selection(self, user_data):
172172 # ref: epiphany
173173 css_provider = Gtk .CssProvider ()
174174 css_provider .load_from_data (
175- b"#popover-window list { border-style: none; background-color: transparent; }"
175+ b"#popover-window list { border-style: none; background-color: transparent; }"
176176 )
177177 Gtk .StyleContext .add_provider_for_screen (
178178 Gdk .Screen .get_default (),
@@ -376,6 +376,11 @@ def new_page(self, directory=None, position=None, empty=False, open_tab_cwd=Fals
376376 root_terminal_box , None , position if position is not None else - 1
377377 )
378378 self .set_tab_reorderable (root_terminal_box , True )
379+
380+
381+
382+
383+
379384 self .show_all () # needed to show newly added tabs and pages
380385 # this is needed because self.window.show_all() results in showing every
381386 # thing which includes the scrollbar too
@@ -472,6 +477,27 @@ def rename_page(self, page_index, new_text, user_set=False):
472477 if user_set :
473478 setattr (page , "custom_label_set" , new_text != "-" )
474479
480+ def color_page (self , page_index , color , user_set = False ):
481+ page = self .get_nth_page (page_index )
482+ #page.set_name("tab-label")
483+ label = self .get_tab_label (page )
484+ text_color = '#FFFFFF' if (color .red * 0.299 + color .green * 0.587 + color .blue * 0.114 ) > 186 else '#000000'
485+ label .set_name ("tab-label" + str (page_index ))
486+ css = """notebook #tab-label{page_index} {{border:none; background-color: rgba({red}, {green}, {blue}, 1); color: {text_color}; }}""" .format (page_index = page_index ,
487+ red = color .red * 255 , green = color .green * 255 , blue = color .blue * 255 ,
488+ text_color = text_color
489+ ).encode ()
490+
491+ css_provider = Gtk .CssProvider ()
492+ css_provider .load_from_data (css )
493+
494+ Gtk .StyleContext ().add_provider_for_screen (
495+ Gdk .Screen .get_default (),
496+ css_provider ,
497+ Gtk .STYLE_PROVIDER_PRIORITY_APPLICATION ,
498+ )
499+
500+
475501 def find_tab_index_by_label (self , eventbox ):
476502 for index , tab_eventbox in enumerate (self .iter_tabs ()):
477503 if eventbox is tab_eventbox :
0 commit comments