Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update docs/automatic_tpm_installation.md #287

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

pacifi5t
Copy link

Hi there!

I was creating my own tmux config recently and added a snippet to install tpm automatically if it's not installed yet. But I think it's a bit overcomplicated, and tmux manual mentions using braces:

Braces are parsed as a configuration file (so conditions such as ‘%if’ are processed)
and then converted into a string.  They are designed to avoid the need for additional
escaping  when  passing  a  group  of  tmux  commands  as an argument (for example to
if-shell).  These two examples produce an identical command - note that  no  escaping
is needed when using {}:

      if-shell true {
           display -p 'brace-dollar-foo: }$foo'
      }
      
      if-shell true "display -p 'brace-dollar-foo: }\$foo'"

So, I replaced the snippet in the docs:

if "test ! -d ~/.tmux/plugins/tpm" \
   "run 'git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm && ~/.tmux/plugins/tpm/bin/install_plugins'"

with this one:

if "test ! -d ~/.tmux/plugins/tpm" {
  run "mkdir -p ~/.tmux/plugins"
  run "git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm"
  run "~/.tmux/plugins/tpm/bin/install_plugins"
}

I tried it on a bunch of machines, and it works, so I guess I should share this.

@RossBarnie
Copy link

Aren't the original and yours functionally identical? I'm not sure what problem is being solved here.

@pacifi5t
Copy link
Author

pacifi5t commented Jun 4, 2024

Yes, they are functionally identical. Except I added mkdir just in case. So, it doesn't solve any problem, but I think my snippet is more readable and less complex than the current one.

@MartyMcFlyInTheSky
Copy link

MartyMcFlyInTheSky commented Jul 31, 2024

Nice one, I think I'm going to use it. The one problem I have is that I deploy my dotfiles in /tmp on our productive servers to make use of the configs, however what happens when I change the local tmux config and sync up to github, my remote dotfiles need to also install some new tmux plugins occasionally. I would love to have a function to update / install tmux plugins silently whenever I attach to a session. Is that possible somehow?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants