tmux-plugins / tmux-continuum Goto Github PK
View Code? Open in Web Editor NEWContinuous saving of tmux environment. Automatic restore when tmux is started. Automatic tmux start when computer is turned on.
License: MIT License
Continuous saving of tmux environment. Automatic restore when tmux is started. Automatic tmux start when computer is turned on.
License: MIT License
Is there a known issue as of why the autosave mode might not work with zsh? The auto restore f.e. does work flawlessly though. Maybe I just miss a setting. Thanks for any hints! Attached my .tmux.conf
.
# Copy-paste integration
set-option -g default-command "reattach-to-user-namespace -l zsh"
# Set default terminal color
set -g default-terminal "screen-256color"
# Use vim keybindings in copy mode
setw -g mode-keys vi
set -g status-keys vi
bind-key -t vi-edit Up history-up
bind-key -t vi-edit Down history-down
# Setup 'v' to begin selection as in Vim
bind-key -t vi-copy v begin-selection
bind-key -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy"
# Update default binding of `Enter` to also use copy-pipe
unbind -t vi-copy Enter
bind-key -t vi-copy Enter copy-pipe "reattach-to-user-namespace pbcopy"
# Bind '<' to use pbpaste
bind < run "reattach-to-user-namespace pbpaste | tmux load-buffer - && tmux paste-buffer"
# Pane handling keybindings
bind-key j command-prompt -p "join pane from:" "join-pane -s '%%'"
bind-key s command-prompt -p "send pane to:" "join-pane -t '%%'"
# Clear screen
bind-key -n C-l send-keys C-z \; send-keys " reset && fg > /dev/null" \; send-keys "Enter"
# Add mouse support
setw -g mode-mouse on
set-option -g mouse-resize-pane on
set-option -g mouse-select-pane on
set-option -g mouse-select-window on
# Set window and pane index
set -g base-index 1
set -g pane-base-index 1
# continuum settings
set -g @continuum-restore 'on'
set -g @continuum-save-interval '1'
# tmux Plugins
set -g @tpm_plugins ' \
tmux-plugins/tpm \
tmux-plugins/tmux-resurrect \
tmux-plugins/tmux-continuum \
tmux-plugins/tmux-yank \
tmux-plugins/tmux-copycat \
'
run-shell '~/.tmux/plugins/tpm/tpm'
# Load powerline
run-shell "powerline-daemon -q"
source "/Library/Python/2.7/site-packages/powerline/bindings/tmux/powerline.conf"
BTW thanks for this nice helpful plugin.
This is more of a question than an issue but does anyone know if continuum
works with iTerm2's tmux integration? Basically, if I don't see the continuum
status on the bottom right when I open tmux windows with tmux -CC
does that mean continuum is not working? Or is it just that the status stuff doesn't work with iTerm2's native tmux stuff?
Is there any way to check that on the filesystem or in processes that continuum is running assuming I can't see the status?
I have this config in my tmux.conf
set -g status off
and the continuum plugin never saves the sessions. It took me a long time to find out why, so could you please at least mention it in README?
Cylance protect service (https://www.cylance.com/products-protect) in Windows takes over a single CPU core completely when tmux-continuum is enabled. Without tmux-continuum the CPU usage is negligible.
Re: https://github.com/tmux-plugins/tmux-continuum/blob/master/docs/systemd_details.md
This doc says that:
The first time tmux starts when @continuum-boot is set to 'on' tmux-continuum will generate a user level systemd unit file which it will save to ${HOME}/.config/systemd/user/tmux.service and enable it.
However, in practice, it appears to be doing this every time tmux starts. I go in and edit that file because I want to make it static (so that I can start tmux with my own script and make sure the env vars I want pass through, but still have things saved when I shut down [the ExecStop
, etc.])...but my changes are reverted. I'm not sure if they are reverted on shutdown, startup, or daemon-reload, to be honest.
I will put in an override instead of tweaking the file directly for now.
Hello
The tmux doesn't continues and doesn't restores my previous session when I run $ tmux
in Ubuntu bush.
tmux version:
2.6-3ubuntu0.1
.tmux.config:
# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @continuum-restore 'on'
set -g @resurrect-capture-pane-contents 'on'
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run -b '~/.tmux/plugins/tpm/tpm'
Question
How to make it work?
My issue was here
run -b '~/.tmux/plugins/tpm/tpm'
It works for me without -b
run '~/.tmux/plugins/tpm/tpm'
Would be really nice to have a feature to keep saves in ~/.tmux/resurrect/
under control.
Config option could be, e.g., "prune last x saves" or "maximum number of saves" (default 20).
Automatic tmux start and automatic restore does not work in OSX
Here's the .tmux.conf
unbind C-b
set-option -g prefix C-a
bind C-a send-prefix
set -g mouse-utf8 on
set -g mouse on
set-option -g default-command "reattach-to-user-namespace -l zsh"
set -g terminal-overrides 'xterm*:smcup@:rmcup@'
set -g default-command "reattach-to-user-namespace -l /bin/zsh"
# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
# Other examples:
# set -g @plugin 'github_username/plugin_name'
# set -g @plugin '[email protected]/user/plugin'
# set -g @plugin '[email protected]/user/plugin'
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @continuum-restore 'on'
set -g @continuum-boot 'on'
set -g @continuum-boot-options 'iterm'
tmux 2.1
iTerm2 2.9.20160313
OSX 10.11.4
Automatic saving is working fine.
got this in my tmux.conf:
# move around panes with hjkl, as one would in vim after pressing ctrl-w
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
but it did not work. figured out that this line is the cause:
set -g status-right 'Continuum status: #{continuum_status}'
after commenting it out, it works fine.
My impression from the documentation is that continuum doesn't support multiple tmux sessions?
Can this be added?
What would it take?
great work, I'd love to see a version for fish Shell
On Mac OSX Catalina, tmux-continuum isn't autosaving with tmux 3.0a.
I can manually save/restore, but not autosave.
Every time I start tmux and it restores the environment, a new additional session with a blank window is added. There is no such a problem if I restore my sessions with tmux-ressurect manually.
The path assumed by the systemd service template can be wrong on certain distributions. In particular, NixOS does not put the executable anywhere you'd expect it. For my user profile, it's at /etc/profiles/per-user/mkaito/bin/tmux
. As you can see, there's no way for you to know in advance.
If at all possible, the template should run $(which tmux)
, instead of assuming it knows the path.
Do I need to grep or vim something to ensure its running?
set -s escape-time 0
set -g mouse on
# Increase scroll-back limit
set-option -g history-limit 5000
# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'
# Change to sane key bindings for pane-splitting.
bind | split-window -h
bind - split-window -v
unbind '"'
unbind %
# Enable clicking on panes to select
set -g mouse on
# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'nhdaly/tmux-scroll-copy-mode'
# Other examples:
# set -g @plugin 'github_username/plugin_name'
# set -g @plugin '[email protected]/user/plugin'
# set -g @plugin '[email protected]/user/plugin'
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'
set -g @continuum-restore 'on'
set -g @continuum-boot 'on'
set -g @continuum-boot-options 'iterm'
set -g @continuum-save-interval '5'
set -g status-right 'Continuum status: #{continuum_status}'
set -g @resurrect-capture-pane-contents 'on'
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run -b '~/.tmux/plugins/tpm/tpm'
I've installed tmux-ressurect and tmux-continuum via plugins. In my .tmux.conf I have the following:
set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @plugin 'tmux-plugins/tmux-ressurect'
set -g @continuum-restore 'on'
set -g status-right 'Continuum: #{continuum_status}'
set -g @resurrect-strategy-vim 'session'
set -g @resurrect-capture-pane-contents 'on'
Normal ressurection works via explicit keybindings for it. However, continuum seems to never turn on - After I added the status to the tmux line, I can see that its only ever set to 'Off' :/ Any hints?
I'm running Linux Mint, and Tmux v. 2.2.
Howdy!
I see recently there was a fix for automatic restore not working in OSX (#52).
I'am actually finding that this has broken automatic restore for me on macOS (Mojave - 10.14.3). When i start tmux
nothing is restored. Interestingly, if i reload my config, the restore then happens (which shouldn't happen according to this)
If i revert the changes made here everything seems to be working ok for me.
I'am using tmux 2.8
and the latest versions of tmux-continuum
and tmux-resurrect
Unless I'm missing something, iterm is the only alternative terminal command for boot restore. Is it possible to support any terminal if given the command name, e.g. kitty?
It would be nice if capture pane contents
feature stored several checkpoints and not just the last one.
I am using tmux-continuum
with
set -g @continuum-restore 'on'
set -g @continuum-boot 'on'
and for some reason after booting up my PC tmux server had started with single empty window and no restoration of previous session took place.
After 15 minutes tmux-continuum
saved new session (with single empty window) and rewrote all pane contents' saved data.
I was able to restore my windows from previous checkpoints using faq but pane contents were lost.
Autosave is not working and I've narrowed it down to this piece of code:
# Advanced edge case handling: start auto-saving only if this is the
# only tmux server. We don't want saved files from more environments to
# overwrite each other.
if ! another_tmux_server_running; then
# give user a chance to restore previously saved session
delay_saving_environment_on_first_plugin_load
add_resurrect_save_interpolation
fi
The problem is that I share my work environment with several co-workers. So, in total we may have > 3 tmux processes. This function grabs all of them:
all_tmux_processes() {
# ignores `tmux source-file .tmux.conf` command used to reload tmux.conf
ps -Ao "command pid" |
\grep "^tmux" |
\grep -v "^tmux source"
}
Long story short, it seems that add_resurrect_save_interpolation
is never called because continuum
thinks there are more than one TMUX servers running. Should it not consider only the running user's processes?
Hello everyone.
I have successfully setup tmux-plugins using byobu and see that stuff are working. However, when I try to setup a custom notification, I get:
Notification Setup:
me@server:~/.byobu/bin$ ls -lah
total 4,0K
drwxr-x--- 1 me me 24 helmi 3 13:19 .
drwxr-x--- 1 me me 392 helmi 3 13:23 ..
-rwxr-x--- 1 me me 39 helmi 3 13:19 30_continuum
me@server:~/.byobu/bin$ cat 30_continuum
#!/bin/sh
echo "C#{continuum_status} "
me@server:~/.byobu/bin$
@ Debian GNU/Linux 8.7 x86_64 0:Window1* 1:Window1 2:Window2 ▴136kb ▾223kb C e910 1 2d0h 317rpm 39C 451& 0.60 4x1.6GHz 7.8G48% s5.6G0% 9,1G64% me@server 192.168.1.2 2017-02-03 14:05:15
byobu version 5.87 / tmux 1.9
# Mouse support - set to on if you want to use the mouse
# setw -g mode-mouse on
# set -g mouse-select-pane on
# set -g mouse-resize-pane on
# set -g mouse-select-window on
# enable activity alerts
setw -g monitor-activity on
set -g visual-activity on
# Center the window list
set -g status-justify centre
bind r source-file ${HOME}/.tmux.conf \; display-message "Source-file Reloaded"
# utf8 is on
set -g utf8 on
set -g status-utf8 on
# address vim mode switching delay (http://superuser.com/a/252717/65504)
set -s escape-time 0
# increase scrollback buffer size
set -g history-limit 50000
# tmux messages are displayed for 1.25 seconds
set -g display-time 1250
# refresh 'status-left' and 'status-right' more often
# set -g status-interval 1
# focus events enabled for terminals that support them
set -g focus-events on
# super useful when using "grouped sessions" and multi-monitor setup
setw -g aggressive-resize on
# ========== TMUX Plugin Manager ==========
if "test ! -d ~/.byobu/tmux_plugins/tpm" \
"run 'git clone https://github.com/tmux-plugins/tpm ~/.byobu/tmux_plugins/tpm && ~/.byobu/tmux_plugins/tpm/bin/install_plugins'"
set-environment -g TMUX_PLUGIN_MANAGER_PATH '~/.byobu/tmux_plugins'
# List of plugins - https://github.com/tmux-plugins/tpm/blob/master/docs/tpm_not_working.md
# set -g @plugin 'tmux-plugins/tpm'
# set -g @plugin 'tmux-plugins/tmux-sensible'
# set -g @plugin 'tmux-plugins/tmux-resurrect'
# set -g @plugin 'tmux-plugins/tmux-continuum'
# Other examples:
# set -g @plugin 'github_username/plugin_name'
# set -g @plugin '[email protected]/user/plugin'
# set -g @plugin '[email protected]/user/plugin'
set -g @tpm_plugins 'tmux-plugins/tpm \
tmux-plugins/tmux-sensible \
tmux-plugins/tmux-resurrect \
tmux-plugins/tmux-continuum \
'
set -g @resurrect-dir '~/.byobu/tmux_resurrect'
set -g @resurrect-save-bash-history 'on'
set -g @continuum-save-interval '10'
set -g @continuum-boot 'on'
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.byobu/tmux_plugins/tpm/tpm'
I get this error when running tmux.
Running on OSX Sierra 10.12.2
Tmux 2.3
Here is my tmux.conf file:
# TMUX Ressurect plugin
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @continuum-save-interval '5'
set -g @continuum-restore 'on'
run '~/.tmux/plugins/tpm/tpm'
Hi,
thanks for resurrect/continuum, the are really needed functionality for tmux. After reading https://github.com/tmux-plugins/tmux-continuum/blob/master/docs/multiple_tmux_servers.md, I think this might be the reason for this behaviour: If two different users on the same machine use tmux with resurrect/continuum enabled, only the first to start tmux gets the autosave feature enabled. So maybe you use some per machine locking mechanism. Is there a way to do this per user? On a multuser system this would be perfectly reasonable and safe as well.
On Ubuntu 14.04, I'm starting Tmux with the following upstart script at /etc/init/start-tmux.conf
:
description "Start Tmux"
start on runlevel [2345]
script
su myuser -c "tmux new-session -d -s my-default-session-name"
end script
Not sure how you want to present this in your docs, but if someone else could verify that this works for them, as well, that'd be great. Now, I can ssh my-dev-box -t tmux attach
and always attach to my Tmux session, even if the box has restarted.
Hi,
first thank you for the plugin.
It doesn't seem to an option to rotate files or to add max number of files in resurrect folder.
Current solution for dealing with the problem of too many snapshots is periodically cleaning the directory by hand or by writing cron jobs.
Do you have any plans of adding some kind of self management in the future?
Hey man!
The good news is that the following now works
~/.tmux/tmux-continuum/scripts/continuum_restore.sh
The bad news is that tmux is starting when I restart my computer but still isn't automatically doing the tmux resurrect.
On that note, I also noticed that with my autosaves didn't seem to be happening so I set my interval to 1 to confirm and no autosaves happen. That may give you a clue?
Below is my updated .tmux.conf.
# This allows copy and paste in vim, etc. to work with tmux
#if-shell "uname | grep -q Darwin" "set-option -g default-command 'reattach-to-user-namespace -l zsh'"
setw -g mode-mouse on
set -g mouse-select-pane on
set -g mouse-resize-pane on
set -g mouse-select-window on
set -g mode-keys vi
# force a reload of the config file
unbind r
bind r source-file ~/.tmux.conf
bind L resize-pane -L 5
bind D resize-pane -D 5
bind U resize-pane -U 5
bind R resize-pane -R 5
#### COLOUR (Solarized 256)
# default statusbar colors
set-option -g status-bg colour235 #base02
set-option -g status-fg colour136 #yellow
set-option -g status-attr default
# default window title colors
set-window-option -g window-status-fg colour244 #base0
set-window-option -g window-status-bg default
#set-window-option -g window-status-attr dim
# active window title colors
set-window-option -g window-status-current-fg colour166 #orange
set-window-option -g window-status-current-bg default
#set-window-option -g window-status-current-attr bright
# pane border
set-option -g pane-border-fg colour235 #base02
set-option -g pane-active-border-fg colour240 #base01
# message text
set-option -g message-bg colour235 #base02
set-option -g message-fg colour166 #orange
# pane number display
set-option -g display-panes-active-colour colour33 #blue
set-option -g display-panes-colour colour166 #orange
# clock
set-window-option -g clock-mode-colour colour64 #green
# VIM COPY AND PASTE BINDINGS BELOW.
# To enter copy mode, press {prefix} esc
# Use vim keybindings in copy mode
setw -g mode-keys vi
# Setup 'v' or 'V' to begin selection as in Vim
unbind [
bind Escape copy-mode
bind -t vi-copy v begin-selection
bind -t vi-copy V rectangle-toggle # `V` changes between line- and columnwise selection
# Clear scrollback. {prefix} Cntrl K
bind -n C-k clear-history
#Allow tmux Resurrect - prefix then ctrl-s to save. prefix then ctrl-r to restore
run-shell ~/.tmux/tmux-resurrect/resurrect.tmux
# Allow tmux to select text, etc.
run-shell ~/.tmux/tmux-copycat/copycat.tmux
# tmux yank. Enable copy selected text to the clipboard. Needs the above with prefix + y.
run-shell ~/.tmux/tmux-yank/yank.tmux
# MUST BE LAST COMMAND RUN: Auto run tmux ressurect every 15 minutes and auto ressurect when opening a new window
set -g @continuum-boot 'on'
set -g @continuum-restore 'on'
set -g @continuum-save-interval '1'
run-shell ~/.tmux/tmux-continuum/continuum.tmux
#run-shell ~/.tmux/tmux-continuum/scripts/continuum_restore.sh
# Commands cheatsheet
# Within tmux
# prefix + ?: see all potential commands within tmux
# prefix + s: switch to a new session
# prefix + z: make the current pane take up the whole window. Toggleable.
# prefix + cntrl o: rotate window
# prefx + cntrl k: clear any text in the pane that is currently not visable.
# prefix + ctrl s: save all current sessions
# prefix + ctrl r: restore all current sessions from the last save point (eg. after a computer restart)
# prefix + Escape: enter copy mode
# - v: enter vim selection so you can copy.
# -- V: toggle back and fourth betmween block copy mode.
# - y: copy current selection to the clipboard.
# prefix + /: enter search mode for tmux pane
# prefix + :rename: allow you to rename the current session
# prefix + d: dettach the current session without ending it.
# prefix + x: close the current pane
# prefix + &: close the current window
# prefx + %: horizontal split
# prefix + ": vertical split
# In the terminal:
# man tmux: see all potential commands within tmux
# tmux a -t SESSIONNAMEORNUMEBR: re open that session
# tmux list-sessions: lists all the sessions available to be connected to
# tmux kill-server: kill all live sessions
Please see the setup below - this used to work fine until I enabled tmux-continuum - would it break this use case of connecting to tmux after ssh-ing?
From MachineA:
tmux new -s Session1
[detach from session]
tmux new -s Session2
[detach from session]
tmux ls # correctly shows Session1 and Session2
From MachineB:
ssh MachineA
tmux new -s Session3
[detach from session]
tmux ls # Only shows Session3, where I would expect to see Session1, Session2, and Session3
Any ideas?
Thanks,
David
Not sure if this is related to macOS Sierra update or not, I never had it working before I updated.
When tmux is started, 1 resurrect restore file is written to ~/.tmux/resurrect
, but it never auto-saves afterward. I have my interval set to 1 and continuum status confirms it is 1. I have updated all of my plugins and made sure no other plugins are installed other than those listed in my tmux.conf. Below is my tmux.conf as well as an output of all my tmux global options. I haven't updated my tmux.conf in awhile and I initially started with this configuration: gpakosz/.tmux. I'd like to move away from such an extensive tmux.conf and handle most functionality through plugins.
# cat << ►_◄ > /dev/null
# -- general -------------------------------------------------------------------
set -g default-terminal "screen-256color" # colors!
setw -g xterm-keys on
set -s escape-time 0 # fastest command sequences
set -sg repeat-time 600 # increase repeat timeout
set -s quiet on # disable various messages
set -g prefix2 C-a # GNU-Screen compatible prefix
bind C-a send-prefix -2
set -g history-limit 5000 # boost history
# edit configuration
bind e new-window -n '~/.tmux.conf.local' "sh -c '\${EDITOR:-vim} ~/.tmux.conf.local && tmux source ~/.tmux.conf && tmux display \"~/.tmux.conf sourced\"'"
# reload configuration
bind r source-file ~/.tmux.conf \; display '~/.tmux.conf sourced'
# -- display -------------------------------------------------------------------
set -g base-index 1 # start windows numbering at 1
setw -g pane-base-index 1 # make pane numbering consistent with windows
setw -g automatic-rename on # rename window to reflect current program
# renumber windows when a window is closed
set -g renumber-windows on
set -g set-titles on # set terminal title
set -g set-titles-string '#h ❐ #S ● #I #W'
set -g display-panes-time 800 # slightly longer pane indicators display time
set -g display-time 1000 # slightly longer status messages display time
set -g status-interval 10 # redraw status line every 10 seconds
#24 hour clock
setw -g clock-mode-style 24
# clear both screen and history
bind -n C-l send-keys C-l \; run 'tmux clear-history'
# activity
set -g monitor-activity on
set -g visual-activity off
# -- navigation ----------------------------------------------------------------
# find session
bind C-f command-prompt -p find-session 'switch-client -t %%'
# pane navigation
bind -r h select-pane -L # move left
bind -r j select-pane -D # move down
bind -r k select-pane -U # move up
bind -r l select-pane -R # move right
bind > swap-pane -D # swap current pane with the next one
bind < swap-pane -U # swap current pane with the previous one
# maximize current pane
bind + run 'cut -c3- ~/.tmux.conf | sh -s maximize_pane'
# pane resizing
bind -r H resize-pane -L 2
bind -r J resize-pane -D 2
bind -r K resize-pane -U 2
bind -r L resize-pane -R 2
# window navigation
unbind n
unbind p
bind -r C-h previous-window # select previous window
bind -r C-l next-window # select next window
bind Tab last-window # move to last active window
# toggle mouse
bind m run "cut -c3- ~/.tmux.conf | sh -s toggle_mouse"
# -- urlview -------------------------------------------------------------------
bind U run "cut -c3- ~/.tmux.conf | sh -s urlview #{pane_id}"
# -- facebook pathpicker -------------------------------------------------------
bind F run "cut -c3- ~/.tmux.conf | sh -s fpp #{pane_id}"
# -- list choice ---------------------------------------------------------------
bind -t vi-choice h tree-collapse
bind -t vi-choice l tree-expand
run -b 'tmux bind -t vi-choice K start-of-list 2> /dev/null'
run -b 'tmux bind -t vi-choice J end-of-list 2> /dev/null'
bind -t vi-choice H tree-collapse-all
bind -t vi-choice L tree-expand-all
bind -t vi-choice Escape cancel
# -- edit mode -----------------------------------------------------------------
# the following vi-copy bindings match my vim settings
# see https://github.com/gpakosz/.vim.git
bind -ct vi-edit H start-of-line
bind -ct vi-edit L end-of-line
bind -ct vi-edit q cancel
bind -ct vi-edit Escape cancel
# -- copy mode -----------------------------------------------------------------
bind Enter copy-mode # enter copy mode
bind b list-buffers # list paster buffers
bind p paste-buffer # paste from the top pate buffer
bind P choose-buffer # choose which buffer to paste from
# the following vi-copy bindings match my vim settings
# see https://github.com/gpakosz/.vim.git
bind -t vi-copy v begin-selection
bind -t vi-copy C-v rectangle-toggle
bind -t vi-copy y copy-selection
bind -t vi-copy Escape cancel
bind -t vi-copy H start-of-line
bind -t vi-copy L end-of-line
# copy to Mac OSX pasteboard
if -b 'which -s reattach-to-user-namespace' 'bind y run "tmux save-buffer - | reattach-to-user-namespace pbcopy"'
# -- user defined --------------------------------------------------------------
if '[ -f ~/.tmux.conf.local ]' 'source ~/.tmux.conf.local'
# -- plugins ------------------------------------------------------------------------
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'
# tmux-resurrect config
set -g @resurrect-strategy-vim 'session'
set -g @resurrect-strategy-nvim 'session'
set -g @resurrect-capture-pane-contents 'on'
# tmux-continuum config
set -g @continuum-save-interval '1'
set -g @continuum-restore 'on'
set -g @continuum-boot 'on'
set -g @continuum-boot-options 'iterm,fullscreen'
set -g status-right 'Continuum status: #{continuum_status}'
run-shell ~/.tmux/plugins/tmux-continuum/continuum.tmux
# initialize tmux plugin manager
# NOTE: keep this line at (or near) the very bottom of tmux.conf
run '~/.tmux/plugins/tpm/tpm'
# -- 8< ------------------------------------------------------------------------
run 'cut -c3- ~/.tmux.conf | sh -s apply_configuration'
# ►_◄
#
# # exit the script if any statement returns a non-true return value
# set -e
#
# apply_theme() {
# tmux_conf_theme=${tmux_conf_theme:-default}
# case "${tmux_conf_theme}" in
# powerline|powerline_patched_font)
# left_separator=''
# left_separator_black=''
# right_separator=''
# right_separator_black=''
# session_symbol=''
# ;;
# ""|default)
# left_separator='|'
# left_separator_black=''
# right_separator='|'
# right_separator_black=''
# ;;
# esac
#
# case "$tmux_conf_theme" in
# ""|default|powerline)
#
# # panes
# tmux_conf_theme_pane_border_fg=${tmux_conf_theme_pane_border_fg:-colour238} # light gray
# tmux_conf_theme_pane_active_border_fg=${tmux_conf_theme_pane_active_border_fg:-colour39} # light blue
#
# tmux set -g pane-border-style fg=$tmux_conf_theme_pane_border_fg \; set -g pane-active-border-style fg=$tmux_conf_theme_pane_active_border_fg
# #uncomment for fat borders
# #tmux set -ga pane-border-style bg=$tmux_conf_theme_pane_border_fg \; set -ga pane-active-border-style bg=$tmux_conf_theme_pane_active_border_fg
#
# tmux_conf_theme_display_panes_active_colour=${tmux_conf_theme_display_panes_active_colour:-colour39} # light blue
# tmux_conf_theme_display_panes_colour=${tmux_conf_theme_display_panes_colour:-colour39} # light blue
# tmux set -g display-panes-active-colour $tmux_conf_theme_display_panes_active_colour \; set -g display-panes-colour $tmux_conf_theme_display_panes_colour
#
# tmux_conf_theme_highlight_focused_pane=${tmux_conf_theme_highlight_focused_pane:-disabled}
# tmux_conf_theme_focused_pane_fg=${tmux_conf_theme_focused_pane_fg:-default} # default
# tmux_conf_theme_focused_pane_bg=${tmux_conf_theme_focused_pane_bg:-colour23} # dark blue/green
# highlight_focused_pane_enabled=$( ([ x"$tmux_conf_theme_highlight_focused_pane" = x"enabled" ] || [ -z "$tmux_conf_theme_highlight_focused_pane" ]) && echo "true" || echo "false" )
# if [ x"$highlight_focused_pane_enabled" = x"true" ] ; then
# tmux setw -g window-active-style "fg=$tmux_conf_theme_focused_pane_fg,bg=$tmux_conf_theme_focused_pane_bg"
# else
# tmux setw -g window-active-style default
# fi
#
# # messages
# tmux_conf_theme_message_fg=${tmux_conf_theme_message_fg:-colour16} # black
# tmux_conf_theme_message_bg=${tmux_conf_theme_message_bg:-colour226} # yellow
# tmux_conf_theme_message_attr=${tmux_conf_theme_message_attr:-bold}
# tmux set -g message-style fg=$tmux_conf_theme_message_fg,bg=$tmux_conf_theme_message_bg,$tmux_conf_theme_message_attr
#
# tmux_conf_theme_message_command_fg=${tmux_conf_theme_message_command_fg:-colour16} # black
# tmux_conf_theme_message_command_bg=${tmux_conf_theme_message_command_bg:-colour160} # light yellow
# tmux set -g message-command-style fg=$tmux_conf_theme_message_command_fg,bg=$tmux_conf_theme_message_command_bg,$tmux_conf_theme_message_attr
#
# # windows mode
# tmux_conf_theme_mode_fg=${tmux_conf_theme_mode_fg:-colour16} # black
# tmux_conf_theme_mode_bg=${tmux_conf_theme_mode_bg:-colour226} # yellow
# tmux_conf_theme_mode_attr=${tmux_conf_theme_mode_attr:-bold}
# tmux setw -g mode-style fg=$tmux_conf_theme_mode_fg,bg=$tmux_conf_theme_mode_bg,$tmux_conf_theme_mode_attr
#
# # status line
# tmux_conf_theme_status_fg=${tmux_conf_theme_status_fg:-colour253} # white
# tmux_conf_theme_status_bg=${tmux_conf_theme_status_bg:-colour232} # dark gray
# tmux set -g status-style fg=$tmux_conf_theme_status_fg,bg=$tmux_conf_theme_status_bg
#
# tmux_conf_theme_session_fg=${tmux_conf_theme_session_fg:-colour16} # black
# tmux_conf_theme_session_bg=${tmux_conf_theme_session_bg:-colour226} # yellow
# status_left="#[fg=$tmux_conf_theme_session_fg,bg=$tmux_conf_theme_session_bg,bold] ❐ #S #[fg=$tmux_conf_theme_session_bg,bg=$tmux_conf_theme_status_bg,nobold]$left_separator_black"
# if [ x"`tmux -q -L tmux_theme_status_left_test -f /dev/null new-session -d \; show -g -v status-left \; kill-session`" = x"[#S] " ] ; then
# status_left="$status_left "
# fi
# tmux set -g status-left-length 32 \; set -g status-left "$status_left"
#
# tmux_conf_theme_window_status_fg=${tmux_conf_theme_window_status_fg:-colour245} # light gray
# tmux_conf_theme_window_status_bg=${tmux_conf_theme_window_status_bg:-colour232} # dark gray
# window_status_format="#I #W"
# tmux setw -g window-status-style fg=$tmux_conf_theme_window_status_fg,bg=$tmux_conf_theme_window_status_bg \; setw -g window-status-format "$window_status_format"
#
# tmux_conf_theme_window_status_current_fg=${tmux_conf_theme_window_status_current_fg:-colour16} # black
# tmux_conf_theme_window_status_current_bg=${tmux_conf_theme_window_status_current_bg:-colour39} # light blue
# window_status_current_format="#[fg=$tmux_conf_theme_window_status_bg,bg=$tmux_conf_theme_window_status_current_bg]$left_separator_black#[fg=$tmux_conf_theme_window_status_current_fg,bg=$tmux_conf_theme_window_status_current_bg,bold] #I $left_separator #W #[fg=$tmux_conf_theme_window_status_current_bg,bg=$tmux_conf_theme_status_bg,nobold]$left_separator_black"
# tmux setw -g window-status-current-format "$window_status_current_format"
# tmux set -g status-justify left
#
# tmux_conf_theme_window_status_activity_fg=${tmux_conf_theme_window_status_activity_fg:-default}
# tmux_conf_theme_window_status_activity_bg=${tmux_conf_theme_window_status_activity_bg:-default}
# tmux_conf_theme_window_status_activity_attr=${tmux_conf_theme_window_status_activity_attr:-underscore}
# tmux setw -g window-status-activity-style fg=$tmux_conf_theme_window_status_activity_fg,bg=$tmux_conf_theme_window_status_activity_bg,$tmux_conf_theme_window_status_activity_attr
#
# tmux_conf_theme_window_status_bell_fg=${tmux_conf_theme_window_status_bell_fg:-colour226} # yellow
# tmux_conf_theme_window_status_bell_bg=${tmux_conf_theme_window_status_bell_bg:-default}
# tmux_conf_theme_window_status_bell_attr=${tmux_conf_theme_window_status_bell_attr:-blink,bold}
# tmux setw -g window-status-bell-style fg=$tmux_conf_theme_window_status_bell_fg,bg=$tmux_conf_theme_window_status_bell_bg,$tmux_conf_theme_window_status_bell_attr
#
# window_status_last_fg=colour39 # light blue
# window_status_last_attr=default
# tmux setw -g window-status-last-style $window_status_last_attr,fg=$window_status_last_fg
#
# tmux_conf_theme_prefix=${tmux_conf_theme_prefix:-disabled}
# tmux_conf_theme_battery=${tmux_conf_theme_battery:-enabled}
# tmux_conf_theme_time=${tmux_conf_theme_time:-enabled}
# tmux_conf_theme_date=${tmux_conf_theme_date:-enabled}
# tmux_conf_theme_username=${tmux_conf_theme_username:-enabled}
# tmux_conf_theme_hostname=${tmux_conf_theme_hostname:-enabled}
#
# prefix_enabled=$( ([ x"$tmux_conf_theme_prefix" = x"enabled" ] || [ -z "$tmux_conf_theme_prefix" ]) && echo "true" || echo "false" )
# battery_enabled=$( ([ x"$tmux_conf_theme_battery" = x"enabled" ] || [ -z "$tmux_conf_theme_battery" ]) && echo "true" || echo "false" )
# time_enabled=$( ([ x"$tmux_conf_theme_time" = x"enabled" ] || [ -z "$tmux_conf_theme_time" ]) && echo "true" || echo "false" )
# date_enabled=$( ([ x"$tmux_conf_theme_date" = x"enabled" ] || [ -z "$tmux_conf_theme_date" ]) && echo "true" || echo "false" )
# username_enabled=$( ([ x"$tmux_conf_theme_username" = x"enabled" ] || [ -z "$tmux_conf_theme_username" ] || ([ x"$tmux_conf_theme_username" = x"ssh" ] && ([ -n "$SSH_CLIENT" ] || [ -n "$SSH_CONNECTION" ] || [ -n "$SSH_TTY" ]))) && echo "true" || echo "false" )
# hostname_enabled=$( ([ x"$tmux_conf_theme_hostname" = x"enabled" ] || [ -z "$tmux_conf_theme_hostname" ] || ([ x"$tmux_conf_theme_hostname" = x"ssh" ] && ([ -n "$SSH_CLIENT" ] || [ -n "$SSH_CONNECTION" ] || [ -n "$SSH_TTY" ]))) && echo "true" || echo "false" )
#
# tmux_conf_theme_prefix_fg=${tmux_conf_theme_prefix_fg:-colour253} # white
# tmux_conf_theme_prefix_bg=${tmux_conf_theme_prefix_bg:-colour16} # black
# tmux_conf_theme_time_date_fg=${tmux_conf_theme_time_date_fg:-colour247} # light gray
# tmux_conf_theme_time_date_bg=${tmux_conf_theme_time_date_bg:-colour232} # dark gray
# tmux_conf_theme_username_fg=colour254 # white
# tmux_conf_theme_username_bg=colour160 # red
# tmux_conf_theme_hostname_fg=colour16 # black
# tmux_conf_theme_hostname_bg=colour254 # white
#
# if [ x"$prefix_enabled" = x"true" ] ; then
# status_right_prefix="#{?client_prefix,#[fg=$tmux_conf_theme_prefix_fg]#[bg=$tmux_conf_theme_prefix_bg]#[bold]⌨ #[fg=$tmux_conf_theme_prefix_fg]#[bg=$tmux_conf_theme_status_bg]#[nobold],}"
# fi
# if [ x"$battery_enabled" = x"true" ] ; then
# status_right_battery="${tmux_conf_battery:-#(cut -c3- ~/.tmux.conf | sh -s battery ${tmux_conf_battery_symbol:-block} ${tmux_conf_battery_symbol_count:-auto} \"${tmux_conf_battery_palette:-colour160,colour254,colour16}\" ${tmux_conf_battery_status:-enabled})} "
# has_battery=$(eval echo \$${status_right_battery#\#})
# if [ -n "$has_battery" ] && ([ x"$time_enabled" = x"true" ] || [ x"$date_enabled" = x"true" ]) ; then
# status_right_battery="${status_right_battery}#[fg=$tmux_conf_theme_time_date_fg,nobold]$right_separator"
# fi
# fi
# if [ x"$time_enabled" = x"true" ] ; then
# status_right_time="#[fg=$tmux_conf_theme_time_date_fg,nobold]${status_right_time} %R "
# if [ x"$date_enabled" = x"true" ] ; then
# status_right_time="${status_right_time}#[fg=$tmux_conf_theme_time_date_fg,nobold]$right_separator"
# fi
# fi
# if [ x"$date_enabled" = x"true" ] ; then
# status_right_date="#[fg=$tmux_conf_theme_time_date_fg,nobold] %d %b "
# fi
# if [ x"$username_enabled" = x"true" ] ; then
# status_right_username="#[fg=$tmux_conf_theme_username_bg,bg=$tmux_conf_theme_time_date_bg,nobold]$right_separator_black#[fg=$tmux_conf_theme_username_fg,bg=$tmux_conf_theme_username_bg,nobold] #(whoami) "
# fi
# if [ x"$hostname_enabled" = x"true" ] ; then
# if [ x"$username_enabled" = x"true" ] ; then
# status_right_hostname="#[bg=$tmux_conf_theme_username_bg]"
# else
# status_right_hostname="#[bg=$tmux_conf_theme_time-data_bg]"
# fi
# status_right_hostname="#[fg=$tmux_conf_theme_hostname_bg,nobold]${status_right_hostname}$right_separator_black#[fg=$tmux_conf_theme_hostname_fg,bg=$tmux_conf_theme_hostname_bg,bold] #h "
# fi
#
# status_right="${status_right_prefix}${status_right_battery}${status_right_time}${status_right_date}${status_right_username}${status_right_hostname}"
# tmux set -g status-right-length 64 \; set -g status-right "$status_right"
#
# # clock
# clock_mode_colour=colour39 # light blue
# tmux setw -g clock-mode-colour $clock_mode_colour
# ;;
# esac
# }
#
# circled_digit() {
# circled_digits='⓪①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳'
# if [ $1 -lt 20 ] 2>/dev/null ; then
# echo ${circled_digits:$1:1}
# else
# echo $1
# fi
# }
#
# maximize_pane() {
# tmux -q -L swap-pane-test -f /dev/null new-session -d \; new-window \; new-window \; swap-pane -t :1 \; kill-session || { tmux display 'your tmux version has a buggy swap-pane command - see ticket #108, fixed in upstream commit 78e783e'; exit; }
# __current_pane=$(tmux display -p '#{pane_id}')
#
# __dead_panes=$(tmux list-panes -s -F '#{pane_dead} #{pane_id} #{pane_start_command}' | grep -o '^1 %.\+maximized.\+$' || true)
# __restore=$(echo "${__dead_panes}" | sed -n -E -e "s/^1 ${__current_pane} .+maximized.+(%[0-9]+)$/tmux swap-pane -s \1 -t ${__current_pane} \; kill-pane -t ${__current_pane}/p" -e "s/^1 (%[0-9]+) .+maximized.+${__current_pane}$/tmux swap-pane -s \1 -t ${__current_pane} \; kill-pane -t \1/p" )
#
# if [ x"${__restore}" = x ] ; then
# [ x"$(tmux list-panes | wc -l | sed 's/^ *//g')" = x1 ] && tmux display "Can't maximize with only one pane" && return
# __window=$(tmux new-window -P "exec maximized...& tmux setw remain-on-exit on; clear; tmux clear-history; printf 'Pane has been maximized, press <prefix>+ to restore. %s' \\${__current_pane};")
# __window=${__window%.*}
#
# __guard=50
# while ( [ x"$(tmux list-panes -t ${__window} -F '#{session_name}:#{window_index} #{pane_dead}')" != x"${__window} "1 ] && [ x"${__guard}" != x0 ] ) ; do sleep 0.01 ; __guard=$((__guard - 1)); done
# if [ x"${__guard}" = 0 ] ; then
# exit 1
# fi
#
# __new_pane=$(tmux display -p '#{pane_id}')
# tmux setw remain-on-exit off \; swap-pane -s "${__current_pane}" -t "${__new_pane}"
# else
# ${__restore} || tmux kill-pane
# fi
# }
#
# toggle_mouse() {
# if (tmux show -g -w |grep -q mode-mouse); then
# old=$(tmux show -g -w | grep mode-mouse | cut -d' ' -f2)
# new=""
#
# if [ "$old" = "on" ] ; then
# new="off"
# else
# new="on"
# fi
#
# tmux set -g mode-mouse $new \;\
# set -g mouse-resize-pane $new \;\
# set -g mouse-select-pane $new \;\
# set -g mouse-select-window $new \;\
# display "mouse: $new"
# else
# old=$(tmux show -g | grep mouse | head -n 1 | cut -d' ' -f2)
# new=""
#
# if [ "$old" = "on" ] ; then
# new="off"
# else
# new="on"
# fi
#
# tmux set -g mouse $new \;\
# display "mouse: $new"
# fi
# }
#
# battery() {
# uname_s=$(uname -s)
# if [ x"$uname_s" = x"Darwin" ]; then
# batt=$(pmset -g batt)
# percentage=$(echo $batt |egrep -o [0-9]+%) || return
# discharging=$(echo $batt | grep -qi "discharging" && echo "true" || echo "false")
# charge="${percentage%%%} / 100"
# elif [ x"$uname_s" = x"Linux" ]; then
# batpath=/sys/class/power_supply/BAT0
# if [ ! -d $batpath ]; then
# batpath=/sys/class/power_supply/BAT1
# fi
# discharging=$(grep -qi "discharging" $batpath/status && echo "true" || echo "false")
# bat_capacity=$batpath/capacity
# bat_energy_full=$batpath/energy_full
# bat_energy_now=$batpath/energy_now
# if [ -r "$bat_capacity" ] ; then
# charge="$(cat $bat_capacity) / 100"
# else
# if [ ! -r "$bat_energy_full" -o ! -r "$bat_energy_now" ]; then
# return
# fi
# charge="$(cat $bat_energy_now) / $(cat $bat_energy_full)" || return
# fi
# elif [ x"${uname_s:0:6}" = x"CYGWIN" ]; then
# wmic path Win32_Battery 2>&1 | grep -q 'No Instance' && return
# discharging=$(wmic path Win32_Battery Get BatteryStatus 2>/dev/null | grep -q 1 && echo "true" || echo "false")
# percentage=$(wmic path Win32_Battery Get EstimatedChargeRemaining /format:list 2>/dev/null | grep '[^[:blank:]]' | cut -d= -f2)
# charge="${percentage} / 100"
# else
# return
# fi
#
# battery_symbol=$1
# battery_symbol_count=$2
# battery_palette=$3
# battery_status=$4
# if [ x"$battery_symbol_count" = x"auto" ]; then
# columns=$(tmux -q display -p '#{client_width}' 2> /dev/null || echo 80)
# if [ $columns -ge 80 ]; then
# battery_symbol_count=10
# else
# battery_symbol_count=5
# fi
# fi
# battery_symbol_heart_full=♥
# battery_symbol_heart_empty=♥
# battery_symbol_block_full=◼
# battery_symbol_block_empty=◻
# eval battery_symbol_full='$battery_symbol_'"$battery_symbol"'_full'
# eval battery_symbol_empty='$battery_symbol_'"$battery_symbol"'_empty'
#
# if [ x"$battery_status" = x"1" ] || [ x"$battery_status" = x"true" ] || [ x"$battery_status" = x"enabled" ] ; then
# if [ x"$discharging" = x"true" ]; then
# echo "$uname_s" | grep -q -v "CYGWIN" && printf "%s " 🔋
# else
# printf "%s " ⚡
# fi
# fi
#
# if echo $battery_palette | grep -q -E '^heat|gradient(,[a-z0-9]{7,9})?$'; then
# battery_style=$(echo $battery_palette | cut -d, -f1)
# battery_bg=$(echo $battery_palette | cut -s -d, -f2)
# battery_bg=${battery_bg:-colour16}
# gradient="196 202 208 214 220 226 190 154 118 82 46"
# heat="233 234 235 237 239 241 243 245 247 144 143 142 184 214 208 202 196"
# eval palette=$(echo \$$battery_style)
# count=$(echo $(echo $palette | wc -w))
#
# eval set -- "$palette"
# palette=$(eval echo $(eval echo $(printf "\\$\{\$(expr %s \* $count / $battery_symbol_count)\} " $(seq 1 $battery_symbol_count))))
#
# full=$(printf %.0f $(awk "BEGIN{print $charge * $battery_symbol_count}"))
# printf '#[bg=%s]' $battery_bg
# [ $full -gt 0 ] && \
# printf "#[fg=colour%s]$battery_symbol_full" $(echo $palette | cut -d' ' -f1-$full)
# empty=$(($battery_symbol_count - $full))
# if [ x"$battery_symbol" = x"heart" ]; then
# [ $empty -gt 0 ] && \
# printf '#[fg=%s]' $battery_bg && \
# printf "%0.s$battery_symbol_empty" $(seq 1 $empty)
# else
# [ $empty -gt 0 ] && \
# printf "#[fg=colour%s]$battery_symbol_empty" $(echo $palette | cut -d' ' -f$((full+1))-$(($full + $empty)))
# fi
# elif echo $battery_palette | grep -q -E '^([#a-z0-9]{7,9},?){3}$'; then
# battery_full_fg=$(echo $battery_palette | cut -d, -f1)
# battery_empty_fg=$(echo $battery_palette | cut -d, -f2)
# battery_bg=$(echo $battery_palette | cut -d, -f3)
#
# full=$(printf %.0f $(awk "BEGIN{print $charge * $battery_symbol_count}"))
# [ $full -gt 0 ] && \
# printf '#[fg=%s,bg=%s]' $battery_full_fg $battery_bg && \
# printf "%0.s$battery_symbol_full" $(seq 1 $full)
# empty=$(($battery_symbol_count - $full))
# [ $empty -gt 0 ] && \
# printf '#[fg=%s,bg=%s]' $battery_empty_fg $battery_bg && \
# printf "%0.s$battery_symbol_empty" $(seq 1 $empty)
# fi
# }
#
# apply_configurable_bindings() {
# tmux_conf_new_windows_retain_current_path=${tmux_conf_new_windows_retain_current_path:-false}
# if [ x"$tmux_conf_new_windows_retain_current_path" = x"true" ] || [ x"$tmux_conf_new_windows_retain_current_path" = x"1" ] ; then
# tmux bind c new-window -c '#{pane_current_path}'
# else
# tmux bind c new-window
# fi
#
# tmux_conf_new_panes_retain_current_path=${tmux_conf_new_panes_retain_current_path:-true}
# if [ x"$tmux_conf_new_panes_retain_current_path" = x"true" ] || [ x"$tmux_conf_new_panes_retain_current_path" = x"1" ] ; then
# tmux bind '"' split-window -v -c "#{pane_current_path}" \;\
# bind % split-window -h -c "#{pane_current_path}" \;\
# bind - split-window -v -c "#{pane_current_path}" \;\
# bind _ split-window -h -c "#{pane_current_path}"
# else
# tmux bind '"' split-window -v \;\
# bind % split-window -h \;\
# bind - split-window -v \;\
# bind _ split-window -h
# fi
#
# tmux_conf_new_session_prompt=${tmux_conf_new_session_prompt:-false}
# if [ x"$tmux_conf_new_session_prompt" = x"true" ] || [ x"$tmux_conf_new_session_prompt" = x"1" ] ; then
# tmux bind C-c command-prompt -p new-session 'new-session -s %%'
# else
# tmux bind C-c new-session
# fi
# }
#
# apply_configuration() {
# apply_theme
# apply_configurable_bindings
# for name in $(printenv | grep -Eo ^tmux_conf_[^=]+); do tmux setenv -gu $name; done;
# }
#
# urlview() {
# tmux capture-pane -J -S - -E - -b urlview-$1 -t $1
# tmux split-window "(tmux show-buffer -b urlview-$1 | urlview || true); tmux delete-buffer -b urlview-$1"
# }
#
# fpp() {
# tmux capture-pane -J -S - -E - -b fpp-$1 -t $1
# tmux split-window "(tmux show-buffer -b fpp-$1 | fpp || true); tmux delete-buffer -b fpp-$1"
# }
#
# $@
:show-options -g
@continuum-boot "on" [10/10]
@continuum-boot-options "iterm,fullscreen"
@continuum-restore "on"
@continuum-save-interval "1"
@continuum-save-last-timestamp "1476734430"
@plugin "tmux-plugins/tmux-continuum"
@resurrect-capture-pane-contents "on"
@resurrect-restore-script-path "/Users/jamis/.tmux/plugins/tmux-resurrect/scripts/restore.sh"
@resurrect-save-script-path "/Users/jamis/.tmux/plugins/tmux-resurrect/scripts/save.sh"
@resurrect-strategy-irb "default_strategy"
@resurrect-strategy-nvim "session"
@resurrect-strategy-vim "session"
assume-paste-time 1
base-index 1
bell-action any
bell-on-alert off
default-command ""
default-shell "/bin/bash"
destroy-unattached off
detach-on-destroy on
display-panes-active-colour colour39
display-panes-colour colour39
display-panes-time 800
display-time 1000
history-limit 5000
key-table "root"
lock-after-time 0
lock-command "lock -np"
message-command-style fg=colour16,bg=colour160,bright
message-style fg=colour16,bg=colour226,bright
mouse off
prefix C-b
prefix2 C-a
renumber-windows on
repeat-time 600
set-titles on
set-titles-string "#h ❐ #S ● #I #W"
status on
status-interval 10
status-justify left
status-keys emacs
status-left "#[fg=colour16,bg=colour226,bold] ❐ #S #[fg=colour226,bg=colour232,nobold] "
status-left-length 32
status-left-style default
status-position bottom
status-right "#(cut -c3- ~/.tmux.conf | sh -s battery block auto "colour160,colour254,colour16" enabled) #[fg=colour247,nobold]|#[fg=colour247,nobold] %R #[fg=colour247,nobold]|#[fg
=colour247,nobold] %d %b #[fg=colour160,bg=colour232,nobold]#[fg=colour254,bg=colour160,nobold] #(whoami) #[fg=colour254,nobold]#[bg=colour160]#[fg=colour16,bg=colour254,bold] #h "
status-right-length 64
status-right-style default
status-style fg=colour253,bg=colour232
update-environment "DISPLAY SSH_ASKPASS SSH_AUTH_SOCK SSH_AGENT_PID SSH_CONNECTION WINDOWID XAUTHORITY"
visual-activity off
visual-bell off
visual-silence off
word-separators " -_@"
It's good to save all tmux environment files in ~/.tmux/resurrect/ directory.
but for people like me who only need the last one file, saving other files maybe not useful.
Can you tmux hero add a switch or other method to only save the last tmux environment file?
such as:
set -g @continuum-save-only-one-file 'on'
many thanks. ^_^
I recently updated my tmux to latest 2.2 released n April 2016 and now it crashes when I have tmux-continuum
enabled in the config file. Commenting out tmux-continuum
allows it to restart (but without my sessions!!).
$ tmux
lost server
Tmux version:
$ brew info tmux
tmux: stable 2.2 (bottled), HEAD
Terminal multiplexer
https://tmux.github.io/
/usr/local/Cellar/tmux/2.2 (9 files, 639.7K) *
Poured from bottle on 2016-06-13 at 09:28:28
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/tmux.rb
==> Dependencies
Build: pkg-config ✔
Required: libevent ✔
I am on the latest revision:
$ cd ~/.tmux/plugins/tmux-continuum/
$ git log
commit 499b6a7e4e8d5a8dbfd15ebedacefa1c0a66ff2f
Merge: d21e477 438e50d
Author: Bruno Sutic <removed>
Date: Sat Jan 23 16:57:14 2016 +0100
Merge pull request #17 from jarosser06/rm_hardcoded_home
Replaced hardcoded home directory in Systemd ExecStop with HOME variable
FYI: My Mabcook Pro's CPU also gets up to 35% CPU usage with OSX trying to report the crash in the background: /System/Library/CoreServices/ReportCrash
. Until I exit the shell that attempted to run tmux
, it continually heats up the CPU.
Per issue guidelines:
This is what my last
is symlinked to when I manually saved it:
tmux_resurrect_2016-06-11T23:21:24.txt
https://github.com/eduncan911/dotfiles/blob/master/.tmux.conf
This is all I get since the Homebrew version doesn't have debug builds.
$ tmux
lost server
root@DD-WRT:/opt/share# grive
Reading local directories
exception: /media/ware/Entware-ng.2016.07/build_dir/target-arm_cortex-a9_glibc-2.23_eabi/grive2-0.5-20160114/libgrive/src/util/OS.cc(57): Throw in function void gr::os::Stat(const string&, gr::DateTime_, off_t_, bool_)
Dynamic exception type: boost::exception_detail::clone_implgr::os::Error
[gr::expt::BacktraceTag_] = #0 0x9f3cc grive gr::os::Error::Error()
#1 0x9f1b0 grive gr::os::Stat(std::string const&, gr::DateTime_, long long_, bool*)
#2 0xa6bd0 grive gr::Resource::FromLocal(gr::Val&)
#3 0x52848 grive gr::State::FromLocal(boost::filesystem::path const&, gr::Resource*, gr::Val&)
#4 0x52890 grive gr::State::FromLocal(boost::filesystem::path const&, gr::Resource*, gr::Val&)
#5 0x52890 grive gr::State::FromLocal(boost::filesystem::path const&, gr::Resource*, gr::Val&)
#6 0x52890 grive gr::State::FromLocal(boost::filesystem::path const&, gr::Resource*, gr::Val&)
#7 0x52fd4 grive gr::State::FromLocal(boost::filesystem::path const&)
#8 0x50934 grive gr::Drive::DetectChanges()
#9 0x445e0 grive Main(int, char**)
#10 0x42d4c grive main
#11 0x767af1bc /opt/lib/libc.so.6 __libc_start_main
2, "No such file or directory"[boost::errinfo_file_name__] = ./tmux-continuum/scripts/handle_tmux_automatic_start/README.md
[boost::errinfo_api_function__] = stat
Needless to say, that Grive2 is working flawlessly if outside of Tmux.
Hi there,
I've just discovered your work, last week and seriously thank you it is awesome !
I find the idea great, and most of the plugin where most wanted features in tmux for long time,
specially, a way of make tmux, survive reboot, so I ended installing continuum.
But even if I add the auto restore the session didn't come back, here some details:
I use tmuxinator to design the session content, (https://github.com/tmuxinator/tmuxinator)
and it is also used to launch tmux itself, by .Xsessionrc:
urxvtcd -e bash -c 'echo "--> Get Screen session central" &&
tmuxinator start central ' &
After that my revelant part of my ~/.tmux.conf
# List of plugins
# Supports `github_username/repo` or full git repo URLs
set -g @tpm_plugins ' \
tmux-plugins/tpm \
tmux-plugins/tmux-sensible \
tmux-plugins/tmux-copycat \
tmux-plugins/tmux-resurrect \
tmux-plugins/tmux-continuum \
tmux-plugins/tmux-yank \
# Plugin conf
set -g @continuum-restore 'on'
# Other examples:
# github_username/plugin_name \
# [email protected]/user/plugin \
# [email protected]/user/plugin \
# Initializes TMUX plugin manager.
# Keep this line at the very bottom of tmux.conf.
run-shell '~/.tmux/plugins/tpm/tpm'
Any idea / test to make it work ?
Guillaume.
Am seeing in each pane, there is a message like
history -r '/Users/abc/.tmux/resurrect/bash_history-work:0.1'
popping up.
How can I disable this? This is very noisy and annoying. Thanks folks.
I'm not really sure where the bug lies :( Since I use tmux-continuum with conjunction of tmux-resurrect my apps not restored. What I see is that there are panes more than one time after a continuum save, probably this is the error for not restoring apps anymore.
Here is an example. Saved lines for a session with manual resurrect save:
pane mopidy 0 :ncmpcpp 1 :* 0 :/home/hoschi 1 ncmpcpp :ncmpcpp
pane mopidy 1 :zsh 0 :- 0 :/home/hoschi 1 zsh :
And here the lines after continuum save:
pane mopidy 0 :ncmpcpp 1 :* 0 :/home/hoschi 1 ncmpcpp :ncmpcpp
pane issues_work 1 :bash 1 :* 0 :/home/hoschi/repos/sweetp-code/services/github-issues 1 zsh :
pane mopidy 0 :ncmpcpp 1 :* 0 :/home/hoschi 1 ncmpcpp :ncmpcpp
pane mopidy 1 :zsh 0 :- 0 :/home/hoschi 1 zsh :
pane mopidy 0 :ncmpcpp 1 :* 0 :/home/hoschi 1 ncmpcpp :ncmpcpp
pane mopidy 1 :zsh 0 :- 0 :/home/hoschi 1 zsh :
pane notes 0 :mkd 1 :* 0 :/home/hoschi/Dropbox/notes 1 vim :vim blog.md breeze-js.md
pane mopidy 1 :zsh 0 :- 0 :/home/hoschi 1 zsh :
Here are the attatched files:
manual save:
pane 1 0 :zsh 1 :* 0 :/home/hoschi 1 zsh :
pane activity 0 :zsh 1 :* 0 :/home/hoschi 1 zsh :
pane atom 0 :zsh 0 :- 0 :/home/hoschi/repos/html-tab 1 zsh :
pane atom 1 :zsh 1 :* 0 :/home/hoschi/repos/html-view-test 1 zsh :
pane base-node-service 0 :vim 1 :* 0 :/home/hoschi/repos/sweetp-code/services/base-nodejs 1 zsh :
pane base-node-service 1 :zsh 0 :- 0 :/home/hoschi/repos/sweetp-code/services/base-nodejs 1 zsh :
pane data 0 :badblocks 1 :* 0 : 1 badblocks :sudo zsh
pane git-sevice 0 :zsh 0 :- 0 :/home/hoschi/repos/sweetp-code/services/git 1 zsh :
pane git-sevice 1 :build 1 :* 0 :/home/hoschi/repos/sweetp-code/services/git 1 zsh :
pane git-sevice 2 :test 0 : 0 :/home/hoschi/repos/sweetp-code/sandbox/testgit 1 zsh :
pane github-service 0 :vim 0 :- 0 :/home/hoschi/repos/sweetp-code/services/github-issues 1 zsh :
pane github-service 1 :git 1 :* 0 :/home/hoschi/repos/sweetp-code/services/github-issues 1 zsh :
pane github-service2 0 :bash 1 :* 0 :/home/hoschi/repos/sweetp-code/services/github-issues 1 zsh :
pane grf 0 :mc 0 : 0 :/home/hoschi/repos/grf 1 zsh :
pane grf 0 :mc 0 : 1 :/home/hoschi/repos/grf 0 zsh :
pane grf 1 :vim 0 : 0 :/home/hoschi/repos/grf/plugin-grf/web-app/frontend 1 zsh :
pane grf 1 :vim 0 : 1 :/home/hoschi/repos/grf/plugin-grf/web-app/frontend/resources 0 zsh :
pane grf 2 :work 1 :* 0 :/home/hoschi/repos/grf 0 zsh :
pane grf 2 :work 1 :* 1 :/home/hoschi/repos/grf 1 zsh :
pane grf 2 :work 1 :* 2 :/home/hoschi/repos/grf 0 zsh :
pane grf 3 :et-vim 0 : 0 :/home/hoschi/repos/et-core 1 zsh :
pane grf 3 :et-vim 0 : 1 :/home/hoschi/repos/et-core 0 zsh :
pane grf 4 :et-work 0 : 0 :/home/hoschi/repos/et-core 1 zsh :
pane grf 5 :sass 0 : 0 :/home/hoschi/repos/grf/plugin-multichannel/web-app 1 zsh :
pane grf 6 :stuff 0 :- 0 :/home/hoschi/repos/grf 0 zsh :
pane grf 6 :stuff 0 :- 1 :/home/hoschi/repos/grf 1 zsh :
pane issues_vim 0 :vim 1 :* 0 :/home/hoschi/repos/sweetp-code/services/github-issues 1 zsh :
pane issues_vim 0 :vim 1 :* 1 :/home/hoschi/repos/sweetp-code/services/github-issues 0 zsh :
pane issues_vim 1 :zsh 0 :- 0 :/home/hoschi/repos/sweetp-code/services/github-issues 1 zsh :
pane issues_work 0 :zsh 0 :- 0 :/home/hoschi/repos/sweetp-code/services/github-issues/sweetptest 1 zsh :
pane issues_work 1 :bash 1 :* 0 :/home/hoschi/repos/sweetp-code/services/github-issues 1 zsh :
pane mopidy 0 :ncmpcpp 1 :* 0 :/home/hoschi 1 ncmpcpp :ncmpcpp
pane mopidy 1 :zsh 0 :- 0 :/home/hoschi 1 zsh :
pane notes 0 :mkd 1 :* 0 :/home/hoschi/Dropbox/notes 1 vim :vim blog.md breeze-js.md
pane notes 1 :AA 0 :- 0 :/home/hoschi/Dropbox/notes 1 vim :vim /home/hoschi/foo.md
pane password-mngr 0 :vim 0 :- 0 :/home/hoschi/repos/sweetp-code/services/password-manager 1 zsh :
pane password-mngr 1 :git 1 :* 0 :/home/hoschi/bin/sweetp-project/server 1 zsh :
pane project-context-manager_second 0 :grunt 1 :* 0 :/home/hoschi/repos/sweetp-code/services/project-context-manager 1 zsh :
pane project-context-manager_second 1 :zsh 0 :- 0 :/home/hoschi/repos/sweetp-code/services/project-context-manager 1 zsh :
pane project-context-manager_vim 0 :vim 1 :* 0 :/home/hoschi/repos/sweetp-code/services/project-context-manager 1 zsh :
pane project-context-manager_vim 1 :git 0 :- 0 :/home/hoschi/repos/sweetp-code/services/project-context-manager 1 zsh :
pane serien 0 :desktop 1 :* 0 :/home/hoschi 1 zsh :
pane serien 0 :desktop 1 :* 1 :/home/hoschi 0 zsh :
pane startup 0 :zsh 1 :* 0 :/home/hoschi 1 zsh :
pane sw-dashboard 0 :vim 0 : 0 :/home/hoschi/repos/sweetp-code/dashboard 1 zsh :
pane sw-dashboard 0 :vim 0 : 1 :/home/hoschi/repos/sweetp-code/dashboard 0 zsh :
pane sw-dashboard 1 :work 1 :* 0 :/home/hoschi/repos/sweetp-code/dashboard 0 zsh :
pane sw-dashboard 1 :work 1 :* 1 :/home/hoschi/repos/sweetp-code/dashboard 1 zsh :
pane sw-dashboard 1 :work 1 :* 2 :/home/hoschi/repos/sweetp-code/dashboard 0 zsh :
pane sw-dashboard 2 :stable 0 :- 0 :/home/hoschi/repos/sweetp-code/dashboard-stable 1 zsh :
pane sw-main 0 :git 0 : 0 :/home/hoschi/repos/sweetp-code/main 1 zsh :
pane sw-main 1 :build 0 : 0 :/home/hoschi/repos/sweetp-code/main 0 zsh :
pane sw-main 1 :build 0 : 1 :/home/hoschi/repos/sweetp-code/main 1 zsh :
pane sw-main 2 :dev-server 1 :* 0 :/home/hoschi/repos/sweetp-code/dev-server/server 1 zsh :
pane sw-main 2 :dev-server 1 :* 1 :/home/hoschi/repos/sweetp-code/dev-server/server 0 zsh :
pane sw-main 3 :test 0 :- 0 :/home/hoschi/repos/sweetp-code/dashboard 1 zsh :
pane sys-update 0 :zsh 1 :* 0 :/home/hoschi 1 zsh :
pane test-sw-dashboard 0 :zsh 1 :* 0 :/home/hoschi/repos/sweetp-code/dashboard 0 zsh :
pane test-sw-dashboard 0 :zsh 1 :* 1 :/home/hoschi/repos/sweetp-code/dashboard 0 zsh :
pane test-sw-dashboard 0 :zsh 1 :* 2 :/home/hoschi/repos/sweetp-code/dashboard 1 zsh :
pane tmux-conf 0 :vim 0 : 0 :/home/hoschi 1 zsh :
pane tmux-conf 1 :man 0 : 0 :/usr/share/man 1 zsh :
pane tmux-conf 2 :git 0 :- 0 :/home/hoschi/dotfiles 1 zsh :
pane tmux-conf 3 :zsh 1 :* 0 :/home/hoschi/.tmux/resurrect 1 zsh :
pane vim_config 0 :vimrc 0 : 0 :/home/hoschi/dotfiles/.vim 1 zsh :
pane vim_config 1 :plugins 0 :- 0 :/home/hoschi/dotfiles/.vim/bundle 1 zsh :
pane vim_config 2 :my-snippets 1 :* 0 :/home/hoschi/dotfiles/.vim/mysnippets 1 zsh :
pane weechat 0 :WeeChat 1.1.1 1 :* 0 :/home/hoschi 1 weechat :weechat
pane workflow-service 0 :vim 1 :* 0 :/home/hoschi/repos/sweetp-code/services/project-workflow 1 zsh :
pane workflow-service 1 :zsh 0 :- 0 :/home/hoschi/repos/sweetp-code/services/project-workflow 1 zsh :
pane workflow-service2 0 :bash 1 :* 0 :/home/hoschi/repos/sweetp-code/services/project-workflow 1 zsh :
window 1 0 1 :* c97e,376x75,0,0,1
window activity 0 1 :* c97f,376x75,0,0,2
window atom 0 0 :- c980,376x75,0,0,3
window atom 1 1 :* c981,376x75,0,0,4
window base-node-service 0 1 :* c982,376x75,0,0,5
window base-node-service 1 0 :- c983,376x75,0,0,6
window data 0 1 :* 5b87,227x23,0,0,75
window git-sevice 0 0 :- c984,376x75,0,0,7
window git-sevice 1 1 :* c985,376x75,0,0,8
window git-sevice 2 0 : c986,376x75,0,0,9
window github-service 0 0 :- 64ef,376x75,0,0,10
window github-service 1 1 :* 64f0,376x75,0,0,11
window github-service2 0 1 :* 64f1,376x75,0,0,12
window grf 0 0 : 5612,376x75,0,0[376x28,0,0,13,376x46,0,29,14]
window grf 1 0 : 5ed5,376x75,0,0[376x38,0,0,15,376x36,0,39,16]
window grf 2 1 :* 0c97,376x75,0,0[376x39,0,0,17,376x35,0,40{188x35,0,40,18,187x35,189,40,19}]
window grf 3 0 : 7bce,376x75,0,0[376x36,0,0,20,376x38,0,37,21]
window grf 4 0 : e4f1,376x75,0,0,22
window grf 5 0 : e4f2,376x75,0,0,23
window grf 6 0 :- 5cd4,376x75,0,0[376x44,0,0,24,376x30,0,45,25]
window issues_vim 0 1 :* 9617,376x75,0,0[376x28,0,0,26,376x46,0,29,27]
window issues_vim 1 0 :- e4f7,376x75,0,0,28
window issues_work 0 0 :- e4f8,376x75,0,0,29
window issues_work 1 1 :* 64f0,376x75,0,0,30
window mopidy 0 1 :* 5cb8,181x62,0,0,38
window mopidy 1 0 :- 5cb9,181x62,0,0,77
window notes 0 1 :* 6479,146x75,0,0,39
window notes 1 0 :- e470,146x75,0,0,40
window password-mngr 0 0 :- e4f1,376x75,0,0,41
window password-mngr 1 1 :* e4f2,376x75,0,0,42
window project-context-manager_second 0 1 :* e4f3,376x75,0,0,43
window project-context-manager_second 1 0 :- e4f4,376x75,0,0,44
window project-context-manager_vim 0 1 :* e4f5,376x75,0,0,45
window project-context-manager_vim 1 0 :- e4f6,376x75,0,0,46
window serien 0 1 :* 16da,376x75,0,0[376x40,0,0,47,376x34,0,41,48]
window startup 0 1 :* c97d,376x75,0,0,0
window sw-dashboard 0 0 : d618,376x75,0,0[376x28,0,0,49,376x46,0,29,50]
window sw-dashboard 1 1 :* d342,376x75,0,0{214x75,0,0,51,161x75,215,0[161x39,215,0,52,161x35,215,40,53]}
window sw-dashboard 2 0 :- 64f5,376x75,0,0,54
window sw-main 0 0 : 64f6,376x75,0,0,55
window sw-main 1 0 : ded1,376x75,0,0[376x38,0,0,56,376x36,0,39,57]
window sw-main 2 1 :* 2777,376x75,0,0{209x75,0,0,58,166x75,210,0,59}
window sw-main 3 0 :- e4f1,376x75,0,0,60
window sys-update 0 1 :* e4f2,376x75,0,0,61
window test-sw-dashboard 0 1 :* 357a,376x75,0,0[376x20,0,0,62,376x19,0,21,63,376x34,0,41,64]
window tmux-conf 0 0 : e636,145x76,0,0,65
window tmux-conf 1 0 : e637,145x76,0,0,66
window tmux-conf 2 0 :- e638,145x76,0,0,67
window tmux-conf 3 1 :* 663b,145x76,0,0,79
window vim_config 0 0 : e4f9,376x75,0,0,68
window vim_config 1 0 :- e4fa,376x75,0,0,69
window vim_config 2 1 :* 64f2,376x75,0,0,70
window weechat 0 1 :* 64b3,109x75,0,0,71
window workflow-service 0 1 :* 64f4,376x75,0,0,72
window workflow-service 1 0 :- 64f5,376x75,0,0,73
window workflow-service2 0 1 :* 64f6,376x75,0,0,74
state tmux-conf
continuum save:
pane 1 0 :zsh 1 :* 0 :/home/hoschi 1 zsh :
pane 1 0 :zsh 1 :* 0 :/home/hoschi 1 zsh :
pane 1 0 :zsh 1 :* 0 :/home/hoschi 1 zsh :
pane activity 0 :zsh 1 :* 0 :/home/hoschi 1 zsh :
pane activity 0 :zsh 1 :* 0 :/home/hoschi 1 zsh :
pane activity 0 :zsh 1 :* 0 :/home/hoschi 1 zsh :
pane atom 0 :zsh 0 :- 0 :/home/hoschi/repos/html-tab 1 zsh :
pane atom 0 :zsh 0 :- 0 :/home/hoschi/repos/html-tab 1 zsh :
pane atom 0 :zsh 0 :- 0 :/home/hoschi/repos/html-tab 1 zsh :
pane atom 1 :zsh 1 :* 0 :/home/hoschi/repos/html-view-test 1 zsh :
pane atom 1 :zsh 1 :* 0 :/home/hoschi/repos/html-view-test 1 zsh :
pane atom 1 :zsh 1 :* 0 :/home/hoschi/repos/html-view-test 1 zsh :
pane base-node-service 0 :vim 1 :* 0 :/home/hoschi/repos/sweetp-code/services/base-nodejs 1 zsh :
pane base-node-service 0 :vim 1 :* 0 :/home/hoschi/repos/sweetp-code/services/base-nodejs 1 zsh :
pane base-node-service 0 :vim 1 :* 0 :/home/hoschi/repos/sweetp-code/services/base-nodejs 1 zsh :
pane base-node-service 1 :zsh 0 :- 0 :/home/hoschi/repos/sweetp-code/services/base-nodejs 1 zsh :
pane base-node-service 1 :zsh 0 :- 0 :/home/hoschi/repos/sweetp-code/services/base-nodejs 1 zsh :
pane base-node-service 1 :zsh 0 :- 0 :/home/hoschi/repos/sweetp-code/services/base-nodejs 1 zsh :
pane data 0 :badblocks 1 :* 0 : 1 badblocks :sudo zsh
pane data 0 :badblocks 1 :* 0 : 1 badblocks :sudo zsh
pane data 0 :badblocks 1 :* 0 : 1 badblocks :sudo zsh
pane git-sevice 0 :zsh 0 :- 0 :/home/hoschi/repos/sweetp-code/services/git 1 zsh :
pane git-sevice 0 :zsh 0 :- 0 :/home/hoschi/repos/sweetp-code/services/git 1 zsh :
pane git-sevice 0 :zsh 0 :- 0 :/home/hoschi/repos/sweetp-code/services/git 1 zsh :
pane git-sevice 1 :build 1 :* 0 :/home/hoschi/repos/sweetp-code/services/git 1 zsh :
pane git-sevice 1 :build 1 :* 0 :/home/hoschi/repos/sweetp-code/services/git 1 zsh :
pane git-sevice 1 :build 1 :* 0 :/home/hoschi/repos/sweetp-code/services/git 1 zsh :
pane git-sevice 2 :test 0 : 0 :/home/hoschi/repos/sweetp-code/sandbox/testgit 1 zsh :
pane git-sevice 2 :test 0 : 0 :/home/hoschi/repos/sweetp-code/sandbox/testgit 1 zsh :
pane github-service 0 :vim 0 :- 0 :/home/hoschi/repos/sweetp-code/services/github-issues 1 zsh :
pane git-sevice 2 :test 0 : 0 :/home/hoschi/repos/sweetp-code/sandbox/testgit 1 zsh :
pane github-service 0 :vim 0 :- 0 :/home/hoschi/repos/sweetp-code/services/github-issues 1 zsh :
pane github-service 0 :vim 0 :- 0 :/home/hoschi/repos/sweetp-code/services/github-issues 1 zsh :
pane github-service 1 :git 1 :* 0 :/home/hoschi/repos/sweetp-code/services/github-issues 1 zsh :
pane github-service 1 :git 1 :* 0 :/home/hoschi/repos/sweetp-code/services/github-issues 1 zsh :
pane github-service 1 :git 1 :* 0 :/home/hoschi/repos/sweetp-code/services/github-issues 1 zsh :
pane github-service2 0 :bash 1 :* 0 :/home/hoschi/repos/sweetp-code/services/github-issues 1 zsh :
pane github-service2 0 :bash 1 :* 0 :/home/hoschi/repos/sweetp-code/services/github-issues 1 zsh :
pane grf 0 :mc 0 : 0 :/home/hoschi/repos/grf 1 zsh :
pane github-service2 0 :bash 1 :* 0 :/home/hoschi/repos/sweetp-code/services/github-issues 1 zsh :
pane grf 0 :mc 0 : 0 :/home/hoschi/repos/grf 1 zsh :
pane grf 0 :mc 0 : 0 :/home/hoschi/repos/grf 1 zsh :
pane grf 0 :mc 0 : 1 :/home/hoschi/repos/grf 0 zsh :
pane grf 0 :mc 0 : 1 :/home/hoschi/repos/grf 0 zsh :
pane grf 1 :vim 0 : 0 :/home/hoschi/repos/grf/plugin-grf/web-app/frontend 1 zsh :
pane grf 0 :mc 0 : 1 :/home/hoschi/repos/grf 0 zsh :
pane grf 1 :vim 0 : 0 :/home/hoschi/repos/grf/plugin-grf/web-app/frontend 1 zsh :
pane grf 1 :vim 0 : 0 :/home/hoschi/repos/grf/plugin-grf/web-app/frontend 1 zsh :
pane grf 1 :vim 0 : 1 :/home/hoschi/repos/grf/plugin-grf/web-app/frontend/resources 0 zsh :
pane grf 1 :vim 0 : 1 :/home/hoschi/repos/grf/plugin-grf/web-app/frontend/resources 0 zsh :
pane grf 1 :vim 0 : 1 :/home/hoschi/repos/grf/plugin-grf/web-app/frontend/resources 0 zsh :
pane grf 2 :work 1 :* 0 :/home/hoschi/repos/grf 0 zsh :
pane grf 2 :work 1 :* 0 :/home/hoschi/repos/grf 0 zsh :
pane grf 2 :work 1 :* 0 :/home/hoschi/repos/grf 0 zsh :
pane grf 2 :work 1 :* 1 :/home/hoschi/repos/grf 1 zsh :
pane grf 2 :work 1 :* 1 :/home/hoschi/repos/grf 1 zsh :
pane grf 2 :work 1 :* 2 :/home/hoschi/repos/grf 0 zsh :
pane grf 2 :work 1 :* 1 :/home/hoschi/repos/grf 1 zsh :
pane grf 2 :work 1 :* 2 :/home/hoschi/repos/grf 0 zsh :
pane grf 2 :work 1 :* 2 :/home/hoschi/repos/grf 0 zsh :
pane grf 3 :et-vim 0 : 0 :/home/hoschi/repos/et-core 1 zsh :
pane grf 3 :et-vim 0 : 0 :/home/hoschi/repos/et-core 1 zsh :
pane grf 3 :et-vim 0 : 1 :/home/hoschi/repos/et-core 0 zsh :
pane grf 3 :et-vim 0 : 0 :/home/hoschi/repos/et-core 1 zsh :
pane grf 3 :et-vim 0 : 1 :/home/hoschi/repos/et-core 0 zsh :
pane grf 4 :et-work 0 : 0 :/home/hoschi/repos/et-core 1 zsh :
pane grf 3 :et-vim 0 : 1 :/home/hoschi/repos/et-core 0 zsh :
pane grf 4 :et-work 0 : 0 :/home/hoschi/repos/et-core 1 zsh :
pane grf 4 :et-work 0 : 0 :/home/hoschi/repos/et-core 1 zsh :
pane grf 5 :sass 0 : 0 :/home/hoschi/repos/grf/plugin-multichannel/web-app 1 zsh :
pane grf 5 :sass 0 : 0 :/home/hoschi/repos/grf/plugin-multichannel/web-app 1 zsh :
pane grf 5 :sass 0 : 0 :/home/hoschi/repos/grf/plugin-multichannel/web-app 1 zsh :
pane grf 6 :stuff 0 :- 0 :/home/hoschi/repos/grf 0 zsh :
pane grf 6 :stuff 0 :- 0 :/home/hoschi/repos/grf 0 zsh :
pane grf 6 :stuff 0 :- 0 :/home/hoschi/repos/grf 0 zsh :
pane grf 6 :stuff 0 :- 1 :/home/hoschi/repos/grf 1 zsh :
pane grf 6 :stuff 0 :- 1 :/home/hoschi/repos/grf 1 zsh :
pane issues_vim 0 :vim 1 :* 0 :/home/hoschi/repos/sweetp-code/services/github-issues 1 zsh :
pane grf 6 :stuff 0 :- 1 :/home/hoschi/repos/grf 1 zsh :
pane issues_vim 0 :vim 1 :* 0 :/home/hoschi/repos/sweetp-code/services/github-issues 1 zsh :
pane issues_vim 0 :vim 1 :* 1 :/home/hoschi/repos/sweetp-code/services/github-issues 0 zsh :
pane issues_vim 0 :vim 1 :* 0 :/home/hoschi/repos/sweetp-code/services/github-issues 1 zsh :
pane issues_vim 0 :vim 1 :* 1 :/home/hoschi/repos/sweetp-code/services/github-issues 0 zsh :
pane issues_vim 1 :zsh 0 :- 0 :/home/hoschi/repos/sweetp-code/services/github-issues 1 zsh :
pane issues_vim 0 :vim 1 :* 1 :/home/hoschi/repos/sweetp-code/services/github-issues 0 zsh :
pane issues_vim 1 :zsh 0 :- 0 :/home/hoschi/repos/sweetp-code/services/github-issues 1 zsh :
pane issues_work 0 :zsh 0 :- 0 :/home/hoschi/repos/sweetp-code/services/github-issues/sweetptest 1 zsh :
pane issues_vim 1 :zsh 0 :- 0 :/home/hoschi/repos/sweetp-code/services/github-issues 1 zsh :
pane issues_work 0 :zsh 0 :- 0 :/home/hoschi/repos/sweetp-code/services/github-issues/sweetptest 1 zsh :
pane issues_work 1 :bash 1 :* 0 :/home/hoschi/repos/sweetp-code/services/github-issues 1 zsh :
pane issues_work 0 :zsh 0 :- 0 :/home/hoschi/repos/sweetp-code/services/github-issues/sweetptest 1 zsh :
pane issues_work 1 :bash 1 :* 0 :/home/hoschi/repos/sweetp-code/services/github-issues 1 zsh :
pane mopidy 0 :ncmpcpp 1 :* 0 :/home/hoschi 1 ncmpcpp :ncmpcpp
pane issues_work 1 :bash 1 :* 0 :/home/hoschi/repos/sweetp-code/services/github-issues 1 zsh :
pane mopidy 0 :ncmpcpp 1 :* 0 :/home/hoschi 1 ncmpcpp :ncmpcpp
pane mopidy 1 :zsh 0 :- 0 :/home/hoschi 1 zsh :
pane mopidy 0 :ncmpcpp 1 :* 0 :/home/hoschi 1 ncmpcpp :ncmpcpp
pane mopidy 1 :zsh 0 :- 0 :/home/hoschi 1 zsh :
pane notes 0 :mkd 1 :* 0 :/home/hoschi/Dropbox/notes 1 vim :vim blog.md
pane mopidy 1 :zsh 0 :- 0 :/home/hoschi 1 zsh :
pane notes 0 :mkd 1 :* 0 :/home/hoschi/Dropbox/notes 1 vim :vim blog.md
pane notes 1 :AA 0 :- 0 :/home/hoschi/Dropbox/notes 1 vim :vim /home/hoschi/foo.md
pane notes 1 :AA 0 :- 0 :/home/hoschi/Dropbox/notes 1 vim :vim /home/hoschi/foo.md
pane notes 0 :mkd 1 :* 0 :/home/hoschi/Dropbox/notes 1 vim :vim blog.md
pane password-mngr 0 :vim 0 :- 0 :/home/hoschi/repos/sweetp-code/services/password-manager 1 zsh :
pane password-mngr 0 :vim 0 :- 0 :/home/hoschi/repos/sweetp-code/services/password-manager 1 zsh :
pane notes 1 :AA 0 :- 0 :/home/hoschi/Dropbox/notes 1 vim :vim /home/hoschi/Dropbox/foo.md
pane password-mngr 1 :git 1 :* 0 :/home/hoschi/bin/sweetp-project/server 1 zsh :
pane password-mngr 1 :git 1 :* 0 :/home/hoschi/bin/sweetp-project/server 1 zsh :
pane password-mngr 0 :vim 0 :- 0 :/home/hoschi/repos/sweetp-code/services/password-manager 1 zsh :
pane project-context-manager_second 0 :grunt 1 :* 0 :/home/hoschi/repos/sweetp-code/services/project-context-manager 1 zsh :
pane project-context-manager_second 0 :grunt 1 :* 0 :/home/hoschi/repos/sweetp-code/services/project-context-manager 1 zsh :
pane password-mngr 1 :git 1 :* 0 :/home/hoschi/bin/sweetp-project/server 1 zsh :
pane project-context-manager_second 1 :zsh 0 :- 0 :/home/hoschi/repos/sweetp-code/services/project-context-manager 1 zsh :
pane project-context-manager_second 1 :zsh 0 :- 0 :/home/hoschi/repos/sweetp-code/services/project-context-manager 1 zsh :
pane project-context-manager_second 0 :grunt 1 :* 0 :/home/hoschi/repos/sweetp-code/services/project-context-manager 1 zsh :
pane project-context-manager_vim 0 :vim 1 :* 0 :/home/hoschi/repos/sweetp-code/services/project-context-manager 1 zsh :
pane project-context-manager_vim 0 :vim 1 :* 0 :/home/hoschi/repos/sweetp-code/services/project-context-manager 1 zsh :
pane project-context-manager_second 1 :zsh 0 :- 0 :/home/hoschi/repos/sweetp-code/services/project-context-manager 1 zsh :
pane project-context-manager_vim 1 :git 0 :- 0 :/home/hoschi/repos/sweetp-code/services/project-context-manager 1 zsh :
pane project-context-manager_vim 1 :git 0 :- 0 :/home/hoschi/repos/sweetp-code/services/project-context-manager 1 zsh :
pane project-context-manager_vim 0 :vim 1 :* 0 :/home/hoschi/repos/sweetp-code/services/project-context-manager 1 zsh :
pane project-context-manager_vim 1 :git 0 :- 0 :/home/hoschi/repos/sweetp-code/services/project-context-manager 1 zsh :
pane serien 0 :desktop 1 :* 0 :/home/hoschi 1 zsh :
pane serien 0 :desktop 1 :* 0 :/home/hoschi 1 zsh :
pane serien 0 :desktop 1 :* 1 :/home/hoschi 0 zsh :
pane serien 0 :desktop 1 :* 0 :/home/hoschi 1 zsh :
pane serien 0 :desktop 1 :* 1 :/home/hoschi 0 zsh :
pane startup 0 :zsh 1 :* 0 :/home/hoschi 1 zsh :
pane startup 0 :zsh 1 :* 0 :/home/hoschi 1 zsh :
pane serien 0 :desktop 1 :* 1 :/home/hoschi 0 zsh :
pane startup 0 :zsh 1 :* 0 :/home/hoschi 1 zsh :
pane sw-dashboard 0 :vim 0 : 0 :/home/hoschi/repos/sweetp-code/dashboard 1 zsh :
pane sw-dashboard 0 :vim 0 : 0 :/home/hoschi/repos/sweetp-code/dashboard 1 zsh :
pane sw-dashboard 0 :vim 0 : 0 :/home/hoschi/repos/sweetp-code/dashboard 1 zsh :
pane sw-dashboard 0 :vim 0 : 1 :/home/hoschi/repos/sweetp-code/dashboard 0 zsh :
pane sw-dashboard 0 :vim 0 : 1 :/home/hoschi/repos/sweetp-code/dashboard 0 zsh :
pane sw-dashboard 0 :vim 0 : 1 :/home/hoschi/repos/sweetp-code/dashboard 0 zsh :
pane sw-dashboard 1 :work 1 :* 0 :/home/hoschi/repos/sweetp-code/dashboard 0 zsh :
pane sw-dashboard 1 :work 1 :* 0 :/home/hoschi/repos/sweetp-code/dashboard 0 zsh :
pane sw-dashboard 1 :work 1 :* 0 :/home/hoschi/repos/sweetp-code/dashboard 0 zsh :
pane sw-dashboard 1 :work 1 :* 1 :/home/hoschi/repos/sweetp-code/dashboard 1 zsh :
pane sw-dashboard 1 :work 1 :* 1 :/home/hoschi/repos/sweetp-code/dashboard 1 zsh :
pane sw-dashboard 1 :work 1 :* 1 :/home/hoschi/repos/sweetp-code/dashboard 1 zsh :
pane sw-dashboard 1 :work 1 :* 2 :/home/hoschi/repos/sweetp-code/dashboard 0 zsh :
pane sw-dashboard 1 :work 1 :* 2 :/home/hoschi/repos/sweetp-code/dashboard 0 zsh :
pane sw-dashboard 1 :work 1 :* 2 :/home/hoschi/repos/sweetp-code/dashboard 0 zsh :
pane sw-dashboard 2 :stable 0 :- 0 :/home/hoschi/repos/sweetp-code/dashboard-stable 1 zsh :
pane sw-dashboard 2 :stable 0 :- 0 :/home/hoschi/repos/sweetp-code/dashboard-stable 1 zsh :
pane sw-dashboard 2 :stable 0 :- 0 :/home/hoschi/repos/sweetp-code/dashboard-stable 1 zsh :
pane sw-main 0 :git 0 : 0 :/home/hoschi/repos/sweetp-code/main 1 zsh :
pane sw-main 0 :git 0 : 0 :/home/hoschi/repos/sweetp-code/main 1 zsh :
pane sw-main 0 :git 0 : 0 :/home/hoschi/repos/sweetp-code/main 1 zsh :
pane sw-main 1 :build 0 : 0 :/home/hoschi/repos/sweetp-code/main 0 zsh :
pane sw-main 1 :build 0 : 0 :/home/hoschi/repos/sweetp-code/main 0 zsh :
pane sw-main 1 :build 0 : 0 :/home/hoschi/repos/sweetp-code/main 0 zsh :
pane sw-main 1 :build 0 : 1 :/home/hoschi/repos/sweetp-code/main 1 zsh :
pane sw-main 1 :build 0 : 1 :/home/hoschi/repos/sweetp-code/main 1 zsh :
pane sw-main 1 :build 0 : 1 :/home/hoschi/repos/sweetp-code/main 1 zsh :
pane sw-main 2 :dev-server 1 :* 0 :/home/hoschi/repos/sweetp-code/dev-server/server 1 zsh :
pane sw-main 2 :dev-server 1 :* 0 :/home/hoschi/repos/sweetp-code/dev-server/server 1 zsh :
pane sw-main 2 :dev-server 1 :* 0 :/home/hoschi/repos/sweetp-code/dev-server/server 1 zsh :
pane sw-main 2 :dev-server 1 :* 1 :/home/hoschi/repos/sweetp-code/dev-server/server 0 zsh :
pane sw-main 2 :dev-server 1 :* 1 :/home/hoschi/repos/sweetp-code/dev-server/server 0 zsh :
pane sw-main 2 :dev-server 1 :* 1 :/home/hoschi/repos/sweetp-code/dev-server/server 0 zsh :
pane sw-main 3 :test 0 :- 0 :/home/hoschi/repos/sweetp-code/dashboard 1 zsh :
pane sw-main 3 :test 0 :- 0 :/home/hoschi/repos/sweetp-code/dashboard 1 zsh :
pane sw-main 3 :test 0 :- 0 :/home/hoschi/repos/sweetp-code/dashboard 1 zsh :
pane sys-update 0 :zsh 1 :* 0 :/home/hoschi 1 zsh :
pane sys-update 0 :zsh 1 :* 0 :/home/hoschi 1 zsh :
pane sys-update 0 :zsh 1 :* 0 :/home/hoschi 1 zsh :
pane test-sw-dashboard 0 :zsh 1 :* 0 :/home/hoschi/repos/sweetp-code/dashboard 0 zsh :
pane test-sw-dashboard 0 :zsh 1 :* 0 :/home/hoschi/repos/sweetp-code/dashboard 0 zsh :
pane test-sw-dashboard 0 :zsh 1 :* 0 :/home/hoschi/repos/sweetp-code/dashboard 0 zsh :
pane test-sw-dashboard 0 :zsh 1 :* 1 :/home/hoschi/repos/sweetp-code/dashboard 0 zsh :
pane test-sw-dashboard 0 :zsh 1 :* 1 :/home/hoschi/repos/sweetp-code/dashboard 0 zsh :
pane test-sw-dashboard 0 :zsh 1 :* 1 :/home/hoschi/repos/sweetp-code/dashboard 0 zsh :
pane test-sw-dashboard 0 :zsh 1 :* 2 :/home/hoschi/repos/sweetp-code/dashboard 1 zsh :
pane test-sw-dashboard 0 :zsh 1 :* 2 :/home/hoschi/repos/sweetp-code/dashboard 1 zsh :
pane tmux-conf 0 :vim 0 : 0 :/home/hoschi 1 zsh :
pane test-sw-dashboard 0 :zsh 1 :* 2 :/home/hoschi/repos/sweetp-code/dashboard 1 zsh :
pane tmux-conf 0 :vim 0 : 0 :/home/hoschi 1 zsh :
pane tmux-conf 0 :vim 0 : 0 :/home/hoschi 1 zsh :
pane tmux-conf 1 :man 0 : 0 :/usr/share/man 1 zsh :
pane tmux-conf 1 :man 0 : 0 :/usr/share/man 1 zsh :
pane tmux-conf 1 :man 0 : 0 :/usr/share/man 1 zsh :
pane tmux-conf 2 :git 0 :- 0 :/home/hoschi/dotfiles 1 zsh :
pane tmux-conf 2 :git 0 :- 0 :/home/hoschi/dotfiles 1 zsh :
pane tmux-conf 2 :git 0 :- 0 :/home/hoschi/dotfiles 1 zsh :
pane tmux-conf 3 :zsh 1 :* 0 :/home/hoschi/.tmux/resurrect 1 zsh :
pane tmux-conf 3 :zsh 1 :* 0 :/home/hoschi/.tmux/resurrect 1 zsh :
pane tmux-conf 3 :zsh 1 :* 0 :/home/hoschi/.tmux/resurrect 1 zsh :
pane vim_config 0 :vimrc 0 : 0 :/home/hoschi/dotfiles/.vim 1 zsh :
pane vim_config 0 :vimrc 0 : 0 :/home/hoschi/dotfiles/.vim 1 zsh :
pane vim_config 0 :vimrc 0 : 0 :/home/hoschi/dotfiles/.vim 1 zsh :
pane vim_config 1 :plugins 0 :- 0 :/home/hoschi/dotfiles/.vim/bundle 1 zsh :
pane vim_config 1 :plugins 0 :- 0 :/home/hoschi/dotfiles/.vim/bundle 1 zsh :
pane vim_config 1 :plugins 0 :- 0 :/home/hoschi/dotfiles/.vim/bundle 1 zsh :
pane vim_config 2 :my-snippets 1 :* 0 :/home/hoschi/dotfiles/.vim/mysnippets 1 zsh :
pane vim_config 2 :my-snippets 1 :* 0 :/home/hoschi/dotfiles/.vim/mysnippets 1 zsh :
pane weechat 0 :WeeChat 1.1.1 1 :* 0 :/home/hoschi 1 weechat :weechat
pane vim_config 2 :my-snippets 1 :* 0 :/home/hoschi/dotfiles/.vim/mysnippets 1 zsh :
pane weechat 0 :WeeChat 1.1.1 1 :* 0 :/home/hoschi 1 weechat :weechat
pane weechat 0 :WeeChat 1.1.1 1 :* 0 :/home/hoschi 1 weechat :weechat
pane workflow-service 0 :vim 1 :* 0 :/home/hoschi/repos/sweetp-code/services/project-workflow 1 zsh :
pane workflow-service 0 :vim 1 :* 0 :/home/hoschi/repos/sweetp-code/services/project-workflow 1 zsh :
pane workflow-service 0 :vim 1 :* 0 :/home/hoschi/repos/sweetp-code/services/project-workflow 1 zsh :
pane workflow-service 1 :zsh 0 :- 0 :/home/hoschi/repos/sweetp-code/services/project-workflow 1 zsh :
pane workflow-service2 0 :bash 1 :* 0 :/home/hoschi/repos/sweetp-code/services/project-workflow 1 zsh :
pane workflow-service 1 :zsh 0 :- 0 :/home/hoschi/repos/sweetp-code/services/project-workflow 1 zsh :
pane workflow-service 1 :zsh 0 :- 0 :/home/hoschi/repos/sweetp-code/services/project-workflow 1 zsh :
window 1 0 1 :* c97e,376x75,0,0,1
window activity 0 1 :* c97f,376x75,0,0,2
window atom 0 0 :- c980,376x75,0,0,3
window atom 1 1 :* c981,376x75,0,0,4
window base-node-service 0 1 :* c982,376x75,0,0,5
window base-node-service 1 0 :- c983,376x75,0,0,6
window data 0 1 :* 5b87,227x23,0,0,75
window git-sevice 0 0 :- c984,376x75,0,0,7
window git-sevice 1 1 :* c985,376x75,0,0,8
window git-sevice 2 0 : c986,376x75,0,0,9
window github-service 0 0 :- 64ef,376x75,0,0,10
window github-service 1 1 :* 64f0,376x75,0,0,11
window github-service2 0 1 :* 64f1,376x75,0,0,12
window grf 0 0 : 5612,376x75,0,0[376x28,0,0,13,376x46,0,29,14]
window grf 1 0 : 5ed5,376x75,0,0[376x38,0,0,15,376x36,0,39,16]
window grf 2 1 :* 0c97,376x75,0,0[376x39,0,0,17,376x35,0,40{188x35,0,40,18,187x35,189,40,19}]
window grf 3 0 : 7bce,376x75,0,0[376x36,0,0,20,376x38,0,37,21]
window grf 4 0 : e4f1,376x75,0,0,22
window grf 5 0 : e4f2,376x75,0,0,23
window grf 6 0 :- 5cd4,376x75,0,0[376x44,0,0,24,376x30,0,45,25]
window issues_vim 0 1 :* 9617,376x75,0,0[376x28,0,0,26,376x46,0,29,27]
window issues_vim 1 0 :- e4f7,376x75,0,0,28
window issues_work 0 0 :- e4f8,376x75,0,0,29
window issues_work 1 1 :* 64f0,376x75,0,0,30
window mopidy 0 1 :* 5cb8,181x62,0,0,38
window mopidy 1 0 :- 5cb9,181x62,0,0,77
window notes 0 1 :* 6479,146x75,0,0,39
window notes 1 0 :- e470,146x75,0,0,40
window password-mngr 0 0 :- e4f1,376x75,0,0,41
window password-mngr 1 1 :* e4f2,376x75,0,0,42
window project-context-manager_second 0 1 :* e4f3,376x75,0,0,43
window project-context-manager_second 1 0 :- e4f4,376x75,0,0,44
window project-context-manager_vim 0 1 :* e4f5,376x75,0,0,45
window project-context-manager_vim 1 0 :- e4f6,376x75,0,0,46
window serien 0 1 :* 16da,376x75,0,0[376x40,0,0,47,376x34,0,41,48]
window startup 0 1 :* c97d,376x75,0,0,0
window sw-dashboard 0 0 : d618,376x75,0,0[376x28,0,0,49,376x46,0,29,50]
window sw-dashboard 1 1 :* d342,376x75,0,0{214x75,0,0,51,161x75,215,0[161x39,215,0,52,161x35,215,40,53]}
window sw-dashboard 2 0 :- 64f5,376x75,0,0,54
window sw-main 0 0 : 64f6,376x75,0,0,55
window sw-main 1 0 : ded1,376x75,0,0[376x38,0,0,56,376x36,0,39,57]
window sw-main 2 1 :* 2777,376x75,0,0{209x75,0,0,58,166x75,210,0,59}
window sw-main 3 0 :- e4f1,376x75,0,0,60
window sys-update 0 1 :* e4f2,376x75,0,0,61
window test-sw-dashboard 0 1 :* 357a,376x75,0,0[376x20,0,0,62,376x19,0,21,63,376x34,0,41,64]
window tmux-conf 0 0 : e4b6,109x75,0,0,65
window tmux-conf 1 0 : e4b7,109x75,0,0,66
window tmux-conf 2 0 :- e4b8,109x75,0,0,67
window tmux-conf 3 1 :* e4b3,109x75,0,0,81
window vim_config 0 0 : e4f9,376x75,0,0,68
window vim_config 1 0 :- e4fa,376x75,0,0,69
window vim_config 2 1 :* 64f2,376x75,0,0,70
window weechat 0 1 :* 6103,35x75,0,0,71
window workflow-service 0 1 :* 64f4,376x75,0,0,72
window workflow-service 1 0 :- 64f5,376x75,0,0,73
window workflow-service2 0 1 :* 64f6,376x75,0,0,74
state tmux-conf
pane workflow-service2 0 :bash 1 :* 0 :/home/hoschi/repos/sweetp-code/services/project-workflow 1 zsh :
pane workflow-service2 0 :bash 1 :* 0 :/home/hoschi/repos/sweetp-code/services/project-workflow 1 zsh :
window 1 0 1 :* c97e,376x75,0,0,1
window activity 0 1 :* c97f,376x75,0,0,2
window atom 0 0 :- c980,376x75,0,0,3
window atom 1 1 :* c981,376x75,0,0,4
window 1 0 1 :* c97e,376x75,0,0,1
window base-node-service 0 1 :* c982,376x75,0,0,5
window base-node-service 1 0 :- c983,376x75,0,0,6
window activity 0 1 :* c97f,376x75,0,0,2
window data 0 1 :* 5b87,227x23,0,0,75
window atom 0 0 :- c980,376x75,0,0,3
window git-sevice 0 0 :- c984,376x75,0,0,7
window git-sevice 1 1 :* c985,376x75,0,0,8
window atom 1 1 :* c981,376x75,0,0,4
window git-sevice 2 0 : c986,376x75,0,0,9
window base-node-service 0 1 :* c982,376x75,0,0,5
window github-service 0 0 :- 64ef,376x75,0,0,10
window base-node-service 1 0 :- c983,376x75,0,0,6
window github-service 1 1 :* 64f0,376x75,0,0,11
window data 0 1 :* 5b87,227x23,0,0,75
window github-service2 0 1 :* 64f1,376x75,0,0,12
window git-sevice 0 0 :- c984,376x75,0,0,7
window grf 0 0 : 5612,376x75,0,0[376x28,0,0,13,376x46,0,29,14]
window git-sevice 1 1 :* c985,376x75,0,0,8
window grf 1 0 : 5ed5,376x75,0,0[376x38,0,0,15,376x36,0,39,16]
window git-sevice 2 0 : c986,376x75,0,0,9
window grf 2 1 :* 0c97,376x75,0,0[376x39,0,0,17,376x35,0,40{188x35,0,40,18,187x35,189,40,19}]
window github-service 0 0 :- 64ef,376x75,0,0,10
window github-service 1 1 :* 64f0,376x75,0,0,11
window grf 3 0 : 7bce,376x75,0,0[376x36,0,0,20,376x38,0,37,21]
window grf 4 0 : e4f1,376x75,0,0,22
window github-service2 0 1 :* 64f1,376x75,0,0,12
window grf 5 0 : e4f2,376x75,0,0,23
window grf 0 0 : 5612,376x75,0,0[376x28,0,0,13,376x46,0,29,14]
window grf 6 0 :- 5cd4,376x75,0,0[376x44,0,0,24,376x30,0,45,25]
window grf 1 0 : 5ed5,376x75,0,0[376x38,0,0,15,376x36,0,39,16]
window issues_vim 0 1 :* 9617,376x75,0,0[376x28,0,0,26,376x46,0,29,27]
window grf 2 1 :* 0c97,376x75,0,0[376x39,0,0,17,376x35,0,40{188x35,0,40,18,187x35,189,40,19}]
window issues_vim 1 0 :- e4f7,376x75,0,0,28
window grf 3 0 : 7bce,376x75,0,0[376x36,0,0,20,376x38,0,37,21]
window issues_work 0 0 :- e4f8,376x75,0,0,29
window grf 4 0 : e4f1,376x75,0,0,22
window issues_work 1 1 :* 64f0,376x75,0,0,30
window grf 5 0 : e4f2,376x75,0,0,23
window mopidy 0 1 :* 5cb8,181x62,0,0,38
window grf 6 0 :- 5cd4,376x75,0,0[376x44,0,0,24,376x30,0,45,25]
window mopidy 1 0 :- 5cb9,181x62,0,0,77
window issues_vim 0 1 :* 9617,376x75,0,0[376x28,0,0,26,376x46,0,29,27]
window notes 0 1 :* 6479,146x75,0,0,39
window issues_vim 1 0 :- e4f7,376x75,0,0,28
window notes 1 0 :- e470,146x75,0,0,40
window issues_work 0 0 :- e4f8,376x75,0,0,29
window password-mngr 0 0 :- e4f1,376x75,0,0,41
window issues_work 1 1 :* 64f0,376x75,0,0,30
window password-mngr 1 1 :* e4f2,376x75,0,0,42
window mopidy 0 1 :* 5cb8,181x62,0,0,38
window project-context-manager_second 0 1 :* e4f3,376x75,0,0,43
window mopidy 1 0 :- 5cb9,181x62,0,0,77
window project-context-manager_second 1 0 :- e4f4,376x75,0,0,44
window notes 0 1 :* 6479,146x75,0,0,39
window project-context-manager_vim 0 1 :* e4f5,376x75,0,0,45
window notes 1 0 :- e470,146x75,0,0,40
window project-context-manager_vim 1 0 :- e4f6,376x75,0,0,46
window password-mngr 0 0 :- e4f1,376x75,0,0,41
window serien 0 1 :* 16da,376x75,0,0[376x40,0,0,47,376x34,0,41,48]
window password-mngr 1 1 :* e4f2,376x75,0,0,42
window startup 0 1 :* c97d,376x75,0,0,0
window project-context-manager_second 0 1 :* e4f3,376x75,0,0,43
window sw-dashboard 0 0 : d618,376x75,0,0[376x28,0,0,49,376x46,0,29,50]
window project-context-manager_second 1 0 :- e4f4,376x75,0,0,44
window sw-dashboard 1 1 :* d342,376x75,0,0{214x75,0,0,51,161x75,215,0[161x39,215,0,52,161x35,215,40,53]}
window project-context-manager_vim 0 1 :* e4f5,376x75,0,0,45
window sw-dashboard 2 0 :- 64f5,376x75,0,0,54
window project-context-manager_vim 1 0 :- e4f6,376x75,0,0,46
window sw-main 0 0 : 64f6,376x75,0,0,55
window serien 0 1 :* 16da,376x75,0,0[376x40,0,0,47,376x34,0,41,48]
window sw-main 1 0 : ded1,376x75,0,0[376x38,0,0,56,376x36,0,39,57]
window startup 0 1 :* c97d,376x75,0,0,0
window sw-main 2 1 :* 2777,376x75,0,0{209x75,0,0,58,166x75,210,0,59}
window sw-dashboard 0 0 : d618,376x75,0,0[376x28,0,0,49,376x46,0,29,50]
window sw-main 3 0 :- e4f1,376x75,0,0,60
window sys-update 0 1 :* e4f2,376x75,0,0,61
window sw-dashboard 1 1 :* d342,376x75,0,0{214x75,0,0,51,161x75,215,0[161x39,215,0,52,161x35,215,40,53]}
window sw-dashboard 2 0 :- 64f5,376x75,0,0,54
window test-sw-dashboard 0 1 :* 357a,376x75,0,0[376x20,0,0,62,376x19,0,21,63,376x34,0,41,64]
window sw-main 0 0 : 64f6,376x75,0,0,55
window tmux-conf 0 0 : e4b6,109x75,0,0,65
window sw-main 1 0 : ded1,376x75,0,0[376x38,0,0,56,376x36,0,39,57]
window tmux-conf 1 0 : e4b7,109x75,0,0,66
window tmux-conf 2 0 :- e4b8,109x75,0,0,67
window sw-main 2 1 :* 2777,376x75,0,0{209x75,0,0,58,166x75,210,0,59}
window tmux-conf 3 1 :* e4b3,109x75,0,0,81
window sw-main 3 0 :- e4f1,376x75,0,0,60
window vim_config 0 0 : e4f9,376x75,0,0,68
window sys-update 0 1 :* e4f2,376x75,0,0,61
window vim_config 1 0 :- e4fa,376x75,0,0,69
window test-sw-dashboard 0 1 :* 357a,376x75,0,0[376x20,0,0,62,376x19,0,21,63,376x34,0,41,64]
window vim_config 2 1 :* 64f2,376x75,0,0,70
window tmux-conf 0 0 : e4b6,109x75,0,0,65
window weechat 0 1 :* 6103,35x75,0,0,71
window tmux-conf 1 0 : e4b7,109x75,0,0,66
window workflow-service 0 1 :* 64f4,376x75,0,0,72
window tmux-conf 2 0 :- e4b8,109x75,0,0,67
window workflow-service 1 0 :- 64f5,376x75,0,0,73
window tmux-conf 3 1 :* e4b3,109x75,0,0,81
window workflow-service2 0 1 :* 64f6,376x75,0,0,74
window vim_config 0 0 : e4f9,376x75,0,0,68
window vim_config 1 0 :- e4fa,376x75,0,0,69
window vim_config 2 1 :* 64f2,376x75,0,0,70
window weechat 0 1 :* 6103,35x75,0,0,71
window workflow-service 0 1 :* 64f4,376x75,0,0,72
window workflow-service 1 0 :- 64f5,376x75,0,0,73
window workflow-service2 0 1 :* 64f6,376x75,0,0,74
state tmux-conf
state tmux-conf
tmux conf:
# Activity monitoring
#setw -g monitor-activity on
#set -g visual-activity on
# Highlight active window
#set-window-option -g window-status-current-bg red
set -g default-terminal "screen-256color"
# utf8 is on
set -g utf8 on
set -g status-utf8 on
# address vim mode switching delay (http://superuser.com/a/252717/65504)
set -s escape-time 0
# tmux messages are displayed for 4 seconds
#set -g display-time 4000
# refresh 'status-left' and 'status-right' more often
#set -g status-interval 5
# Highlight active pane
#set-option -g pane-active-border-style bold
set-option -g pane-active-border-bg blue
# use powerline as status line
source '/home/hoschi/src/powerline/powerline/bindings/tmux/powerline.conf'
# create splits by | and -
unbind %
bind | split-window -h
bind - split-window -v
unbind p
# -n is for 'no prefix' !
bind-key -n F7 previous-window
bind-key a previous-window
bind-key -n F8 next-window
bind-key e next-window
bind-key C-b last-window
# renumber window so they have always continuing numbers
set -g renumber-windows on
# use relative indices for window movement with auto indices
bind-key A swap-window -t -1
bind-key E swap-window -t +1
# use vim motion keys while in copy mode
setw -g mode-keys vi
# use mouse!
set -g mode-mouse on
set -g mouse-resize-pane on
set -g mouse-select-pane on
set -g mouse-select-window on
# scroll with mouse wheel in pane, not in terminals scrollbuffer
set -g terminal-overrides 'xterm*:smcup@:rmcup@'
# set history size
set -g history-limit 10000
##CLIPBOARD selection integration
##Requires prefix key before the command key
#Copy tmux paste buffer to CLIPBOARD
#
#
# attention: install xclip!
# bind C-c run "tmux show-buffer | xclip -i -selection clipboard"
# replaced with tmux-yank plugin:
# Mouse Support
# When making a selection using tmux mode-mouse on or mode-mouse copy-mode, you
# cannot rely on the default 'release mouse after selection to copy' behavior.
# Instead, press y before releasing mouse.
#Copy CLIPBOARD to tmux paste buffer and paste tmux paste buffer
bind C-v run "tmux set-buffer -- \"$(xclip -o -selection clipboard)\"; tmux paste-buffer"
# List of plugins
set -g @tpm_plugins " \
tmux-plugins/tpm \
tmux-plugins/tmux-resurrect \
tmux-plugins/tmux-continuum \
tmux-plugins/tmux-copycat \
tmux-plugins/tmux-yank \
tmux-plugins/tmux-open \
tmux-plugins/tmux-sessionist \
"
# Other examples:
# github_username/plugin_name \
# [email protected]/user/plugin \
# [email protected]/user/plugin \
# initializes TMUX plugin manager
# https://github.com/tmux-plugins/tpm
run-shell ~/.tmux/plugins/tpm/tpm
# https://github.com/tmux-plugins/tmux-resurrect
set -g @resurrect-processes 'ssh "git log" ~grunt-wrapper tail weechat vim ncmpcpp dmesg'
# https://github.com/tmux-plugins/tmux-continuum
set -g @continuum-restore 'on'
# https://github.com/tmux-plugins/tmux-open
# o = open a highlighted selection with the system default program. open for OS X or xdg-open for Linux.
# Ctrl-o = open a highlighted selection with the $EDITOR
# https://github.com/tmux-plugins/tmux-copycat
# prefix + / = regex search (strings work too)
# prefix + ctrl-f = simple file search
# prefix + ctrl-g = jumping over git status files (best used after git status command)
# prefix + ctrl-u = url search (http, ftp and git urls)
# prefix + ctrl-d = number search (mnemonic d, as digit)
Hi,
I try to use this plugin with tmux but auto-save, auto restore or the timer inside the powerline bar never show.
The other plugin work great and tmux-resurrect work great to but i can't use this one.
This is my tmux.conf
# Set the prefix to ^A.
unbind C-b
set -g prefix ^A
bind a send-prefix
# reduce escapge time
# Principalement pour pas avoir d'interference avec VIM
set -sg escape-time 0
# Bind appropriate commands similar to screen.
# lockscreen ^X x
unbind ^X
bind ^X lock-server
unbind x
bind x lock-server
# screen ^C c
unbind ^C
bind ^C new-window -c "#{pane_current_path}"
unbind c
bind c new-window -c "#{pane_current_path}"
# detach ^D d
unbind ^D
bind ^D detach
# displays *
unbind *
bind * list-clients
# next ^@ ^N sp n
unbind ^@
bind ^@ next-window
unbind ^N
bind ^N next-window
unbind " "
bind " " next-window
unbind n
bind n next-window
# title A
unbind A
bind A command-prompt "rename-window %%"
# other ^A
unbind ^A
bind ^A last-window
# prev ^H ^P p ^?
unbind ^H
bind ^H previous-window
unbind ^P
bind ^P previous-window
unbind p
bind p previous-window
unbind BSpace
bind BSpace previous-window
# vim copy selection
bind ESCAPE copy-mode -e
#bind-key -t vi-copy 'v' begin-selection
#bind-key -t vi-copy 'y' copy-selection
# paste CTRL+A ]
# Use Alt-arrow keys without prefix key to switch panes
bind -n M-Left previous-window
bind -n M-Right next-window
# scroll buffer (mouse option)
#set -g mouse on
#bind -n WheelUpPane select-pane -t= \; copy-mode -e \; send-keys -M
#bind -n WheelDownPane select-pane -t= \; send-keys -M
#setw -g mode-mouse off
# windows ^W w
unbind ^W
bind ^W list-windows
unbind w
bind w list-windows
# quit \
unbind '\'
bind K confirm-before "kill-server"
# kill K k
#unbind K
#bind K confirm-before "kill-window"
#unbind k
#bind k confirm-before "kill-window"
# redisplay ^L l
unbind ^L
bind ^L refresh-client
unbind l
bind l refresh-client
# split
bind-key v split-window -h
bind-key s split-window -v
bind S setw synchronize-panes
# :kB: focus up
unbind Tab
bind Tab select-pane -t:.+
unbind BTab
bind BTab select-pane -t:.-
# " windowlist -b
unbind '"'
bind '"' choose-window
# enable mouse
bind m set -g mouse on
bind M set -g mouse off
# reload config file (change file location to your the tmux.conf you want to use)
bind r source-file ~/.tmux.conf
# Automatically set window title
set-window-option -g automatic-rename on
set-option -g set-titles on
set -g @resurrect-capture-pane-contents 'on'
set -g @continuum-restore 'on'
set -g @continuum-save-interval '20'
run-shell ~/.tmux/plugins/tmux-continuum/continuum.tmux
# THEME
set -g status-bg black
set -g status-fg white
set -g window-status-current-bg white
set -g window-status-current-fg black
set -g window-status-current-attr bold
set -g status-interval 60
#set -g status-left-length 30
#set -g status-left '#[fg=green](#S) #(whoami)'
#set -g status-right '#[fg=yellow]#(cut -d " " -f 1-3 /proc/loadavg)#[default] #[fg=white]%H:%M#[default]'
# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-battery'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @plugin 'jimeh/tmux-themepack'
set -g @themepack 'double/green'
#set -g status-right '#{battery_status_bg} Batt: #{battery_icon} #{battery_percentage} #{battery_remain} | %a %h-%d %H:%M '
#set -g status-right-length 60
#set -g status-right "#[fg=yellow] %d %b %Y #[fg=green]:: %l:%M %p "
#
# # Other examples:
# set -g @plugin 'github_username/plugin_name'
# set -g @plugin '[email protected]/user/plugin'
# set -g @plugin '[email protected]/user/plugin'
#
# # Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'
I am on manjaro linux last build.
I had issue that this plugin set status-right
option to something like:
> tmux show -g status-right
status-right "#(/home/USER/.tmux/plugins/tmux-continuum/scripts/continuum_save.sh)"
That I disabled status-right before plugin call causing splashing at status-right: set -g status-right ''
I had to put all status options at the bottom of .tmux.conf
to avoid it.
If possible don't set status-right.
I have the following tmux config
https://gist.github.com/arithran/a4ba6f4f70ac71d3e37db1fbb12954a5#file-tmux-conf
and the following systemd service
https://gist.github.com/arithran/a4ba6f4f70ac71d3e37db1fbb12954a5#file-tmux-service
When i comment out set -g @continuum-boot 'on'
the @continuum-restore 'on'
works and vice versa. I can't seem to get both working at the same time. I am running Fedora 24 stable.
Currently, I have opted to keep set -g @continuum-boot 'on'
and restore my sessions when I am inside tmux using the keyboard binding. But it would be nice if everything just happens on boot.
Here is the failed output of systemd when both settings are turned on
● tmux.service - tmux default session (detached)
Loaded: loaded (/home/ari/.config/systemd/user/tmux.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Wed 2017-06-21 17:23:28 PDT; 15s ago
Docs: man:tmux(1)
Process: 2431 ExecStop=/home/ari/.tmux/plugins/tmux-resurrect/scripts/save.sh (code=exited, status=1/FAILURE)
Process: 1883 ExecStart=/usr/bin/tmux new -d -s Master (code=exited, status=0/SUCCESS)
Jun 21 17:23:28 glados save.sh[2431]: no server running on /tmp/tmux-1000/default
Jun 21 17:23:28 glados save.sh[2431]: rm: missing operand
Jun 21 17:23:28 glados save.sh[2431]: Try 'rm --help' for more information.
Jun 21 17:23:28 glados save.sh[2431]: no server running on /tmp/tmux-1000/default
Jun 21 17:23:28 glados save.sh[2431]: no server running on /tmp/tmux-1000/default
Jun 21 17:23:28 glados save.sh[2431]: no server running on /tmp/tmux-1000/default
Jun 21 17:23:28 glados save.sh[2431]: no server running on /tmp/tmux-1000/default
Jun 21 17:23:28 glados systemd[1873]: tmux.service: Control process exited, code=exited status=1
Jun 21 17:23:28 glados systemd[1873]: tmux.service: Unit entered failed state.
Jun 21 17:23:28 glados systemd[1873]: tmux.service: Failed with result 'exit-code'.
Any help would be appreciated.
Thanks
Even after insert @continuum-boot is set to 'on'
${HOME}/.config/systemd/user/tmux.service
Not creating automatically.
Using Ubuntu 16.04
I am not sure if this is a continuum or a resurrect issue)
Am I missing a configuration somewhere?
I have 5 panes set up in my session, and I have the following config:
# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/resurrect'
set -g @plugin 'tmux-plugins/continuum'
# Enable autorestore
set -g @continuum-restore 'on'
# Save session every 5 minutes
set -g @continuum-save-interval '1'
# Save shell history (THIS IS BROKEN)
#set -g @resurrect-save-shell-history 'on'
# Save pane contents
set -g @resurrect-capture-pane-contents 'on'
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run -b '~/.tmux/plugins/tpm/tpm'
When I reboot, then run tmux
, my last session of 5 panes is restored. I even see the outputs in each pane as they appeared before reboot. However, when I navigate through each pane and use the up arrow key to re-run the most recently run command in said pane, the command is incorrect. In fact, they all show the same command (the last command I executed in any terminal session, anywhere, before reboot). So, if I rebooted from the command line with sudo reboot
, the last command (hitting up arrow once) in each pane is sudo reboot
.
I must be missing something, right? I've tried lots of googling and combing through issues here to no avail. Thanks in advance for the help.
I installed continuum by cloning it and then adding run-shell ~/.tmux/plugins/tmux-continuum/continuum.tmux
to my config file. Resurrect works fine, but continuum doesn't seem to be doing anything. Also, the #{continuum_status}
variable is empty. Is there any other thing I have to do?
as title
Hi,
the interval specified for the continuous saving under this url.
https://github.com/tmux-plugins/tmux-continuum/blob/master/docs/faq.md
is probably incorrect.
from testing i did it looks like the interval is running based on seconds and not minutes, which means that if save this configuation in your .tmux.conf file:
set -g @continuum-save-interval '1'
it will save every 1 second and not every 1 minute. causing an excessive use of CPU as your tmux sessions grow larger.
this can easily be identified by running top\htop and seeing that the contniuum_save.sh is running each X seconds that are specified in the configuration file.
you should either fix the code or fix the documentation.
this was happening on WSL v1 with debian, but I guess it would make no difference.
Roy
It seems like if I set -g @continuum-save-interval '1'
, that is too frequent, and my tmux sessions hang or crash (I am attached to multiple sessions in different physical terminal windows). I only have one server running. I saw the low interval from another tmux user, so I thought it was OK, but perhaps there is something weird about my usage triggering hangs while saving? It's usually just a hang, not a crash.
~/c/w/f/d/docroot * .ddev cat ~/.tmux.conf 20.6s 17:16:42
#set -g default-terminal screen-256color
set -g history-limit 999999999
set -ga update-environment ' SSH_AUTH_SOCK'
#set-environment -g 'SSH_AUTH_SOCK' ~/.ssh/ssh_auth_sock
#set-environment -g 'SSH_AUTH_SOCK' /run/user/1000/keyring/ssh
#set-option -g default-command "reattach-to-user-namespace -l fish"
# # run bash first cuz fish is mean
# set-option -g default-shell /usr/bin/fish
# Just let bash set the environment, then drop to fish.
set-option -g default-command /usr/bin/fish
#bind '"' split-window -c "#{pane_current_path}"
#bind % split-window -h -c "#{pane_current_path}"
#bind c new-window -c "#{pane_current_path}"
set-option -g mouse on
set-option -g prefix C-a
bind -n M-PgDn select-window -n
bind -n M-PgUp select-window -p
# https://gist.github.com/spicycode/1229612
# Use Alt-arrow keys without prefix key to switch panes
#bind -n M-Left select-pane -L
#bind -n M-Right select-pane -R
#bind -n M-Up select-pane -U
#bind -n M-Down select-pane -D
# Use Alt-vim keys without prefix key to switch panes
bind -n M-h select-pane -L
bind -n M-j select-pane -D
bind -n M-k select-pane -U
bind -n M-l select-pane -R
set -g @resurrect-capture-pane-contents 'on'
set -g @resurrect-processes '~sshuttle'
set -g @continuum-boot 'on'
set -g @continuum-restore 'on'
set -g @continuum-save-interval '15'
# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
# Other examples:
# set -g @plugin 'github_username/plugin_name'
# set -g @plugin '[email protected]/user/plugin'
# set -g @plugin '[email protected]/user/plugin'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @plugin 'tmux-plugins/tmux-copycat'
set -g @plugin 'tmux-plugins/tmux-yank'
set -g @plugin 'tmux-plugins/tmux-pain-control'
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run -b '~/.tmux/plugins/tpm/tpm'
So, bear with me as I'm not 100% sure I'm doing this right anyway but I have the following in my ~/.tmux.conf
file:
# List of plugins
new-session
set-window-option -g mode-mouse on
set -g history-limit 30000
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @continuum-restore 'on'
set -g @continuum-boot 'on'
set -g @continuum-boot-options 'iterm'
set -g @continuum-save-interval '5'
set -g status-right 'Continuum status: #{continuum_status}'
set -g @resurrect-capture-pane-contents 'on'
# Other examples:
# set -g @plugin 'github_username/plugin_name'
# set -g @plugin '[email protected]/user/plugin'
# set -g @plugin '[email protected]/user/plugin'
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'
and after startup, I open iTerm2 (which is set to run tmux ls
immediately on load) and I get:
[~/Dev] $ tmux ls
error connecting to /private/tmp/tmux-503/default (No such file or directory)
which makes me think:
Now, if I start tmux manuallly tmux
, I see:
and if I do a <tmux_binding>, <ctrl> r
it successfully restores some version of my tmux settings but that feels more like resurrect
than continuum
.
Should I be expecting different behavior on restart? I read over this wiki article and any other docu I could find so I apologize if I missed something.
Thanks!
I just installed the plugin and it doesn't restore when I run tmux
in my terminal.
tmux 2.8
## Plugins
set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tpm'
## Plugin config
set -g @continuum-restore 'on'
set -g @continuum-save-interval '10'
set -g @resurrect-capture-pane-contents 'on'
set -g @resurrect-strategy-nvim 'session'
run -b '~/.tmux/plugins/tpm/tpm'
Digging through the code I noticed my issue was in the following line:
https://github.com/tmux-plugins/tmux-continuum/blob/master/continuum.tmux#L54
When I run tmux
without a server running it starts one session called 0
. When changing that line to expect one session running ([ "$(number_of_sessions)" -eq 1 ]
) it ran the restore without issues.
Am I running the wrong command for starting tmux?
The docs show
Automatic tmux start
Tmux is automatically started after the computer/server is turned on.
See the instructions how to enable this for your system.
and
Automatic restore
Last saved environment is automatically restored when tmux is started.
Put set -g @continuum-restore 'on' in .tmux.conf to enable this.
I don't understand - are these features enabled as written in the first lines, or should I manually enable them as written in the second lines?
Hello, just for you information @continuum-boot wouldn't create the correct service on my arch system until a manual mkdir -p systemd/user
command.
I've got continuum & resurrect installed in my tmux (version 1.9) and it's great (thanks!).
I've encountered an issue that if I'm typing a command and the save interval rolls around, my command is interrupted; with the history -w ...
command being injected into the terminal. What I was typing is thus cut off, and I'm presented with an empty prompt.
My settings are:
set -g @continuum-restore 'on'
set -g @continuum-save-interval '60'
which I suppose means there's a chance every hour for this to happen, if I'm typing or have left a command waiting to be run on the terminal.
I'm using the latest version of the plugin from Git at time of writing and stock Bash on Ubuntu 15.04 as my shell.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.