From 0ff991b25faf6a88edb356e2ea0ba80151eecb79 Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Tue, 25 Apr 2023 17:23:32 +0100 Subject: [PATCH] Set default lock command to vlock on Linux if present at build time, from Josh Boyer in GitHub issue 3527. --- Makefile.am | 1 + configure.ac | 13 +++++++++++++ options-table.c | 2 +- tmux.h | 3 +++ 4 files changed, 18 insertions(+), 1 deletion(-) diff --git a/Makefile.am b/Makefile.am index 14d8874b..a6fbfd7a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -14,6 +14,7 @@ dist_EXTRA_tmux_SOURCES = compat/*.[ch] AM_CPPFLAGS += @XOPEN_DEFINES@ \ -DTMUX_VERSION='"@VERSION@"' \ -DTMUX_CONF='"$(sysconfdir)/tmux.conf:~/.tmux.conf:$$XDG_CONFIG_HOME/tmux/tmux.conf:~/.config/tmux/tmux.conf"' \ + -DTMUX_LOCK_CMD='"@DEFAULT_LOCK_CMD@"' \ -DTMUX_TERM='"@DEFAULT_TERM@"' # Additional object files. diff --git a/configure.ac b/configure.ac index 4b9d75b3..0f3c88d8 100644 --- a/configure.ac +++ b/configure.ac @@ -936,6 +936,19 @@ AM_CONDITIONAL(IS_HPUX, test "x$PLATFORM" = xhpux) AM_CONDITIONAL(IS_HAIKU, test "x$PLATFORM" = xhaiku) AM_CONDITIONAL(IS_UNKNOWN, test "x$PLATFORM" = xunknown) +# Set the default lock command +DEFAULT_LOCK_CMD="lock -np" +AC_MSG_CHECKING(lock-command) +if test "x$PLATFORM" = xlinux; then + AC_CHECK_PROG(found_vlock, vlock, yes, no) + if test "x$found_vlock" = xyes; then + DEFAULT_LOCK_CMD="vlock" + fi +fi +AC_MSG_RESULT($DEFAULT_LOCK_CMD) +AC_SUBST(DEFAULT_LOCK_CMD) + + # Save our CFLAGS/CPPFLAGS/LDFLAGS for the Makefile and restore the old user # variables. AC_SUBST(AM_CPPFLAGS) diff --git a/options-table.c b/options-table.c index d4e7b204..6cb724cc 100644 --- a/options-table.c +++ b/options-table.c @@ -530,7 +530,7 @@ const struct options_table_entry options_table[] = { { .name = "lock-command", .type = OPTIONS_TABLE_STRING, .scope = OPTIONS_TABLE_SESSION, - .default_str = "lock -np", + .default_str = TMUX_LOCK_CMD, .text = "Shell command to run to lock a client." }, diff --git a/tmux.h b/tmux.h index ff77f780..7a61279a 100644 --- a/tmux.h +++ b/tmux.h @@ -81,6 +81,9 @@ struct winlink; #ifndef TMUX_TERM #define TMUX_TERM "screen" #endif +#ifndef TMUX_LOCK_CMD +#define TMUX_LOCK_CMD "lock -np" +#endif /* Minimum layout cell size, NOT including border lines. */ #define PANE_MINIMUM 1