The use of xterm default colors now is configurable
This commit is contained in:
parent
e66f00ea92
commit
125c4b961b
|
@ -1,3 +1,6 @@
|
||||||
|
2016-11-06 Markus Gans <guru.mail@muenster.de>
|
||||||
|
* The use of xterm default colors now is configurable
|
||||||
|
|
||||||
2016-11-05 Markus Gans <guru.mail@muenster.de>
|
2016-11-05 Markus Gans <guru.mail@muenster.de>
|
||||||
* Determine xterm maximum number of colors via OSC 4
|
* Determine xterm maximum number of colors via OSC 4
|
||||||
* The method clearArea can now fill the background
|
* The method clearArea can now fill the background
|
||||||
|
|
112
src/fterm.cpp
112
src/fterm.cpp
|
@ -58,6 +58,7 @@ bool FTerm::ascii_console;
|
||||||
bool FTerm::NewFont;
|
bool FTerm::NewFont;
|
||||||
bool FTerm::VGAFont;
|
bool FTerm::VGAFont;
|
||||||
bool FTerm::cursor_optimisation;
|
bool FTerm::cursor_optimisation;
|
||||||
|
bool FTerm::xterm_default_colors;
|
||||||
termios FTerm::term_init;
|
termios FTerm::term_init;
|
||||||
char FTerm::termtype[30] = "";
|
char FTerm::termtype[30] = "";
|
||||||
char* FTerm::term_name = 0;
|
char* FTerm::term_name = 0;
|
||||||
|
@ -958,6 +959,25 @@ void FTerm::setXTermHighlightBackground (const FString& hbg)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
void FTerm::setXTermDefaults()
|
||||||
|
{
|
||||||
|
setXTermMouseBackground("rgb:ffff/ffff/ffff");
|
||||||
|
setXTermMouseForeground ("rgb:0000/0000/0000");
|
||||||
|
|
||||||
|
if ( ! gnome_terminal )
|
||||||
|
setXTermCursorColor("rgb:ffff/ffff/ffff");
|
||||||
|
|
||||||
|
if ( xterm_default_colors
|
||||||
|
&& ! (mintty_terminal || rxvt_terminal || screen_terminal) )
|
||||||
|
{
|
||||||
|
// mintty and rxvt can't reset these settings
|
||||||
|
setXTermBackground("rgb:8080/a4a4/ecec");
|
||||||
|
setXTermForeground("rgb:0000/0000/0000");
|
||||||
|
setXTermHighlightBackground("rgb:8686/8686/8686");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
void FTerm::resetXTermColors()
|
void FTerm::resetXTermColors()
|
||||||
{
|
{
|
||||||
|
@ -1050,6 +1070,22 @@ void FTerm::resetXTermHighlightBackground()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
void FTerm::resetXTermDefaults()
|
||||||
|
{
|
||||||
|
setXTermCursorColor("rgb:b1b1/b1b1/b1b1");
|
||||||
|
resetXTermMouseForeground();
|
||||||
|
resetXTermMouseBackground();
|
||||||
|
resetXTermCursorColor();
|
||||||
|
|
||||||
|
if ( xterm_default_colors )
|
||||||
|
{
|
||||||
|
resetXTermForeground();
|
||||||
|
resetXTermBackground();
|
||||||
|
resetXTermHighlightBackground();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
void FTerm::saveColorMap()
|
void FTerm::saveColorMap()
|
||||||
{
|
{
|
||||||
|
@ -2900,27 +2936,28 @@ void FTerm::init()
|
||||||
(*encoding_set)["ASCII"] = fc::ASCII;
|
(*encoding_set)["ASCII"] = fc::ASCII;
|
||||||
|
|
||||||
// Preset to false
|
// Preset to false
|
||||||
utf8_console = \
|
utf8_console = \
|
||||||
utf8_input = \
|
utf8_input = \
|
||||||
utf8_state = \
|
utf8_state = \
|
||||||
utf8_linux_terminal = \
|
utf8_linux_terminal = \
|
||||||
pc_charset_console = \
|
pc_charset_console = \
|
||||||
vt100_console = \
|
vt100_console = \
|
||||||
NewFont = \
|
NewFont = \
|
||||||
VGAFont = \
|
VGAFont = \
|
||||||
ascii_console = \
|
ascii_console = \
|
||||||
mouse_support = \
|
mouse_support = \
|
||||||
force_vt100 = \
|
force_vt100 = \
|
||||||
tera_terminal = \
|
tera_terminal = \
|
||||||
kterm_terminal = \
|
kterm_terminal = \
|
||||||
gnome_terminal = \
|
gnome_terminal = \
|
||||||
kde_konsole = \
|
kde_konsole = \
|
||||||
rxvt_terminal = \
|
rxvt_terminal = \
|
||||||
urxvt_terminal = \
|
urxvt_terminal = \
|
||||||
mlterm_terminal = \
|
mlterm_terminal = \
|
||||||
mintty_terminal = \
|
mintty_terminal = \
|
||||||
screen_terminal = \
|
screen_terminal = \
|
||||||
tmux_terminal = false;
|
tmux_terminal = \
|
||||||
|
xterm_default_colors = false;
|
||||||
|
|
||||||
// Preset to true
|
// Preset to true
|
||||||
cursor_optimisation = true;
|
cursor_optimisation = true;
|
||||||
|
@ -3117,9 +3154,6 @@ void FTerm::init()
|
||||||
std::fflush(stdout);
|
std::fflush(stdout);
|
||||||
}
|
}
|
||||||
|
|
||||||
setXTermCursorStyle(fc::blinking_underline);
|
|
||||||
setXTermColors();
|
|
||||||
|
|
||||||
setRawMode();
|
setRawMode();
|
||||||
|
|
||||||
if ( (xterm_terminal || urxvt_terminal) && ! rxvt_terminal )
|
if ( (xterm_terminal || urxvt_terminal) && ! rxvt_terminal )
|
||||||
|
@ -3225,14 +3259,10 @@ void FTerm::finish()
|
||||||
std::fflush(stdout);
|
std::fflush(stdout);
|
||||||
}
|
}
|
||||||
|
|
||||||
// reset xterm color settings to default
|
// reset xterm color settings to default values
|
||||||
setXTermCursorColor("rgb:b1b1/b1b1/b1b1");
|
resetXTermDefaults();
|
||||||
resetXTermMouseForeground();
|
|
||||||
resetXTermMouseBackground();
|
// set xterm full block cursor
|
||||||
resetXTermCursorColor();
|
|
||||||
resetXTermForeground();
|
|
||||||
resetXTermBackground();
|
|
||||||
resetXTermHighlightBackground();
|
|
||||||
setXTermCursorStyle(fc::steady_block);
|
setXTermCursorStyle(fc::steady_block);
|
||||||
|
|
||||||
if ( FTermcap::max_color >= 16 && ! (kde_konsole || tera_terminal) )
|
if ( FTermcap::max_color >= 16 && ! (kde_konsole || tera_terminal) )
|
||||||
|
@ -3350,24 +3380,6 @@ void FTerm::finish()
|
||||||
delete opti_move;
|
delete opti_move;
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
|
||||||
void FTerm::setXTermColors()
|
|
||||||
{
|
|
||||||
setXTermMouseBackground("rgb:ffff/ffff/ffff");
|
|
||||||
setXTermMouseForeground ("rgb:0000/0000/0000");
|
|
||||||
|
|
||||||
if ( ! gnome_terminal )
|
|
||||||
setXTermCursorColor("rgb:ffff/ffff/ffff");
|
|
||||||
|
|
||||||
if ( ! (mintty_terminal || rxvt_terminal || screen_terminal) )
|
|
||||||
{
|
|
||||||
// mintty and rxvt can't reset these settings
|
|
||||||
setXTermBackground("rgb:8080/a4a4/ecec");
|
|
||||||
setXTermForeground("rgb:0000/0000/0000");
|
|
||||||
setXTermHighlightBackground("rgb:8686/8686/8686");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
uInt FTerm::cp437_to_unicode (uChar c)
|
uInt FTerm::cp437_to_unicode (uChar c)
|
||||||
{
|
{
|
||||||
|
|
|
@ -142,6 +142,7 @@ class FTerm
|
||||||
|
|
||||||
// Mutators
|
// Mutators
|
||||||
static bool setCursorOptimisation (bool);
|
static bool setCursorOptimisation (bool);
|
||||||
|
static void setXTermDefaultColors (bool);
|
||||||
static void setConsoleCursor (fc::consoleCursorStyle, bool);
|
static void setConsoleCursor (fc::consoleCursorStyle, bool);
|
||||||
static bool setRawMode (bool);
|
static bool setRawMode (bool);
|
||||||
static bool setRawMode();
|
static bool setRawMode();
|
||||||
|
@ -177,6 +178,7 @@ class FTerm
|
||||||
static void setXTermMouseForeground (const FString&);
|
static void setXTermMouseForeground (const FString&);
|
||||||
static void setXTermMouseBackground (const FString&);
|
static void setXTermMouseBackground (const FString&);
|
||||||
static void setXTermHighlightBackground (const FString&);
|
static void setXTermHighlightBackground (const FString&);
|
||||||
|
static void setXTermDefaults();
|
||||||
static void resetXTermColors();
|
static void resetXTermColors();
|
||||||
static void resetXTermForeground();
|
static void resetXTermForeground();
|
||||||
static void resetXTermBackground();
|
static void resetXTermBackground();
|
||||||
|
@ -184,6 +186,7 @@ class FTerm
|
||||||
static void resetXTermMouseForeground();
|
static void resetXTermMouseForeground();
|
||||||
static void resetXTermMouseBackground();
|
static void resetXTermMouseBackground();
|
||||||
static void resetXTermHighlightBackground();
|
static void resetXTermHighlightBackground();
|
||||||
|
static void resetXTermDefaults();
|
||||||
static void saveColorMap();
|
static void saveColorMap();
|
||||||
static void resetColorMap();
|
static void resetColorMap();
|
||||||
static void setPalette (short, int, int, int);
|
static void setPalette (short, int, int, int);
|
||||||
|
@ -248,6 +251,7 @@ class FTerm
|
||||||
static bool NewFont;
|
static bool NewFont;
|
||||||
static bool VGAFont;
|
static bool VGAFont;
|
||||||
static bool cursor_optimisation;
|
static bool cursor_optimisation;
|
||||||
|
static bool xterm_default_colors;
|
||||||
static fc::encoding Encoding;
|
static fc::encoding Encoding;
|
||||||
static char exit_message[8192];
|
static char exit_message[8192];
|
||||||
|
|
||||||
|
@ -300,7 +304,6 @@ class FTerm
|
||||||
static void init_encoding();
|
static void init_encoding();
|
||||||
void init();
|
void init();
|
||||||
void finish();
|
void finish();
|
||||||
static void setXTermColors();
|
|
||||||
static uInt cp437_to_unicode (uChar);
|
static uInt cp437_to_unicode (uChar);
|
||||||
static void signal_handler (int);
|
static void signal_handler (int);
|
||||||
|
|
||||||
|
@ -492,6 +495,10 @@ inline bool FTerm::isUTF8_linux_terminal()
|
||||||
inline bool FTerm::setCursorOptimisation (bool on)
|
inline bool FTerm::setCursorOptimisation (bool on)
|
||||||
{ return cursor_optimisation = (on) ? true : false; }
|
{ return cursor_optimisation = (on) ? true : false; }
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
inline void FTerm::setXTermDefaultColors (bool on)
|
||||||
|
{ xterm_default_colors = on; }
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
inline bool FTerm::setRawMode()
|
inline bool FTerm::setRawMode()
|
||||||
{ return setRawMode(true); }
|
{ return setRawMode(true); }
|
||||||
|
|
|
@ -1092,7 +1092,13 @@ void FWidget::show()
|
||||||
// Important: Do not use setNewFont() or setVGAFont() after
|
// Important: Do not use setNewFont() or setVGAFont() after
|
||||||
// the console character mapping has been initialized
|
// the console character mapping has been initialized
|
||||||
if ( getMainWidget() == this )
|
if ( getMainWidget() == this )
|
||||||
|
{
|
||||||
init_consoleCharMap();
|
init_consoleCharMap();
|
||||||
|
// set xterm underline cursor
|
||||||
|
setXTermCursorStyle(fc::blinking_underline);
|
||||||
|
// set xterm color settings to defaults
|
||||||
|
setXTermDefaults();
|
||||||
|
}
|
||||||
|
|
||||||
if ( ! show_root_widget )
|
if ( ! show_root_widget )
|
||||||
{
|
{
|
||||||
|
|
|
@ -243,7 +243,6 @@ Calc::Calc (FWidget* parent)
|
||||||
setText ("calculator");
|
setText ("calculator");
|
||||||
setGeometry (19, 6, 37, 18);
|
setGeometry (19, 6, 37, 18);
|
||||||
addAccelerator('q'); // press 'q' to quit
|
addAccelerator('q'); // press 'q' to quit
|
||||||
//setShadow();
|
|
||||||
|
|
||||||
for (int key=0; key < Calc::NUM_OF_BUTTONS; key++)
|
for (int key=0; key < Calc::NUM_OF_BUTTONS; key++)
|
||||||
{
|
{
|
||||||
|
|
|
@ -906,6 +906,7 @@ int main (int argc, char* argv[])
|
||||||
}
|
}
|
||||||
|
|
||||||
FApplication app(argc, argv);
|
FApplication app(argc, argv);
|
||||||
|
app.setXTermDefaultColors(true);
|
||||||
app.setXTermTitle (title);
|
app.setXTermTitle (title);
|
||||||
|
|
||||||
//app.setEncoding("VT100");
|
//app.setEncoding("VT100");
|
||||||
|
|
Loading…
Reference in New Issue