############################################################################### # Byobu f-key keybindings # This configuration profile is intended to provide a useful # keybindings using the keyboard's f-keys # # Copyright (C) 2008-2011 Dustin Kirkland # Nick Barcet # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, version 3 of the License. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . ############################################################################### # Byobu's escape key is ASCII Dec:94, Hex:5E, Oct:136, Char: ctrl-^ -- ctrl-caret # which is bound to F12 escape ^^^^ register x "^^" # | Goes with the F12 definition # F-keys seem to work well in both gnome-terminal and tty consoles bindkey -k k1 $BYOBU_BACKEND -t config 0 byobu-config # F1 | Configuration (along with F9) # | since F1 = Help in gnome-terminal bindkey -k k2 $BYOBU_BACKEND # F2 | Create new window bindkey -k k3 eval 'prev' 'fit' # F3 | Previous Window bindkey -k k4 eval 'next' 'fit' # F4 | Next Window register r ":source $BYOBU_CONFIG_DIR/profile^M" # | Goes with F5 definition bindkey -k k5 eval 'process x' 'process r' # F5 | Reload profile bindkey -k k6 detach # F6 | Detach from this session bindkey -k k7 copy # F7 | Enter copy/scrollback mode register t "A^[OH^k^h" # | Goes with the F8 definition bindkey -k k8 eval 'process x' 'process t' # F8 | Re-title a window bindkey -k k9 $BYOBU_BACKEND -t config 0 byobu-config # F9 | Configuration # F10 | 'toolbar' in gnome-terminal # F11 | 'Full Screen' in gnome-terminal bindkey -k F2 process x # F12 | Byobu's escape key bind $ $BYOBU_BACKEND -t status 0 byobu-status-detail # F12 $ | show detailed status bind @ $BYOBU_BACKEND -t config 0 byobu-config # F12 @ | Configuration bind R process r # F12 R | Reload profile register s "[g G$>^h" # Goes with F12 ~ definition bind ~ eval 'process x' 'process s' 'exec $SED -i -e "/./,/^$/!d" $BYOBU_RUN_DIR/printscreen' '$BYOBU_BACKEND -t PRINTSCREEN view $BYOBU_RUN_DIR/printscreen' # F12 ~ | write the buffer to file, open in a new window # Hotkeys for splits (gnome-terminal) bindkey "^[O1;2Q" eval 'split' 'focus down' 'next' 'focus up' 'layout save byobu' 'layout autosave' # shift-F2 | horizontal split bindkey "^[O1;5Q" eval 'split -v' 'focus down' 'next' 'focus up' 'layout save byobu' 'layout autosave' # ctrl-F2 | vertical split bindkey "^[O1;2R" focus up # shift-F3 | focus up bindkey "^[O1;2S" focus down # shift-F4 | focus down bindkey "^[[15;2~" only # shift-F5 | kill all splits bindkey "^[[17;5~" remove # ctrl-F6 | kill this split # Hotkeys for splits (tty) bindkey "^[[26~" eval 'split' 'focus down' 'next' 'focus up' # shift-F2 | horizontal split # ctrl-F2 | sadly, does not work in tty :-( bindkey "^[[28~" focus up # shift-F3 | focus up bindkey "^[[29~" focus down # shift-F4 | focus down bindkey "^[[31~" only # shift-F5 | kill all splits # ctrl-F6 | sadly, does not work in tty :-( # Make it more logical how to enter scrollback register p "^[[5~" bindkey "^[[5;3~" eval 'msgwait 0' 'msgminwait 0' 'copy' 'process p' 'msgwait 1' 'echo "Byobu scrollback mode (alt-pgup / alt-pgdown)"' # alt-pageup | scrollback register n "^[[6~" bindkey "^[[6;3~" eval 'msgwait 0' 'msgminwait 0' 'copy' 'process n' 'msgwait 1' 'echo "Byobu scrollback mode (alt-pgup / alt-pgdown)"' # alt-pagedn | scrollback # Make socket reconnection a little easier bindkey "^[[15;5~" eval 'process x' 'process r' 'stuff ". $BYOBU_PREFIX/bin/byobu-reconnect-sockets^M"' # ctrl-F5 | reconnect gpg/ssh/x sockets # Detach from an auto-launched byobu, but don't log out of the shell bindkey "^[[17;2~" eval 'exec touch $BYOBU_RUN_DIR/no-logout' 'detach' # shift-F6 | detach, but don't logout bindkey "^[[32~" eval 'exec touch $BYOBU_RUN_DIR/no-logout' 'detach' # shift-F6 | detach, but don't logout # toggle f-key keybindings off register d ":source $BYOBU_PREFIX/share/byobu/keybindings/screen-escape-keys^M" bind ! eval 'process x' 'process d' 'backtick 111 9999999 9999999 byobu-status menu --disable-f-keys' # F12 ! | toggle on/off f-keys bindkey "^A" $BYOBU_BACKEND -t ctrl-a byobu-ctrl-a