diff --git a/lib/PACConfig.pm b/lib/PACConfig.pm
index 383f8fb..f22b0e8 100644
--- a/lib/PACConfig.pm
+++ b/lib/PACConfig.pm
@@ -641,7 +641,25 @@ sub _updateGUIPreferences {
_( $self, 'cbCfgShowTerminalStatus' ) -> set_active( $$cfg{'defaults'}{'terminal show status bar'} );
_( $self, 'rbCfgSwitchTabsCtrl' ) -> set_active( ! $$cfg{'defaults'}{'how to switch tabs'} );
_( $self, 'rbCfgSwitchTabsAlt' ) -> set_active( $$cfg{'defaults'}{'how to switch tabs'} );
-
+
+ # Terminal Colors
+ _( $self, 'colorBlack' ) -> set_color( _( $self, 'colorBlack' ) -> get_color -> parse( $$cfg{'defaults'}{'color black'} // _( $self, 'colorBlack' ) -> get_color -> to_string ) );
+ _( $self, 'colorRed' ) -> set_color( _( $self, 'colorRed' ) -> get_color -> parse( $$cfg{'defaults'}{'color red'} // _( $self, 'colorRed' ) -> get_color -> to_string ) );
+ _( $self, 'colorGreen' ) -> set_color( _( $self, 'colorGreen' ) -> get_color -> parse( $$cfg{'defaults'}{'color green'} // _( $self, 'colorGreen' ) -> get_color -> to_string ) );
+ _( $self, 'colorYellow' ) -> set_color( _( $self, 'colorYellow' ) -> get_color -> parse( $$cfg{'defaults'}{'color yellow'} // _( $self, 'colorYellow' ) -> get_color -> to_string ) );
+ _( $self, 'colorBlue' ) -> set_color( _( $self, 'colorBlue' ) -> get_color -> parse( $$cfg{'defaults'}{'color blue'} // _( $self, 'colorBlue' ) -> get_color -> to_string ) );
+ _( $self, 'colorMagenta' ) -> set_color( _( $self, 'colorMagenta' ) -> get_color -> parse( $$cfg{'defaults'}{'color magenta'} // _( $self, 'colorMagenta' ) -> get_color -> to_string ) );
+ _( $self, 'colorCyan' ) -> set_color( _( $self, 'colorCyan' ) -> get_color -> parse( $$cfg{'defaults'}{'color cyan'} // _( $self, 'colorCyan' ) -> get_color -> to_string ) );
+ _( $self, 'colorWhite' ) -> set_color( _( $self, 'colorWhite' ) -> get_color -> parse( $$cfg{'defaults'}{'color white'} // _( $self, 'colorWhite' ) -> get_color -> to_string ) );
+ _( $self, 'colorBrightBlack' ) -> set_color( _( $self, 'colorBrightBlack' ) -> get_color -> parse( $$cfg{'defaults'}{'color bright black'} // _( $self, 'colorBrightBlack' ) -> get_color -> to_string ) );
+ _( $self, 'colorBrightRed' ) -> set_color( _( $self, 'colorBrightRed' ) -> get_color -> parse( $$cfg{'defaults'}{'color bright red'} // _( $self, 'colorBrightRed' ) -> get_color -> to_string ) );
+ _( $self, 'colorBrightGreen' ) -> set_color( _( $self, 'colorBrightGreen' ) -> get_color -> parse( $$cfg{'defaults'}{'color bright green'} // _( $self, 'colorBrightGreen' ) -> get_color -> to_string ) );
+ _( $self, 'colorBrightYellow' ) -> set_color( _( $self, 'colorBrightYellow' ) -> get_color -> parse( $$cfg{'defaults'}{'color bright yellow'} // _( $self, 'colorBrightYellow' ) -> get_color -> to_string ) );
+ _( $self, 'colorBrightBlue' ) -> set_color( _( $self, 'colorBrightBlue' ) -> get_color -> parse( $$cfg{'defaults'}{'color bright blue'} // _( $self, 'colorBrightBlue' ) -> get_color -> to_string ) );
+ _( $self, 'colorBrightMagenta' ) -> set_color( _( $self, 'colorBrightMagenta' ) -> get_color -> parse( $$cfg{'defaults'}{'color bright magenta'} // _( $self, 'colorBrightMagenta' ) -> get_color -> to_string ) );
+ _( $self, 'colorBrightCyan' ) -> set_color( _( $self, 'colorBrightCyan' ) -> get_color -> parse( $$cfg{'defaults'}{'color bright cyan'} // _( $self, 'colorBrightCyan' ) -> get_color -> to_string ) );
+ _( $self, 'colorBrightWhite' ) -> set_color( _( $self, 'colorBrightWhite' ) -> get_color -> parse( $$cfg{'defaults'}{'color bright white'} // _( $self, 'colorBrightWhite' ) -> get_color -> to_string ) );
+
# Local Shell Options
_( $self, 'entryCfgShellBinary' ) -> set_text( $$cfg{'defaults'}{'shell binary'} || '/bin/bash' );
_( $self, 'entryCfgShellOptions' ) -> set_text( $$cfg{'defaults'}{'shell options'} );
@@ -785,6 +803,24 @@ sub _saveConfiguration {
$$self{_CFG}{'defaults'}{'allow more instances'} = _( $self, 'cbCfgAllowMoreInstances' ) -> get_active;
$$self{_CFG}{'defaults'}{'show favourites in unity'} = _( $self, 'cbCfgShowFavOnUnity' ) -> get_active;
+ # Terminal colors
+ $$self{_CFG}{'defaults'}{'color black'} = _( $self, 'colorBlack' ) -> get_color -> to_string;
+ $$self{_CFG}{'defaults'}{'color red'} = _( $self, 'colorRed' ) -> get_color -> to_string;
+ $$self{_CFG}{'defaults'}{'color green'} = _( $self, 'colorGreen' ) -> get_color -> to_string;
+ $$self{_CFG}{'defaults'}{'color yellow'} = _( $self, 'colorYellow' ) -> get_color -> to_string;
+ $$self{_CFG}{'defaults'}{'color blue'} = _( $self, 'colorBlue' ) -> get_color -> to_string;
+ $$self{_CFG}{'defaults'}{'color magenta'} = _( $self, 'colorMagenta' ) -> get_color -> to_string;
+ $$self{_CFG}{'defaults'}{'color cyan'} = _( $self, 'colorCyan' ) -> get_color -> to_string;
+ $$self{_CFG}{'defaults'}{'color white'} = _( $self, 'colorWhite' ) -> get_color -> to_string;
+ $$self{_CFG}{'defaults'}{'color bright black'} = _( $self, 'colorBrightBlack' ) -> get_color -> to_string;
+ $$self{_CFG}{'defaults'}{'color bright red'} = _( $self, 'colorBrightRed' ) -> get_color -> to_string;
+ $$self{_CFG}{'defaults'}{'color bright green'} = _( $self, 'colorBrightGreen' ) -> get_color -> to_string;
+ $$self{_CFG}{'defaults'}{'color bright yellow'} = _( $self, 'colorBrightYellow' ) -> get_color -> to_string;
+ $$self{_CFG}{'defaults'}{'color bright blue'} = _( $self, 'colorBrightBlue' ) -> get_color -> to_string;
+ $$self{_CFG}{'defaults'}{'color bright magenta'} = _( $self, 'colorBrightMagenta' ) -> get_color -> to_string;
+ $$self{_CFG}{'defaults'}{'color bright cyan'} = _( $self, 'colorBrightCyan' ) -> get_color -> to_string;
+ $$self{_CFG}{'defaults'}{'color bright white'} = _( $self, 'colorBrightWhite' ) -> get_color -> to_string;
+
if ( _( $self, 'rbOnNoTabsNothing' ) -> get_active ) { $$self{_CFG}{'defaults'}{'when no more tabs'} = 0; }
elsif ( _( $self, 'rbOnNoTabsClose' ) -> get_active ) { $$self{_CFG}{'defaults'}{'when no more tabs'} = 1; }
else { $$self{_CFG}{'defaults'}{'when no more tabs'} = 2; }
diff --git a/lib/PACTerminal.pm b/lib/PACTerminal.pm
index 9ec97be..222ac6c 100644
--- a/lib/PACTerminal.pm
+++ b/lib/PACTerminal.pm
@@ -3273,10 +3273,27 @@ sub _updateCFG {
_setTabColour( $self );
+ my $colors = [Gtk2::Gdk::Color -> parse($$self{_CFG}{'defaults'}{'color black'}), # black
+ Gtk2::Gdk::Color -> parse($$self{_CFG}{'defaults'}{'color red'}), # red
+ Gtk2::Gdk::Color -> parse($$self{_CFG}{'defaults'}{'color green'}), # green
+ Gtk2::Gdk::Color -> parse($$self{_CFG}{'defaults'}{'color yellow'}), # yellow (=brown)
+ Gtk2::Gdk::Color -> parse($$self{_CFG}{'defaults'}{'color blue'}), # blue
+ Gtk2::Gdk::Color -> parse($$self{_CFG}{'defaults'}{'color magenta'}), # magenta
+ Gtk2::Gdk::Color -> parse($$self{_CFG}{'defaults'}{'color cyan'}), # cyan
+ Gtk2::Gdk::Color -> parse($$self{_CFG}{'defaults'}{'color white'}), # white (=light grey)
+ Gtk2::Gdk::Color -> parse($$self{_CFG}{'defaults'}{'color bright black'}), # light black (=dark grey)
+ Gtk2::Gdk::Color -> parse($$self{_CFG}{'defaults'}{'color bright red'}), # light red
+ Gtk2::Gdk::Color -> parse($$self{_CFG}{'defaults'}{'color bright green'}), # light green
+ Gtk2::Gdk::Color -> parse($$self{_CFG}{'defaults'}{'color bright yellow'}), # light yellow
+ Gtk2::Gdk::Color -> parse($$self{_CFG}{'defaults'}{'color bright blue'}), # light blue
+ Gtk2::Gdk::Color -> parse($$self{_CFG}{'defaults'}{'color bright magenta'}), # light magenta
+ Gtk2::Gdk::Color -> parse($$self{_CFG}{'defaults'}{'color bright cyan'}), # light cyan
+ Gtk2::Gdk::Color -> parse($$self{_CFG}{'defaults'}{'color bright white'})]; # light white
# Update some VTE options
if ( ( $$self{_CFG}{environments}{ $$self{_UUID} }{'terminal options'}{'use personal settings'} ) && ( defined $$self{_GUI}{_VTE} ) ) {
$$self{_GUI}{_VTE} -> set_background_transparent( $$self{_CFG}{environments}{ $$self{_UUID} }{'terminal options'}{'terminal transparency'} > 0 );
$$self{_GUI}{_VTE} -> set_background_saturation( $$self{_CFG}{environments}{ $$self{_UUID} }{'terminal options'}{'terminal transparency'} );
+ $$self{_GUI}{_VTE} -> set_colors( Gtk2::Gdk::Color -> parse( $$self{_CFG}{environments}{ $$self{_UUID} }{'terminal options'}{'text color'} ), Gtk2::Gdk::Color -> parse( $$self{_CFG}{environments}{ $$self{_UUID} }{'terminal options'}{'back color'} ), $colors);
$$self{_GUI}{_VTE} -> set_color_foreground( Gtk2::Gdk::Color -> parse( $$self{_CFG}{environments}{ $$self{_UUID} }{'terminal options'}{'text color'} ) );
$$self{_GUI}{_VTE} -> set_color_background( Gtk2::Gdk::Color -> parse( $$self{_CFG}{environments}{ $$self{_UUID} }{'terminal options'}{'back color'} ) );
$$self{_GUI}{_VTE} -> set_color_bold( Gtk2::Gdk::Color -> parse( $$self{_CFG}{environments}{ $$self{_UUID} }{'terminal options'}{'bold color like text'} ? $$self{_CFG}{environments}{ $$self{_UUID} }{'terminal options'}{'text color'} : $$self{_CFG}{environments}{ $$self{_UUID} }{'terminal options'}{'bold color'} ) );
@@ -3291,6 +3308,7 @@ sub _updateCFG {
} elsif ( defined $$self{_GUI}{_VTE} ) {
$$self{_GUI}{_VTE} -> set_background_transparent( $$self{_CFG}{'defaults'}{'terminal transparency'} > 0 );
$$self{_GUI}{_VTE} -> set_background_saturation( $$self{_CFG}{'defaults'}{'terminal transparency'} );
+ $$self{_GUI}{_VTE} -> set_colors( Gtk2::Gdk::Color -> parse( $$self{_CFG}{environments}{ $$self{_UUID} }{'terminal options'}{'text color'} ), Gtk2::Gdk::Color -> parse( $$self{_CFG}{environments}{ $$self{_UUID} }{'terminal options'}{'back color'} ), $colors);
$$self{_GUI}{_VTE} -> set_color_foreground( Gtk2::Gdk::Color -> parse( $$self{_CFG}{'defaults'}{'text color'} ) );
$$self{_GUI}{_VTE} -> set_color_background( Gtk2::Gdk::Color -> parse( $$self{_CFG}{'defaults'}{'back color'} ) );
$$self{_GUI}{_VTE} -> set_color_bold( Gtk2::Gdk::Color -> parse( $$self{_CFG}{'defaults'}{'bold color like text'} ? $$self{_CFG}{'defaults'}{'text color'} : $$self{_CFG}{'defaults'}{'bold color'} ) );
diff --git a/res/pac.glade b/res/pac.glade
index 109bd8c..ce1e0b7 100644
--- a/res/pac.glade
+++ b/res/pac.glade
@@ -3156,6 +3156,263 @@ underline
4
+
+
+ True
+ False
+ 0
+ none
+
+
+ True
+ False
+ 12
+
+
+ True
+ False
+ 2
+ 8
+
+
+ True
+ True
+ True
+ False
+ #000000000000
+
+
+
+
+ True
+ True
+ True
+ False
+ #cccc00000000
+
+
+ 1
+ 2
+
+
+
+
+ True
+ True
+ True
+ False
+ #4e4e9a9a0606
+
+
+ 2
+ 3
+
+
+
+
+ True
+ True
+ True
+ False
+ #c4c4a0a00000
+
+
+ 3
+ 4
+
+
+
+
+ True
+ True
+ True
+ False
+ #34346565a4a4
+
+
+ 4
+ 5
+
+
+
+
+ True
+ True
+ True
+ False
+ #757550507b7b
+
+
+ 5
+ 6
+
+
+
+
+ True
+ True
+ True
+ False
+ #060698209a9a
+
+
+ 6
+ 7
+
+
+
+
+ True
+ True
+ True
+ False
+ #d3d3d7d7cfcf
+
+
+ 7
+ 8
+
+
+
+
+ True
+ True
+ True
+ False
+ #555557575353
+
+
+ 1
+ 2
+
+
+
+
+ True
+ True
+ True
+ False
+ #efef29292929
+
+
+ 1
+ 2
+ 1
+ 2
+
+
+
+
+ True
+ True
+ True
+ False
+ #8a8ae2e23434
+
+
+ 2
+ 3
+ 1
+ 2
+
+
+
+
+ True
+ True
+ True
+ False
+ #fcfce9e94f4f
+
+
+ 3
+ 4
+ 1
+ 2
+
+
+
+
+ True
+ True
+ True
+ False
+ #72729f9fcfcf
+
+
+ 4
+ 5
+ 1
+ 2
+
+
+
+
+ True
+ True
+ True
+ False
+ #adad7f7fa8a8
+
+
+ 5
+ 6
+ 1
+ 2
+
+
+
+
+ True
+ True
+ True
+ False
+ #3434e2e2e2e2
+
+
+ 6
+ 7
+ 1
+ 2
+
+
+
+
+ True
+ True
+ True
+ False
+ #eeeeeeeeecec
+
+
+ 7
+ 8
+ 1
+ 2
+
+
+
+
+
+
+
+
+ True
+ False
+ Colors:
+ True
+
+
+ label_item
+
+
+
+
+ True
+ True
+ 5
+
+