From 86f31edec2fe734378b45cc542074f84861dde17 Mon Sep 17 00:00:00 2001 From: Alex Selimov Date: Sat, 14 Mar 2026 10:58:18 -0400 Subject: [PATCH] latest config updates --- bin/swap_mode.sh | 88 ++++++------------------------------------- config/ghostty/config | 5 +++ home/.tmux.conf | 4 +- home/.zshrc | 57 ++++++++++++---------------- 4 files changed, 42 insertions(+), 112 deletions(-) diff --git a/bin/swap_mode.sh b/bin/swap_mode.sh index 521e853..8b14f5b 100755 --- a/bin/swap_mode.sh +++ b/bin/swap_mode.sh @@ -2,21 +2,24 @@ NVIM_CONF="${HOME}/.config/nvim/init.lua" GHOSTTY_CONF="${HOME}/.config/ghostty/config" -DUNST_CONF="${HOME}/.config/dunst/dunstrc" +GEMINI_CONF="${HOME}/repos/SelimovDE/gemini/settings.json" [ -f "$NVIM_CONF" ] || { echo "Missing $NVIM_CONF"; exit 1; } [ -f "$GHOSTTY_CONF" ] || { echo "Missing $GHOSTTY_CONF"; exit 1; } -[ -f "$DUNST_CONF" ] || { echo "Missing $DUNST_CONF"; exit 1; } +[ -f "$GEMINI_CONF" ] || { echo "Missing $GEMINI_CONF"; exit 1; } +which sed set_light_mode() { sed -E -i 's/^([[:space:]]*theme[[:space:]]*=[[:space:]]*)zenwritten-dark/\1zenwritten-light/' "$GHOSTTY_CONF" sed -E -i 's/(vim.g.light_mode[[:space:]]*=[[:space:]]*).*/\1true/' "$NVIM_CONF" + sed -i 's/"theme": "Zenwritten Dark"/"theme": "Zenwritten Light"/' "$GEMINI_CONF" MODE="light" } set_dark_mode() { sed -E -i 's/^([[:space:]]*theme[[:space:]]*=[[:space:]]*)zenwritten-light/\1zenwritten-dark/' "$GHOSTTY_CONF" sed -E -i 's/(vim.g.light_mode[[:space:]]*=[[:space:]]*).*/\1false/' "$NVIM_CONF" + sed -i 's/"theme": "Zenwritten Light"/"theme": "Zenwritten Dark"/' "$GEMINI_CONF" MODE="dark" } @@ -54,80 +57,11 @@ for dir in "${XDG_RUNTIME_DIR:-}" "${TMPDIR:-/tmp}" "/tmp" "$HOME/.local/state/n done -# Reload Ghostty: send SIGUSR2 to running ghostty processes (macOS/Linux) -pkill -USR2 -x ghostty 2>/dev/null +# Reload Ghostty via AppleScript menu click +osascript -e 'tell application "System Events" + tell process "Ghostty" + click menu item "Reload Configuration" of menu "Ghostty" of menu bar item "Ghostty" of menu bar 1 + end tell +end tell' 2>/dev/null || true echo "Switched to ${MODE} mode" - -# Script for changing between light and dark modes on Linux -if [ "$(uname)" != "Darwin" ]; then - if [ "$MODE" == "dark" ]; then - echo "Swapping to dark mode" - # GTK Theme - gsettings set org.gnome.desktop.interface gtk-theme '' - gsettings set org.gnome.desktop.interface gtk-theme 'WhiteSur-Dark' - gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark' - sed -i -e 's@Net/ThemeName.*@Net/ThemeName "WhiteSur-Dark"@' ~/.xsettingsd - - # Rofi theme - sed -i -e "s/light.rasi/dark.rasi/" $HOME/.config/rofi/config.rasi - # Swap dunst urgency_low background and foreground - sed -E -i '/^\[urgency_low\]/,/^\[.*\]/ { - s/^([[:space:]]*background[[:space:]]*=[[:space:]]*).*/\1"#3d3839"/ - s/^([[:space:]]*foreground[[:space:]]*=[[:space:]]*).*/\1"#8e8e8e"/ - }' "$DUNST_CONF" - - # Swap dunst urgency_normal background and foreground - sed -E -i '/^\[urgency_normal\]/,/^\[.*\]/ { - s/^([[:space:]]*background[[:space:]]*=[[:space:]]*).*/\1"#3d3839"/ - s/^([[:space:]]*foreground[[:space:]]*=[[:space:]]*).*/\1"#BBBBBB"/ - }' "$DUNST_CONF" - - # Plasma theme - if [[ "$XDG_CURRENT_DESKTOP" == "KDE" ]]; then - plasma-apply-lookandfeel -a com.github.vinceliuice.WhiteSur-dark - plasma-apply-cursortheme phinger-cursors-dark - kwriteconfig6 --file kdeglobals --group Icons --key Theme Papirus-Dark - kwriteconfig6 --file ksplashrc --group KSplash --key Theme Breeze - kquitapp6 plasmashell - sleep 0.3 - kstart5 plasmashell - fi - - else - echo "Swapping to light mode" - # GTK Theme - gsettings set org.gnome.desktop.interface gtk-theme '' - gsettings set org.gnome.desktop.interface gtk-theme 'WhiteSur-Light' - gsettings set org.gnome.desktop.interface color-scheme 'default' - sed -i -e 's@Net/ThemeName.*@Net/ThemeName "WhiteSur-Light"@' ~/.xsettingsd - # Swap dunst urgency_low background and foreground - sed -E -i '/^\[urgency_low\]/,/^\[.*\]/ { - s/^([[:space:]]*background[[:space:]]*=[[:space:]]*).*/\1"#8e8e8e"/ - s/^([[:space:]]*foreground[[:space:]]*=[[:space:]]*).*/\1"#3d3839"/ - }' "$DUNST_CONF" - - # Swap dunst urgency_normal background and foreground - sed -E -i '/^\[urgency_normal\]/,/^\[.*\]/ { - s/^([[:space:]]*background[[:space:]]*=[[:space:]]*).*/\1"#BBBBBB"/ - s/^([[:space:]]*foreground[[:space:]]*=[[:space:]]*).*/\1"#191919"/ - }' "$DUNST_CONF" - - # Rofi theme - sed -i -e "s/dark.rasi/light.rasi/" $HOME/.config/rofi/config.rasi - # - # Plasma theme - if [[ "$XDG_CURRENT_DESKTOP" == "KDE" ]]; then - plasma-apply-lookandfeel -a com.github.vinceliuice.WhiteSur-alt - plasma-apply-cursortheme phinger-cursors-dark - kwriteconfig6 --file kdeglobals --group Icons --key Theme Papirus - kwriteconfig6 --file ksplashrc --group KSplash --key Theme Breeze - kquitapp6 plasmashell - sleep 0.3 - kstart6 plasmashell - fi - fi - - killall dunst - killall -HUP xsettingsd -fi diff --git a/config/ghostty/config b/config/ghostty/config index 22da348..170bd0c 100644 --- a/config/ghostty/config +++ b/config/ghostty/config @@ -30,3 +30,8 @@ split-inherit-working-directory = true keybind = cmd+shift+p=ignore +window-save-state = always +confirm-close-surface = true +keybind = cmd+shift+t=close_surface + + diff --git a/home/.tmux.conf b/home/.tmux.conf index 73de293..c02cb51 100644 --- a/home/.tmux.conf +++ b/home/.tmux.conf @@ -13,8 +13,8 @@ set -g prefix C-p bind C-p send-prefix #Sane split commands -bind | split-window -h -c "#{pane_current_path}" -bind - split-window -v -c "#{pane_current_path}" +bind v split-window -h -c "#{pane_current_path}" +bind s split-window -v -c "#{pane_current_path}" unbind '"' unbind % diff --git a/home/.zshrc b/home/.zshrc index 6ad2844..1313001 100644 --- a/home/.zshrc +++ b/home/.zshrc @@ -63,6 +63,7 @@ zstyle -e ':completion:*:hosts' hosts 'reply=( ${=${${(f)"$(cat {/etc/ssh_,~/ar.ssh/known_}hosts(|2)(N) 2>/dev/null)"}%%[#| ]*}//,/ } ${=${${${${(@M)${(f)"$(cat ~/.ssh/config 2>/dev/null)"}:#Host *}#Host }:#*\**}:#*\?*}} )' +source <(k completion zsh) #============================================================================== # Plugins & Tools @@ -80,42 +81,23 @@ load_nvm() { # Create placeholder functions that load nvm once, then call the real command nvm() { - unset -f nvm node npm gemini + unset -f nvm node npm load_nvm nvm "$@" } node() { - unset -f nvm node npm gemini + unset -f nvm node npm load_nvm node "$@" } npm() { - unset -f nvm node npm gemini + unset -f nvm node npm load_nvm npm "$@" } -gemini() { - unset -f nvm node npm gemini - load_nvm - gemini "$@" -} - -claude() { - unset -f claude - export ANTHROPIC_BASE_URL=https://api.z.ai/api/anthropic - export ANTHROPIC_AUTH_TOKEN="$(pass list zai_token)" - npm 2>&1 1>/dev/null - claude "$@" -} - -codex() { - unset -f codex - npm 2>&1 1>/dev/null - codex "$@" -} # ghcup [ -f "/home/aselimov/.ghcup/env" ] && . "/home/aselimov/.ghcup/env" # ghcup-env @@ -132,8 +114,15 @@ if command -v jenv >/dev/null 2>&1; then eval "$(jenv init -)" fi -# starship -eval "$(starship init zsh)" +# Simple notify function +notify() { + local cmd="$*" + eval "$cmd" + local rc=$? + osascript -e "display notification \"Done (exit=$rc)\" with title \"${cmd//\"/\\\"}\"" + return $rc +} + # zsh-autosuggestions source "$HOME/.config/zsh/zsh-autosuggestions/zsh-autosuggestions.zsh" @@ -157,21 +146,16 @@ bindkey '^[[B' history-substring-search-down #============================================================================== if [ "$(uname)" = "Darwin" ]; then - export PATH="/opt/homebrew/bin:$PATH" + export PATH="/opt/homebrew/opt/gnu-sed/libexec/gnubin:/opt/homebrew/bin:$PATH" alias ls="gls --classify --group-directories-first --color" - GEMINI_BIN=$(which gemini) - function gemini(){ - source ~/.gemini_project && $GEMINI_BIN "$@" - } export NVIM_JDTLS_JAVA_HOME="/Library/Java/JavaVirtualMachines/temurin-21.jdk/Contents/Home/" - # I only start tmux by default on Mac because of dwm+swallow patch else alias ls="ls --classify --group-directories-first --color" fi -if [[ -z "$TMUX" ]] && [[ -n "$PS1" ]] && [[ -z "$NO_TMUX" ]]; then - tmux attach -t dev || tmux new -s dev -fi +#if [[ -z "$TMUX" ]] && [[ -n "$PS1" ]] && [[ -z "$NO_TMUX" ]]; then +# tmux attach -t dev || tmux new -s dev +#fi # pnpm export PNPM_HOME="/home/aselimov/.local/share/pnpm" @@ -180,3 +164,10 @@ case ":$PATH:" in *) export PATH="$PNPM_HOME:$PATH" ;; esac # pnpm end + +# Added by LM Studio CLI (lms) +export PATH="$PATH:/Users/aselimov/.lmstudio/bin" +# End of LM Studio CLI section + +# starship +eval "$(starship init zsh)"