feat: remade scripts to be simpler
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
os/cachyos/kde/cachyos-profile.knsv filter=lfs diff=lfs merge=lfs -text
|
||||
*.knsv filter=lfs diff=lfs merge=lfs -text
|
||||
Executable
+133
@@ -0,0 +1,133 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Get script directory
|
||||
DOTFILES_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
cd "$DOTFILES_DIR"
|
||||
|
||||
# Detect OS
|
||||
OS=$(uname -s)
|
||||
|
||||
echo "═══════════════════════════════════════"
|
||||
echo " Dotfiles Installation"
|
||||
echo " OS: $OS"
|
||||
echo "═══════════════════════════════════════"
|
||||
echo
|
||||
|
||||
# ---------------------------------------------------------
|
||||
# 1. OS-Specific Package Installation
|
||||
# ---------------------------------------------------------
|
||||
if [ "$OS" = "Darwin" ]; then
|
||||
echo "🍎 Detected macOS."
|
||||
|
||||
# Install Homebrew if not found
|
||||
if ! command -v brew &> /dev/null; then
|
||||
echo "Installing Homebrew..."
|
||||
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
||||
|
||||
# Add brew to path for the remainder of this script
|
||||
if [ -x "/opt/homebrew/bin/brew" ]; then
|
||||
eval "$(/opt/homebrew/bin/brew shellenv)"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Installing packages via Homebrew..."
|
||||
brew bundle --file="$DOTFILES_DIR/os/macos/Brewfile"
|
||||
|
||||
elif [ "$OS" = "Linux" ]; then
|
||||
echo "🐧 Detected Linux (Assuming CachyOS / Arch)."
|
||||
|
||||
echo "Updating system and installing official packages..."
|
||||
sudo pacman -Syu --noconfirm
|
||||
sudo pacman -S --needed --noconfirm - < "$DOTFILES_DIR/os/cachyos/pkglist.txt"
|
||||
|
||||
# Check for AUR helper and install AUR packages
|
||||
AUR_HELPER=""
|
||||
if command -v paru &> /dev/null; then
|
||||
AUR_HELPER="paru"
|
||||
elif command -v yay &> /dev/null; then
|
||||
AUR_HELPER="yay"
|
||||
fi
|
||||
|
||||
if [ -n "$AUR_HELPER" ]; then
|
||||
echo "Installing AUR packages using $AUR_HELPER..."
|
||||
$AUR_HELPER -S --needed --noconfirm - < "$DOTFILES_DIR/os/cachyos/aurlist.txt"
|
||||
else
|
||||
echo "⚠️ No AUR helper (paru/yay) found. Skipping AUR packages."
|
||||
echo "Please install paru or yay and run: paru -S --needed - < os/cachyos/aurlist.txt"
|
||||
fi
|
||||
|
||||
if [ -f "$DOTFILES_DIR/os/cachyos/kde/cachyos-profile.knsv" ] && command -v konsave &> /dev/null; then
|
||||
echo "Applying KDE Plasma Profile..."
|
||||
konsave -i "$DOTFILES_DIR/os/cachyos/kde/cachyos-profile.knsv" || true
|
||||
sleep 2
|
||||
konsave -a cachyos-profile || true
|
||||
fi
|
||||
else
|
||||
echo "⚠️ Unsupported OS detected: $OS"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo
|
||||
|
||||
# ---------------------------------------------------------
|
||||
# 2. Linking Configuration Files
|
||||
# ---------------------------------------------------------
|
||||
echo "🔗 Setting up configuration..."
|
||||
mkdir -p ~/.config
|
||||
|
||||
cd "$DOTFILES_DIR/stow"
|
||||
for app in */; do
|
||||
echo "Stowing ${app%/}"
|
||||
stow -R "${app%/}" -t "$HOME"
|
||||
done
|
||||
cd "$DOTFILES_DIR"
|
||||
|
||||
# Link OS-specific .zprofile and aliases
|
||||
if [ "$OS" = "Darwin" ]; then
|
||||
echo "Linking macOS .zprofile and aliases..."
|
||||
rm -f ~/.zprofile
|
||||
ln -s "$DOTFILES_DIR/os/macos/.zprofile" ~/.zprofile
|
||||
rm -f ~/.os_aliases
|
||||
ln -s "$DOTFILES_DIR/os/macos/aliases.sh" ~/.os_aliases
|
||||
elif [ "$OS" = "Linux" ]; then
|
||||
echo "Linking Linux .zprofile and aliases..."
|
||||
rm -f ~/.zprofile
|
||||
ln -s "$DOTFILES_DIR/os/cachyos/.zprofile" ~/.zprofile
|
||||
rm -f ~/.os_aliases
|
||||
ln -s "$DOTFILES_DIR/os/cachyos/aliases.sh" ~/.os_aliases
|
||||
fi
|
||||
|
||||
echo "Linking common aliases..."
|
||||
rm -f ~/.common_aliases
|
||||
ln -s "$DOTFILES_DIR/shell/aliases.sh" ~/.common_aliases
|
||||
|
||||
# ---------------------------------------------------------
|
||||
# 3. Tmux Plugin Manager
|
||||
# ---------------------------------------------------------
|
||||
if [ ! -d ~/.tmux/plugins/tpm ]; then
|
||||
echo "Installing tmux plugin manager (TPM)..."
|
||||
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
|
||||
fi
|
||||
|
||||
# ---------------------------------------------------------
|
||||
# 4. Secondary Setup Scripts
|
||||
# ---------------------------------------------------------
|
||||
echo
|
||||
echo "🛠️ Running secondary installation scripts..."
|
||||
|
||||
# Export newly installed binaries into PATH for these scripts
|
||||
export PATH="/opt/homebrew/bin:$HOME/.local/bin:$HOME/go/bin:$HOME/.bun/bin:$PATH"
|
||||
|
||||
if [ -f "$DOTFILES_DIR/scripts/install_dev_tools.sh" ]; then
|
||||
bash "$DOTFILES_DIR/scripts/install_dev_tools.sh"
|
||||
fi
|
||||
|
||||
if [ -f "$DOTFILES_DIR/scripts/install_conda.sh" ]; then
|
||||
bash "$DOTFILES_DIR/scripts/install_conda.sh"
|
||||
fi
|
||||
|
||||
echo
|
||||
echo "═══════════════════════════════════════"
|
||||
echo " ✅ Installation Complete!"
|
||||
echo "═══════════════════════════════════════"
|
||||
echo "Please restart your terminal or run 'exec zsh' to apply all changes."
|
||||
@@ -0,0 +1,24 @@
|
||||
# CachyOS (Linux) Environment Variables and PATH
|
||||
|
||||
# User Local Bin
|
||||
export PATH="$HOME/.local/bin:$PATH"
|
||||
|
||||
# Go Development
|
||||
export PATH="/usr/local/go/bin:$HOME/go/bin:$PATH"
|
||||
|
||||
# Bun
|
||||
export BUN_INSTALL="$HOME/.bun"
|
||||
export PATH="$BUN_INSTALL/bin:$PATH"
|
||||
|
||||
# Node / NPM / pnpm
|
||||
export PATH="$HOME/.npm-global/bin:$PATH"
|
||||
export PNPM_HOME="$HOME/.local/share/pnpm"
|
||||
case ":$PATH:" in
|
||||
*":$PNPM_HOME:"*) ;;
|
||||
*) export PATH="$PNPM_HOME:$PATH" ;;
|
||||
esac
|
||||
|
||||
# Oh-My-Posh (Prompt)
|
||||
if command -v oh-my-posh >/dev/null; then
|
||||
eval "$(oh-my-posh init zsh --config $HOME/.config/oh-my-posh/zen.toml)"
|
||||
fi
|
||||
@@ -0,0 +1,6 @@
|
||||
# Arch-based aliases
|
||||
alias pup="sudo pacman -Syu"
|
||||
alias ps="pacman -Ss"
|
||||
alias pi="sudo pacman -S $1 -y"
|
||||
alias pr="sudo pacman -R $1 -y"
|
||||
alias shutdown="shutdown now"
|
||||
@@ -0,0 +1,10 @@
|
||||
bruno-bin
|
||||
bun-bin
|
||||
cursor-bin
|
||||
hoppscotch-bin
|
||||
konsave
|
||||
librewolf-bin
|
||||
onlyoffice-bin
|
||||
proton-pass-bin
|
||||
visual-studio-code-bin
|
||||
zen-browser-bin
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:31f04363f298ef5c2129f4a483f01f5e164b2103b5652b2cb3017ba66665a330
|
||||
size 2127562266
|
||||
@@ -0,0 +1,20 @@
|
||||
alacritty
|
||||
btop
|
||||
cloudflared
|
||||
docker
|
||||
eza
|
||||
fastfetch
|
||||
fzf
|
||||
ghostty
|
||||
go
|
||||
lazygit
|
||||
nodejs
|
||||
npm
|
||||
pnpm
|
||||
stow
|
||||
tmux
|
||||
unzip
|
||||
zed
|
||||
zoxide
|
||||
zsh-autosuggestions
|
||||
zsh-syntax-highlighting
|
||||
@@ -0,0 +1,24 @@
|
||||
# macOS Environment Variables and PATH
|
||||
|
||||
# Homebrew
|
||||
if [ -x "/opt/homebrew/bin/brew" ]; then
|
||||
eval "$(/opt/homebrew/bin/brew shellenv)"
|
||||
fi
|
||||
|
||||
# User Local Bin
|
||||
export PATH="$HOME/.local/bin:$PATH"
|
||||
|
||||
# Go Development
|
||||
export PATH="$HOME/go/bin:$PATH"
|
||||
|
||||
# Bun
|
||||
export BUN_INSTALL="$HOME/.bun"
|
||||
export PATH="$BUN_INSTALL/bin:$PATH"
|
||||
|
||||
# Node / NPM / pnpm (Fallback if not managed completely by brew/corepack)
|
||||
export PATH="$HOME/.npm-global/bin:$PATH"
|
||||
|
||||
# Oh-My-Posh (Prompt)
|
||||
if command -v oh-my-posh >/dev/null; then
|
||||
eval "$(oh-my-posh init zsh --config $HOME/.config/oh-my-posh/zen.toml)"
|
||||
fi
|
||||
@@ -0,0 +1,53 @@
|
||||
# Taps
|
||||
tap "homebrew/bundle"
|
||||
tap "homebrew/cask"
|
||||
tap "homebrew/cask-fonts"
|
||||
tap "nikitabobko/tap"
|
||||
|
||||
# System Tools & Terminal
|
||||
brew "btop"
|
||||
brew "cloudflared"
|
||||
brew "eza"
|
||||
brew "fastfetch"
|
||||
brew "fzf"
|
||||
brew "stow"
|
||||
brew "tmux"
|
||||
brew "unzip"
|
||||
brew "zoxide"
|
||||
brew "zsh-autosuggestions"
|
||||
brew "zsh-syntax-highlighting"
|
||||
|
||||
# Development & Programming
|
||||
brew "bun"
|
||||
brew "go"
|
||||
brew "lazygit"
|
||||
brew "node"
|
||||
brew "pnpm"
|
||||
|
||||
# Casks (GUI Apps)
|
||||
cask "1password"
|
||||
cask "aerospace"
|
||||
cask "alacritty"
|
||||
cask "blender"
|
||||
cask "bruno"
|
||||
cask "cursor"
|
||||
cask "docker"
|
||||
cask "ghostty"
|
||||
cask "hoppscotch"
|
||||
cask "keka"
|
||||
cask "obsidian"
|
||||
cask "onlyoffice"
|
||||
cask "pearcleaner"
|
||||
brew "proton-pass"
|
||||
cask "setapp"
|
||||
cask "sf-symbols"
|
||||
cask "sourcetree"
|
||||
cask "tableplus"
|
||||
cask "visual-studio-code"
|
||||
cask "zed"
|
||||
cask "zen-browser"
|
||||
|
||||
# Fonts
|
||||
cask "font-inter"
|
||||
cask "font-sf-mono"
|
||||
cask "font-sf-pro"
|
||||
@@ -0,0 +1,264 @@
|
||||
# Place a copy of this config to ~/.aerospace.toml
|
||||
# After that, you can edit ~/.aerospace.toml to your liking
|
||||
|
||||
# It's not neceesary to copy all keys to your config.
|
||||
# If the key is missing in your config, "default-config.toml" will serve as a fallback
|
||||
|
||||
# You can use it to add commands that run after login to macOS user session.
|
||||
# 'start-at-login' needs to be 'true' for 'after-login-command' to work
|
||||
# Available commands: https://nikitabobko.github.io/AeroSpace/commands
|
||||
after-login-command = []
|
||||
|
||||
# You can use it to add commands that run after AeroSpace startup.
|
||||
# 'after-startup-command' is run after 'after-login-command'
|
||||
# Available commands : https://nikitabobko.github.io/AeroSpace/commands
|
||||
#after-startup-command = [
|
||||
# 'exec-and-forget /opt/homebrew/opt/sketchybar/bin/sketchybar',
|
||||
#]
|
||||
|
||||
#exec-on-workspace-change = [
|
||||
# '/bin/bash',
|
||||
# '-c',
|
||||
# '/opt/homebrew/opt/sketchybar/bin/sketchybar --trigger aerospace_workspace_change AEROSPACE_FOCUSED_WORKSPACE=$AEROSPACE_FOCUSED_WORKSPACE AEROSPACE_PREV_WORKSPACE=$AEROSPACE_PREV_WORKSPACE',
|
||||
#]
|
||||
|
||||
# Start AeroSpace at login
|
||||
start-at-login = true
|
||||
|
||||
# Normalizations. See: https://nikitabobko.github.io/AeroSpace/guide#normalization
|
||||
enable-normalization-flatten-containers = false
|
||||
enable-normalization-opposite-orientation-for-nested-containers = false
|
||||
|
||||
# See: https://nikitabobko.github.io/AeroSpace/guide#layouts
|
||||
# The 'accordion-padding' specifies the size of accordion padding
|
||||
# You can set 0 to disable the padding feature
|
||||
accordion-padding = 20
|
||||
|
||||
# Possible values: tiles|accordion
|
||||
default-root-container-layout = 'tiles'
|
||||
|
||||
# Possible values: horizontal|vertical|auto
|
||||
# 'auto' means: wide monitor (anything wider than high) gets horizontal orientation,
|
||||
# tall monitor (anything higher than wide) gets vertical orientation
|
||||
default-root-container-orientation = 'auto'
|
||||
|
||||
# Possible values: (qwerty|dvorak)
|
||||
# See https://nikitabobko.github.io/AeroSpace/guide#key-mapping
|
||||
key-mapping.preset = 'qwerty'
|
||||
|
||||
on-focused-monitor-changed = ['move-mouse monitor-lazy-center']
|
||||
on-focus-changed = ['move-mouse window-lazy-center']
|
||||
|
||||
# Gaps between windows (inner-*) and between monitor edges (outer-*).
|
||||
# Possible values:
|
||||
# - Constant: gaps.outer.top = 8
|
||||
# - Per monitor: gaps.outer.top = [{ monitor.main = 16 }, { monitor."some-pattern" = 32 }, 24]
|
||||
# In this example, 24 is a default value when there is no match.
|
||||
# Monitor pattern is the same as for 'workspace-to-monitor-force-assignment'.
|
||||
# See: https://nikitabobko.github.io/AeroSpace/guide#assign-workspaces-to-monitors
|
||||
[workspace-to-monitor-force-assignment]
|
||||
1 = 'main'
|
||||
2 = 'main'
|
||||
3 = 'V32UE'
|
||||
4 = 'V32UE'
|
||||
5 = 'V32UE'
|
||||
6 = '^27W'
|
||||
7 = '^27W'
|
||||
10 = '^EPSON'
|
||||
|
||||
[gaps]
|
||||
inner.horizontal = 20
|
||||
inner.vertical = 20
|
||||
outer.top = [{ monitor."main" = 5 }, 40]
|
||||
outer.left = 15
|
||||
outer.bottom = 15
|
||||
outer.right = 15
|
||||
|
||||
# See https://nikitabobko.github.io/AeroSpace/guide#exec-env-vars
|
||||
[exec] # Again, you don't need to copy all config sections to your config.
|
||||
inherit-env-vars = true # If you don't touch "exec" section,
|
||||
|
||||
[exec.env-vars] # it will fallback to "default-config.toml"
|
||||
PATH = '/opt/homebrew/bin:/opt/homebrew/sbin:${PATH}'
|
||||
|
||||
# 'main' binding mode declaration
|
||||
# See: https://nikitabobko.github.io/AeroSpace/guide#binding-modes
|
||||
# 'main' binding mode must be always presented
|
||||
[mode.main.binding]
|
||||
|
||||
# All possible keys:
|
||||
# - Letters. a, b, c, ..., z
|
||||
# - Numbers. 0, 1, 2, ..., 9
|
||||
# - Keypad numbers. keypad0, keypad1, keypad2, ..., keypad9
|
||||
# - F-keys. f1, f2, ..., f20
|
||||
# - Special keys. minus, equal, period, comma, slash, backslash, quote, semicolon, backtick,
|
||||
# leftSquareBracket, rightSquareBracket, space, enter, esc, backspace, tab
|
||||
# - Keypad special. keypadClear, keypadDecimalMark, keypadDivide, keypadEnter, keypadEqual,
|
||||
# keypadMinus, keypadMultiply, keypadPlus
|
||||
# - Arrows. left, down, up, right
|
||||
|
||||
# All possible modifiers: cmd, alt, ctrl, shift
|
||||
|
||||
# All possible commands: https://nikitabobko.github.io/AeroSpace/commands
|
||||
|
||||
# You can uncomment this line to open up terminal with alt + enter shortcut
|
||||
# See: https://nikitabobko.github.io/AeroSpace/commands#exec-and-forget
|
||||
cmd-enter = 'exec-and-forget open -na Alacritty'
|
||||
cmd-shift-w = 'exec-and-forget open -na Safari'
|
||||
cmd-shift-e = 'exec-and-forget open -na Zed'
|
||||
ctrl-shift-f = 'exec-and-forget open .'
|
||||
#ctrl-shift-f = 'fullscreen'
|
||||
|
||||
|
||||
# See: https://nikitabobko.github.io/AeroSpace/commands#layout
|
||||
ctrl-backslash= 'layout tiles horizontal vertical'
|
||||
ctrl-comma = 'layout accordion horizontal vertical'
|
||||
|
||||
# See: https://nikitabobko.github.io/AeroSpace/commands#focus
|
||||
ctrl-h = 'focus left --boundaries all-monitors-outer-frame'
|
||||
ctrl-j = 'focus down --boundaries all-monitors-outer-frame'
|
||||
ctrl-k = 'focus up --boundaries all-monitors-outer-frame'
|
||||
ctrl-l = 'focus right --boundaries all-monitors-outer-frame'
|
||||
|
||||
# See: https://nikitabobko.github.io/AeroSpace/commands#move
|
||||
ctrl-shift-h = 'move left'
|
||||
ctrl-shift-j = 'move down'
|
||||
ctrl-shift-k = 'move up'
|
||||
ctrl-shift-l = 'move right'
|
||||
|
||||
# See: https://nikitabobko.github.io/AeroSpace/commands#resize
|
||||
ctrl-shift-minus = 'resize smart -50'
|
||||
ctrl-shift-equal = 'resize smart +50'
|
||||
|
||||
# See: https://nikitabobko.github.io/AeroSpace/commands#workspace
|
||||
ctrl-1 = 'workspace 1'
|
||||
ctrl-2 = 'workspace 2'
|
||||
ctrl-3 = 'workspace 3'
|
||||
ctrl-4 = 'workspace 4'
|
||||
ctrl-5 = 'workspace 5'
|
||||
ctrl-6 = 'workspace 6'
|
||||
ctrl-7 = 'workspace 7'
|
||||
ctrl-8 = 'workspace 8'
|
||||
ctrl-9 = 'workspace 9'
|
||||
ctrl-0 = 'workspace 10'
|
||||
|
||||
# See: https://nikitabobko.github.io/AeroSpace/commands#move-node-to-workspace
|
||||
ctrl-shift-1 = ['move-node-to-workspace 1', 'workspace 1']
|
||||
ctrl-shift-2 = ['move-node-to-workspace 2', 'workspace 2']
|
||||
ctrl-shift-3 = ['move-node-to-workspace 3', 'workspace 3']
|
||||
ctrl-shift-4 = ['move-node-to-workspace 4', 'workspace 4']
|
||||
ctrl-shift-5 = ['move-node-to-workspace 5', 'workspace 5']
|
||||
ctrl-shift-6 = ['move-node-to-workspace 6', 'workspace 6']
|
||||
ctrl-shift-7 = ['move-node-to-workspace 7', 'workspace 7']
|
||||
ctrl-shift-8 = ['move-node-to-workspace 8', 'workspace 8']
|
||||
ctrl-shift-9 = ['move-node-to-workspace 9', 'workspace 9']
|
||||
ctrl-shift-0 = ['move-node-to-workspace 10', 'workspace 10']
|
||||
|
||||
# See: https://nikitabobko.github.io/AeroSpace/commands#workspace-back-and-forth
|
||||
ctrl-tab = 'workspace-back-and-forth'
|
||||
# See: https://nikitabobko.github.io/AeroSpace/commands#move-workspace-to-monitor
|
||||
ctrl-shift-tab = 'move-workspace-to-monitor --wrap-around next'
|
||||
|
||||
# See: https://nikitabobko.github.io/AeroSpace/commands#mode
|
||||
ctrl-shift-semicolon = 'mode service'
|
||||
|
||||
# 'service' binding mode declaration.
|
||||
# See: https://nikitabobko.github.io/AeroSpace/guide#binding-modes
|
||||
|
||||
# disabled hide window
|
||||
# cmd-h = []
|
||||
# rotate hangul and english
|
||||
|
||||
[mode.service.binding]
|
||||
esc = ['reload-config', 'mode main']
|
||||
r = ['flatten-workspace-tree', 'mode main'] # reset layout
|
||||
#s = ['layout sticky tiling', 'mode main'] # sticky is not yet supported https://github.com/nikitabobko/AeroSpace/issues/2
|
||||
f = [
|
||||
'layout floating tiling',
|
||||
'mode main',
|
||||
] # Toggle between floating and tiling layout
|
||||
ctrl-shift-semicolon = [
|
||||
'fullscreen',
|
||||
'mode main',
|
||||
] # Toggle between floating and tiling layout
|
||||
backspace = ['close-all-windows-but-current', 'mode main']
|
||||
|
||||
ctrl-shift-h = ['join-with left', 'mode main']
|
||||
ctrl-shift-j = ['join-with down', 'mode main']
|
||||
ctrl-shift-k = ['join-with up', 'mode main']
|
||||
ctrl-shift-l = ['join-with right', 'mode main']
|
||||
|
||||
ctrl-shift-r = ['exec-and-forget /opt/homebrew/bin/sketchybar --reload']
|
||||
|
||||
|
||||
# [[on-window-detected]]
|
||||
# if.app-id = 'nl.stickybit.OTP-Manager'
|
||||
# run = ['layout floating']
|
||||
|
||||
#[[on-window-detected]]
|
||||
#if.window-title-regex-substring = '^BIG-IP'
|
||||
#run = ['layout floating']
|
||||
|
||||
[[on-window-detected]]
|
||||
if.app-id = 'com.microsoft.VSCode'
|
||||
run = ['move-node-to-workspace 1']
|
||||
|
||||
[[on-window-detected]]
|
||||
if.app-id = 'dev.zed.Zed'
|
||||
run = ['move-node-to-workspace 1']
|
||||
|
||||
[[on-window-detected]]
|
||||
if.app-id = 'com.todesktop.230313mzl4w4u92'
|
||||
run = ['move-node-to-workspace 1']
|
||||
|
||||
[[on-window-detected]]
|
||||
if.app-id = 'com.jetbrains.intellij'
|
||||
run = ['move-node-to-workspace 1']
|
||||
|
||||
[[on-window-detected]]
|
||||
if.app-id = 'com.jetbrains.goland'
|
||||
run = ['move-node-to-workspace 1']
|
||||
|
||||
[[on-window-detected]]
|
||||
if.app-id = 'org.alacritty'
|
||||
run = ['move-node-to-workspace 2']
|
||||
|
||||
[[on-window-detected]]
|
||||
if.app-id = 'com.apple.Safari'
|
||||
run = ['move-node-to-workspace 3']
|
||||
|
||||
[[on-window-detected]]
|
||||
if.app-id = 'com.google.Chrome'
|
||||
run = ['move-node-to-workspace 3']
|
||||
|
||||
[[on-window-detected]]
|
||||
if.app-id = 'com.google.Chrome.dev'
|
||||
run = ['move-node-to-workspace 3']
|
||||
|
||||
[[on-window-detected]]
|
||||
if.app-id = 'com.brave.Browser'
|
||||
run = ['move-node-to-workspace 3']
|
||||
|
||||
[[on-window-detected]]
|
||||
if.app-id = 'com.kagi.kagimacOS'
|
||||
run = ['move-node-to-workspace 3']
|
||||
|
||||
[[on-window-detected]]
|
||||
if.app-id = 'com.apple.Music'
|
||||
run = ['move-node-to-workspace 5']
|
||||
|
||||
[[on-window-detected]]
|
||||
if.app-id = 'com.apple.finder'
|
||||
run = ['move-node-to-workspace 4']
|
||||
|
||||
[[on-window-detected]]
|
||||
if.app-id = 'com.hnc.Discord'
|
||||
run = ['move-node-to-workspace 8']
|
||||
|
||||
[[on-window-detected]]
|
||||
if.app-id = "md.obsidian"
|
||||
run = ['move-node-to-workspace 9']
|
||||
|
||||
[[on-window-detected]]
|
||||
if.app-id = 'com.apple.weather'
|
||||
run = ['layout floating']
|
||||
@@ -0,0 +1,18 @@
|
||||
#MacOS aliases
|
||||
|
||||
# Brew Aliases
|
||||
alias bupd="brew update && brew upgrade"
|
||||
alias bi="brew install"
|
||||
alias bs="brew search"
|
||||
alias bu="brew uninstall"
|
||||
|
||||
alias reboot="sudo reboot"
|
||||
alias shutdown="sudo shutdown now"
|
||||
alias diskUsage='du -sh * | gsort -h'
|
||||
alias ofd="open ."
|
||||
alias showfiles="defaults write com.apple.finder AppleShowAllFiles YES; killall Finder /System/Library/CoreServices/Finder.app"
|
||||
alias hidefiles="defaults write com.apple.finder AppleShowAllFiles NO; killall Finder /System/Library/CoreServices/Finder.app"
|
||||
|
||||
# IP alias and functions
|
||||
alias ip="ifconfig -a | egrep -A 7 '^en0' | grep inet | grep -oE '((1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])\.){3}(1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])' | head -n 1"
|
||||
alias myip="curl -s http://checkip.dyndns.org/ | sed 's/[a-zA-Z<>/ :]//g'"
|
||||
Executable
+14
@@ -0,0 +1,14 @@
|
||||
#!/bin/bash
|
||||
OS=$(uname -s)
|
||||
if [ "$OS" = "Darwin" ]; then
|
||||
ARCH="MacOSX-arm64"
|
||||
else
|
||||
ARCH="Linux-x86_64"
|
||||
fi
|
||||
|
||||
echo "Installing Miniconda..."
|
||||
mkdir -p ~/miniconda3
|
||||
curl https://repo.anaconda.com/miniconda/Miniconda3-latest-${ARCH}.sh -o ~/miniconda3/miniconda.sh
|
||||
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
|
||||
rm -rf ~/miniconda3/miniconda.sh
|
||||
~/miniconda3/bin/conda init zsh
|
||||
Executable
+14
@@ -0,0 +1,14 @@
|
||||
#!/bin/bash
|
||||
echo "Installing Go and Bun development tools..."
|
||||
|
||||
# Go tools
|
||||
if command -v go &> /dev/null; then
|
||||
go install -tags 'postgres' github.com/golang-migrate/migrate/v4/cmd/migrate@latest
|
||||
go install github.com/cosmtrek/air@latest
|
||||
go install github.com/swaggo/swag/cmd/swag@latest
|
||||
fi
|
||||
|
||||
# Bun tools
|
||||
if command -v bun &> /dev/null; then
|
||||
bun install -g dbdocs @dbml/cli
|
||||
fi
|
||||
Executable
+18
@@ -0,0 +1,18 @@
|
||||
#General (All OSes)
|
||||
alias ls="eza -l --git --icons=always --group-directories-first"
|
||||
alias c="clear"
|
||||
alias m="make"
|
||||
alias mc="make clean"
|
||||
|
||||
alias cpi="cp -iv"
|
||||
alias mvi="mv -iv"
|
||||
alias rm="rm -i"
|
||||
|
||||
alias home="cd ~"
|
||||
alias root="cd /"
|
||||
alias dev="cd ~/Developer"
|
||||
|
||||
alias tn="tmux new -s"
|
||||
alias ta="tmux attach -t"
|
||||
alias tl="tmux ls"
|
||||
alias tk="tmux kill-session -t"
|
||||
@@ -0,0 +1,72 @@
|
||||
console_title_template = '{{ .Shell }} in {{ .Folder }}'
|
||||
version = 3
|
||||
final_space = true
|
||||
|
||||
[secondary_prompt]
|
||||
template = '❯❯ '
|
||||
foreground = 'magenta'
|
||||
background = 'transparent'
|
||||
|
||||
[transient_prompt]
|
||||
template = '❯ '
|
||||
background = 'transparent'
|
||||
foreground_templates = ['{{if gt .Code 0}}red{{end}}', '{{if eq .Code 0}}magenta{{end}}']
|
||||
|
||||
[[blocks]]
|
||||
type = 'prompt'
|
||||
alignment = 'left'
|
||||
newline = true
|
||||
|
||||
[[blocks.segments]]
|
||||
template = '{{ .Path }}'
|
||||
foreground = 'blue'
|
||||
background = 'transparent'
|
||||
type = 'path'
|
||||
style = 'plain'
|
||||
|
||||
[blocks.segments.properties]
|
||||
cache_duration = 'none'
|
||||
style = 'full'
|
||||
|
||||
[[blocks.segments]]
|
||||
template = ' {{ .HEAD }}{{ if or (.Working.Changed) (.Staging.Changed) }}*{{ end }} <cyan>{{ if gt .Behind 0 }}⇣{{ end }}{{ if gt .Ahead 0 }}⇡{{ end }}</>'
|
||||
foreground = 'p:grey'
|
||||
background = 'transparent'
|
||||
type = 'git'
|
||||
style = 'plain'
|
||||
|
||||
[blocks.segments.properties]
|
||||
branch_icon = ''
|
||||
cache_duration = 'none'
|
||||
commit_icon = '@'
|
||||
fetch_status = true
|
||||
|
||||
[[blocks]]
|
||||
type = 'rprompt'
|
||||
overflow = 'hidden'
|
||||
|
||||
[[blocks.segments]]
|
||||
template = '{{ .FormattedMs }}'
|
||||
foreground = 'yellow'
|
||||
background = 'transparent'
|
||||
type = 'executiontime'
|
||||
style = 'plain'
|
||||
|
||||
[blocks.segments.properties]
|
||||
cache_duration = 'none'
|
||||
threshold = 5000
|
||||
|
||||
[[blocks]]
|
||||
type = 'prompt'
|
||||
alignment = 'left'
|
||||
newline = true
|
||||
|
||||
[[blocks.segments]]
|
||||
template = '❯'
|
||||
background = 'transparent'
|
||||
type = 'text'
|
||||
style = 'plain'
|
||||
foreground_templates = ['{{if gt .Code 0}}red{{end}}', '{{if eq .Code 0}}magenta{{end}}']
|
||||
|
||||
[blocks.segments.properties]
|
||||
cache_duration = 'none'
|
||||
@@ -0,0 +1,43 @@
|
||||
# Reload tmux configuration
|
||||
unbind r
|
||||
bind r source-file ~/.config/tmux/tmux.conf \; display-message "Tmux config reloaded!"
|
||||
|
||||
# Set prefix key to Ctrl-s
|
||||
set -g prefix C-s
|
||||
|
||||
# Enable mouse support
|
||||
set -g mouse on
|
||||
|
||||
# Set index starting at 1 for windows and panes
|
||||
set -g base-index 1
|
||||
set -g pane-base-index 1
|
||||
set-window-option -g pane-base-index 1
|
||||
set-option -g renumber-windows on
|
||||
|
||||
# Remap pane navigation to vim-style keys
|
||||
bind-key h select-pane -L
|
||||
bind-key j select-pane -D
|
||||
bind-key k select-pane -U
|
||||
bind-key l select-pane -R
|
||||
|
||||
# Set split binds
|
||||
bind v split-window -h
|
||||
bind h split-window -v
|
||||
bind n new-window
|
||||
bind q kill-pane
|
||||
|
||||
set-option -g status-position top
|
||||
|
||||
#* TMUX Plugin Manager Configuration
|
||||
# List of plugins
|
||||
set -g @plugin 'tmux-plugins/tpm'
|
||||
set -g @plugin 'dreamsofcode-io/catppuccin-tmux'
|
||||
|
||||
# Other examples:
|
||||
# set -g @plugin 'github_username/plugin_name'
|
||||
# set -g @plugin 'github_username/plugin_name#branch'
|
||||
# set -g @plugin '[email protected]:user/plugin'
|
||||
# set -g @plugin '[email protected]:user/plugin'
|
||||
|
||||
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
|
||||
run '~/.tmux/plugins/tpm/tpm'
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,21 @@
|
||||
// Zed keymap
|
||||
//
|
||||
// For information on binding keys, see the Zed
|
||||
// documentation: https://zed.dev/docs/key-bindings
|
||||
//
|
||||
// To see the default key bindings run `zed: open default keymap`
|
||||
// from the command palette.
|
||||
[
|
||||
{
|
||||
"context": "Workspace",
|
||||
"bindings": {
|
||||
// "shift shift": "file_finder::Toggle"
|
||||
}
|
||||
},
|
||||
{
|
||||
"context": "Editor",
|
||||
"bindings": {
|
||||
// "j k": ["workspace::SendKeystrokes", "escape"]
|
||||
}
|
||||
}
|
||||
]
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,35 @@
|
||||
// Zed settings
|
||||
//
|
||||
// For information on how to configure Zed, see the Zed
|
||||
// documentation: https://zed.dev/docs/configuring-zed
|
||||
//
|
||||
// To see all of Zed's default settings without changing your
|
||||
// custom settings, run `zed: open default settings` from the
|
||||
// command palette (cmd-shift-p / ctrl-shift-p)
|
||||
{
|
||||
"icon_theme": "Catppuccin Mocha",
|
||||
"agent": {
|
||||
"always_allow_tool_actions": true,
|
||||
"default_profile": "write",
|
||||
"default_model": {
|
||||
"provider": "zed.dev",
|
||||
"model": "claude-3-7-sonnet"
|
||||
},
|
||||
},
|
||||
"telemetry": {
|
||||
"metrics": false,
|
||||
"diagnostics": false
|
||||
},
|
||||
"vim_mode": false,
|
||||
"ui_font_size": 14,
|
||||
"buffer_font_size": 14,
|
||||
"theme": {
|
||||
"mode": "system",
|
||||
"light": "One Light",
|
||||
"dark": "Min Dark (Blurred)"
|
||||
},
|
||||
"hover_popover_enabled": true,
|
||||
"features": {
|
||||
"edit_prediction_provider": "zed"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
// Zed settings
|
||||
//
|
||||
// For information on how to configure Zed, see the Zed
|
||||
// documentation: https://zed.dev/docs/configuring-zed
|
||||
//
|
||||
// To see all of Zed's default settings without changing your
|
||||
// custom settings, run `zed: open default settings` from the
|
||||
// command palette (cmd-shift-p / ctrl-shift-p)
|
||||
{
|
||||
"icon_theme": "Catppuccin Mocha",
|
||||
"agent": {
|
||||
"default_profile": "write",
|
||||
"default_model": {
|
||||
"provider": "zed.dev",
|
||||
"model": "claude-sonnet-4"
|
||||
},
|
||||
"version": "2"
|
||||
},
|
||||
"telemetry": {
|
||||
"metrics": false,
|
||||
"diagnostics": false
|
||||
},
|
||||
"vim_mode": false,
|
||||
"ui_font_size": 14,
|
||||
"buffer_font_size": 14,
|
||||
"theme": {
|
||||
"mode": "system",
|
||||
"light": "One Light",
|
||||
"dark": "Min Dark (Blurred)"
|
||||
},
|
||||
"hover_popover_enabled": true,
|
||||
"features": {
|
||||
"edit_prediction_provider": "zed"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
fastfetch
|
||||
ZINIT_HOME="${XDG_DATA_HOME:-${HOME}/.local/share}/zinit/zinit.git"
|
||||
if [ ! -d "$ZINIT_HOME" ]; then
|
||||
mkdir -p "$(dirname "$ZINIT_HOME")"
|
||||
git clone https://github.com/zdharma-continuum/zinit.git "$ZINIT_HOME"
|
||||
fi
|
||||
|
||||
source "${ZINIT_HOME}/zinit.zsh"
|
||||
|
||||
# User configuration
|
||||
#Path
|
||||
[ -f "$HOME/.zprofile" ] && source "$HOME/.zprofile"
|
||||
|
||||
# Aliases
|
||||
[ -f "$HOME/.common_aliases" ] && source "$HOME/.common_aliases"
|
||||
[ -f "$HOME/.os_aliases" ] && source "$HOME/.os_aliases"
|
||||
|
||||
# Zsh Plugins
|
||||
zinit light zsh-users/zsh-autosuggestions
|
||||
zinit light zsh-users/zsh-completions
|
||||
zinit light zsh-users/zsh-syntax-highlighting
|
||||
zinit light Aloxaf/fzf-tab
|
||||
|
||||
#Add in snippets
|
||||
zinit snippet OMZP::git
|
||||
zinit snippet OMZP::sudo
|
||||
zinit snippet OMZP::command-not-found
|
||||
|
||||
# Initialize compinit for completions
|
||||
autoload -U compinit && compinit
|
||||
|
||||
zinit cdreplay -q
|
||||
|
||||
#History Config
|
||||
HISTSIZE=5000
|
||||
HISTFILE=~/.zsh_history
|
||||
SAVEHIST=$HISTSIZE
|
||||
HISTDUP=erase
|
||||
setopt appendhistory
|
||||
setopt sharehistory
|
||||
setopt hist_ignore_space
|
||||
setopt hist_save_no_dups
|
||||
setopt hist_ignore_dups
|
||||
setopt hist_find_no_dups
|
||||
|
||||
#Completion Styling
|
||||
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}'
|
||||
zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}"
|
||||
zstyle ':completion:*' menu no
|
||||
zstyle ':fzf-tab:complete:cd:*' fzf-preview 'ls --color $realpath'
|
||||
|
||||
|
||||
#Conda Config
|
||||
# >>> conda initialize >>>
|
||||
# !! Contents within this block are managed by 'conda init' !!
|
||||
__conda_setup="$('/Users/fernandovideira/miniforge3/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)"
|
||||
if [ $? -eq 0 ]; then
|
||||
eval "$__conda_setup"
|
||||
else
|
||||
if [ -f "/Users/fernandovideira/miniforge3/etc/profile.d/conda.sh" ]; then
|
||||
. "/Users/fernandovideira/miniforge3/etc/profile.d/conda.sh"
|
||||
else
|
||||
export PATH="/Users/fernandovideira/miniforge3/bin:$PATH"
|
||||
fi
|
||||
fi
|
||||
unset __conda_setup
|
||||
|
||||
eval "$(direnv hook zsh)"
|
||||
eval "$(fzf --zsh)"
|
||||
eval "$(zoxide init zsh --cmd cd)"
|
||||
Reference in New Issue
Block a user