this post was submitted on 09 Sep 2023
41 points (97.7% liked)

Linux

47237 readers
3343 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

I have a nice bash alias for tmux which opens a new window and directly ssh to whatever I specify

function s() {
    tmux neww -n "$1" -- ssh "$1"
}

I want to also have something similar directly as an alias in tmux, so I can do C-b :s myhost when I'm already in a ssh to another server, instead of having to change windows, and then run s myhost in bash.

I tried using tmux's confiug to do various variations of

set -s command-alias[100] s='run s'

Also using directly ssh, or without using run etc. But I can't figure it out.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 8 points 1 year ago

In tmux, you usually set configuration options with set -g in tmux.conf. "-g" sets a global option which will apply to all new windows and sessions, otherwise the option applies only for the current window, which is usually not what you want.

Since command-alias is an array, you can use the -a flag to append a new value at the end.

With that said, try this:

set -ga command-alias s="new-window ssh foo"

Keep in mind that run in tmux runs a shell command in the background, so you most likely want to use something like new-window or new-session instead.