config: add locked-title=no|yes #624

Manually merged
dnkl merged 1 commits from locked-title into master 5 months ago
  1. 5
      CHANGELOG.md
  2. 3
      config.c
  3. 1
      config.h
  4. 4
      doc/foot.ini.5.scd
  5. 4
      foot.ini
  6. 4
      terminal.c
  7. 1
      terminal.h

5
CHANGELOG.md

@ -30,6 +30,11 @@
## Unreleased
### Added
* `locked-title=no|yes` to `foot.ini`
(https://codeberg.org/dnkl/foot/issues/386).
### Changed
* Non-empty lines are now considered to have a hard linebreak,

3
config.c

@ -643,6 +643,9 @@ parse_section_main(const char *key, const char *value, struct config *conf,
conf->title = xstrdup(value);
}
else if (strcmp(key, "locked-title") == 0)
conf->locked_title = str_to_bool(value);
else if (strcmp(key, "app-id") == 0) {
free(conf->app_id);
conf->app_id = xstrdup(value);

1
config.h

@ -77,6 +77,7 @@ struct config {
wchar_t *word_delimiters;
bool login_shell;
bool no_wait;
bool locked_title;
struct {
enum conf_size_type type;

4
doc/foot.ini.5.scd

@ -224,6 +224,10 @@ in this order:
*title*
Initial window title. Default: _foot_.
*locked-title*
Boolean. If enabled, applications are not allowed to change the
title at run-time. Default: _no_.
*app-id*
Value to set the *app-id* property on the Wayland window to. The
compositor can use this value to e.g. group multiple windows, or

4
foot.ini

@ -4,6 +4,10 @@
# term=foot (or xterm-256color if built with -Dterminfo=disabled)
# login-shell=no
# app-id=foot
# title=foot
# locked-title=no
# font=monospace:size=8
# font-bold=<bold variant of regular font>
# font-italic=<italic variant of regular font>

4
terminal.c

@ -2634,9 +2634,13 @@ term_xcursor_update(struct terminal *term)
void
term_set_window_title(struct terminal *term, const char *title)
{
if (term->conf->locked_title && term->window_title_has_been_set)
return;
free(term->window_title);
term->window_title = xstrdup(title);
render_refresh_title(term);
term->window_title_has_been_set = true;
}
void

1
terminal.h

@ -382,6 +382,7 @@ struct terminal {
bool sixel_cursor_right_of_graphics:1;
} xtsave;
bool window_title_has_been_set;
char *window_title;
tll(char *) window_title_stack;

Loading…
Cancel
Save