From fa02ac9889b352726179ec4639676746311e60a8 Mon Sep 17 00:00:00 2001 From: Michael Housh Date: Wed, 4 Oct 2023 23:11:05 -0400 Subject: [PATCH] Update tmux-sessionator, and some other configs --- nvim/m-housh/lua/user/mappings.lua | 3 ++ scripts/scripts/tmux-sessionator | 51 ++++++++++++++++++++++-------- scripts/scripts/ts | 13 -------- wezterm/wezterm.lua | 2 +- zsh/config/.zshrc | 2 ++ 5 files changed, 44 insertions(+), 27 deletions(-) delete mode 100755 scripts/scripts/ts diff --git a/nvim/m-housh/lua/user/mappings.lua b/nvim/m-housh/lua/user/mappings.lua index 1b0ba2f..7e257e5 100644 --- a/nvim/m-housh/lua/user/mappings.lua +++ b/nvim/m-housh/lua/user/mappings.lua @@ -52,6 +52,9 @@ vim.cmd('autocmd! TermOpen term://* lua set_terminal_keymaps()') keymap('n', 'f', ':Format', default_options) keymap('n', 'F', ':FormatWrite', default_options) +-- Turn off highlighting after search. +keymap('n', 'n', ':noh', default_options) + -- LuaSnip Keymaps --local ls = require('luasnip') diff --git a/scripts/scripts/tmux-sessionator b/scripts/scripts/tmux-sessionator index d0b67ca..fd94325 100755 --- a/scripts/scripts/tmux-sessionator +++ b/scripts/scripts/tmux-sessionator @@ -4,7 +4,15 @@ DEBUG= +#################### Options #################### + declare -a paths=() +declare chooseOpt= + +zparseopts -D -- \ + {c,-choose}=chooseOpt + +#################### Helpers #################### function debug_print { if [ -n "$DEBUG" ]; then @@ -12,6 +20,7 @@ function debug_print { fi } + function path_prepend() { declare arg for arg in "$@"; do @@ -19,27 +28,43 @@ function path_prepend() { # Check that arg is a directory but not a symlink # Bc on some of my machines ~/projects is a symlink to $REPOS test -d $arg && ! test -L $arg || continue + paths=${paths//$arg} + paths=${paths/#$arg} + paths=${paths/%$arg} paths=($arg $paths) done } -#################### MAIN #################### - -if [[ $# -eq 1 ]]; then - selected=$1 -else +function setup_fuzzy_find_paths() { path_prepend "$HOME" \ "$HOME/projects" \ "$REPOS/local" \ - $(find $REPOS/github.com -mindepth 1 -maxdepth 1 -type d -print | sort) + $(find "$REPOS/github.com" -mindepth 1 -maxdepth 1 -type d -print 2> /dev/null) +} + +#################### MAIN #################### + +declare choose="${chooseOpt[-1]}" + +if [[ -n $choose ]]; then + debug_print "Choose from existing." + selected=$( + tmux list-sessions -F \#S | gum filter \ + --placeholder "Pick a session..." + ) +elif [[ "$#" -eq 1 ]]; then + debug_print "Using existing session: $1" + selected=$1 +else + setup_fuzzy_find_paths + debug_print "fuzzy find paths: $paths" - debug_print "paths: $paths" if [ -n "$DEBUG" ]; then debug_print "Exiting because in debug mode." exit 0 - else - selected=$(find "${(@)paths}" -mindepth 1 -maxdepth 1 -type d | fzf) fi + + selected=$(find "${(@)paths}" -mindepth 1 -maxdepth 1 -type d | fzf) fi if [[ -z $selected ]]; then @@ -50,13 +75,13 @@ selected_name=$(basename "$selected" | tr . _) tmux_running=$(pgrep tmux) if [[ -z $TMUX ]] && [[ -z $tmux_running ]]; then - tmux new-session -s $selected_name -c $selected + tmux new-session -s "$selected_name" -c "$selected" exit 0 fi # Create a session if it doesn't exist. -if ! tmux has-session -t $selected_name 2> /dev/null; then - tmux new-session -ds $selected_name -c $selected +if ! tmux has-session -t "$selected_name" 2> /dev/null; then + tmux new-session -ds "$selected_name" -c "$selected" fi -tmux switch-client -t $selected_name +tmux switch-client -t "$selected_name" diff --git a/scripts/scripts/ts b/scripts/scripts/ts deleted file mode 100755 index 95d7635..0000000 --- a/scripts/scripts/ts +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -if [ $# -eq 1 ]; then - session=${1} -else - session=$(tmux list-sessions -F \#S | gum filter --placeholder "Pick a session...") -fi - -if [ -z "$session" ]; then - exit 0 -fi - -tmux switch-client -t "$session" || tmux attach -t "$session" diff --git a/wezterm/wezterm.lua b/wezterm/wezterm.lua index f8117eb..f39f51f 100644 --- a/wezterm/wezterm.lua +++ b/wezterm/wezterm.lua @@ -6,7 +6,7 @@ if wezterm.config_builder then end --config.color_scheme = 'rose-pine' -config.color_scheme = 'nightfox' +config.color_scheme = 'terrafox' -- Font config.font = wezterm.font_with_fallback { diff --git a/zsh/config/.zshrc b/zsh/config/.zshrc index 8049895..bc51ae8 100644 --- a/zsh/config/.zshrc +++ b/zsh/config/.zshrc @@ -195,6 +195,8 @@ alias gs='git status' alias l='ls -lah --color=auto' alias reload='exec zsh -l' alias t='tmux' +alias ts='$SCRIPTS/tmux-sessionator' +alias tss='$SCRIPTS/tmux-sessionator --choose' alias tls='tmux list-sessions' alias temp='cd $(mktemp -d)' alias vi='nvim'