Commit Graph
100 Commits
Author SHA1 Message Date
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 67d1c23dca updated installation instructions, closes #348 (2)
fixed typo
2020-09-22 10:20:22 +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
Gregory Pakosz 17b9a7a59a enabled GitHub sponsors, closes #339 2020-09-16 22:05:39 +02:00
Gregory Pakosz 0cdd643d6d Merge branch 'loadavg-uptime-freebsd' into master, closes #293 2020-09-13 14:19:10 +02:00
Gregory Pakosz 3522721c69 fixed status-left and status-right theming, fixes #397 2020-09-10 12:46:52 +02:00
Gregory Pakosz f1db02086f updated README.md to mention strftime(3) peculiarities, closes #309 2020-09-07 23:24:19 +02:00
Gregory Pakosz 3648465c33 added a sleep call to the wttr.in example to throttle network requests, closes #297 2020-09-07 15:57:58 +02:00
Gregory Pakosz 450d3362b5 updated installation instructions, closes #348 2020-09-06 20:32:13 +02:00
Gregory Pakosz c1a8b62893 Merge branch 'optimizations' into master
closes #50, closes #247
2020-09-05 17:20:15 +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 96007b3464 updated README.md with instructions for Powerline symbols with iTerm2, resolves #270 2019-07-31 22:03:13 +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 6bb3f0fd43 added .gitattributes to make sure .tmux.conf and .tmux.conf.local have LF line endings, resolves #235 2019-04-23 14:04:25 +02:00
Gregory Pakosz 2a22e8b583 mentioned strftime '%I:%M %p' format in tmux_conf_theme_clock_style documentation 2019-03-19 22:42:31 +01:00
Gregory Pakosz 2b0cb0b43c updated README.md to show how to 'curl wttr.in' to display weather, resolves #71 2019-02-03 11:19:53 +01: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
Gregory PakoszandGitHub 862c22cd3f Merge pull request #176 from DivoK/master
Fixed missing vi-copy / copy-mode-vi H/L keybindings.
2018-08-09 11:35:46 +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
Gregory PakoszandGitHub ac61dd04e0 Merge pull request #172 from erenfro/erenfro/add-syncing-indicator
Added syncing indicator to tmux status line
2018-08-06 08:47:28 +02: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 dd74d33bee fixed typo in README.md 2018-02-04 21:44:59 +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 08f442bd0a updated README.md with pane splitting commands. Fixes #124 2017-12-17 11:10:40 +01:00
Gregory Pakosz e76d0fc8d9 fixed README.md still mentioning 'vi-copy', 'vi-edit' and 'vi-choice' mode keys. Fixes #121 2017-11-29 21:43:24 +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 51cef6f32a added space to default tmux_conf_theme_pairing and tmux_conf_theme_prefix likely rendered as double width emojis 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