I'd like to change the tmux prefix from ctrl+b to a single key, specifically alt. Tried set-option -g prefix M, but it said bad key.
Anyone know how to accomplish this without having to create a macro on my entire system making alt trigger ctrl+b?
I'd settle for a macro that only triggers when inside of a tmux session.
A possible workaround is to use tmux's root table instead of the prefix key table (see bind-key in man page). To do this, you need to pass the -n argument to the bind-key command. This does imply that you will have to re-bind all the commands in your .tmux.conf that you want to support.
An example of how to create a window using alt+c is:
bind -n M-c new-window
Related
On my local machine I can use the shortcut CTRL+b and then d to detach from a tmux window.
Google Cloud Platform offers to connect via SSH into virtual machines using a terminal in a browser window, see screenshot below.
In this terminal, I cannot use the shortcut CTRL+b and then d to detach from a tmux window.
None of the two-step commands I tried work.
By two-step commands I mean commands that are supposed to be triggered by pressing a combination of buttons, releasing this combination of buttons, and then pressing another combination of buttons.
How can I use tmux without having to use two-step commands?
In your .tmux.conf file, you can set keybinds that do not use a prefix with -n
# would activate with <prefix> R
bind-key R source-file ~/.tmux.conf \; display-message "Config reloaded..."
# would activate with just R
bind-key -n R source-file ~/.tmux.conf \; display-message "Config reloaded..."
Of course, these binds will activate whenever you hit that button, so if you used the above example, it would be very difficult to type a literal 'R'.
My environment is Fedora20 (32-bit) + Yakuake + fish + tmux.
Months ago, I started to use tmux, it is a great terminal multiplexer, but the scrollback (Use prefix then PageUp to scroll back) is not working as expected, the history limit is always under 2000 (around 1980 on the right above corner) even if I already set the scrollback limit to "unlimited scrollback" in Yakuake Setting.
Finally I could take it anymore and started to goole it for solution, found out that I could put set -g history-limit 30000 int my tmux.conf file, then check again, it worked, but I realized that every time I typed C-l to clear the screen(and I use it a lot), the scrollback history will be only under/around 30.
Then I found out at How do i clear tmux screen while tailing logs? that I could put bind l send-keys -R into .tmux.conf and use prefix-l to clear the terminal history buffer temporarily and still be able to scroll back, it worked just as I wanted. But What I really want is I use only C-l to do the trick without the prefix key, replacing the shell built-in C-l to do it...
Update:
Short ask, after setting a bind in .tmux.conf, in tmux, you have to type the prefix key before typing that key, then how to bind a key without the need to add the prefix key by default??
In order to bind a key without the need to add the prefix, use the -n flag for the tmux bind command.
Here's the example that should be put in tmux.conf:
bind -n C-l display-message 'foo'
The example binding is triggered when Ctrl-l is pressed (no prefix) and it displays message 'foo' in the tmux prompt.
All that said, be careful & conservative with setting these "direct" key bindings because the key will become unusable for any other terminal program.
I've created a script that opens up tmux and splits into 4 windows/panels, but i was wondering if theres a quick way to exit them all, preferably via a key binding.
Thanks.
[Edit]
What i'm looking for is a way to exit a selection of windows via a key binding.
Something maybe i can add to my .tmux.conf file like:
bind-key C-c exit-all
Or maybe a command i can pass in after setting up the split windows etc like: tmux bind-key C-c exit-all
I'm putting exit-all as the command there as thats what im looking for, but i don't know the real name for this function or way of doing this
From man tmux:
unlink-window [-k] [-t target-window]
(alias: unlinkw)
Unlink target-window. Unless -k is given, a window may be unlinked only if it is linked to multiple ses-
sions - windows may not be linked to no sessions; if -k is specified and the window is linked to only one
session, it is unlinked and destroyed.
I think unlink-window -k is what you're after.
Is it possible to change tmux shortcuts such that:
ctrl+t opens new window
ctrl+w closes a window
ctrl+tab cycles through a list of windows
other similar shortcuts for splitting horizontally / vertically
I really like its features but am always of the opinion that the less shortcut I have to learn the better.
It seems like you want to do this without the command prefix key. If that's correct, add the following commands to your ~/.tmux.conf file:
bind-key -n C-t new-window
bind-key -n C-w kill-window
bind-key -n C-Tab next-window
If you want to use the prefix key, then drop the -n from the above commands.
I am trying to configure tmux to switch between windows using alt-left, alt-right sequences. This is what I have in my .tmux.conf
bind-key -n M-Left previous-window
bind-key -n M-Right next-window
Unfortunately, it doesn't work. On my machine, alt-left and alt-right are bound to ^[[1;3D and ^[[1;3C respectively. I think I have to use terminfo override to tell tmux to use these sequences, but I have no idea how. So, any help will be appreciated.
Thanks!
If the xterm-keys option was off, tmux would ignore the keys (because it would recognize them and discard them when the option was not set). Users of tmux have been confused by this distinction for a while, and at the end of 2016, the developer changed the default for the option:
Change the xterm-keys option to default to on, so that tmux will generate xterm(1) escape sequences for function keys with modifiers.
With the option off most of these keys are ignored by default, except
for ctrl + arrows which use a variant that nothing else seems to use and
I don't remember why we chose. The xterm escape sequences are now the
most common.
This still relies upon the terminal description, as I pointed out in tmux on remote machine not getting correct prefix + arrow keys