diff options
author | kaernyk <kaernyk@users.noreply.github.com> | 2014-09-09 21:54:24 -0400 |
---|---|---|
committer | kaernyk <kaernyk@users.noreply.github.com> | 2014-09-09 21:54:24 -0400 |
commit | f45dbf6a81faf3d44cc9120915cb8a49794154bc (patch) | |
tree | 13fc24f1ddf852842aec31526d035f012bcfcb7c | |
parent | a4e381d756dd8bc8e992ef0da41b4e0b50e0e59e (diff) |
test
-rw-r--r-- | learntmux.html.markdown | 200 | ||||
-rw-r--r-- | tmux.html.markdown | 241 |
2 files changed, 241 insertions, 200 deletions
diff --git a/learntmux.html.markdown b/learntmux.html.markdown deleted file mode 100644 index 65ead04f..00000000 --- a/learntmux.html.markdown +++ /dev/null @@ -1,200 +0,0 @@ ---- -category: tool -tool: tmux -contributors: - - ["kaernyk", "http://github.com/kaernyk"] -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. - -# 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. - - -# We’ll start of with managing tmux from a terminal, then introduce you to the -# keybinds: - - 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 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 -``` diff --git a/tmux.html.markdown b/tmux.html.markdown new file mode 100644 index 00000000..516bee4d --- /dev/null +++ b/tmux.html.markdown @@ -0,0 +1,241 @@ +--- +category: tool +tool: tmux +contributors: + - ["kaernyk", "http://github.com/kaernyk"] +filename: LearnTmux.txt +--- + + +<a href="http://tmux.sourceforge.net/"> +tmux</a> 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 [command] # Run a command + # 'tmux' with no commands will create a new session + + new # Create a new session + -s "Session" # Create named session + -n "Window" # Create named Window + -c "/dir" # Start in target directory + + attach # Attach last/available session + -t "#" # Attach target session + -d # Detach the session from other instances + + ls # List open sessions + -a # List all open sessions + + lsw # List windows + -a # List all windows + -s # List all windows in session + + lsp # List panes + -a # List all panes + -s # List all panes in session + -t # List app panes in target + + kill-window # Kill current window + -t "#" # Kill target window + -a # Kill all windows + -a -t "#" # Kill all windows but the target + + 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 via key combinations +# called 'Prefix' keys. + +------------------------------------------------------------------------------ + + (C-b) = Ctrl + b # 'Prefix' combination required to use keybinds + + (M-1) = Meta + 1 -or- Alt + 1 + +------------------------------------------------------------------------------ + + ? # List all key bindings. + : # Enter the tmux command prompt. + r # Force redraw of the attached client. + c # Create a new 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. + +# Example tmux.conf +# 2014.9 + + +### Keybinds +########################################################################### + +# Unbind C-b as the default prefix +unbind-key C-befix C-a + +# Return to previous window when prefix is pressed twice +bind-key C-a last-window +bind-key ` last-window + +# Allow swapping C-a and ` using F11/F12 +bind-key F11 set-option -g prefix C-a +bind-key F12 set-option -g prefix ` + +# Activate inner-most session (when nesting tmux) +# to send commands +bind-key a send-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 + +# easy-to-remember split pane commands +bind | split-window -h +bind - split-window -v +unbind '"' +unbind % + +# moving between panes with vim movement keys +bind h select-pane -L +bind j select-pane -D +bind k select-pane -U +bind l select-pane -R + + +### Theme +########################################################################### + +# Statusbar Color Palette +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 + +# 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 +########################################################################### + +# Statusbar +set-option -g status-utf8 on + +# Keybind preference +setw -g mode-keys vi +set-option -g status-keys vi + +# Notification +setw -g monitor-activity on +set -g visual-activity on +set-option -g bell-action any +set-option -g visual-bell off + +# Mouse +setw -g mode-mouse on +set-option -g mouse-select-pane on +set -g mouse-resize-pane on +set -g mouse-select-window on + +# Automatically set window titles +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) + +# Statusbar Adjustments +set -g status-left '#[fg=red]#H#[fg=green]:#[fg=white]#S #[fg=green]][#[default] ' +set -g status-interval 3 + +# Statusbar with right-aligned Date / Time +#set -g status-right ' #[fg=green]][#[fg=white] #T #[fg=green]][ #[fg=blue]%Y-%m-%d #[fg=white]%H:%M#[default] ' + +# Show performance counters in statusbar +# Requires https://github.com/thewtex/tmux-mem-cpu-load/ +#set -g status-right ' #[fg=green]][#[fg=white] #(tmux-mem-cpu-load 5 4) #[fg=green]][ #[fg=yellow]%H:%M#[default] ' + + +### Misc +########################################################################### + +# Scrollback/History limit +set -g history-limit 4096 + +bind r source-file ~/.tmux.conf +``` + +### External Resources + +<a href="http://tmux.sourceforge.net/">Tmux | Home</a><br> +<a href="http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man1/tmux.1?query=tmux">Tmux Manual page</a><br> +<a href="http://wiki.gentoo.org/wiki/Tmux">Archlinux Wiki</a><br> +<a href="https://wiki.archlinux.org/index.php/Tmux">Gentoo Wiki</a><br> +<a href="https://stackoverflow.com/questions/11558907/is-there-a-better-way-to-display-cpu-usage-in-tmux">Display CPU/MEM % in statusbar</a><br> |