mirror of
https://github.com/kovidgoyal/kitty
synced 2026-07-25 17:52:02 +02:00
@@ -234,6 +234,10 @@ def tab_font_style(x):
|
|||||||
return {'bold-italic': (True, True), 'bold': (True, False), 'italic': (False, True)}.get(x.lower().replace('_', '-'), (False, False))
|
return {'bold-italic': (True, True), 'bold': (True, False), 'italic': (False, True)}.get(x.lower().replace('_', '-'), (False, False))
|
||||||
|
|
||||||
|
|
||||||
|
def tab_bar_edge(x):
|
||||||
|
return {'top': 1, 'bottom': 3}.get(x.lower(), 3)
|
||||||
|
|
||||||
|
|
||||||
def url_style(x):
|
def url_style(x):
|
||||||
return url_style.map.get(x, url_style.map['curly'])
|
return url_style.map.get(x, url_style.map['curly'])
|
||||||
|
|
||||||
@@ -282,6 +286,7 @@ type_map = {
|
|||||||
'url_style': url_style,
|
'url_style': url_style,
|
||||||
'prefer_color_emoji': to_bool,
|
'prefer_color_emoji': to_bool,
|
||||||
'copy_on_select': to_bool,
|
'copy_on_select': to_bool,
|
||||||
|
'tab_bar_edge': tab_bar_edge,
|
||||||
}
|
}
|
||||||
|
|
||||||
for name in (
|
for name in (
|
||||||
|
|||||||
@@ -196,14 +196,19 @@ inactive_border_color #cccccc
|
|||||||
# zero and one, with 0 being fully faded).
|
# zero and one, with 0 being fully faded).
|
||||||
inactive_text_alpha 1.0
|
inactive_text_alpha 1.0
|
||||||
|
|
||||||
# Tab-bar customization
|
# Which edge to show the tab bar on, top or bottom
|
||||||
|
tab_bar_edge bottom
|
||||||
|
|
||||||
|
# The separator between tabs in the tab bar
|
||||||
|
tab_separator " ┇"
|
||||||
|
|
||||||
|
# Tab bar colors and styles
|
||||||
active_tab_foreground #000
|
active_tab_foreground #000
|
||||||
active_tab_background #eee
|
active_tab_background #eee
|
||||||
active_tab_font_style bold-italic
|
active_tab_font_style bold-italic
|
||||||
inactive_tab_foreground #444
|
inactive_tab_foreground #444
|
||||||
inactive_tab_background #999
|
inactive_tab_background #999
|
||||||
inactive_tab_font_style normal
|
inactive_tab_font_style normal
|
||||||
tab_separator " ┇"
|
|
||||||
|
|
||||||
|
|
||||||
# The 16 terminal colors. There are 8 basic colors, each color has a dull and
|
# The 16 terminal colors. There are 8 basic colors, each color has a dull and
|
||||||
|
|||||||
@@ -245,10 +245,20 @@ add_borders_rect(id_type os_window_id, id_type tab_id, uint32_t left, uint32_t t
|
|||||||
void
|
void
|
||||||
os_window_regions(OSWindow *os_window, Region *central, Region *tab_bar) {
|
os_window_regions(OSWindow *os_window, Region *central, Region *tab_bar) {
|
||||||
if (os_window->num_tabs > 1) {
|
if (os_window->num_tabs > 1) {
|
||||||
central->left = 0; central->top = 0; central->right = os_window->viewport_width - 1;
|
switch(OPT(tab_bar_edge)) {
|
||||||
central->bottom = os_window->viewport_height - global_state.cell_height - 1;
|
case TOP_EDGE:
|
||||||
tab_bar->left = central->left; tab_bar->right = central->right; tab_bar->top = central->bottom + 1;
|
central->left = 0; central->top = global_state.cell_height; central->right = os_window->viewport_width - 1;
|
||||||
tab_bar->bottom = os_window->viewport_height - 1;
|
central->bottom = os_window->viewport_height - 1;
|
||||||
|
tab_bar->left = central->left; tab_bar->right = central->right; tab_bar->top = 0;
|
||||||
|
tab_bar->bottom = central->top - 1;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
central->left = 0; central->top = 0; central->right = os_window->viewport_width - 1;
|
||||||
|
central->bottom = os_window->viewport_height - global_state.cell_height - 1;
|
||||||
|
tab_bar->left = central->left; tab_bar->right = central->right; tab_bar->top = central->bottom + 1;
|
||||||
|
tab_bar->bottom = os_window->viewport_height - 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
memset(tab_bar, 0, sizeof(Region));
|
memset(tab_bar, 0, sizeof(Region));
|
||||||
central->left = 0; central->top = 0; central->right = os_window->viewport_width - 1;
|
central->left = 0; central->top = 0; central->right = os_window->viewport_width - 1;
|
||||||
@@ -330,6 +340,7 @@ PYWRAP1(set_options) {
|
|||||||
S(cursor_shape, PyLong_AsLong);
|
S(cursor_shape, PyLong_AsLong);
|
||||||
S(url_style, PyLong_AsUnsignedLong);
|
S(url_style, PyLong_AsUnsignedLong);
|
||||||
S(x11_bell_volume, PyLong_AsLong);
|
S(x11_bell_volume, PyLong_AsLong);
|
||||||
|
S(tab_bar_edge, PyLong_AsLong);
|
||||||
S(mouse_hide_wait, PyFloat_AsDouble);
|
S(mouse_hide_wait, PyFloat_AsDouble);
|
||||||
S(wheel_scroll_multiplier, PyFloat_AsDouble);
|
S(wheel_scroll_multiplier, PyFloat_AsDouble);
|
||||||
S(open_url_modifiers, PyLong_AsUnsignedLong);
|
S(open_url_modifiers, PyLong_AsUnsignedLong);
|
||||||
|
|||||||
@@ -10,6 +10,8 @@
|
|||||||
|
|
||||||
#define OPT(name) global_state.opts.name
|
#define OPT(name) global_state.opts.name
|
||||||
|
|
||||||
|
typedef enum { LEFT_EDGE, TOP_EDGE, RIGHT_EDGE, BOTTOM_EDGE } Edge;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
double visual_bell_duration, cursor_blink_interval, cursor_stop_blinking_after, mouse_hide_wait, click_interval, wheel_scroll_multiplier;
|
double visual_bell_duration, cursor_blink_interval, cursor_stop_blinking_after, mouse_hide_wait, click_interval, wheel_scroll_multiplier;
|
||||||
bool enable_audio_bell;
|
bool enable_audio_bell;
|
||||||
@@ -28,6 +30,7 @@ typedef struct {
|
|||||||
float adjust_line_height_frac;
|
float adjust_line_height_frac;
|
||||||
float background_opacity;
|
float background_opacity;
|
||||||
float inactive_text_alpha;
|
float inactive_text_alpha;
|
||||||
|
Edge tab_bar_edge;
|
||||||
} Options;
|
} Options;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|||||||
Reference in New Issue
Block a user