From e327e66c026e3513ff881e3935018e1041b0eb3e Mon Sep 17 00:00:00 2001 From: Wes Key <2540699+chopnico@users.noreply.github.com> Date: Fri, 24 Dec 2021 06:57:30 -0500 Subject: [PATCH] removed checks and updated read me - checks have been removed to in favor of conditional plugin loading - .gitignore has been updated to ignore .tmp files - main README has been updated to reflect conditional plugin loading - tmux-autoattach plugin README has been updated to reflect conditional plugin loading options --- .gitignore | 1 + README.md | 10 ++++++ plugins/tmux-autoattach/README.md | 36 ++++++++++++++++--- .../tmux-autoattach/tmux-autoattach.plugin.sh | 18 +++++----- 4 files changed, 51 insertions(+), 14 deletions(-) diff --git a/.gitignore b/.gitignore index 08deb60..103c982 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,4 @@ *.swp *.disabled .idea/ +*.tmp diff --git a/README.md b/README.md index fb1e242..3876cfd 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,16 @@ For example, this line might begin to look like this: plugins=(git bundler osx rake ruby) ``` +##### With Conditionals + +You may want to control when and/or how plugins should be enabled. + +For example, if you want the `tmux-autoattach` plugin to only run on SSH sessions, you could employ a trivial conditional that checks for the `$SSH_TTY` variable. Just make sure to remove the plugin from the larger plugin list. + +``` bash +[ "$SSH_TTY" ] && plugins+=(tmux-autoattach) +``` + #### Using Plugins Most plugins (should! we're working on this) include a __README__, which documents how to use them. diff --git a/plugins/tmux-autoattach/README.md b/plugins/tmux-autoattach/README.md index a71cd69..4b88833 100644 --- a/plugins/tmux-autoattach/README.md +++ b/plugins/tmux-autoattach/README.md @@ -6,7 +6,35 @@ This tmux plugin will automatically attach a tmux session to your shell session. #### OSH_PLUGIN_TMUX_AUTOATTACH_BEHAVIOR -| Setting | Description | -|---------|------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `exit` | This will completely close out your shell session, including your terminal, but keep your tmux sessions intact. This will also close your session if you detach. | -| `detach` (default) | This will allow you to detach from the tmux screen without closing the terminal or shell session. | +| Setting | Description | +|--------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `detach` (default) | This will allow you to detach from the tmux screen without closing the terminal or shell session. | +| `exit` | This will completely close out your shell session, including your terminal, but keep your tmux sessions intact. This will also close your session if you detach. | + +## Common Enable Conditions + +*Note* If you prefer to manually start your desktop session using tools like `startx`, you may run into problems starting your desktop session inside of a tmux terminal. You can employ conditionals to control when this plugin should be enabled. + +**SSH** + +```bash +[ "$SSH_TTY" ] && plugins+=(tmux-autoattach) +``` + +**Wayland** + +```bash +[ "$DISPLAY_WAYLAND" ] && plugins+=(tmux-autoattach) +``` + +**X11** + +```bash +[ "$DISPLAY" ] && plugins+=(tmux-autoattach) +``` + +**Multiple** + +```bash +{ [ "$DISPLAY" ] || [ "$SSH" ]; } && plugins+=(tmux-autoattach) +``` diff --git a/plugins/tmux-autoattach/tmux-autoattach.plugin.sh b/plugins/tmux-autoattach/tmux-autoattach.plugin.sh index db54c7c..41f200a 100644 --- a/plugins/tmux-autoattach/tmux-autoattach.plugin.sh +++ b/plugins/tmux-autoattach/tmux-autoattach.plugin.sh @@ -14,13 +14,11 @@ _osh_plugin_tmux_autoattach_detach() { [ -z "$TMUX" ] && tmux -2u new -A } -if [ "$DISPLAY" ] || [ "$WAYLAND_DISPLAY" ] || [ "$SSH_TTY" ]; then - case "$OSH_PLUGIN_TMUX_AUTOATTACH_BEHAVIOR" in - "exit") - _osh_plugin_tmux_autoattach_exit - ;; - "detach" | *) - _osh_plugin_tmux_autoattach_detach - ;; - esac -fi +case "$OSH_PLUGIN_TMUX_AUTOATTACH_BEHAVIOR" in + "exit") + _osh_plugin_tmux_autoattach_exit + ;; + "detach" | *) + _osh_plugin_tmux_autoattach_detach + ;; +esac