Compare commits

..

2 commits

Author SHA1 Message Date
24582b2cf9 Add tmux-sessionizer. 2025-07-14 17:16:06 +02:00
e97fef8036 add git cb 2025-07-08 16:41:04 +02:00
5 changed files with 64 additions and 0 deletions

View file

@ -11,6 +11,7 @@
autoSquash = true autoSquash = true
[alias] [alias]
publish = !git pull && git push publish = !git pull && git push
cb = !git-tmp-switch.sh
[push] [push]
default = current default = current
autoSetupRemote = true autoSetupRemote = true

31
.local/bin/git-tmp-switch.sh Executable file
View file

@ -0,0 +1,31 @@
#!/bin/bash
set -euo pipefail
if [ "$#" -lt 1 ]; then
echo "Usage: git cb <target-branch>"
exit 1
fi
TARGET_BRANCH="$1"
if [ "$TARGET_BRANCH" != "-" ]; then
if ! git rev-parse --verify --quiet "$TARGET_BRANCH" >/dev/null; then
echo "Error: branch '$TARGET_BRANCH' does not exist." >&2
exit 1
fi
fi
git add -A
if ! git diff --cached --quiet || [ -n "$(git ls-files --others --exclude-standard)" ]; then
git commit -m "tmp"
fi
git checkout "$TARGET_BRANCH"
LATEST_AUTHOR=$(git log -1 --pretty=format:'%an')
LATEST_MESSAGE=$(git log -1 --pretty=format:'%s')
CURRENT_USER=$(git config user.name)
if [ "$LATEST_AUTHOR" = "$CURRENT_USER" ] && [ "$LATEST_MESSAGE" = "tmp" ]; then
echo "Resetting last 'tmp' commit by $CURRENT_USER..."
git reset --mixed HEAD~1
fi

29
.local/bin/tmux-sessionizer Executable file
View file

@ -0,0 +1,29 @@
#!/usr/bin/env bash
if [[ $# -eq 1 ]]; then
selected=$1
else
selected=$(find ~/code -mindepth 1 -maxdepth 1 -type d | fzf)
fi
if [[ -z $selected ]]; then
exit 0
fi
selected_name=$(basename "$selected" | tr . _)
tmux_running=$(pgrep tmux)
if [[ -z $TMUX ]] && [[ -z $tmux_running ]]; then
tmux new-session -s $selected_name -c $selected
exit 0
fi
if ! tmux has-session -t=$selected_name 2>/dev/null; then
tmux new-session -ds $selected_name -c $selected
fi
if [[ -z $TMUX ]]; then
tmux attach -t $selected_name
else
tmux switch-client -t $selected_name
fi

View file

@ -13,6 +13,7 @@ bind | split-window -h
bind - split-window -v bind - split-window -v
unbind '"' unbind '"'
unbind % unbind %
bind-key -r f run-shell "tmux neww ~/.local/bin/tmux-sessionizer"
# reload config file (change file location to your the tmux.conf you want to use) # reload config file (change file location to your the tmux.conf you want to use)
bind r source-file ~/.tmux.conf \; display 'Reloaded tmux config!' bind r source-file ~/.tmux.conf \; display 'Reloaded tmux config!'

2
.zshrc
View file

@ -47,6 +47,8 @@ if [ -f $HOME/.local/bin/mise ]; then
eval "$($HOME/.local/bin/mise activate zsh)" eval "$($HOME/.local/bin/mise activate zsh)"
fi fi
bindkey -s ^f "tmux-sessionizer\n"
source ~/.aliases source ~/.aliases
fpath+=~/.zfunc fpath+=~/.zfunc
autoload -U compinit; compinit -d autoload -U compinit; compinit -d