commit a39315d77c7bd64a2fdf3471bb8d83cbfd8e66c6 Author: FernandoJVideira <03.pleaser-minster@icloud.com> Date: Sat Mar 28 22:26:19 2026 +0000 feat: remade scripts to be simpler diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..96ff6fa --- /dev/null +++ b/.gitattributes @@ -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 diff --git a/install.sh b/install.sh new file mode 100755 index 0000000..b33c096 --- /dev/null +++ b/install.sh @@ -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." diff --git a/os/cachyos/.zprofile b/os/cachyos/.zprofile new file mode 100644 index 0000000..ca9e22f --- /dev/null +++ b/os/cachyos/.zprofile @@ -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 diff --git a/os/cachyos/aliases.sh b/os/cachyos/aliases.sh new file mode 100644 index 0000000..2ccd3ce --- /dev/null +++ b/os/cachyos/aliases.sh @@ -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" \ No newline at end of file diff --git a/os/cachyos/aurlist.txt b/os/cachyos/aurlist.txt new file mode 100644 index 0000000..89bf171 --- /dev/null +++ b/os/cachyos/aurlist.txt @@ -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 diff --git a/os/cachyos/kde/cachyos-profile.knsv b/os/cachyos/kde/cachyos-profile.knsv new file mode 100644 index 0000000..4f602df --- /dev/null +++ b/os/cachyos/kde/cachyos-profile.knsv @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31f04363f298ef5c2129f4a483f01f5e164b2103b5652b2cb3017ba66665a330 +size 2127562266 diff --git a/os/cachyos/pkglist.txt b/os/cachyos/pkglist.txt new file mode 100644 index 0000000..237c863 --- /dev/null +++ b/os/cachyos/pkglist.txt @@ -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 diff --git a/os/macos/.zprofile b/os/macos/.zprofile new file mode 100644 index 0000000..fdcfb2e --- /dev/null +++ b/os/macos/.zprofile @@ -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 diff --git a/os/macos/Brewfile b/os/macos/Brewfile new file mode 100644 index 0000000..d4daefa --- /dev/null +++ b/os/macos/Brewfile @@ -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" diff --git a/os/macos/aerospace/aerospace.toml b/os/macos/aerospace/aerospace.toml new file mode 100644 index 0000000..b61efd9 --- /dev/null +++ b/os/macos/aerospace/aerospace.toml @@ -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'] diff --git a/os/macos/aliases.sh b/os/macos/aliases.sh new file mode 100644 index 0000000..4855143 --- /dev/null +++ b/os/macos/aliases.sh @@ -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'" \ No newline at end of file diff --git a/scripts/install_conda.sh b/scripts/install_conda.sh new file mode 100755 index 0000000..0312e39 --- /dev/null +++ b/scripts/install_conda.sh @@ -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 diff --git a/scripts/install_dev_tools.sh b/scripts/install_dev_tools.sh new file mode 100755 index 0000000..0e489a0 --- /dev/null +++ b/scripts/install_dev_tools.sh @@ -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 diff --git a/shell/aliases.sh b/shell/aliases.sh new file mode 100755 index 0000000..44e7976 --- /dev/null +++ b/shell/aliases.sh @@ -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" diff --git a/stow/config/.config/oh-my-posh/zen.toml b/stow/config/.config/oh-my-posh/zen.toml new file mode 100644 index 0000000..6e094f2 --- /dev/null +++ b/stow/config/.config/oh-my-posh/zen.toml @@ -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 }} {{ 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' diff --git a/stow/config/.config/tmux/tmux.conf b/stow/config/.config/tmux/tmux.conf new file mode 100644 index 0000000..2c92bd6 --- /dev/null +++ b/stow/config/.config/tmux/tmux.conf @@ -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 'git@github.com:user/plugin' +# set -g @plugin 'git@bitbucket.com:user/plugin' + +# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) +run '~/.tmux/plugins/tpm/tpm' \ No newline at end of file diff --git a/stow/config/.config/zed/embeddings/semantic-index-db.0.mdb/data.mdb b/stow/config/.config/zed/embeddings/semantic-index-db.0.mdb/data.mdb new file mode 100644 index 0000000..cc8ac13 Binary files /dev/null and b/stow/config/.config/zed/embeddings/semantic-index-db.0.mdb/data.mdb differ diff --git a/stow/config/.config/zed/embeddings/semantic-index-db.0.mdb/lock.mdb b/stow/config/.config/zed/embeddings/semantic-index-db.0.mdb/lock.mdb new file mode 100644 index 0000000..f37ede4 Binary files /dev/null and b/stow/config/.config/zed/embeddings/semantic-index-db.0.mdb/lock.mdb differ diff --git a/stow/config/.config/zed/keymap.json b/stow/config/.config/zed/keymap.json new file mode 100644 index 0000000..78f5c8d --- /dev/null +++ b/stow/config/.config/zed/keymap.json @@ -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"] + } + } +] diff --git a/stow/config/.config/zed/prompts/prompts-library-db.0.mdb/data.mdb b/stow/config/.config/zed/prompts/prompts-library-db.0.mdb/data.mdb new file mode 100644 index 0000000..edb1be9 Binary files /dev/null and b/stow/config/.config/zed/prompts/prompts-library-db.0.mdb/data.mdb differ diff --git a/stow/config/.config/zed/prompts/prompts-library-db.0.mdb/lock.mdb b/stow/config/.config/zed/prompts/prompts-library-db.0.mdb/lock.mdb new file mode 100644 index 0000000..b52973c Binary files /dev/null and b/stow/config/.config/zed/prompts/prompts-library-db.0.mdb/lock.mdb differ diff --git a/stow/config/.config/zed/settings.json b/stow/config/.config/zed/settings.json new file mode 100644 index 0000000..e0ac784 --- /dev/null +++ b/stow/config/.config/zed/settings.json @@ -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" + } +} diff --git a/stow/config/.config/zed/settings_backup.json b/stow/config/.config/zed/settings_backup.json new file mode 100644 index 0000000..1cdc80f --- /dev/null +++ b/stow/config/.config/zed/settings_backup.json @@ -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" + } +} diff --git a/stow/zsh/.zshrc b/stow/zsh/.zshrc new file mode 100644 index 0000000..849c91e --- /dev/null +++ b/stow/zsh/.zshrc @@ -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)"