added tmux, butter fish config

This commit is contained in:
Martin Bauer 2022-06-06 19:29:39 +02:00
parent a929bde64b
commit e91c2fd4a5
6 changed files with 203 additions and 29 deletions

1
.gitignore vendored
View File

@ -1,2 +1,3 @@
/.mbenv
/mbenv.tar.xz
/tmp_install

View File

@ -9,6 +9,32 @@ export INSTALL_TMP_DIR=$(pwd)/tmp_install
export XDG_CONFIG_HOME=${MB_ENV_BASE}/config
export XDG_DATA_HOME=${MB_ENV_BASE}/local/share
# Reset
Color_Off='\033[0m' # Text Reset
# Regular Colors
Black='\033[0;30m' # Black
Red='\033[0;31m' # Red
Green='\033[0;32m' # Green
Yellow='\033[0;33m' # Yellow
Blue='\033[0;34m' # Blue
Purple='\033[0;35m' # Purple
Cyan='\033[0;36m' # Cyan
White='\033[0;37m' # White
# Bold
BBlack='\033[1;30m' # Black
BRed='\033[1;31m' # Red
BGreen='\033[1;32m' # Green
BYellow='\033[1;33m' # Yellow
BBlue='\033[1;34m' # Blue
BPurple='\033[1;35m' # Purple
BCyan='\033[1;36m' # Cyan
BWhite='\033[1;37m' # White
export PATH=${MB_ENV_BASE}/bin:$PATH
# create folders
mkdir $MB_ENV_BASE
mkdir $INSTALL_TMP_DIR
@ -16,14 +42,22 @@ mkdir $XDG_CONFIG_HOME
mkdir -p $XDG_DATA_HOME
printf "${BBlue}Downloading and installing packages${Color_Off}\n"
# ------------------------------------------- fish shell -----------------------------------------------------------
# portable fish: https://github.com/xxh/fish-portable
printf "${Blue}--> fish shell${Color_Off}\n"
cd $MB_ENV_BASE
printf "${White} Downloading...${Color_Off}\n"
PORTABLE_FISH=https://github.com/xxh/fish-portable/releases/download/3.4.1/fish-portable-musl-alpine-Linux-x86_64.tar.gz
curl -L $PORTABLE_FISH | tar xz
curl -sL $PORTABLE_FISH | tar xz
printf "${White} Configuring...${Color_Off}\n"
cp -r ${CONFIG_IN}/fish ${XDG_CONFIG_HOME}
curl -sfLo "${XDG_CONFIG_HOME}"/fish/completions/tmux.fish \
https://raw.githubusercontent.com/fish-shell/fish-shell/master/share/completions/tmux.fish
# ------------------------------------------- oh my fish -----------------------------------------------------------
export OMF_CHANNEL=stable
@ -33,47 +67,71 @@ FISH_EXE=${MB_ENV_BASE}/bin/fish
cp -r ${CONFIG_IN}/omf ${XDG_CONFIG_HOME}
cd $INSTALL_TMP_DIR
curl https://raw.githubusercontent.com/oh-my-fish/oh-my-fish/master/bin/install > install_omf
${FISH_EXE} install_omf --noninteractive
${FISH_EXE} -c "omf install"
printf "${White} Installing Oh-My-Fish...${Color_Off}\n"
curl -sL https://raw.githubusercontent.com/oh-my-fish/oh-my-fish/master/bin/install > install_omf
${FISH_EXE} install_omf --noninteractive &> /dev/null
${FISH_EXE} -c "omf install" &> /dev/null
# ------------------------------------------- bat -----------------------------------------------------------
printf "${Blue}--> bat${Color_Off}\n"
cd ${INSTALL_TMP_DIR}
curl -L https://github.com/sharkdp/bat/releases/download/v0.21.0/bat-v0.21.0-x86_64-unknown-linux-musl.tar.gz | tar xz
curl -sL https://github.com/sharkdp/bat/releases/download/v0.21.0/bat-v0.21.0-x86_64-unknown-linux-musl.tar.gz | tar xz
cd bat*
cp bat ${MB_ENV_BASE}/bin
mkdir $XDG_CONFIG_HOME/fish/completions
cp autocomplete/bat.fish $XDG_CONFIG_HOME/fish/completions/bat.fish
# -------------------------------------------- vim ---------------------------------------------------------------
#curl -L https://github.com/dtschan/vim-static/releases/download/v8.1.1045/vim > $MB_ENV_BASE/bin/vim
#chmod u+x $MB_ENV_BASE/bin/vim
#mkdir $XDG_CONFIG_HOME/vim
#cp ${CONFIG_IN}/.vimrc $XDG_CONFIG_HOME/vim/vimrc
#curl -fLo $XDG_CONFIG_HOME/vim/autoload/plug.vim --create-dirs \
# https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
# -------------------------------------------- neovim ------------------------------------------------------------
printf "${Blue}--> neovim${Color_Off}\n"
cd ${INSTALL_TMP_DIR}
curl -L https://github.com/neovim/neovim/releases/download/v0.7.0/nvim.appimage > nvim.appimage
printf "${White} Downloading...${Color_Off}\n"
curl -sL https://github.com/neovim/neovim/releases/download/v0.7.0/nvim.appimage > nvim.appimage
chmod u+x nvim.appimage
./nvim.appimage --appimage-extract
printf "${White} Extracting AppImage...${Color_Off}\n"
./nvim.appimage --appimage-extract &> /dev/null
cd squashfs-root/usr
cp ./bin/* ${MB_ENV_BASE}/bin/
mkdir ${MB_ENV_BASE}/lib
cp -r ./lib/* ${MB_ENV_BASE}/lib/
cp -r ./share/nvim ${MB_ENV_BASE}/share/
cp -r ${CONFIG_IN}/nvim ${XDG_CONFIG_HOME}
curl -fLo "${XDG_DATA_HOME}"/nvim/site/autoload/plug.vim --create-dirs \
printf "${White} Downloading and installing vim-plug${Color_Off}\n"
curl -sfLo "${XDG_DATA_HOME}"/nvim/site/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
cd ${MB_ENV_BASE}
cd ${MB_ENV_BASE}/bin
ln -s nvim vi
ln -s nvim vim
${MB_ENV_BASE}/bin/nvim +PlugInstall +qall
# -------------------------------------------- tmux ------------------------------------------------------------
printf "${Blue}--> tmux${Color_Off}\n"
cd ${INSTALL_TMP_DIR}
rm -rf ${INSTALL_TMP_DIR}/*
curl -sL https://github.com/nelsonenzo/tmux-appimage/releases/download/3.2a/tmux.appimage > tmux.appimage
chmod u+x tmux.appimage
printf "${White} Extracting AppImage...${Color_Off}\n"
./tmux.appimage --appimage-extract &> /dev/null
cd squashfs-root/usr
cp ./bin/* ${MB_ENV_BASE}/bin/
cp -r ./lib/* ${MB_ENV_BASE}/lib/
cp -r ./share/terminfo ${MB_ENV_BASE}/share/
cp -r ${CONFIG_IN}/tmux ${XDG_CONFIG_HOME}
export TERMINFO=${MB_ENV_BASE}/share/terminfo
printf "${White} Installing tpm package manager...${Color_Off}\n"
cd $XDG_DATA_HOME
mkdir -p tmux/plugins
git clone https://github.com/tmux-plugins/tpm tmux/plugins/tpm &> /dev/null
./tmux/plugins/tpm/bin/install_plugins &> /dev/null
# ------------------------------------------- configs -----------------------------------------------------------
@ -82,7 +140,10 @@ cp ${CONFIG_IN}/activate.sh $MB_ENV_BASE # activation script
# ------------------------------------------- pack and cleanup ----------------------------------------------------
printf "${Blue}Packing archive${Color_Off}\n"
cd $BASE
tar -cJf mbenv.tar.xz .mbenv
rm -rf ${MB_ENV_BASE}
rm -rf ${INSTALL_TMP_DIR}
#rm -rf ${MB_ENV_BASE}
rm -rf ${INSTALL_TMP_DIR}
printf "${Green}Done${Color_Off}\n"

View File

@ -6,8 +6,8 @@ export XDG_CONFIG_HOME=${MB_ENV_BASE}/config
export XDG_DATA_HOME=${MB_ENV_BASE}/local/share
export PATH=${MB_ENV_BASE}/bin:${PATH}
export TERM=xterm-256color
export TERMINFO=${MB_ENV_BASE}/share/terminfo
export SHELL=${MB_ENV_BASE}/bin/fish
${MB_ENV_BASE}/bin/fish.sh

View File

@ -0,0 +1,48 @@
# Display the current binding mode... if it's vi or vi-like.
#
# To always show the binding mode (regardless of current bindings):
# set -g theme_display_vi yes
#
# To never show:
# set -g theme_display_vi no
# invisible space is inserted into prompt to play nice with tmux jumping
# https://unix.stackexchange.com/questions/226731/jump-to-last-prompt-in-terminal-or-tmux
set -g invisible_space " "
function fish_mode_prompt -d 'bobthefish-optimized fish mode indicator'
[ "$theme_display_vi" != 'no' ]
or return
[ "$fish_key_bindings" = 'fish_vi_key_bindings' \
-o "$fish_key_bindings" = 'hybrid_bindings' \
-o "$fish_key_bindings" = 'fish_hybrid_key_bindings' \
-o "$theme_display_vi" = 'yes' ]
or return
__bobthefish_colors $theme_color_scheme
type -q bobthefish_colors
and bobthefish_colors
set_color normal # clear out anything bold or underline...
switch $fish_bind_mode
case default
set_color -b $color_vi_mode_default
echo -n " N$invisible_space"
case insert
set_color -b $color_vi_mode_insert
echo -n " I$invisible_space"
case replace_one replace-one
set_color -b $color_vi_mode_insert
echo -n " R$invisible_space"
case visual
set_color -b $color_vi_mode_visual
echo -n " V$invisible_space"
end
set_color normal
end

View File

@ -1,14 +1,15 @@
" goto normal mode with jk
inoremap jk <ESC>
" remove search highlighting when pressing esc
map <esc> :noh <CR>
" ----------------------------- Own config ---------------------------
inoremap jk <ESC> " goto normal mode with jk
map <esc> :noh <CR> " remove search highlighting when pressing esc
set number " turn on line numbers
" ----------------------------- Plugins ------------------------------
" --------- Plugins ----------
call plug#begin()
Plug 'justinmk/vim-sneak'
Plug 'easymotion/vim-easymotion'
Plug 'sheerun/vim-polyglot'
call plug#end()

63
config_in/tmux/tmux.conf Normal file
View File

@ -0,0 +1,63 @@
# history
set -g history-limit 100000
# use vi mode
setw -g mode-keys vi
set -g status-keys vi
# easy-to-remember split pane commands
bind | split-window -h
bind - split-window -v
unbind '"'
unbind %
# moving between panes with vim movement keys
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
# resize the pane
bind-key -r J resize-pane -D 3
bind-key -r K resize-pane -U 3
bind-key -r H resize-pane -L 3
bind-key -r L resize-pane -R 3
set-option -g status-position top
# fast search - not necessary to go to copy first (will switch to copy mode automatically)
bind-key -T copy-mode-vi / command-prompt -i -p "(search down)" "send -X search-forward-incremental \"%%%\""
bind-key -T copy-mode-vi ? command-prompt -i -p "(search up)" "send -X search-backward-incremental \"%%%\""
bind / copy-mode \; command-prompt -i -p "(search up)" "send -X search-forward-incremental \"%%%\""
bind ? copy-mode \; command-prompt -i -p "(search down)" "send -X search-backward-incremental \"%%%\""
bind -T copy-mode-vi \} {
send-keys -X end-of-line
send-keys -X search-forward " "
send-keys -X end-of-line
send-keys -X search-backward " "
send-keys -X cursor-right
}
bind -T copy-mode-vi \{ {
send-keys -X start-of-line
send-keys -X search-backward " "
send-keys -X end-of-line
send-keys -X search-backward " "
send-keys -X cursor-right
}
# Package manager
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-prefix-highlight'
set -g @plugin "arcticicestudio/nord-tmux"
run "$XDG_DATA_HOME/tmux/plugins/tpm/tpm'