1
0
Fork 0
mirror of synced 2024-11-18 07:25:34 -05:00
Commit graph

264 commits

Author SHA1 Message Date
Gregory Pakosz
7706ab724f when lsof cannot be found in PATH, search in /usr/local/bin, /usr/bin, /bin, /usr/sbin and /sbin
this helps using tmux as a default shell on macOS where PATH is initially set to /usr/bin:/bin

resolves #587
2023-04-01 17:28:57 +02:00
Gregory Pakosz
55d47e9c15 added support for connecting to the same host when creating a new window from a pane running an SSH session, resolves #632
see tmux_conf_new_window_reconnect_ssh

also fixed toggling tmux_conf_xxx_reconnect_ssh back and forth
2023-04-01 16:54:17 +02:00
Gregory Pakosz
79430acd85 added (back) window bell and window zoomed flags, resolves #628 2023-03-31 20:39:24 +02:00
Gregory Pakosz
a989554fbc added support for configuration files in the following locations: (3), fixes #631
- ~/.tmux.conf and ~/.tmux.conf.local
- $XDG_CONFIG_HOME/tmux/tmux.conf and $XDG_CONFIG_HOME/tmux/tmux.conf.local
- ~/.config/tmux/tmux.conf and ~/.config/tmux/tmux.conf.local

Oh my tmux! now relies on setting @tpm_plugins so as to not impose its opinions
on TPM and its way of discovering sourced tmux configuration tiles

do not unset '@tpm_plugins' once initial setup is done as it prevents the update
plugins binding from working
2023-03-06 14:51:14 +01:00
Gregory Pakosz
96b36d4bbe added support for configuration files in the following locations: (2), fixes #630
- ~/.tmux.conf and ~/.tmux.conf.local
- $XDG_CONFIG_HOME/tmux/tmux.conf and $XDG_CONFIG_HOME/tmux/tmux.conf.local
- ~/.config/tmux/tmux.conf and ~/.config/tmux/tmux.conf.local

fixed TMUX_PLUGIN_MANAGER_PATH when installed in ~

also made TMUX_PLUGIN_MANAGER_PATH available in the environment of the first created pane
2023-03-06 10:06:51 +01:00
Gregory Pakosz
5f54ee9852 implemented poor man's pkill (2)
disabled SC2009

SC2009 (info): Consider using pgrep instead of grepping ps output
2023-03-05 17:26:21 +01:00
Gregory Pakosz
0f6b28e1e9 fixed SC2268 violation
SC2268 (style): Avoid x-prefix in comparisons as it no longer serves a purpose
2023-03-05 17:26:21 +01:00
Gregory Pakosz
1f5a064820 updated _username() in when the ssh client doesn't support %r in ProxyCommand (2)
disabled SC2086 violation

SC2086 (info): Double quote to prevent globbing and word splitting
2023-03-05 17:26:21 +01:00
Gregory Pakosz
3994ce38d8 fixed shellcheck SC2059 violation
SC2059 (info): Don't use variables in the printf format string. Use printf '..%s..' "$foo"
2023-03-05 17:26:21 +01:00
Gregory Pakosz
adf2e0caec fixed shellcheck SC2015 violation
SC2015 (info): Note that A && B || C is not if-then-else. C may run when A is true
2023-03-05 17:26:21 +01:00
Gregory Pakosz
28d6670bb9 reworked pane / tty introspection (3)
fixed SC2154 violation

SC2154 (warning): pane_id is referenced but not assigned
2023-03-05 17:26:21 +01:00
Gregory Pakosz
f930dbe12a updated _maximize_pane() that stopped working with tmux 3.2 (2)
fixed SC2014 violation

SC2034 (warning): current_pane_height appears unused. Verify use (or export if used externally)
2023-03-05 17:26:21 +01:00
Gregory Pakosz
f27641c846 turn off history substitution in case it's been enabled (3)
disabled SC3041 violation and fixed SC2015 violation

SC3041 (warning): In POSIX sh, set flag -H is undefined

SC2015 (info): Note that A && B || C is not if-then-else. C may run when A is true
2023-03-05 17:26:21 +01:00
Gregory Pakosz
b17d57f325 added support for configuration files in the following locations:
- ~/.tmux.conf and ~/.tmux.conf.local
- $XDG_CONFIG_HOME/tmux/tmux.conf and $XDG_CONFIG_HOME/tmux/tmux.conf.local
- ~/.config/tmux/tmux.conf and ~/.config/tmux/tmux.conf.local

location of configuration files is determined by the following environment variables:
- TMUX_CONF
- TMUX_CONF_LOCAL

the TMUX_PROGRAM environment variable contains the path to the tmux executable

resolves #200, resolves #221, resolves #439, resolves #586, resolves #624
2023-03-05 17:26:21 +01:00
Gregory Pakosz
c5f598ea86 added tmux_conf_theme that controls whether theming is enabled or disabled (2), fixes #629 2023-03-05 17:26:21 +01:00
Gregory Pakosz
f242584ba3 updated _ssh_or_mosh_args() (2), fixes #627
do not try to ignore the command if supplied

parsing the ssh command line is brittle and people sometimes pass
options after user@hostname, e.g.

ssh -p 222 user@hostname -I /usr/lib/x86_64-linux-gnu/pkcs11/opensc-pkcs11.so
2023-02-23 08:43:20 +01:00
Gregory Pakosz
537b276d74 make sure to use /usr/bin/infocmp to probe if tmux-256color is available system wide (5), fixes #626
bail out if default-terminal is already globally set to tmux-256color or tmux-direct
2023-02-22 16:26:15 +01:00
Gregory Pakosz
12f96dac7c make sure to use /usr/bin/infocmp to probe if tmux-256color is available system wide (4), fixes #619
fixed $uname_s typo
2023-01-25 09:14:47 +01:00
Gregory Pakosz
de1031a7d4 make sure to use /usr/bin/infocmp to probe if tmux-256color is available system wide (3), fixes #618
infocmp may not exist or may return a non 0 exit status which would abort _apply_configuration()
because of set -e
2023-01-23 16:19:58 +01:00
Gregory Pakosz
044d6336e8 make sure to use /usr/bin/infocmp to probe if tmux-256color is available system wide (2), fixes #617
some operating systems like NixOS don't have /usr/bin/infocmp
2023-01-22 09:55:38 +01:00
Gregory Pakosz
2cf4d9a104 make sure to use /usr/bin/infocmp to probe if tmux-256color is available system wide
on macOS, here are the steps to install tmux-256color system wide
$ $(brew --prefix ncurses)/bin/infocmp tmux-256color > /tmp/tmux-256color.info
$ /usr/bin/tic -x /tmp/tmux-256color.info

which will install tmux-256color in ~/.terminfo/74/tmux-256color

resolves #530, resolves #592, resolves #601
2023-01-09 10:39:40 +01:00
Gregory Pakosz
72f09fae75 added tmux_conf_theme that controles whether theming is enabled or disabled, resolves #536 2023-01-04 11:26:39 +01:00
Gregory Pakosz
cca37fb84e split _battery() into _battery_status() and _battery_bar() to refresh #{battery_status} more quickly (2) 2023-01-04 11:26:39 +01:00
Gregory Pakosz
5c41188a31 removed support for tmux < 2.4 2023-01-04 11:26:39 +01:00
Gregory Pakosz
5641d3b3f5 fixed custom variables detection, fixes #613 2022-11-05 19:14:00 -07:00
Gregory Pakosz
fa601ed607 bind p to paste-buffer -p to match tmux defaults, closes #610
see https://github.com/tmux/tmux/issues/2248#issuecomment-638329932
2022-10-26 09:16:42 +02:00
sarumont
ccbfdf2091 added support for wl-clipboard, closes #589, closes #606
see https://github.com/bugaevc/wl-clipboard
2022-10-22 13:44:55 +02:00
Luis Davim
562f9c128e fixed <prefix>+e not working when EDITOR is set to 'emacsclient -t' and the default shell is zsh (2), fixes #593
${EDITOR//gvim/vim} and ${EDITOR//mvim/vim} have been introduced to fix #416,
however the replace all substitution is not POSIX and is not supported by termux
or dash

the proper fix for #416 is to set EDITOR to 'gvim -f' or 'mvim -f'
2022-08-20 02:23:05 +02:00
Gregory Pakosz
5fa30deb20 fixed <prefix>+e not working when EDITOR is set to 'emacsclient -t' and the default shell is zsh, fixes #591 2022-08-18 17:21:47 +02:00
Gregory Pakosz
b620a4f0fb turn off history substitution in case it's been enabled (2), fixes #583
dash considers "set +H" is a syntax error and doesn't even evaluate the " || true" part
the workaround consists in trying "set +H" in a subshell first
2022-08-01 17:19:47 +02:00
Gregory Pakosz
68a909d4ca turn off history substitution in case it's been enabled, closes #582 2022-08-01 01:39:12 +02:00
Gregory Pakosz
18a111ff93 added a way to mark set/bind/unbind commands as important in ~/.tmux.conf.local, closes #571
inspired by css, any set/bind/unbind command ending with #!important will be
executed honored, e.g.:

bind-key -T copy-mode-vi Escape send-keys -X clear-selection #!important
2022-07-20 21:11:24 +02:00
Gregory Pakosz
e865a8a1c1 added a way to selectively disable binding manipulation, closes #514
you can set the following variables to 'disabled':
  - tmux_conf_new_window_retain_current_path
  - tmux_conf_new_pane_retain_current_path
  - tmux_conf_new_pane_reconnect_ssh
  - tmux_conf_new_session_prompt
  - tmux_conf_copy_to_os_clipboard
2022-07-14 16:50:58 +02:00
Gregory Pakosz
b69ae7c1a4 reworked pane / tty introspection (5), fixes #573 2022-06-20 22:02:25 +02:00
Gregory Pakosz
f1cc46812b added RGB 24-bit colour support automatic detection 2022-05-23 08:08:33 +02:00
Alan Oliveira
6242e4974f pass #{pane_current_path} to _fpp() and then to split-window 2022-05-23 08:08:14 +02:00
Gregory Pakosz
9a2387c0c7 added support for arguments to custom variables defined in ~/.tmux.conf.local (2), fixes #547 2022-01-14 09:11:33 +01:00
Gregory Pakosz
b3915221f8 added the '<prefix> + Shift + Tab' binding to move to the last session 2022-01-11 18:21:48 +01:00
Gregory Pakosz
05d73a54ed made tpm integration and patching more robust, fixes #540 2021-12-13 08:40:09 +01:00
Gregory Pakosz
96d085eaa7 made _apply_bindings() work with tmux 3.4 stock bindings, fixes #541 2021-12-10 16:22:28 +01:00
Gregory Pakosz
985d64c82e Revert "use send-keys -R to clear terminal and remove the sleep call", fixes #538
Instead, increase the sleep delay
2021-11-30 07:28:16 +01:00
Gregory Pakosz
a453b7fe60 use send-keys -R to clear terminal and remove the sleep call 2021-11-29 22:24:48 +01:00
Gregory Pakosz
0fe760fa6d reworked pane / tty introspection (4), fixes #535
fixed _split_window_ssh()
2021-11-19 14:07:26 +01:00
Gregory Pakosz
d471ccc068 updated _username() in when the ssh client doesn't support %r in ProxyCommand
in such a case, we use -o IdentityFile='%%username%%/%r' and parse the output of ssh -v
2021-11-16 23:33:01 +01:00
Gregory Pakosz
c6bab99f05 updated _ssh_or_mosh_args()
relaxed the regex to accommodate for renamed ssh clients and to ignore the command if supplied
2021-11-16 14:59:03 +01:00
Gregory Pakosz
1ef9b68d80 improved _pane_info() accuracy by excluding ssh proxy connections, tee, and only
considering the first child of a process

ps output is sorted by controlling terminal then pid

in case of a cmd1 | cmd2 | cmd3 pipe chain, we only consider the first child of
the parent process, which is cmd1 in the majority of cases

the rare situation when pids wrap around isn't worth additional work

on Linux
  - we sort ps output by lstart in hope precision is enough to make cmd1 always
    appear first even when pids wrap around
  - the more complex solution involves inspecting /proc/<pid>/fd/0 to filter out
    processes being piped to

finally, while lsof was promising, it won't list processes owned by other users
unless run as root
2021-11-16 14:59:03 +01:00
Gregory Pakosz
69f744117a updated tpm integration to display a message when one or more plugin(s) fails to run, closes #533 2021-11-16 14:58:30 +01:00
Gregory Pakosz
24f1222307 made background sleep process exit immediately when exiting tmux (2)
tmux < 2.8 doesn't support #{l:...}
2021-11-09 19:47:01 +01:00
Gregory Pakosz
c4220639ff worked around Falcon.app agent slowing everything down (3)
tmux < 2.8 doesn't support regex substitutions so we use basename substitution instead
2021-11-09 19:07:49 +01:00
Gregory Pakosz
2751c215a1 do not unset @tpm-install, @tpm-update, @tpm-clean and @plugin variables after tpm has launched, fixes #531 2021-11-09 19:07:19 +01:00