diff options
-rw-r--r-- | completions/fish/swayidle.fish | 3 | ||||
-rw-r--r-- | completions/fish/swaylock.fish | 38 | ||||
-rw-r--r-- | completions/fish/swaynag.fish | 29 | ||||
-rw-r--r-- | include/sway/output.h | 2 | ||||
-rw-r--r-- | meson.build | 2 | ||||
-rw-r--r-- | sway/desktop/output.c | 13 | ||||
-rw-r--r-- | sway/desktop/render.c | 7 | ||||
-rw-r--r-- | sway/desktop/transaction.c | 4 | ||||
-rw-r--r-- | sway/input/seat.c | 6 | ||||
-rw-r--r-- | sway/tree/container.c | 5 | ||||
-rw-r--r-- | sway/tree/view.c | 22 | ||||
-rw-r--r-- | sway/tree/workspace.c | 10 | ||||
-rw-r--r-- | swaylock/swaylock.1.scd | 26 |
13 files changed, 132 insertions, 35 deletions
diff --git a/completions/fish/swayidle.fish b/completions/fish/swayidle.fish new file mode 100644 index 00000000..71279925 --- /dev/null +++ b/completions/fish/swayidle.fish | |||
@@ -0,0 +1,3 @@ | |||
1 | # swayidle | ||
2 | complete -c swayidle -s h --description 'show help' | ||
3 | complete -c swayidle -s d --description 'debug' | ||
diff --git a/completions/fish/swaylock.fish b/completions/fish/swaylock.fish index 965a22d2..99dff48f 100644 --- a/completions/fish/swaylock.fish +++ b/completions/fish/swaylock.fish | |||
@@ -1,11 +1,39 @@ | |||
1 | # swaylock(1) completion | 1 | # swaylock(1) completion |
2 | 2 | ||
3 | complete -c swaylock -s C -l config --description 'The config file to use. Default: $HOME/.swaylock/config, $XDG_CONFIG_HOME/swaylock/config, and SYSCONFDIR/swaylock/config.' | ||
3 | complete -c swaylock -s h -l help --description "Show help message and quit." | 4 | complete -c swaylock -s h -l help --description "Show help message and quit." |
4 | complete -c swaylock -s c -l color --description "Turn the screen into the given color. If -i is used, this sets the background of the image into the given color. Defaults to white (ffffff), or transparent (00000000) if an image is in use." | ||
5 | complete -c swaylock -s f -l daemonize --description "Fork into the background after spawning. Note: this is the default bahavior of i3lock." | 5 | complete -c swaylock -s f -l daemonize --description "Fork into the background after spawning. Note: this is the default bahavior of i3lock." |
6 | complete -c swaylock -s v -l version --description "Show the version number and quit." | ||
7 | complete -c swaylock -s s -l socket --description "Use the specified socket path. Otherwise, swaymsg will as sway where the socket is (which is the value of $SWAYSOCK, then of $I350CK)." | ||
8 | complete -c swaylock -s e -l ignore-empty-password --description 'When an empty password is provided by the user, do not validate it.' | ||
9 | |||
10 | # Appearance | ||
11 | complete -c swaylock -s u -l no-unlock-indicator --description "Disable the unlock indicator." | ||
6 | complete -c swaylock -s i -l image --description "Display the given image, optionally on the given output. Use -c to set a background color." | 12 | complete -c swaylock -s i -l image --description "Display the given image, optionally on the given output. Use -c to set a background color." |
7 | complete -c swaylock -l scaling --description "Scaling mode for images: stretch, fill, fit, center, or tile." | 13 | complete -c swaylock -s s -l scaling --description "Scaling mode for images: stretch, fill, fit, center, or tile." |
8 | complete -c swaylock -s t -l tiling --description "Same as --scaling=tile." | 14 | complete -c swaylock -s t -l tiling --description "Same as --scaling=tile." |
9 | complete -c swaylock -s u -l no-unlock-indicator --description "Disable the unlock indicator." | 15 | complete -c swaylock -s c -l color --description "Turn the screen into the given color. If -i is used, this sets the background of the image into the given color. Defaults to white (ffffff), or transparent (00000000) if an image is in use." |
10 | complete -c swaylock -s v -l version --description "Show the version number and quit." | 16 | complete -c swaylock -l bs-hl-color --description 'Sets the color of backspace highlight segments.' |
11 | complete -c swaylock -l socket --description "Use the specified socket path. Othherwise, swaymsg will as sway where the socket is (which is the value of $SWAYSOCK, then of $I350CK)." | 17 | complete -c swaylock -l font --description 'Sets the font of the text inside the indicator.' |
18 | complete -c swaylock -l indicator-radius --description 'Sets the radius of the indicator to radius pixels. Default: 50' | ||
19 | complete -c swaylock -l indicator-thickness --description 'Sets the thickness of the indicator to thickness pixels. Default: 10' | ||
20 | complete -c swaylock -l inside-color --description 'Sets the color of the inside of the indicator when typing or idle.' | ||
21 | complete -c swaylock -l inside-clear-color --description 'Sets the color of the inside of the indicator when cleared.' | ||
22 | complete -c swaylock -l inside-ver-color --description 'Sets the color of the inside of the indicator when verifying.' | ||
23 | complete -c swaylock -l inside-wrong-color --description 'Sets the color of the inside of the indicator when invalid.' | ||
24 | complete -c swaylock -l key-hl-color --description 'Sets the color of key press highlight segments.' | ||
25 | complete -c swaylock -l line-color --description 'Sets the color of the lines that separate the inside and outside of the indicator when typing or idle.' | ||
26 | complete -c swaylock -l line-clear-color --description 'Sets the color of the lines that separate the inside and outside of the indicator when cleared.' | ||
27 | complete -c swaylock -l line-ver-color --description 'Sets the color of the lines that separate the inside and outside of the indicator when verifying.' | ||
28 | complete -c swaylock -l line-wrong-color --description 'Sets the color of the lines that separate the inside and outside of the indicator when invalid.' | ||
29 | complete -c swaylock -s n -l line-uses-inside --description 'Use the color of the inside of the indicator for the line separating the inside and outside of the indicator.' | ||
30 | complete -c swaylock -s r -l line-uses-ring --description 'Use the outer ring\'s color for the line separating the inside and outside of the indicator.' | ||
31 | complete -c swaylock -l ring-color --description 'Sets the color of the outside of the indicator when typing or idle.' | ||
32 | complete -c swaylock -l ring-clear-color --description 'Sets the color of the outside of the indicator when cleared.' | ||
33 | complete -c swaylock -l ring-ver-color --description 'Sets the color of the outside of the indicator when verifying.' | ||
34 | complete -c swaylock -l ring-wrong-color --description 'Sets the color of the outside of the indicator when invalid.' | ||
35 | complete -c swaylock -l separator-color --description 'Sets the color of the lines that separate highlight segments.' | ||
36 | complete -c swaylock -l text-color --description 'Sets the color of the text inside the indicator when typing or idle.' | ||
37 | complete -c swaylock -l text-clear-color --description 'Sets the color of the text inside the indicator when cleared.' | ||
38 | complete -c swaylock -l text-ver-color --description 'Sets the color of the text inside the indicator when verifying.' | ||
39 | complete -c swaylock -l text-wrong-color --description 'Sets the color of the text inside the indicator when invalid.' | ||
diff --git a/completions/fish/swaynag.fish b/completions/fish/swaynag.fish new file mode 100644 index 00000000..784d7fad --- /dev/null +++ b/completions/fish/swaynag.fish | |||
@@ -0,0 +1,29 @@ | |||
1 | # swaynag | ||
2 | complete -c swaynag -s C -l config --description 'The config file to use. Default: $HOME/.swaylock/config, $XDG_CONFIG_HOME/swaylock/config, and SYSCONFDIR/swaylock/config.' | ||
3 | complete -c swaynag -s d -l debug --description 'Enable debugging.' | ||
4 | complete -c swaynag -s e -l edge --description 'Set the edge to use: top or bottom' | ||
5 | complete -c swaynag -s f -l font --description 'Set the font to use.' | ||
6 | complete -c swaynag -s h -l help --description 'Show help message and quit.' | ||
7 | complete -c swaynag -s b -l button --description 'Create a button with a text and an action which is executed when pressed. Multiple buttons can be defined by providing the flag multiple times.' | ||
8 | complete -c swaynag -s l -l detailed-message --description 'Read a detailed message from stdin. A button to toggle details will be added. Details are shown in a scrollable multi-line text area.' | ||
9 | complete -c swaynag -s L -l detailed-button --description 'Set the text for the button that toggles details. This has no effect if there is not a detailed message. The default is "Toggle details".' | ||
10 | complete -c swaynag -s m -l message --description 'Set the message text.' | ||
11 | complete -c swaynag -s o -l output --description 'Set the output to use.' | ||
12 | complete -c swaynag -s s -l dismiss-button --description 'Sets the text for the dismiss nagbar button. The default is "X".' | ||
13 | complete -c swaynag -s t -l type --description 'Set the message type. Two types are created by default "error" and "warning". Custom types can be defined in the config file.' | ||
14 | complete -c swaynag -s v -l version --description 'Show the version number and quit.' | ||
15 | |||
16 | # Appearance | ||
17 | complete -c swaynag -l background --description 'Set the color of the background.' | ||
18 | complete -c swaynag -l border --description 'Set the color of the border.' | ||
19 | complete -c swaynag -l border-bottom --description 'Set the color of the bottom border.' | ||
20 | complete -c swaynag -l button-background --description 'Set the color for the background for buttons.' | ||
21 | complete -c swaynag -l text --description 'Set the text color.' | ||
22 | complete -c swaynag -l border-bottom-size --description 'Set the thickness of the bottom border.' | ||
23 | complete -c swaynag -l message-padding --description 'Set the padding for the message.' | ||
24 | complete -c swaynag -l details-border-size --description 'Set the thickness for the details border.' | ||
25 | complete -c swaynag -l button-border-size --description 'Set the thickness for the button border.' | ||
26 | complete -c swaynag -l button-gap --description 'Set the size of the gap between buttons.' | ||
27 | complete -c swaynag -l button-dismiss-gap --description 'Set the size of the gap between the dismiss button and another button.' | ||
28 | complete -c swaynag -l button-margin-right --description 'Set the margin from the right of the dismiss button to edge.' | ||
29 | complete -c swaynag -l button-padding --description 'Set the padding for the button text.' | ||
diff --git a/include/sway/output.h b/include/sway/output.h index 369e62ce..22cb352a 100644 --- a/include/sway/output.h +++ b/include/sway/output.h | |||
@@ -86,6 +86,8 @@ void output_damage_whole_container(struct sway_output *output, | |||
86 | 86 | ||
87 | struct sway_output *output_by_name(const char *name); | 87 | struct sway_output *output_by_name(const char *name); |
88 | 88 | ||
89 | struct sway_output *output_by_identifier(const char *identifier); | ||
90 | |||
89 | void output_sort_workspaces(struct sway_output *output); | 91 | void output_sort_workspaces(struct sway_output *output); |
90 | 92 | ||
91 | struct output_config *output_find_config(struct sway_output *output); | 93 | struct output_config *output_find_config(struct sway_output *output); |
diff --git a/meson.build b/meson.build index 1e2b53fa..6b23b4e3 100644 --- a/meson.build +++ b/meson.build | |||
@@ -244,8 +244,10 @@ endif | |||
244 | if (get_option('fish-completions')) | 244 | if (get_option('fish-completions')) |
245 | fish_files = files( | 245 | fish_files = files( |
246 | 'completions/fish/sway.fish', | 246 | 'completions/fish/sway.fish', |
247 | 'completions/fish/swayidle.fish', | ||
247 | 'completions/fish/swaylock.fish', | 248 | 'completions/fish/swaylock.fish', |
248 | 'completions/fish/swaymsg.fish', | 249 | 'completions/fish/swaymsg.fish', |
250 | 'completions/fish/swaynag.fish', | ||
249 | ) | 251 | ) |
250 | fish_install_dir = datadir + '/fish/completions' | 252 | fish_install_dir = datadir + '/fish/completions' |
251 | 253 | ||
diff --git a/sway/desktop/output.c b/sway/desktop/output.c index ed9300bb..4d6c0336 100644 --- a/sway/desktop/output.c +++ b/sway/desktop/output.c | |||
@@ -39,6 +39,19 @@ struct sway_output *output_by_name(const char *name) { | |||
39 | return NULL; | 39 | return NULL; |
40 | } | 40 | } |
41 | 41 | ||
42 | struct sway_output *output_by_identifier(const char *identifier) { | ||
43 | for (int i = 0; i < root->outputs->length; ++i) { | ||
44 | struct sway_output *output = root->outputs->items[i]; | ||
45 | char output_identifier[128]; | ||
46 | snprintf(output_identifier, sizeof(output_identifier), "%s %s %s", output->wlr_output->make, | ||
47 | output->wlr_output->model, output->wlr_output->serial); | ||
48 | if (strcasecmp(output_identifier, identifier) == 0) { | ||
49 | return output; | ||
50 | } | ||
51 | } | ||
52 | return NULL; | ||
53 | } | ||
54 | |||
42 | /** | 55 | /** |
43 | * Rotate a child's position relative to a parent. The parent size is (pw, ph), | 56 | * Rotate a child's position relative to a parent. The parent size is (pw, ph), |
44 | * the child position is (*sx, *sy) and its size is (sw, sh). | 57 | * the child position is (*sx, *sy) and its size is (sw, sh). |
diff --git a/sway/desktop/render.c b/sway/desktop/render.c index 1a72f752..c1fa0c8c 100644 --- a/sway/desktop/render.c +++ b/sway/desktop/render.c | |||
@@ -781,6 +781,13 @@ static void render_containers_stacked(struct sway_output *output, | |||
781 | 781 | ||
782 | static void render_containers(struct sway_output *output, | 782 | static void render_containers(struct sway_output *output, |
783 | pixman_region32_t *damage, struct parent_data *parent) { | 783 | pixman_region32_t *damage, struct parent_data *parent) { |
784 | if (parent->children->length == 1) { | ||
785 | struct sway_container *child = parent->children->items[0]; | ||
786 | if (child->view) { | ||
787 | render_containers_linear(output, damage, parent); | ||
788 | return; | ||
789 | } | ||
790 | } | ||
784 | switch (parent->layout) { | 791 | switch (parent->layout) { |
785 | case L_NONE: | 792 | case L_NONE: |
786 | case L_HORIZ: | 793 | case L_HORIZ: |
diff --git a/sway/desktop/transaction.c b/sway/desktop/transaction.c index 955b05d6..c3efb210 100644 --- a/sway/desktop/transaction.c +++ b/sway/desktop/transaction.c | |||
@@ -301,7 +301,9 @@ static void transaction_apply(struct sway_transaction *transaction) { | |||
301 | if (root->outputs->length) { | 301 | if (root->outputs->length) { |
302 | struct sway_seat *seat; | 302 | struct sway_seat *seat; |
303 | wl_list_for_each(seat, &server.input->seats, link) { | 303 | wl_list_for_each(seat, &server.input->seats, link) { |
304 | cursor_rebase(seat->cursor); | 304 | if (seat->operation == OP_NONE) { |
305 | cursor_rebase(seat->cursor); | ||
306 | } | ||
305 | } | 307 | } |
306 | } | 308 | } |
307 | } | 309 | } |
diff --git a/sway/input/seat.c b/sway/input/seat.c index 577619a7..64419afa 100644 --- a/sway/input/seat.c +++ b/sway/input/seat.c | |||
@@ -185,7 +185,11 @@ static void handle_seat_node_destroy(struct wl_listener *listener, void *data) { | |||
185 | seat_set_focus(seat, next_focus); | 185 | seat_set_focus(seat, next_focus); |
186 | } else { | 186 | } else { |
187 | // Setting focus_inactive | 187 | // Setting focus_inactive |
188 | focus = seat_get_focus_inactive(seat, &root->node); | ||
188 | seat_set_raw_focus(seat, next_focus); | 189 | seat_set_raw_focus(seat, next_focus); |
190 | if (focus->type == N_CONTAINER) { | ||
191 | seat_set_raw_focus(seat, &focus->sway_container->workspace->node); | ||
192 | } | ||
189 | seat_set_raw_focus(seat, focus); | 193 | seat_set_raw_focus(seat, focus); |
190 | } | 194 | } |
191 | } | 195 | } |
@@ -944,7 +948,7 @@ struct sway_node *seat_get_focus(struct sway_seat *seat) { | |||
944 | if (!seat->has_focus) { | 948 | if (!seat->has_focus) { |
945 | return NULL; | 949 | return NULL; |
946 | } | 950 | } |
947 | if (wl_list_length(&seat->focus_stack) == 0) { | 951 | if (wl_list_empty(&seat->focus_stack)) { |
948 | return NULL; | 952 | return NULL; |
949 | } | 953 | } |
950 | struct sway_seat_node *current = | 954 | struct sway_seat_node *current = |
diff --git a/sway/tree/container.c b/sway/tree/container.c index 58d3df34..8ab6ebf8 100644 --- a/sway/tree/container.c +++ b/sway/tree/container.c | |||
@@ -676,11 +676,8 @@ void container_set_floating(struct sway_container *container, bool enable) { | |||
676 | container_detach(container); | 676 | container_detach(container); |
677 | struct sway_container *reference = | 677 | struct sway_container *reference = |
678 | seat_get_focus_inactive_tiling(seat, workspace); | 678 | seat_get_focus_inactive_tiling(seat, workspace); |
679 | if (reference && reference->view) { | ||
680 | reference = reference->parent; | ||
681 | } | ||
682 | if (reference) { | 679 | if (reference) { |
683 | container_add_child(reference, container); | 680 | container_add_sibling(reference, container, 1); |
684 | container->width = reference->width; | 681 | container->width = reference->width; |
685 | container->height = reference->height; | 682 | container->height = reference->height; |
686 | } else { | 683 | } else { |
diff --git a/sway/tree/view.c b/sway/tree/view.c index 4bc9e0f3..cf67acbb 100644 --- a/sway/tree/view.c +++ b/sway/tree/view.c | |||
@@ -242,23 +242,23 @@ void view_autoconfigure(struct sway_view *view) { | |||
242 | view->border_bottom = bottom_y != ws->y + ws->height; | 242 | view->border_bottom = bottom_y != ws->y + ws->height; |
243 | } | 243 | } |
244 | 244 | ||
245 | double x, y, width, height; | ||
246 | x = y = width = height = 0; | ||
247 | double y_offset = 0; | ||
248 | |||
249 | // In a tabbed or stacked container, the container's y is the top of the | 245 | // In a tabbed or stacked container, the container's y is the top of the |
250 | // title area. We have to offset the surface y by the height of the title, | 246 | // title area. We have to offset the surface y by the height of the title, |
251 | // bar, and disable any top border because we'll always have the title bar. | 247 | // bar, and disable any top border because we'll always have the title bar. |
248 | double y_offset = 0; | ||
252 | enum sway_container_layout layout = container_parent_layout(con); | 249 | enum sway_container_layout layout = container_parent_layout(con); |
253 | if (layout == L_TABBED && !container_is_floating(con)) { | 250 | list_t *siblings = container_get_siblings(con); |
254 | y_offset = container_titlebar_height(); | 251 | if (siblings->length > 1 && !container_is_floating(con)) { |
255 | view->border_top = false; | 252 | if (layout == L_TABBED) { |
256 | } else if (layout == L_STACKED && !container_is_floating(con)) { | 253 | y_offset = container_titlebar_height(); |
257 | list_t *siblings = container_get_siblings(con); | 254 | view->border_top = false; |
258 | y_offset = container_titlebar_height() * siblings->length; | 255 | } else if (layout == L_STACKED) { |
259 | view->border_top = false; | 256 | y_offset = container_titlebar_height() * siblings->length; |
257 | view->border_top = false; | ||
258 | } | ||
260 | } | 259 | } |
261 | 260 | ||
261 | double x = 0, y = 0, width = 0, height = 0; | ||
262 | switch (view->border) { | 262 | switch (view->border) { |
263 | case B_CSD: | 263 | case B_CSD: |
264 | case B_NONE: | 264 | case B_NONE: |
diff --git a/sway/tree/workspace.c b/sway/tree/workspace.c index 27e9ac7a..05cda5c0 100644 --- a/sway/tree/workspace.c +++ b/sway/tree/workspace.c | |||
@@ -35,6 +35,10 @@ struct sway_output *workspace_get_initial_output(const char *name) { | |||
35 | struct workspace_config *wsc = workspace_find_config(name); | 35 | struct workspace_config *wsc = workspace_find_config(name); |
36 | if (wsc && wsc->output) { | 36 | if (wsc && wsc->output) { |
37 | struct sway_output *output = output_by_name(wsc->output); | 37 | struct sway_output *output = output_by_name(wsc->output); |
38 | if (!output) { | ||
39 | output = output_by_identifier(wsc->output); | ||
40 | } | ||
41 | |||
38 | if (output) { | 42 | if (output) { |
39 | return output; | 43 | return output; |
40 | } | 44 | } |
@@ -143,7 +147,11 @@ void workspace_consider_destroy(struct sway_workspace *ws) { | |||
143 | static bool workspace_valid_on_output(const char *output_name, | 147 | static bool workspace_valid_on_output(const char *output_name, |
144 | const char *ws_name) { | 148 | const char *ws_name) { |
145 | struct workspace_config *wsc = workspace_find_config(ws_name); | 149 | struct workspace_config *wsc = workspace_find_config(ws_name); |
146 | return !wsc || !wsc->output || strcmp(wsc->output, output_name) == 0; | 150 | char identifier[128]; |
151 | struct sway_output *output = output_by_name(output_name); | ||
152 | output_get_identifier(identifier, sizeof(identifier), output); | ||
153 | |||
154 | return !wsc || !wsc->output || strcmp(wsc->output, output_name) == 0 || strcasecmp(identifier, output_name) == 0; | ||
147 | } | 155 | } |
148 | 156 | ||
149 | static void workspace_name_from_binding(const struct sway_binding * binding, | 157 | static void workspace_name_from_binding(const struct sway_binding * binding, |
diff --git a/swaylock/swaylock.1.scd b/swaylock/swaylock.1.scd index 3107124f..8ddc7d3a 100644 --- a/swaylock/swaylock.1.scd +++ b/swaylock/swaylock.1.scd | |||
@@ -21,20 +21,25 @@ Locks your Wayland session. | |||
21 | All leading dashes should be omitted and the equals sign is required for | 21 | All leading dashes should be omitted and the equals sign is required for |
22 | flags that take an argument. | 22 | flags that take an argument. |
23 | 23 | ||
24 | *-c, --color* <rrggbb[aa]> | ||
25 | Turn the screen into the given color. If -i is used, this sets the | ||
26 | background of the image to the given color. Defaults to white (FFFFFF), or | ||
27 | transparent (00000000) if an image is in use. | ||
28 | |||
29 | *-e, --ignore-empty-password* | 24 | *-e, --ignore-empty-password* |
30 | When an empty password is provided by the user, do not validate it. | 25 | When an empty password is provided by the user, do not validate it. |
31 | 26 | ||
32 | *-f, --daemonize* | 27 | *-f, --daemonize* |
33 | Detach from the controlling terminal after locking. | 28 | Detach from the controlling terminal after locking. |
34 | 29 | ||
30 | Note: this is the default bahavior of i3lock. | ||
31 | |||
35 | *-h, --help* | 32 | *-h, --help* |
36 | Show help message and quit. | 33 | Show help message and quit. |
37 | 34 | ||
35 | *-v, --version* | ||
36 | Show the version number and quit. | ||
37 | |||
38 | # APPEARANCE | ||
39 | |||
40 | *-u, --no-unlock-indicator* | ||
41 | Disable the unlock indicator. | ||
42 | |||
38 | *-i, --image* [<output>:]<path> | 43 | *-i, --image* [<output>:]<path> |
39 | Display the given image, optionally only on the given output. Use -c to set | 44 | Display the given image, optionally only on the given output. Use -c to set |
40 | a background color. | 45 | a background color. |
@@ -45,13 +50,10 @@ Locks your Wayland session. | |||
45 | *-t, --tiling* | 50 | *-t, --tiling* |
46 | Same as --scaling=tile. | 51 | Same as --scaling=tile. |
47 | 52 | ||
48 | *-u, --no-unlock-indicator* | 53 | *-c, --color* <rrggbb[aa]> |
49 | Disable the unlock indicator. | 54 | Turn the screen into the given color. If -i is used, this sets the |
50 | 55 | background of the image to the given color. Defaults to white (FFFFFF), or | |
51 | *-v, --version* | 56 | transparent (00000000) if an image is in use. |
52 | Show the version number and quit. | ||
53 | |||
54 | # APPEARANCE | ||
55 | 57 | ||
56 | *--bs-hl-color* <rrggbb[aa]> | 58 | *--bs-hl-color* <rrggbb[aa]> |
57 | Sets the color of backspace highlight segments. | 59 | Sets the color of backspace highlight segments. |