mirror of
https://github.com/systemd/systemd.git
synced 2025-03-09 12:58:26 +03:00
run: add environment variable to prevent the setting of terminal title
This goes together with the existing SYSTEMD_TINT_BACKGROUND. Closes https://github.com/systemd/systemd/issues/33301 (cherry picked from commit 27a2513013d3b3c6140de47e04b3042c5b4487e5)
This commit is contained in:
parent
81acc5b39a
commit
9cbb3aadd5
@ -713,3 +713,7 @@ Tools using the Varlink protocol (such as `varlinkctl`) or sd-bus (such as
|
||||
and `run0` invocations is turned off. Note that this environment variable has
|
||||
no effect if the background color is explicitly selected via the relevant
|
||||
`--background=` switch of the tool.
|
||||
|
||||
* `$SYSTEMD_ADJUST_TERMINAL_TITLE` – Takes a boolean. When false the terminal
|
||||
window title will not be updated for interactive invocation of the mentioned
|
||||
tools.
|
||||
|
@ -1848,7 +1848,8 @@ static int start_transient_service(sd_bus *bus) {
|
||||
if (!isempty(arg_background))
|
||||
(void) pty_forward_set_background_color(c.forward, arg_background);
|
||||
|
||||
set_window_title(c.forward);
|
||||
if (shall_set_terminal_title())
|
||||
set_window_title(c.forward);
|
||||
}
|
||||
|
||||
path = unit_dbus_path_from_name(service);
|
||||
|
@ -17,6 +17,7 @@
|
||||
#include "sd-event.h"
|
||||
|
||||
#include "alloc-util.h"
|
||||
#include "env-util.h"
|
||||
#include "errno-util.h"
|
||||
#include "extract-word.h"
|
||||
#include "fd-util.h"
|
||||
@ -367,6 +368,21 @@ static int insert_background_fix(PTYForward *f, size_t offset) {
|
||||
return insert_string(f, offset, s);
|
||||
}
|
||||
|
||||
bool shall_set_terminal_title(void) {
|
||||
static int cache = -1;
|
||||
|
||||
if (cache >= 0)
|
||||
return cache;
|
||||
|
||||
cache = getenv_bool("SYSTEMD_ADJUST_TERMINAL_TITLE");
|
||||
if (cache == -ENXIO)
|
||||
return (cache = true);
|
||||
if (cache < 0)
|
||||
log_debug_errno(cache, "Failed to parse $SYSTEMD_ADJUST_TERMINAL_TITLE, leaving terminal title setting enabled: %m");
|
||||
|
||||
return cache != 0;
|
||||
}
|
||||
|
||||
static int insert_window_title_fix(PTYForward *f, size_t offset) {
|
||||
assert(f);
|
||||
|
||||
|
@ -50,4 +50,6 @@ int pty_forward_set_titlef(PTYForward *f, const char *format, ...) _printf_(2,3)
|
||||
|
||||
int pty_forward_set_title_prefix(PTYForward *f, const char *prefix);
|
||||
|
||||
bool shall_set_terminal_title(void);
|
||||
|
||||
DEFINE_TRIVIAL_CLEANUP_FUNC(PTYForward*, pty_forward_free);
|
||||
|
Loading…
x
Reference in New Issue
Block a user