From a14e1172d990bd77b46b36fd60b8b35126d1d8b0 Mon Sep 17 00:00:00 2001 From: Alex Selimov Date: Thu, 26 Mar 2026 22:36:22 -0400 Subject: [PATCH] latest config changes --- bin/swap_mode.sh | 4 +++ config/ghostty/config | 3 -- home/.profile | 12 ++++++- home/.zshrc | 3 -- setup_mac.sh | 77 +++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 92 insertions(+), 7 deletions(-) create mode 100755 setup_mac.sh diff --git a/bin/swap_mode.sh b/bin/swap_mode.sh index 8b14f5b..75b339b 100755 --- a/bin/swap_mode.sh +++ b/bin/swap_mode.sh @@ -3,16 +3,19 @@ NVIM_CONF="${HOME}/.config/nvim/init.lua" GHOSTTY_CONF="${HOME}/.config/ghostty/config" GEMINI_CONF="${HOME}/repos/SelimovDE/gemini/settings.json" +CLAUDE_CONF="${HOME}/.claude.json" [ -f "$NVIM_CONF" ] || { echo "Missing $NVIM_CONF"; exit 1; } [ -f "$GHOSTTY_CONF" ] || { echo "Missing $GHOSTTY_CONF"; exit 1; } [ -f "$GEMINI_CONF" ] || { echo "Missing $GEMINI_CONF"; exit 1; } +[ -f "$CLAUDE_CONF" ] || { echo "Missing $CLAUDE_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" + sed -i 's/"theme": "dark"/"theme": "light"/' "$CLAUDE_CONF" MODE="light" } @@ -20,6 +23,7 @@ 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" + sed -i 's/"theme": "light"/"theme": "dark"/' "$CLAUDE_CONF" MODE="dark" } diff --git a/config/ghostty/config b/config/ghostty/config index 170bd0c..4b261f0 100644 --- a/config/ghostty/config +++ b/config/ghostty/config @@ -30,8 +30,5 @@ 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/.profile b/home/.profile index 54c686a..b6728f5 100644 --- a/home/.profile +++ b/home/.profile @@ -2,5 +2,15 @@ [ -f "/home/aselimov/.ghcup/env" ] && . "/home/aselimov/.ghcup/env" # ghcup-env -export PATH="$PATH:/usr/local/cuda-12.8/bin:$HOME/bin:$HOME/.local/bin" +export PATH="$PATH:$HOME/.local/bin" + +if [ "$(uname)" = "Darwin" ]; then + export PATH="$HOME/bin:/opt/homebrew/opt/gnu-sed/libexec/gnubin:/opt/homebrew/bin:$PATH" +fi + export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda-12.8/lib64" + +# Added by LM Studio CLI (lms) +export PATH="$PATH:/Users/aselimov/.lmstudio/bin" +# End of LM Studio CLI section + diff --git a/home/.zshrc b/home/.zshrc index 1313001..04d8c37 100644 --- a/home/.zshrc +++ b/home/.zshrc @@ -16,8 +16,6 @@ setopt HIST_IGNORE_SPACE # Don't save commands starting with space # Environment Variables #============================================================================== -source ~/.profile - export OMPI_MCA_rmaps_base_oversubscribe=1 export CLICOLOR=1 export LSCOLORS=ExGxBxDxCxEgEdxbxgxcxd @@ -146,7 +144,6 @@ bindkey '^[[B' history-substring-search-down #============================================================================== if [ "$(uname)" = "Darwin" ]; then - export PATH="/opt/homebrew/opt/gnu-sed/libexec/gnubin:/opt/homebrew/bin:$PATH" alias ls="gls --classify --group-directories-first --color" export NVIM_JDTLS_JAVA_HOME="/Library/Java/JavaVirtualMachines/temurin-21.jdk/Contents/Home/" else diff --git a/setup_mac.sh b/setup_mac.sh new file mode 100755 index 0000000..4d7f4fb --- /dev/null +++ b/setup_mac.sh @@ -0,0 +1,77 @@ +#!/bin/bash +# Full macOS setup script. +# Deploys dotfiles, sets up neovim config, and installs brew applications. + +set -e + +SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) + +# --- SSH keygen --- +SSH_KEY="$HOME/.ssh/id_ed25519" +echo "=== Setting up SSH key ===" +if [ -f "$SSH_KEY" ]; then + echo "SSH key already exists at $SSH_KEY, skipping." +else + read -rp "Enter email for SSH key: " ssh_email + ssh-keygen -t ed25519 -C "$ssh_email" -f "$SSH_KEY" + eval "$(ssh-agent -s)" + ssh-add "$SSH_KEY" + echo "Public key:" + cat "${SSH_KEY}.pub" +fi +echo + +# --- Deploy dotfiles --- +echo "=== Deploying dotfiles ===" +"$SCRIPT_DIR/deploy.sh" + +# --- Neovim config --- +NVIM_CONFIG="$HOME/.config/nvim" +NVIM_REPO="https://forge.alexselimov.com/aselimov/neovim.git" + +echo "=== Setting up neovim config ===" +if [ -d "$NVIM_CONFIG" ]; then + if [ -L "$NVIM_CONFIG" ]; then + echo "Removing existing symlink at $NVIM_CONFIG" + rm "$NVIM_CONFIG" + elif [ -d "$NVIM_CONFIG/.git" ]; then + echo "Neovim config already cloned at $NVIM_CONFIG, pulling latest..." + git -C "$NVIM_CONFIG" pull + echo "Done." + echo + else + echo "Backing up existing $NVIM_CONFIG -> ${NVIM_CONFIG}.bak" + mv "$NVIM_CONFIG" "${NVIM_CONFIG}.bak" + fi +fi + +if [ ! -d "$NVIM_CONFIG/.git" ]; then + echo "Cloning neovim config..." + git clone "$NVIM_REPO" "$NVIM_CONFIG" + echo "Done." + echo +fi + +# --- Homebrew --- +echo "=== Checking for Homebrew ===" +if ! command -v brew &>/dev/null; then + echo "Homebrew not found. Installing..." + /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" +fi + +echo "=== Installing brew formulae ===" +brew install neovim +brew install coreutils +brew install gnu-sed +brew install starship +brew install nvm +brew install kubectl + +echo "=== Installing brew casks ===" +brew install --cask anytype +brew install --cask ghostty +brew install --cask helium +brew install --cask flowvision + +echo +echo "macOS setup complete!"