1
0
Fork 0
mirror of synced 2024-11-05 01:08:59 -05:00
Commit graph

265 commits

Author SHA1 Message Date
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
Gregory Pakosz
ee1547cb6c reworked pane / tty introspection (3)
fixed _pane_info() when running under Cygwin
2021-11-09 19:03:08 +01:00
Gregory Pakosz
0ad7f141dc added word boundaries when replacing uptime_xxx variables (2)
use perl instead of sead as on macOS sed doesn't support \b to match word boundaries
2021-10-31 20:55:47 +01:00
Gregory Pakosz
0da7d5c3db reworked pane / tty introspection (2)
fixed implementation and calls to _root()
2021-10-31 18:15:24 +01:00
Gregory Pakosz
1cd8ed93d3 added support for arguments to custom variables defined in ~/.tmux.conf.local 2021-10-31 18:01:15 +01:00
Gregory Pakosz
14bd87c7b2 added word boundaries when replacing uptime_xxx variables 2021-10-31 18:01:15 +01:00
Gregory Pakosz
90cdbbc32f check connectivity to github.com before installing and/or updating tpm and plugins (2) 2021-10-22 15:32:19 +02:00
Gregory Pakosz
e8032e3ffb set default-terminal to tmux-256color when available, fixes #205, fixes #382, closes #386
see https://github.com/tmux/tmux/wiki/FAQ#i-dont-see-italics-or-italics-and-reverse-are-the-wrong-way-round
2021-10-20 19:07:23 +02:00
Gregory Pakosz
a71d0d9f8d made background sleep process exit immediately when exiting tmux, fixes #509 2021-10-19 08:25:13 +02:00
Gregory Pakosz
18775e12a4 reworked pane / tty introspection, fixes #403, fixes #458
- renamed _tty_info() to _pane_info()
- pass both #{pane_pid} and #{pane_tty} to _pane_info()
- when inspecting ps output, walk down from #{pane_pid} to the child-most pid
2021-10-15 20:07:36 +02:00
Gregory Pakosz
a976b17bed worked around Falcon.app agent slowing everything down (2), fixes #522 2021-10-06 16:28:39 +02:00
Gregory Pakosz
f8a5a08868 worked around Falcon.app agent slowing everything down, fixes #492
it appears the Falcon anti-malware product for end-points slows down ps -t /dev/ttysXXX
commands 🤷

the workaround consists in passing ttysXXX instead of /dev/ttysXXX and is achieved
by removing the /dev/ prefix in #{pane_tty} expansion with the help of formats
substitutions
2021-10-03 09:43:19 +02:00
Gregory Pakosz
df46ab2ba9 fixed tpm plugins not installing on CentOS 7, fixes #520
- drop git clone --shallow-submodules as it requires git >= 2.9.0
- display a message when one of the tpm script fails
2021-10-03 09:40:48 +02:00
Gregory Pakosz
a97e3021cc updated tpm integration
- automatically delete tpm when not used
- automatically delete unused plugins
- install plugins when subsequently enabling then in ~/.tmux.conf.local
- use <prefix> + u to update plugins as <prefix> + U is bound to Urlview, fixes #507
2021-09-18 16:35:48 +02:00
Gregory Pakosz
4f332e6b17 fixed _battery_info() when pmset doesn't report a charge percentage, fixes #512 2021-08-31 11:02:45 +02:00
Gregory Pakosz
a63dc5c6a9 check connectivity to github.com before installing and/or updating tpm and plugins, fixes #513 2021-08-30 22:23:07 +02:00
Gregory Pakosz
4ef0626b6d revert "mitigate tmux displaying its "<... not ready>" message, closes #496"
this reverts commit 67b1d38a87.

the proposed mitigation causes flickering for some, see followups in #496
2021-08-19 11:51:49 +02:00
Gregory Pakosz
67b1d38a87 mitigate tmux displaying its "<... not ready>" message, closes #496
the "flickering" perceived when the "<... not ready>" message is long won't be
totally eliminated until tmux 3.3 though (commit 38c5788232e0e3abdd08ade55a9d4fbcda637df1)
2021-07-20 10:42:21 +02:00
Gregory Pakosz
1f91646af1 replaced printf '\n' calls by echo calls, fixes #479
TPM plugins further editing status-left or status-right may alter the content
in such a way that the line feed character becomes a space
2021-05-11 09:49:33 +02:00
Gregory Pakosz
760bf4fabd made _apply_bindings() work with tmux 3.2 stock bindings, fixes #472 2021-04-25 14:42:00 +02:00
Gregory Pakosz
3bfec1a25a made version detection more robust in case tmux executable is renamed (3), fixes #462
fixed a regression introduced by commit 8aefa1e798 that breaks
version detection for tmux HEAD for which 'tmux -V' prints e.g. tmux next-3.3
2021-03-18 11:54:48 +01:00
Gregory Pakosz
8aefa1e798 made version detection more robust in case tmux executable is renamed (2), fixes #457 2021-03-12 09:57:38 +01:00
Gregory Pakosz
4868ac4bd9 worked around broken /sys/class/power_supply/<supply_name>/capacity > 100, resolves #460 2021-03-07 10:13:16 +01:00
Gregory Pakosz
a752c41bca fixed copy to os clipboard on macOS when xclip or xsel is installed, fixes #459 2021-03-04 17:55:21 +01:00
Gregory Pakosz
4bf9263fbd fixed variable replacement in tmux_conf_theme_status_right and tmux_conf_theme_status_left (2), fixes #442 2021-01-11 07:54:05 +01:00
Neil Mahoney
d2b5758bdd fix left status prefix rendering 2021-01-11 07:29:24 +01:00
Gregory Pakosz
788ffd8e6f fixed variable replacement in tmux_conf_theme_status_right and tmux_conf_theme_status_left, fixes #356 2021-01-10 16:53:12 +01:00
Frederick Zhang
41af713ff7 fixed BusyBox's tr command compatibility, fixes #441 2021-01-10 09:53:23 +01:00
Gregory Pakosz
d950ee3c8c added support for tpm, resolves #61 2021-01-09 21:04:48 +01:00
Gregory Pakosz
53d7ce8311 fixed indentation in _apply_overrides() 2020-12-13 20:50:04 +01:00
Gregory Pakosz
8df1666ddc improved status line rendering, fixes #419 (3)
fixed spacers
2020-12-12 19:35:46 +01:00
Gregory Pakosz
249f0be096 fixed use of invalid 'print' command 2020-12-12 18:38:27 +01:00
Gregory Pakosz
8a4dabb196 added support for #{hostname_full} and #{hostname_full_ssh}, closes #361 2020-12-08 22:10:36 +01:00
Gregory Pakosz
e74dc67a7d improved status line rendering, fixes #419 (2)
- do not apply attr to spacers
- fixed attr for last window, window with activity and window with bell
2020-12-05 10:33:13 +01:00
Matthew Broomfield
e3960e5347 added icon for mouse mode, fixes #295
mouse icon is to the left of the battery by default.

_toggle_mouse no longer prints a status message as the status icon
should give enough information.
2020-11-24 17:33:23 +01:00
Gregory Pakosz
8c342edc6f fixed 'tmux_conf_theme_status_right' default value, fixes #422 2020-11-04 11:31:20 +01:00
Gregory Pakosz
88a10631c0 improved status line rendering, fixes #419
- non current windows now use separators when they're enabled
- fixed style for last window, window with activity and window with bell
2020-10-31 21:21:19 +01:00
Gregory Pakosz
efee3bb4ac made version detection more robust in case tmux executable is renamed 2020-10-27 22:03:08 +01:00
Gregory Pakosz
918c0f252c fixed status line that doesn't work with tmux 2.4 2020-10-27 19:34:00 +01:00
Gregory Pakosz
a43ac95e5f fixed status line that doesn't work with tmux 2.3, fixes #418 2020-10-16 11:21:11 +02:00
Gregory Pakosz
d0e073dd08 added 'tmux_conf_theme_colour_XX' variables to ease theming
closes #189, closes #224, closes #255
2020-10-10 15:54:49 +02:00
Gregory Pakosz
e03d73df73 added support for custom variables defined in ~/.tmux.conf.local (2), fixes #417 2020-10-08 09:22:41 +02:00
Gregory Pakosz
8ffeb1d809 fixed '<prefix> + e' binding when EDITOR is set to 'gvim' or 'mvim', fixes #416 2020-10-06 08:29:52 +02:00
Gregory Pakosz
13689839d4 updated _maximize_pane() that stopped working with tmux 3.2 (2), fixes #415 2020-10-03 08:29:28 +02:00
Gregory Pakosz
8e2502abb3 added support for custom variables defined in ~/.tmux.conf.local
closes #96, closes #394
2020-10-02 23:04:33 +02:00
Gregory Pakosz
bcb071152b updated _maximize_pane() that stopped working with tmux 3.2, fixes #381 2020-09-29 22:49:41 +02:00
Gregory Pakosz
a439667d65 worked around tmux not killing jobs launched with run-shell -b, fixes #407
upon exiting, tmux < 3.2 waits for jobs ran with run-shell, even those
launched with -b

the workaround consists in still launching "heavy" jobs from the status
line with #() even though it means e.g. battery information will get
updated once per attached client
2020-09-26 23:28:28 +02:00
Gregory Pakosz
fbe2eb311d fixed window-status-current-format, fixes #390, closes #333 2020-09-18 22:09:27 +02:00
Gregory Pakosz
3c09b78aa6 replaced awk by perl in _ssh_or_mosh_args() to benefit from word boundary anchors, closes #363 2020-09-18 13:36:11 +02:00
Gregory Pakosz
8976729f4f added support for explicit 'split-window' with ssh reconnect, closes #164
tmux only allows binding to existing commands, so when the command given to
'split-window' is 'ssh' and only 'ssh', the binding is converted to a call to
_split_window_ssh()
2020-09-18 13:34:10 +02:00
Joachim Werner
39cc430268 made #{uptime_xxx} work under FreeBSD 2020-09-13 14:17:09 +02:00
Joachim Werner
b4a5d06740 made #{loadavg} work under FreeBSD 2020-09-13 14:15:58 +02:00
Gregory Pakosz
3522721c69 fixed status-left and status-right theming, fixes #397 2020-09-10 12:46:52 +02:00
Gregory Pakosz
5d895f94b7 fixed _battery_info() not accommodating for empty lines, fixes #377 2020-09-02 11:20:23 +02:00
Gregory Pakosz
d357ae54ee removed useless tests in _battery_info() 2020-09-02 11:20:23 +02:00
Gregory Pakosz
a8081d87be fixed tmux_conf_new_window_retain_current_path and tmux_conf_new_pane_retain_current_path not working under Cygwin and MSYS2 2020-09-02 11:20:23 +02:00
Gregory Pakosz
9e25f3a550 fixed _apply_bindings() to support paths with spaces
_split_window() needs to be given -c '#{pane_current_path}', properly quoted
2020-09-02 11:20:19 +02:00
Gregory Pakosz
cb2bd9f378 made #{loadavg} work under Cygwin 2020-09-02 11:19:58 +02:00
Gregory Pakosz
7a64679c2d fixed #{username} being truncated under Cygwin 2020-09-02 11:19:58 +02:00
Gregory Pakosz
74602e8d8d implemented poor man's pkill 2020-09-02 11:19:58 +02:00
Gregory Pakosz
98c7467194 launch _battery_bar() background job only if a battery is present 2020-09-02 11:19:58 +02:00
Gregory Pakosz
f7e383460d moved pkill calls outside of case blocks
otherwise if you change tmux_conf_theme_status_left or tmux_conf_theme_status_right
and remove #{uptime_x}, #{loadavg} or #{battery_xxx} variables you end up with
stray jobs running in the background
2020-09-02 11:19:58 +02:00
Gregory Pakosz
eae2cf27fb optimized _apply_theme() to launch background jobs straight from _apply_configuration()
tmux doesn't share jobs between clients, and when multiple clients are attached
the _load_avg(), _uptime() and _battery_bar() jobs get spawned once per client
attached, which is wasteful
2020-09-02 11:19:58 +02:00
Gregory Pakosz
22de553361 optimized _tty_info() 2020-09-02 11:19:58 +02:00
Gregory Pakosz
7d02a72a46 rewrote _apply_theme() to minimize the number of external calls 2020-09-02 11:19:58 +02:00
Gregory Pakosz
20fa97e310 optimized _ssh_or_mosh_args() by deferring calls to external programs 2020-09-02 11:19:58 +02:00
Gregory Pakosz
03d9514071 optimized _username() and _hostname() by removing some calls to external programs 2020-09-02 11:19:58 +02:00
Gregory Pakosz
cdda729983 made _ssh_or_mosh_args() consume output of _tty_info() directly 2020-09-02 11:19:58 +02:00
Gregory Pakosz
d6ea9ad9c7 split _battery() into _battery_status() and _battery_bar() to refresh #{battery_status} more quickly 2020-09-02 11:19:58 +02:00
Gregory Pakosz
89bc03c612 made use of #{==:a,b} to implement #{root} when available
compare the output of _username() to 'root' instead of deferring to the _root()
helper
2020-09-02 11:19:58 +02:00
Gregory Pakosz
f54cede368 pass $tmux_conf_theme_root to the _root() helper instead of using a tmux variable 2020-09-02 11:19:58 +02:00
Gregory Pakosz
f657d6959c made battery, loadavg and uptime update with low process priority 2020-09-02 11:19:58 +02:00
Gregory Pakosz
5447e9fbf5 made theme settings apply in background to speed up startup time 2020-09-02 11:19:58 +02:00
Gregory Pakosz
3676bfc648 made loadavg status update at most every 'status-interval' seconds
also, stopped updating when no client is attached
2020-09-02 11:19:58 +02:00
Gregory Pakosz
8a5ae4f9fc made uptime status update at most every minute or every 'status-interval' seconds
depending on whether '#{uptime_s}' is being used
also, stopped updating when no client is attached
2020-09-02 11:19:58 +02:00
Gregory Pakosz
94eab29107 made battery status update at most every minute
also, stopped updating when no client is attached
2020-09-02 11:19:58 +02:00
Gregory Pakosz
cba2a6c1ec added _uname_s global variable 2020-09-02 11:19:58 +02:00
Gregory Pakosz
71d5e1caa1 sent polyglot heredoc to ':' instead of 'cat > /dev/null'
forking to cat, just to write to /dev/null is wasteful
2020-09-02 11:19:58 +02:00
Gregory Pakosz
9b5f5155b3 updated _apply_configuration() to redact tmux_conf_ variables from environment in a single call 2020-09-02 11:19:58 +02:00
Gregory Pakosz
5cc1fe9a12 removed subshell invocations from _is_enabled() 2020-09-02 11:19:58 +02:00
Gregory Pakosz
49e55bac06 aligned default tmux_conf_xxx variables with their .tmux.conf.local sample counterpart 2020-09-02 11:19:58 +02:00
Gregory Pakosz
905122d13c restored tmux_conf_new_pane_retain_current_path default value in .tmux.conf, fixes #364 2020-09-02 11:18:58 +02:00
Gregory Pakosz
d6f0f647dd improved error bypass logic in _apply_bindings() (2), fixes #331
source-file -v is not documented in tmux CHANGES but in fact appeared in tmux 3.0
2020-03-18 14:30:20 +01:00
Gregory Pakosz
4919400fe2 improved error bypass logic in _apply_bindings(), fixes #330 2020-03-17 20:13:19 +01:00
Gregory Pakosz
57eeffcf0e raised _maximize_pane() retry count and sleep duration, fixes #328
this helps when running under WSL where fork() is slow
2020-03-11 15:10:58 +01:00
Gregory Pakosz
a83ba39f09 fixed _tty_info() to properly discard daemons and their children, fixes #320 2020-02-29 22:18:04 +01:00
Gregory Pakosz
f4fc2730cf rewrote _apply_bindings() to support new tmux 3.0 bindings (4)
failed to source the proper modified file, fixes #303
2019-12-09 22:03:26 +01:00
Gregory Pakosz
1cf813fa8b rewrote _apply_bindings() to support new tmux 3.0 bindings (3)
reading and writing to the modified list-keys' output gave the illusion it worked
2019-11-30 19:50:58 +01:00
Gregory Pakosz
92ed649597 made requirements explicit in both README.md and .tmux.conf 2019-11-30 15:49:06 +01:00
Gregory Pakosz
6815beef4f afer the _apply_bindings() rewrite, perl has become mandatory 2019-11-30 15:48:40 +01:00
Gregory Pakosz
1231155600 warn users about tmux >= 2.4 only when starting tmux 2019-11-30 15:48:04 +01:00
Gregory Pakosz
c94f05f044 rewrote _apply_bindings() to support new tmux 3.0 bindings (2)
patch the output of 'tmux list-keys' right before sourcing back
2019-11-30 15:45:23 +01:00
Gregory Pakosz
489cde73fc fixed broken status line separator default values 2019-11-29 21:15:14 +01:00
Gregory Pakosz
a9b526c9a2 rewrote _apply_bindings() to support new tmux 3.0 bindings, fixes #254
moved away from the eval madness, now current bindings are saved to a temporary
file before being altered with perl
2019-11-27 14:46:11 +01:00
Gregory Pakosz
01c91ba523 warn users this configuration will soon require tmux >= 2.4 2019-09-04 19:09:59 +02:00
Gregory Pakosz
9cb275378e fixed status line configuration when only using #{uptime_s} 2019-07-28 13:34:21 +02:00
Gregory Pakosz
e0a45082eb added support for #{uptime_y} variable 2019-06-22 21:48:03 +02:00
Gregory Pakosz
d2df5cf4d4 always use grep -E for regular expression and unset GREP_OPTIONS, fixes #252 2019-06-22 14:27:03 +02:00
Gregory Pakosz
685c74128e implemented Unicode 4-digit and 8-digit parsing, resolves #148 and resolves #167
some examples:
- \u23f0 will be converted to the alarm clock symbol 
- \U1f47d will be converted to the alien emoji 👽
2019-06-09 17:47:23 +02:00
Gregory Pakosz
915d4a3960 made workaround for implementations of sed that don't understand -E more robust
also made it compatible with POSIX shells
2019-06-09 15:49:45 +02:00