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