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

221 commits

Author SHA1 Message Date
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
Gregory Pakosz
8f808316b1 fixed ssh reconnection when pane runs a remote command 2019-06-09 12:21:40 +02:00
Gregory Pakosz
ffc2dfbe78 made _apply_bindings() more robust 2019-06-09 11:42:38 +02:00
Gregory Pakosz
67c22c2700 worked around implementations of sed that don't understand -E, resolves #150 2019-05-19 21:42:14 +02:00
Gregory Pakosz
8809af7c9f prevented ps from truncating username in its output, resolves #241 2019-05-06 22:41:00 +02:00
Gregory Pakosz
ef8962bb39 bind y to pbcopy when reattach-to-username is not present 2019-05-06 22:40:33 +02:00
Gregory Pakosz
e631331281 fixed buggy battery detection logic, likely fixes #233 2019-05-06 22:39:18 +02:00
Gregory Pakosz
9fbde7b9b1 fixed the _tty_info() and _ssh_or_mosh_args() helpers logic
- filtered ssh master connections in _tty_info()
- filtered processes reparented to pid 1
2019-05-04 10:00:52 +02:00
Gregory Pakosz
e1452f1242 worked around tmux 2.9 "style inheritance" behavior change, fixes #237 2019-04-25 09:29:48 +02:00
Gregory Pakosz
352dfed5e2 refactored #{username}, #{username_ssh}, #{hostname} and #{hostname_ssh}
- improved and extracted pane current command introspection into the _tty_info() helper
- added Mosh support to #{username_ssh} and #{hostname_ssh}. Fixes #127
2019-01-05 17:32:54 +01:00
Gregory Pakosz
3e649a58dd renamed _circled_digit() to _circled() as it goes up to 20 2018-12-31 10:38:49 +01:00
Gregory Pakosz
ffb1c54769 Revert "do not use repeatable bindings for pane and windows navigation. Fixes #166"
This reverts commit 7ebc59956a.
2018-08-21 22:46:02 +02:00
Gregory Pakosz
b3a9f75ea6 made window titles support additional variables. Fixes #178
tmux_conf_theme_window_status_format and tmux_conf_theme_window_status_current_format
variables now understand:
  - #{circled_session_name}
  - #{hostname}
  - #{hostname_ssh}
  - #{username}
  - #{username_ssh}
2018-08-11 16:54:07 +02:00
Gregory Pakosz
3d706977c8 added tmux_conf_theme_terminal_title. Fixes #168 2018-08-11 16:52:48 +02:00
Divo Kaplan
6679c0af2c Fixed missing vi-copy / copy-mode-vi H/L keybindings. Fixes #175 2018-08-09 11:32:26 +02:00
Gregory Pakosz
08334a6451 accomodate for slow shell init in _maximize_pane(). Fixes #170 2018-08-06 08:49:58 +02:00
Gregory Pakosz
7ebc59956a do not use repeatable bindings for pane and windows navigation. Fixes #166 2018-08-06 08:49:58 +02:00
Eric Renfro
105fb54755
Added syncing indicator to tmux status line
This checks for if the panes are synced or not, and provides and
indicator resembling it in  the status bar.
2018-08-05 11:30:54 -04:00
Gregory Pakosz
8481ec351b do not take into account peripheral device batteries when computing battery charge, fixes #161 2018-05-28 08:54:32 +02:00
Gregory Pakosz
faece14dbd improved 24b colours override 2018-03-05 21:17:24 +01:00
Gregory Pakosz
7f20c79d46 made heat battery palette more visible by removing darker shades. Fixes #138 2018-01-16 17:45:43 +01:00
Gregory Pakosz
e1c968d020 removed trailing 'set -x' / 'set +x' debug code 2017-12-19 08:01:27 +01:00
Gregory Pakosz
5907c00039 fixed stderr redirection bug in _maximize_pane(). Fixes #116 2017-11-18 12:40:43 +01:00
Gregory Pakosz
4cf765468a fixed bindings reinjection when tmux_conf_new_pane_reconnect_ssh=true. Fixes #115 2017-11-17 09:15:39 +01:00
Gregory Pakosz
89465385db replace 'export LC_ALL=C' with 'export LC_NUMERIC=C'. Fixes #108 and #110 2017-10-14 23:44:53 +02:00
Gregory Pakosz
a071b001cf export LC_ALL=C to avoid decimal separator issues 2017-09-26 21:42:00 +02:00
Gregory Pakosz
2849c14e0c fixed maximize pane not supporting session names with spaces 2017-09-26 21:42:00 +02:00
Gregory Pakosz
7cdc172e22 properly quote %% when prompting for session name 2017-09-08 23:36:41 +02:00
Gregory Pakosz
9d5817bb01 dual licensed under both the WTFPLv2 and MIT licenses. Resolves #102 2017-08-20 21:03:44 +02:00
Gregory Pakosz
10a445b491 wait a bit more between sending C-l to the terminal and clearing tmux history 2017-07-21 09:18:10 +02:00
Gregory Pakosz
e7cbc84bed removed tmux <= 2.0 feature tests that cause orphan processes when using oh-my-zsh. Fixes #84 and #88 (2) 2017-07-17 12:04:55 +02:00
Gregory Pakosz
03ec982a50 simplified _toggle_mouse() implementation 2017-07-09 10:52:56 +02:00
Gregory Pakosz
513e77b03b made bindings reinjection more robust. Closes #89 2017-06-26 20:45:29 +02:00
Gregory Pakosz
09fc3d5b48 fixed battery status information on macOS. Fixes #91 (2) 2017-06-26 13:30:31 +02:00
Gregory Pakosz
98a896bc69 fixed tmux_conf_copy_to_os_clipboard on Linux when xclip is installed and not xsel 2017-06-26 07:35:21 +02:00
Gregory Pakosz
27b262fda8 fixed battery status information on macOS. Fixes #91 2017-06-25 11:41:11 +02:00
Gregory Pakosz
6fc4ad76b7 removed tmux <= 2.0 feature tests that cause orphan processes when using oh-my-zsh. Fixes #84 and #88 (2) 2017-06-22 21:36:46 +02:00
Gregory Pakosz
68f1509735 removed tmux <= 2.0 feature tests that cause orphan processes when using oh-my-zsh. Fixes #84 and #88 2017-06-21 22:03:43 +02:00
Gregory Pakosz
15f03e7ce6 fixed #{username} broken under Cygwin 2017-06-21 22:03:42 +02:00
Gregory Pakosz
32c14a61c6 made battery and uptime work under MSYS2 / MINGW 2017-06-21 22:03:42 +02:00
Gregory Pakosz
680783c91b added support for multiple batteries, resolves #73 2017-06-21 22:03:42 +02:00
Gregory Pakosz
a631d03b29 use grep -E instead of egrep as per shellcheck SC2196 warning 2017-06-21 22:03:42 +02:00
Gregory Pakosz
cb4ded9fcb moved buffer bindings to a dedicated section 2017-06-21 22:03:42 +02:00
Gregory Pakosz
7f48779a22 generalized options affecting bindings by parsing the output of tmux list-keys
and reinjecting modified commands into tmux bind-key, closes #68

applies to:
- tmux_conf_new_window_retain_current_path
- tmux_conf_new_pane_retain_current_path
- tmux_conf_new_pane_reconnect_ssh
- tmux_conf_copy_to_os_clipboard
2017-06-21 22:03:21 +02:00
Gregory Pakosz
264a577ba1 added tmux_conf_copy_to_os_clipboard variable, closes #75
When true, copying selection with y in copy mode also sends selection to the OS
clipboard.
2017-05-17 22:23:23 +02:00