MAJOR: move to wezterm
remove tmux, git-flow, time-tracker and iterm and other unused stuff, fully move to wezterm without tmux lots of fixes for zsh/history/fzf etc as wellmain
parent
b65c726cc4
commit
4565a06df6
@ -1,11 +0,0 @@
|
|||||||
#!/usr/bin/env zsh
|
|
||||||
TMPFILE=$(mktemp)
|
|
||||||
|
|
||||||
tt --no-color status &> $TMPFILE
|
|
||||||
local current=$(cat $TMPFILE)
|
|
||||||
|
|
||||||
if [[ $current = 'You have been working on '* ]]; then
|
|
||||||
local currTemp=${current:s/You have been working on //}
|
|
||||||
local project=$(echo $currTemp | head -n1 | cut -d " " -f1)
|
|
||||||
echo " $project"
|
|
||||||
fi
|
|
@ -1,186 +0,0 @@
|
|||||||
# Reconstructed via infocmp from file: /usr/share/terminfo/78/xterm-256color
|
|
||||||
xterm-256color|xterm with 256 colors,
|
|
||||||
am,
|
|
||||||
bce,
|
|
||||||
ccc,
|
|
||||||
km,
|
|
||||||
mc5i,
|
|
||||||
mir,
|
|
||||||
msgr,
|
|
||||||
npc,
|
|
||||||
xenl,
|
|
||||||
colors#256,
|
|
||||||
cols#80,
|
|
||||||
it#8,
|
|
||||||
lines#24,
|
|
||||||
pairs#32767,
|
|
||||||
acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
|
|
||||||
bel=^G,
|
|
||||||
blink=\E[5m,
|
|
||||||
bold=\E[1m,
|
|
||||||
cbt=\E[Z,
|
|
||||||
civis=\E[?25l,
|
|
||||||
clear=\E[H\E[2J,
|
|
||||||
cnorm=\E[?12l\E[?25h,
|
|
||||||
cr=^M,
|
|
||||||
csr=\E[%i%p1%d;%p2%dr,
|
|
||||||
cub=\E[%p1%dD,
|
|
||||||
cub1=^H,
|
|
||||||
cud=\E[%p1%dB,
|
|
||||||
cud1=^J,
|
|
||||||
cuf=\E[%p1%dC,
|
|
||||||
cuf1=\E[C,
|
|
||||||
cup=\E[%i%p1%d;%p2%dH,
|
|
||||||
cuu=\E[%p1%dA,
|
|
||||||
cuu1=\E[A,
|
|
||||||
cvvis=\E[?12;25h,
|
|
||||||
dch=\E[%p1%dP,
|
|
||||||
dch1=\E[P,
|
|
||||||
dl=\E[%p1%dM,
|
|
||||||
dl1=\E[M,
|
|
||||||
ech=\E[%p1%dX,
|
|
||||||
ed=\E[J,
|
|
||||||
el=\E[K,
|
|
||||||
el1=\E[1K,
|
|
||||||
flash=\E[?5h$<100/>\E[?5l,
|
|
||||||
home=\E[H,
|
|
||||||
hpa=\E[%i%p1%dG,
|
|
||||||
ht=^I,
|
|
||||||
hts=\EH,
|
|
||||||
ich=\E[%p1%d@,
|
|
||||||
il=\E[%p1%dL,
|
|
||||||
il1=\E[L,
|
|
||||||
ind=^J,
|
|
||||||
indn=\E[%p1%dS,
|
|
||||||
initc=\E]4;%p1%d;rgb\:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\,
|
|
||||||
invis=\E[8m,
|
|
||||||
is2=\E[!p\E[?3;4l\E[4l\E>,
|
|
||||||
kDC=\E[3;2~,
|
|
||||||
kEND=\E[1;2F,
|
|
||||||
kHOM=\E[1;2H,
|
|
||||||
kIC=\E[2;2~,
|
|
||||||
kLFT=\E[1;2D,
|
|
||||||
kNXT=\E[6;2~,
|
|
||||||
kPRV=\E[5;2~,
|
|
||||||
kRIT=\E[1;2C,
|
|
||||||
kb2=\EOE,
|
|
||||||
kbs=^H,
|
|
||||||
kcbt=\E[Z,
|
|
||||||
kcub1=\EOD,
|
|
||||||
kcud1=\EOB,
|
|
||||||
kcuf1=\EOC,
|
|
||||||
kcuu1=\EOA,
|
|
||||||
kdch1=\E[3~,
|
|
||||||
kend=\EOF,
|
|
||||||
kent=\EOM,
|
|
||||||
kf1=\EOP,
|
|
||||||
kf10=\E[21~,
|
|
||||||
kf11=\E[23~,
|
|
||||||
kf12=\E[24~,
|
|
||||||
kf13=\E[1;2P,
|
|
||||||
kf14=\E[1;2Q,
|
|
||||||
kf15=\E[1;2R,
|
|
||||||
kf16=\E[1;2S,
|
|
||||||
kf17=\E[15;2~,
|
|
||||||
kf18=\E[17;2~,
|
|
||||||
kf19=\E[18;2~,
|
|
||||||
kf2=\EOQ,
|
|
||||||
kf20=\E[19;2~,
|
|
||||||
kf21=\E[20;2~,
|
|
||||||
kf22=\E[21;2~,
|
|
||||||
kf23=\E[23;2~,
|
|
||||||
kf24=\E[24;2~,
|
|
||||||
kf25=\E[1;5P,
|
|
||||||
kf26=\E[1;5Q,
|
|
||||||
kf27=\E[1;5R,
|
|
||||||
kf28=\E[1;5S,
|
|
||||||
kf29=\E[15;5~,
|
|
||||||
kf3=\EOR,
|
|
||||||
kf30=\E[17;5~,
|
|
||||||
kf31=\E[18;5~,
|
|
||||||
kf32=\E[19;5~,
|
|
||||||
kf33=\E[20;5~,
|
|
||||||
kf34=\E[21;5~,
|
|
||||||
kf35=\E[23;5~,
|
|
||||||
kf36=\E[24;5~,
|
|
||||||
kf37=\E[1;6P,
|
|
||||||
kf38=\E[1;6Q,
|
|
||||||
kf39=\E[1;6R,
|
|
||||||
kf4=\EOS,
|
|
||||||
kf40=\E[1;6S,
|
|
||||||
kf41=\E[15;6~,
|
|
||||||
kf42=\E[17;6~,
|
|
||||||
kf43=\E[18;6~,
|
|
||||||
kf44=\E[19;6~,
|
|
||||||
kf45=\E[20;6~,
|
|
||||||
kf46=\E[21;6~,
|
|
||||||
kf47=\E[23;6~,
|
|
||||||
kf48=\E[24;6~,
|
|
||||||
kf49=\E[1;3P,
|
|
||||||
kf5=\E[15~,
|
|
||||||
kf50=\E[1;3Q,
|
|
||||||
kf51=\E[1;3R,
|
|
||||||
kf52=\E[1;3S,
|
|
||||||
kf53=\E[15;3~,
|
|
||||||
kf54=\E[17;3~,
|
|
||||||
kf55=\E[18;3~,
|
|
||||||
kf56=\E[19;3~,
|
|
||||||
kf57=\E[20;3~,
|
|
||||||
kf58=\E[21;3~,
|
|
||||||
kf59=\E[23;3~,
|
|
||||||
kf6=\E[17~,
|
|
||||||
kf60=\E[24;3~,
|
|
||||||
kf61=\E[1;4P,
|
|
||||||
kf62=\E[1;4Q,
|
|
||||||
kf63=\E[1;4R,
|
|
||||||
kf7=\E[18~,
|
|
||||||
kf8=\E[19~,
|
|
||||||
kf9=\E[20~,
|
|
||||||
khome=\EOH,
|
|
||||||
kich1=\E[2~,
|
|
||||||
kind=\E[1;2B,
|
|
||||||
kmous=\E[M,
|
|
||||||
knp=\E[6~,
|
|
||||||
kpp=\E[5~,
|
|
||||||
kri=\E[1;2A,
|
|
||||||
mc0=\E[i,
|
|
||||||
mc4=\E[4i,
|
|
||||||
mc5=\E[5i,
|
|
||||||
meml=\El,
|
|
||||||
memu=\Em,
|
|
||||||
op=\E[39;49m,
|
|
||||||
rc=\E8,
|
|
||||||
rev=\E[7m,
|
|
||||||
ri=\EM,
|
|
||||||
rin=\E[%p1%dT,
|
|
||||||
rmacs=\E(B,
|
|
||||||
rmam=\E[?7l,
|
|
||||||
rmcup=\E[?1049l,
|
|
||||||
rmir=\E[4l,
|
|
||||||
rmkx=\E[?1l\E>,
|
|
||||||
rmm=\E[?1034l,
|
|
||||||
rmso=\E[27m,
|
|
||||||
rmul=\E[24m,
|
|
||||||
rs1=\Ec,
|
|
||||||
rs2=\E[!p\E[?3;4l\E[4l\E>,
|
|
||||||
sc=\E7,
|
|
||||||
setab=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m,
|
|
||||||
setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m,
|
|
||||||
sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m,
|
|
||||||
sgr0=\E(B\E[m,
|
|
||||||
smacs=\E(0,
|
|
||||||
smam=\E[?7h,
|
|
||||||
smcup=\E[?1049h,
|
|
||||||
smir=\E[4h,
|
|
||||||
smkx=\E[?1h\E=,
|
|
||||||
smm=\E[?1034h,
|
|
||||||
smso=\E[7m,
|
|
||||||
smul=\E[4m,
|
|
||||||
tbc=\E[3g,
|
|
||||||
u6=\E[%i%d;%dR,
|
|
||||||
u7=\E[6n,
|
|
||||||
u8=\E[?1;2c,
|
|
||||||
u9=\E[c,
|
|
||||||
vpa=\E[%i%p1%dd,
|
|
||||||
sitm=\E[3m,
|
|
||||||
ritm=\E[23m,
|
|
@ -1,57 +0,0 @@
|
|||||||
# Defaults, rest will be set with tmux-sensible
|
|
||||||
set -g default-terminal "tmux"
|
|
||||||
set -g default-shell $SHELL
|
|
||||||
set -g prefix C-a
|
|
||||||
set -g base-index 1
|
|
||||||
setw -g pane-base-index 1
|
|
||||||
setw -g xterm-keys on
|
|
||||||
setw -g mode-keys vi
|
|
||||||
set-option -as terminal-overrides ",xterm*:RGB"
|
|
||||||
|
|
||||||
# Copy & Paste with clipper -- see https://github.com/wincent/clipper
|
|
||||||
# starting copy & paste with Ctrl+a [
|
|
||||||
bind-key -T copy-mode-vi 'v' send-keys -X begin-selection
|
|
||||||
bind-key -T copy-mode-vi 'y' send-keys -X copy-pipe-and-cancel "nc localhost 8377"
|
|
||||||
bind-key -T copy-mode-vi Escape send -X cancel
|
|
||||||
|
|
||||||
# Saner window splitting / new windows
|
|
||||||
bind-key '\' split-window -h -c "#{pane_current_path}"
|
|
||||||
bind-key - split-window -v -c "#{pane_current_path}"
|
|
||||||
bind-key c new-window -c "#{pane_current_path}"
|
|
||||||
|
|
||||||
# Mouse support
|
|
||||||
set -g mouse on
|
|
||||||
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'select-pane -t=; copy-mode -e; send-keys -M'"
|
|
||||||
bind -n WheelDownPane select-pane -t= \; send-keys -M
|
|
||||||
bind -n C-WheelUpPane select-pane -t= \; copy-mode -e \; send-keys -M
|
|
||||||
|
|
||||||
source-file /Users/webgefrickel/.local/share/nvim/lazy/gruvbox-baby/extras/tmux/MEDIUM.tmux
|
|
||||||
|
|
||||||
# Custom statusbar, gruvbox style
|
|
||||||
set -g status-style bg=black,fg=yellow,default
|
|
||||||
set -g pane-border-style 'fg=#504945'
|
|
||||||
set -g pane-active-border-style 'fg=#504945'
|
|
||||||
set -g message-style bg=black,fg=brightred
|
|
||||||
set -g display-panes-active-colour blue
|
|
||||||
set -g display-panes-colour brightred
|
|
||||||
set -g status-left-length 100
|
|
||||||
set -g status-right-length 100
|
|
||||||
set -g status-left '#[fg=black,bg=white] ⧉ #S #[fg=white,bg=default,nobold] '
|
|
||||||
set -g status-right '#[fg=white,bg=default,nobold]#(whoami)@#h #[fg=black,bg=white,nobold] %d.%m.%Y ¦ %H:%M '
|
|
||||||
set -g window-status-format '#[fg=white,bg=default] #I #W '
|
|
||||||
set -g window-status-current-format '#[fg=blue,bg=black]#[fg=black,bg=blue] #I #W #[fg=blue,bg=black]#[fg=blue,bg=black,nobold]'
|
|
||||||
|
|
||||||
# Plugin configuration
|
|
||||||
set -g @resurrect-processes 'nnn v nvim m neomutt spt git gs'
|
|
||||||
set -g @continuum-restore 'on'
|
|
||||||
set -g @continuum-boot 'off'
|
|
||||||
|
|
||||||
# Plugins loading and tmux plugin manager initialization
|
|
||||||
set -g @plugin 'christoomey/vim-tmux-navigator'
|
|
||||||
set -g @plugin 'schasse/tmux-jump'
|
|
||||||
set -g @plugin 'tmux-plugins/tmux-continuum'
|
|
||||||
set -g @plugin 'tmux-plugins/tmux-resurrect'
|
|
||||||
set -g @plugin 'tmux-plugins/tmux-sensible'
|
|
||||||
set -g @plugin 'tmux-plugins/tmux-sessionist'
|
|
||||||
set -g @plugin 'tmux-plugins/tpm'
|
|
||||||
run '~/.tmux/plugins/tpm/tpm'
|
|
@ -0,0 +1,149 @@
|
|||||||
|
local wezterm = require('wezterm')
|
||||||
|
local mux = wezterm.mux
|
||||||
|
local act = wezterm.action
|
||||||
|
local config = wezterm.config_builder()
|
||||||
|
|
||||||
|
-- helper functions
|
||||||
|
local function get_current_working_dir(tab)
|
||||||
|
local current_dir = tab.active_pane.current_working_dir
|
||||||
|
local HOME_DIR = string.format('file://%s', os.getenv('HOME'))
|
||||||
|
return current_dir == HOME_DIR and '~' or string.gsub(current_dir, '(.*[/\\])(.*)', '%2')
|
||||||
|
end
|
||||||
|
|
||||||
|
local function isNvim(pane)
|
||||||
|
return pane:get_foreground_process_name():find('n?vim') ~= nil
|
||||||
|
end
|
||||||
|
|
||||||
|
local function conditionalActivatePane(window, pane, pane_direction, vim_direction)
|
||||||
|
if isNvim(pane) then
|
||||||
|
window:perform_action(act.SendKey({ key = vim_direction, mods = 'CTRL' }), pane)
|
||||||
|
else
|
||||||
|
window:perform_action(act.ActivatePaneDirection(pane_direction), pane)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- base config
|
||||||
|
config.color_scheme = 'GruvboxDark'
|
||||||
|
config.font = wezterm.font('FiraCode Nerd Font')
|
||||||
|
config.font_size = 14.0
|
||||||
|
config.inactive_pane_hsb = { saturation = 0.5, brightness = 0.9 }
|
||||||
|
config.leader = { key = 'a', mods = 'CTRL', timeout_milliseconds = 1000 }
|
||||||
|
config.scrollback_lines = 5000
|
||||||
|
config.show_new_tab_button_in_tab_bar = false
|
||||||
|
config.tab_bar_at_bottom = true
|
||||||
|
config.use_dead_keys = false
|
||||||
|
config.use_fancy_tab_bar = false
|
||||||
|
config.window_close_confirmation = 'NeverPrompt'
|
||||||
|
config.window_decorations = 'RESIZE'
|
||||||
|
|
||||||
|
-- key mappings
|
||||||
|
config.keys = {
|
||||||
|
{ key = '\\',
|
||||||
|
mods = 'LEADER',
|
||||||
|
action = act.SplitHorizontal,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key = '-',
|
||||||
|
mods = 'LEADER',
|
||||||
|
action = act.SplitVertical,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key = ']',
|
||||||
|
mods = 'LEADER',
|
||||||
|
action = act.ActivateCopyMode,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key = ',',
|
||||||
|
mods = 'LEADER',
|
||||||
|
action = act.PromptInputLine {
|
||||||
|
description = 'Enter new name for tab',
|
||||||
|
action = wezterm.action_callback(function(window, pane, line)
|
||||||
|
if line then
|
||||||
|
window:active_tab():set_title(line)
|
||||||
|
end
|
||||||
|
end),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key = 'c',
|
||||||
|
mods = 'LEADER',
|
||||||
|
action = act.PromptInputLine {
|
||||||
|
description = 'Enter name for new workspace',
|
||||||
|
action = wezterm.action_callback(function(window, pane, line)
|
||||||
|
if line then
|
||||||
|
window:perform_action(
|
||||||
|
act.SwitchToWorkspace {
|
||||||
|
name = line,
|
||||||
|
},
|
||||||
|
pane
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key = '$',
|
||||||
|
mods = 'LEADER',
|
||||||
|
action = act.PromptInputLine {
|
||||||
|
description = 'Rename current workspace',
|
||||||
|
action = wezterm.action_callback(function(window, pane, line)
|
||||||
|
if line then
|
||||||
|
wezterm.mux.rename_workspace(wezterm.mux.get_active_workspace(), line)
|
||||||
|
end
|
||||||
|
end),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{ -- switching workspaces with CTRL-a g
|
||||||
|
key = 'g',
|
||||||
|
mods = 'LEADER',
|
||||||
|
action = act.ShowLauncherArgs {
|
||||||
|
flags = 'FUZZY|WORKSPACES',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
-- Navigator.nvim keys
|
||||||
|
{ key = 'h', mods = 'CTRL', action = act.EmitEvent('ActivatePaneDirection-left') },
|
||||||
|
{ key = 'j', mods = 'CTRL', action = act.EmitEvent('ActivatePaneDirection-down') },
|
||||||
|
{ key = 'k', mods = 'CTRL', action = act.EmitEvent('ActivatePaneDirection-up') },
|
||||||
|
{ key = 'l', mods = 'CTRL', action = act.EmitEvent('ActivatePaneDirection-right') },
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Navigator.nvim events
|
||||||
|
wezterm.on('ActivatePaneDirection-right', function(window, pane)
|
||||||
|
conditionalActivatePane(window, pane, 'Right', 'l')
|
||||||
|
end)
|
||||||
|
wezterm.on('ActivatePaneDirection-left', function(window, pane)
|
||||||
|
conditionalActivatePane(window, pane, 'Left', 'h')
|
||||||
|
end)
|
||||||
|
wezterm.on('ActivatePaneDirection-up', function(window, pane)
|
||||||
|
conditionalActivatePane(window, pane, 'Up', 'k')
|
||||||
|
end)
|
||||||
|
wezterm.on('ActivatePaneDirection-down', function(window, pane)
|
||||||
|
conditionalActivatePane(window, pane, 'Down', 'j')
|
||||||
|
end)
|
||||||
|
|
||||||
|
-- set tab-title to current dir if not set explicitly
|
||||||
|
wezterm.on('format-tab-title', function(tab)
|
||||||
|
local cwd = get_current_working_dir(tab)
|
||||||
|
local title = tab.tab_title
|
||||||
|
local num = tab.tab_index + 1
|
||||||
|
|
||||||
|
if title and #title > 0 then
|
||||||
|
return string.format(' %s %s ', num, title)
|
||||||
|
end
|
||||||
|
|
||||||
|
return string.format(' %s %s ', num, cwd)
|
||||||
|
end)
|
||||||
|
|
||||||
|
-- show workspace on the left side of tabbar
|
||||||
|
wezterm.on('update-status', function(window)
|
||||||
|
local workspace = mux.get_active_workspace()
|
||||||
|
window:set_left_status(string.format(' %s ', workspace))
|
||||||
|
end)
|
||||||
|
|
||||||
|
-- always maximise and start default session with mutt, neorg and dotfiles
|
||||||
|
wezterm.on('gui-startup', function()
|
||||||
|
local tab, pane, window = mux.spawn_window({})
|
||||||
|
window:gui_window():maximize()
|
||||||
|
end)
|
||||||
|
|
||||||
|
return config
|
Loading…
Reference in New Issue