diff options
| -rw-r--r-- | LearnTmux.txt | 241 | 
1 files changed, 185 insertions, 56 deletions
| diff --git a/LearnTmux.txt b/LearnTmux.txt index eaf3fd25..65ead04f 100644 --- a/LearnTmux.txt +++ b/LearnTmux.txt @@ -6,66 +6,195 @@ contributors:  filename: LearnTmux.txt  --- +```bash +#  tmux is a terminal multiplexer: it enables a number of terminals to be +# created, accessed, and controlled from a single screen. tmux may be detached +# from a screen and continue running in the background, then later reattached. -  tmux is a terminal multiplexer: it enables a number of terminals to be -created, accessed, and controlled from a single screen. tmux may be detached -from a screen and continue running in the background, then later reattached. +#  Once you feel comfortable manipulating tmux to suit your needs, I strongly  +# suggest you read the man pages, as there are TONS of features I’m not going +# to go over. -  Once you feel comfortable manipulating tmux to suit your needs, I strongly  -suggest you read the man pages. +# We’ll start of with managing tmux from a terminal, then introduce you to the +# keybinds: - -``` -# Session Management -     -    tmux new         Create new session -    -s "Session"     Create named session -    -n "Window"      Create named Window -    -c "/dir"        Start in target directory - -    C^b $            Rename current session -    C^b d            Detach current session -    C^b D            Select session to detach +  tmux | tmux new   # Create an unamed session +   -s "Session"     # Create named session +   -n "Window"      # Create named Window +   -c "/dir"        # Start in target directory -    tmux attach      Attach last/available session -    -t "#"           Attach target session -    -d               Detach the session from other instances +  tmux attach       # Attach last/available session +   -t "#"           # Attach target session +   -d               # Detach the session from other instances -    tmux ls          List open sessions -    C^b s            Select new session for attached client interactively -     -    kill-session     Kill current session -    -t "#"           Kill target session -    -a               Kill all sessions -    -a -t "#"        Kill all sessions but the target    - - -# Window Management - -    C^b c            Create another window -    C^b "            Split Horizontally -    C^b %            Split Vertically -    C^b M-(1-5)      1) Tile vertically -                     2) Tile horizontally -                     3) Tile Vertically /w large horizontal -                     4) Tile horizontally /w large vertical  -                     5) Tile all windows evenly - -    C^b q            Briefly display pane indexes -    C^#              Choose current window by # -    C^b w            Choose current window interactively -    C^b n            Change to next window -    C^b p            Change to previous window -    C^b Up, Right    Change to pane in selected direction  -        Down, left -    C^b {            Swap current/previous window -    C^b }            Swap current/next window - -    C^b C-Up, Right  Resize in steps of one cell -         Down, left   -    C^b M-Up, Right  resize in steps of five cells -         Down, left   -     -    exit or C^b x    Kill the current window +  tmux ls           # List open sessions +         +  kill-session      # Kill current session +   -t "#"           # Kill target session +   -a               # Kill all sessions +   -a -t "#"        # Kill all sessions but the target    + + + +## Key Bindings + +#   The method of controlling an attached tmux session is fairly simple, but  +# there are two keys we will see repeated throughout this write-up (as well as +# the man pages).  +	 +  (C-b) == Ctrl + b THEN ? to list all keybinds + +# The default keybinds are as follows: + +   C-b             # Send the prefix key (C-b) through to the application. +   C-o             # Rotate the panes in the current window forwards. +   C-z             # Suspend the tmux client. +   ?               # List all key bindings. +   :               # Enter the tmux command prompt. +   r               # Force redraw of the attached client. + +   c               # Create a new window. +   $               # Rename the current session. +   ,               # Rename the current window. + +   !               # Break the current pane out of the window. +   %               # Split the current pane into two, left and right. +   "               # Split the current pane into two, top and bottom. + +   n               # Change to the next window. +   p               # Change to the previous window. +   {               # Swap the current pane with the previous pane. +   }               # Swap the current pane with the next pane. + +   s               # Select a new session for the attached client interactively. +   w               # Choose the current window interactively. +   0 to 9          # Select windows 0 to 9. + +   d               # Detach the current client. +   D               # Choose a client to detach. +    +   &               # Kill the current window. +   x               # Kill the current pane. + +   Up, Down        # Change to the pane above, below, left, or right. +   Left, Right + +   M-1 to M-5      # Arrange panes:  +                   #    1) even-horizontal +                   #    2) even-vertical +                   #    3) main-horizontal +                   #    4) main-vertical +                   #    5) tiled. + +   C-Up, C-Down    # Resize the current pane in steps of one cell. +   C-Left, C-Right +                +   M-Up, M-Down    # Resize the current pane in steps of five cells. +   M-Left, M-Right +```                + + +### Configuring ~/.tmux.conf + +  tmux.conf can be used to set options automatically on start up, much  +like how .vimrc or init.el are used. + +```bash +# Example tmux.conf   +# http://dev.gentoo.org/~wired/conf/tmux.conf   +# http://wiki.gentoo.org/wiki/Tmux   +# https://wiki.archlinux.org/index.php/Tmux   +   +### Keybinds   +###########################################################################   +   +## Prefix Adjustment    +unbind-key C-b   +set-option -g prefix `   +#set option -g prefix C-a   +   +bind-key C-a last-window   +bind-key ` last-window   +bind-key a send-prefix   +bind-key F11 set-option -g prefix C-a   +bind-key F12 set-option -g prefix `   +   +## Index Start   +set -g base-index 1   +   +## Window Cycle/Swap   +bind e previous-window   +bind f next-window   +bind E swap-window -t -1   +bind F swap-window -t +1   +   +   +### Theme   +###########################################################################   +   +## Statusbar Color Palatte   +#set-option -g status-justify centre   +set-option -g status-justify left   +set-option -g status-bg black   +set-option -g status-fg white   +set-option -g status-left-length 40   +set-option -g status-right-length 80   +   +   +   +## Pane Border Color Palette   +set-option -g pane-active-border-fg green   +set-option -g pane-active-border-bg black   +set-option -g pane-border-fg white   +set-option -g pane-border-bg black   +   +   +## Message Color Palette   +set-option -g message-fg black   +set-option -g message-bg green   +   +   +#setw -g mode-bg black       +   +   +## Window Status Color Palette   +setw -g window-status-bg black   +setw -g window-status-current-fg green   +setw -g window-status-bell-attr default   +setw -g window-status-bell-fg red   +setw -g window-status-content-attr default   +setw -g window-status-content-fg yellow   +setw -g window-status-activity-attr default   +setw -g window-status-activity-fg yellow   +   +   +### UI   +###########################################################################   +   +## Window Interface Adjustments   +set-option -g status-utf8 on   +setw -g mode-keys vi   +setw -g mode-mouse on   +setw -g monitor-activity on   +   +set-option -g mouse-select-pane on   +set-option -g status-keys vi   +set-option -g bell-action any   +set-option -g set-titles on   +set-option -g set-titles-string '#H:#S.#I.#P #W #T' # window number,program name,active (or not)   +set-option -g visual-bell off   +   +   +## Statusbar Adjustments   +set -g status-left ' #[fg=red]#H#[fg=green]:#[fg=white]#S #[fg=green]][#[default] '   +set -g status-interval 5   +#set -g status-right ' #[fg=green]][#[fg=white] #T #[fg=green]][ #[fg=blue]%Y-%m-%d #[fg=white]%H:%M#[default] '   +set -g status-right ' #[fg=green]][#[fg=white] #(tmux-mem-cpu-load 5 4) #[fg=green]][ #[fg=yellow]%H:%M#[default] '   +   +   +### Misc   +###########################################################################   +set -g history-limit 4096   +bind r source-file ~/.tmux.conf    ``` | 
