tpm icon indicating copy to clipboard operation
tpm copied to clipboard

Update `docs/automatic_tpm_installation.md`

Open pacifi5t opened this issue 1 year ago • 3 comments

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.

pacifi5t avatar May 25 '24 09:05 pacifi5t

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

RossBarnie avatar Jun 04 '24 10:06 RossBarnie

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.

pacifi5t avatar Jun 04 '24 15:06 pacifi5t

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?

MartyMcFlyInTheSky avatar Jul 31 '24 13:07 MartyMcFlyInTheSky