├── .gitignore ├── iterm.png ├── zsh ├── README.md └── .zshrc ├── apps ├── franz │ ├── README.md │ └── whatsapp │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ ├── service.css │ │ ├── webview.js │ │ └── icon.svg ├── README.md ├── installed-apps └── update-installed-apps.sh ├── npm └── README.md ├── editors ├── cursor │ └── README.md ├── webstorm │ └── README.md └── vscode │ └── README.md ├── terminal ├── warp │ └── README.md ├── iterm │ ├── README.md │ └── Snazzy.itermcolors ├── mac │ └── README.md └── ghostty │ └── README.md ├── mac └── README.md ├── vim ├── README.md └── .vimrc ├── brew ├── packages ├── README.md └── update-brew-packages.sh ├── raspberry └── README.md └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .idea 3 | -------------------------------------------------------------------------------- /iterm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glrodasz/dotfiles/HEAD/iterm.png -------------------------------------------------------------------------------- /zsh/README.md: -------------------------------------------------------------------------------- 1 | # Install 2 | 3 | ## .zshrc 4 | ```bash 5 | ln -fs ~/dotfiles/zsh/.zshrc ~/.zshrc 6 | ``` 7 | -------------------------------------------------------------------------------- /apps/franz/README.md: -------------------------------------------------------------------------------- 1 | # Install 2 | 3 | ## WhatsApp recipe 4 | ```bash 5 | ln -fs ~/dotfiles/apps/franz/whatsapp ~/Library/Application\ Support/Franz/recipes/whatsapp 6 | ``` 7 | -------------------------------------------------------------------------------- /apps/franz/whatsapp/README.md: -------------------------------------------------------------------------------- 1 | # WhatsApp for Franz 2 | This is the official Franz recipe for WhatsApp 3 | 4 | ### How to create your own Franz recipes: 5 | * [Read the documentation](https://github.com/meetfranz/plugins) 6 | -------------------------------------------------------------------------------- /apps/franz/whatsapp/index.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | module.exports = Franz => class Messenger extends Franz { 4 | overrideUserAgent() { 5 | return window.navigator.userAgent.replace(/(Franz|Electron)([^\s]+\s)/g, ''); 6 | } 7 | 8 | }; -------------------------------------------------------------------------------- /npm/README.md: -------------------------------------------------------------------------------- 1 | # Install 2 | 3 | ## Backup packages 4 | ```bash 5 | npm list -g --depth 0 6 | ``` 7 | 8 | ## Install packages 9 | ```bash 10 | npm install -g public-ip-cli internal-ip-cli trash-cli vercel serve 11 | ``` 12 | > Install the packages using both the nvm LTS version and the OS Node version. -------------------------------------------------------------------------------- /editors/cursor/README.md: -------------------------------------------------------------------------------- 1 | # Sync Cursor Settings 2 | 3 | ## Sync settings from VS Code 4 | 1. Load settings from VS Code: Cursor > Settings > Cursor Settings > Click on "VS Code Import". 5 | 6 | ## Theme 7 | 1. CMD + Shit + P, type `theme`, choose `Catppuccin Frappé` 8 | 9 | ## Profile 10 | 1. Export and import Profile from Cursor > Settins > Profile -------------------------------------------------------------------------------- /editors/webstorm/README.md: -------------------------------------------------------------------------------- 1 | # Install 2 | 3 | ## Sync Settings 4 | 1. Make sure you are logged in into JetBrains Account 5 | 1. Go to Settings > Backup and Sync > Get Settings from Account 6 | 7 | ## UI 8 | 1. On the right: Project, Structure, GitHub Copilot Chat 9 | 2. On the left top: Commit, PR, Bookmarks 10 | 3. On the left bottom: Terminal, Git -------------------------------------------------------------------------------- /apps/franz/whatsapp/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "whatsapp", 3 | "name": "WhatsApp", 4 | "version": "1.0.38", 5 | "description": "WhatsApp", 6 | "main": "index.js", 7 | "author": "Stefan Malzner ", 8 | "license": "MIT", 9 | "config": { 10 | "serviceURL": "https://web.whatsapp.com", 11 | "hasNotificationSound": true, 12 | "disablewebsecurity": true 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /terminal/warp/README.md: -------------------------------------------------------------------------------- 1 | # Install 2 | 3 | ## Theme Colors 4 | 1. Go to Settings > Appareance, remove on Sync with OS, make sure Dracula is selected. 5 | 6 | # Appareance 7 | 1. Settings > Appareance, change font to use `Hack Nerd Font Mono` and size `28`. 8 | 1. Settings > Appareance, set Opacity: 70 and Blur: 5. 9 | 1. Settings > Appareance, click "Open new windows with a custom size", and set Columns: 60 and Rows: 22. -------------------------------------------------------------------------------- /apps/franz/whatsapp/service.css: -------------------------------------------------------------------------------- 1 | .app-wrapper-web .app, 2 | .app-wrapper-web ._36Q2N, 3 | .app-wrapper-web .h70RQ, 4 | .app-wrapper-web ._3QfZd, 5 | .app-wrapper-web ._1jJ70, 6 | .app-wrapper-web ._aigs, 7 | ._1XkO3.two { 8 | width: 100% !important; 9 | max-width: 100% !important; 10 | height: 100% !important; 11 | top: 0 !important; 12 | } 13 | 14 | ._1Wk6A ._3YewW._31v_P._2Ptrm { 15 | display: none; 16 | } -------------------------------------------------------------------------------- /mac/README.md: -------------------------------------------------------------------------------- 1 | # Configure 2 | 3 | ## Screen Saver 4 | 1. Choose Shuffle Aerials > Shuffle All 5 | 2. Shuffle All > Continusly 6 | 7 | ## Lock Screen 8 | * Start Screen Saver when inactive: **For 1 minute** 9 | * Turn display off on battery when inactive: **For 2 minutes** 10 | * Turn display off on power adapter when inactive: **For 5 minutes** 11 | * Require password after screen saver begins or display is turned off: **After 1 minute** -------------------------------------------------------------------------------- /vim/README.md: -------------------------------------------------------------------------------- 1 | # Install 2 | 3 | ## vim-colors-solarized 4 | 1. Go to this vim folder `cd ~/dotfiles/vim` 5 | 1. Clone the repository `git clone git@github.com:altercation/vim-colors-solarized.git` 6 | 1. Create a vim colors folder `mkdir -p ~/.vim/colors` 7 | 1. Link the repository to the folder `ln -fs ~/dotfiles/vim/vim-colors-solarized/colors/solarized.vim ~/.vim/colors/solarized.vim` 8 | 9 | ## .vimrc 10 | ```bash 11 | ln -fs ~/dotfiles/vim/.vimrc ~/.vimrc 12 | ``` 13 | -------------------------------------------------------------------------------- /editors/vscode/README.md: -------------------------------------------------------------------------------- 1 | # Sync and verify settings 2 | 3 | ## Sync Settings from GitHub 4 | Plugins and settings are synced via GitHub account: 5 | 1. CMD + Shit + P, type `sync settings`, choose `Settings Sync: Sync Now`. 6 | 7 | ## Verify Synced settings 8 | 1. Make sure the font is `JetBrainsMono Nerd Font Mono` and size `24`. 9 | 1. Make sure the console font is `Hack Nerd Font Mono` and size `28`. 10 | 1. Make sure the `Window: Zoom Level` is 0. 11 | 12 | ## Theme 13 | 1. CMD + Shit + P, type `theme`, choose `Catppuccin Latte` -------------------------------------------------------------------------------- /apps/README.md: -------------------------------------------------------------------------------- 1 | # Install 2 | 3 | ### Dependencies 4 | ```bash 5 | brew install newt # Required for whiptail (interactive selection) 6 | ``` 7 | 8 | ### installed-apps 9 | First, make the script executable: 10 | ```bash 11 | chmod +x update-installed-apps.sh 12 | ``` 13 | Then run it: 14 | ```bash 15 | ./update-installed-apps.sh 16 | ``` 17 | 18 | This will open an interactive checklist where you can: 19 | - Use arrow keys to navigate 20 | - Space to select/deselect applications 21 | - Enter to confirm your selection 22 | 23 | After selecting the applications, the script will update the `installed-apps` file with the selected applications. 24 | -------------------------------------------------------------------------------- /terminal/iterm/README.md: -------------------------------------------------------------------------------- 1 | # Install 2 | 3 | ## Theme Colors 4 | 1. Double-click `Snazzy.itermcolors` file. 5 | 1. Go to Settings > Profiles > Colors > Color Presets… 6 | 7 | # Appareance 8 | 1. Settings > Appareance > Theme and choose `Mininal`. 9 | 1. Settings > Profiles > Text > set Font: `Hack Nerd Font Mono` and Size: `28`. 10 | 1. Settings > Profiles > Window, set Transparency: 10 and Blur: 5. 11 | 1. Settings > Profiles > Window, set Columns: 60 and Rows: 22. 12 | 1. Settings > Appearance > Windows > "Hide scrollbars". 13 | 14 | ## Alt key in Terminal 15 | 1. Go to Settings > Profiles, select your profile > Keys > Key Bindings > Presets... > Natural Text Editing. -------------------------------------------------------------------------------- /brew/packages: -------------------------------------------------------------------------------- 1 | aws-elasticbeanstalk 2 | awscli 3 | bat 4 | blueutil 5 | circleci 6 | clojure/tools/clojure 7 | cocoapods 8 | composer 9 | cowsay 10 | deno 11 | erdtree 12 | flyctl 13 | fortune 14 | fzf 15 | gh 16 | gum 17 | httpie 18 | jq 19 | jupyterlab 20 | k9s 21 | kcat 22 | kubectx 23 | kubernetes-cli 24 | kustomize 25 | lolcat 26 | mysql-client 27 | neofetch 28 | newt 29 | nmap 30 | node 31 | oven-sh/bun/bun 32 | pipx 33 | poetry 34 | postgresql@14 35 | pre-commit 36 | pulumi 37 | pyenv-virtualenv 38 | starship 39 | swagger-codegen 40 | terraform 41 | tldr 42 | tree 43 | watchman 44 | wget 45 | wrk 46 | yarn 47 | yq 48 | z 49 | zsh-completions 50 | zsh-syntax-highlighting 51 | -------------------------------------------------------------------------------- /raspberry/README.md: -------------------------------------------------------------------------------- 1 | # Install 2 | 3 | ## Install packages 4 | `sudo apt install yarn nvm hub xscreensaver xfce4-terminal` 5 | 6 | ## Install Hack font 7 | 1. Download *Hack* fonts from https://sourcefoundry.org/hack/ 8 | 1. Create a local fonts directory `mkdir -p ~/.local/share/fonts` 9 | 1. Copy fonts `cp ~/Downloads/ttf/*ttf ~/.local/share/fonts/` 10 | 1. Refresh fonts cache `fc-cache -f -v` 11 | 12 | ## Install pure-prompt 13 | Follow the manual instructions: 14 | ```bash 15 | mkdir -p "$HOME/.zsh" 16 | git clone https://github.com/sindresorhus/pure.git "$HOME/.zsh/pure" 17 | ``` 18 | 19 | ## Install zsh-z 20 | Follow the oh-my-zsh instructions 21 | `git clone https://github.com/agkozak/zsh-z $ZSH_CUSTOM/plugins/zsh-z` -------------------------------------------------------------------------------- /terminal/mac/README.md: -------------------------------------------------------------------------------- 1 | # Install 2 | 3 | ## Theme Colors 4 | 1. Double-click `Snazzy.terminal` file. 5 | 1. Go to Settings > Profiles, click Snazzy, and then click the Default button. 6 | 7 | # Appareance 8 | 1. Change font to use `Hack Nerd Font Mono` and size `28`. 9 | 1. Settings > Profiles > Text > Colour & Effects, set Opacity: 90% and Blur: 5%. 10 | 1. Settings > Profiles > Window, set Columns: 60 and Rows: 22. 11 | > Ensure the default theme is selected before changing the font. Do not type the font name in the list; search for it manually. 12 | 13 | ## Alt key in Terminal 14 | 1. Terminal > Preferences > Profiles > Keyboard. 15 | 1. Uncheck `Use option as meta key`. 16 | 17 | # Remove "Last login" message 18 | 1. Create a file called `~/.hushlogin` with no content. -------------------------------------------------------------------------------- /brew/README.md: -------------------------------------------------------------------------------- 1 | # Install 2 | 3 | ### Dependencies 4 | ```bash 5 | brew install newt # Required for whiptail (interactive selection) 6 | ``` 7 | 8 | ### Manage Brew Packages 9 | First, make the script executable: 10 | ```bash 11 | chmod +x update-brew-packages.sh 12 | ``` 13 | 14 | Then run it: 15 | ```bash 16 | ./update-brew-packages.sh 17 | ``` 18 | 19 | This will open an interactive checklist where you can: 20 | - Use arrow keys to navigate 21 | - Space to select/deselect packages 22 | - Enter to confirm your selection 23 | 24 | After selecting the packages, the script will update the `packages` file with your selection. 25 | 26 | ### Install Packages 27 | To install all packages from your backup: 28 | ```bash 29 | cat ~/dotfiles/brew/packages | xargs brew install 30 | ``` 31 | -------------------------------------------------------------------------------- /terminal/ghostty/README.md: -------------------------------------------------------------------------------- 1 | # Install 2 | 3 | ## Theme Colors 4 | 1. Ghostty > Settings... 5 | 2. Paste the bellow configuration. 6 | 7 | # Configuration 8 | ``` 9 | # Config generated by Ghostty Config 10 | 11 | background-opacity = 0.9 12 | background-blur-radius = 5 13 | theme = Snazzy Soft 14 | background = #1e1f29 15 | foreground = #ebece6 16 | selection-background = #81aec6 17 | selection-foreground = #000000 18 | cursor-color = #e4e4e4 19 | cursor-text = #f6f6f6 20 | palette = 0=#000000 21 | palette = 1=#fc4346 22 | palette = 2=#50fb7c 23 | palette = 3=#f0fb8c 24 | palette = 4=#49baff 25 | palette = 5=#fc4cb4 26 | palette = 6=#8be9fe 27 | palette = 7=#ededec 28 | palette = 8=#555555 29 | palette = 9=#fc4346 30 | palette = 10=#50fb7c 31 | palette = 11=#f0fb8c 32 | palette = 12=#49baff 33 | palette = 13=#fc4cb4 34 | palette = 14=#8be9fe 35 | palette = 15=#ededec 36 | font-size = 28 37 | font-family = Hack Nerd Font Mono 38 | font-style = Hack Nerd Font Mono 39 | window-height = 22 40 | window-width = 60 41 | ``` 42 | > Configuration generated by https://ghostty.zerebos.com/ -------------------------------------------------------------------------------- /apps/franz/whatsapp/webview.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | const path = require('path'); 4 | 5 | setTimeout(() => { 6 | const elem = document.querySelector('.landing-title.version-title'); 7 | 8 | if (elem && elem.innerText.toLowerCase().includes('google chrome')) { 9 | window.FranzAPI.clearCache(); 10 | window.location.reload(); 11 | } 12 | }, 1000); 13 | 14 | const isMutedIcon = element => element.parentElement.parentElement.querySelectorAll('*[data-icon="muted"]').length !== 0; 15 | 16 | const isPinnedIcon = (element) => element.querySelectorAll('*[data-icon="pinned2"]').length !== 0; 17 | 18 | module.exports = Franz => { 19 | const getMessages = function getMessages() { 20 | const elements = document.querySelectorAll('.CxUIE, .unread, ._ak7n, ._0LqQ, .m61XR .ZKn2B, .VOr2j, ._1V5O7 ._2vfYK, html[dir] ._23LrM, ._1pJ9J:not(._2XH9R), ._2H6nH, [data-testid="icon-unread-count"]'); 21 | let count = 0; 22 | 23 | for (let i = 0; i < elements.length; i += 1) { 24 | try { 25 | if (!isMutedIcon(elements[i]) && !isPinnedIcon(elements[i])) { 26 | count += 1; 27 | } 28 | } catch (err) {} 29 | } 30 | 31 | Franz.setBadge(count); 32 | }; 33 | 34 | Franz.injectCSS(path.join(__dirname, 'service.css')); 35 | Franz.loop(getMessages); 36 | }; -------------------------------------------------------------------------------- /brew/update-brew-packages.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Get the directory where the script is located 4 | SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 5 | 6 | # Generate the current list of installed brew packages 7 | current_packages=$(mktemp) 8 | brew leaves > "$current_packages" 9 | 10 | # Define the path to the existing list of brew packages 11 | existing_packages="$SCRIPT_DIR/packages" 12 | 13 | # Check if the existing_packages file exists, if not create an empty one 14 | if [ ! -f "$existing_packages" ]; then 15 | touch "$existing_packages" 16 | fi 17 | 18 | # Combine both lists and remove duplicates 19 | combined_packages=$(sort -u "$current_packages" "$existing_packages") 20 | 21 | # Prepare the options for whiptail 22 | options=() 23 | while IFS= read -r package; do 24 | # Skip empty lines 25 | [ -z "$package" ] && continue 26 | 27 | if grep -Fxq "$package" "$existing_packages" 2>/dev/null; then 28 | options+=("$package" "" ON) 29 | else 30 | options+=("$package" "" OFF) 31 | fi 32 | done <<< "$combined_packages" 33 | 34 | # Use whiptail to present the options 35 | selected_packages=$(whiptail --title "Select Brew Packages" --checklist \ 36 | "Choose which packages to keep in the list:" 20 78 15 \ 37 | "${options[@]}" 3>&1 1>&2 2>&3) 38 | 39 | # Check if the user canceled the operation 40 | if [ $? -eq 0 ]; then 41 | # Update the packages file with the selected packages 42 | echo "$selected_packages" | tr -d '"' | tr ' ' '\n' > "$existing_packages" 43 | echo "The packages file has been updated." 44 | else 45 | echo "Operation canceled." 46 | fi 47 | 48 | # Clean up 49 | rm "$current_packages" -------------------------------------------------------------------------------- /apps/installed-apps: -------------------------------------------------------------------------------- 1 | 1Password for Safari.app 2 | 1Password.app 3 | Affinity Designer.app 4 | Affinity Photo.app 5 | Alfred 5.app 6 | Amazon Kindle.app 7 | Amazon Q.app 8 | Android Studio.app 9 | Audacity.app 10 | AutoMute.app 11 | Bartender 5.app 12 | Bear.app 13 | Canva.app 14 | ChatGPT.app 15 | Cursor Pro.app 16 | Cursor.app 17 | DaisyDisk.app 18 | Delete Apps.app 19 | Descript.app 20 | Discord.app 21 | Docker.app 22 | Elgato Camera Hub.app 23 | Elgato Control Center.app 24 | Elgato Stream Deck.app 25 | Figma.app 26 | Firefox Developer Edition.app 27 | Firefox.app 28 | FlagTimes.app 29 | Focusrite Control.app 30 | Foxit PDF Reader.app 31 | Franz.app 32 | Game Capture HD.app 33 | Ghostty.app 34 | Google Chrome Canary.app 35 | Google Chrome.app 36 | Keynote.app 37 | Keystroke Pro.app 38 | Lazy.app 39 | Loopback.app 40 | Lungo.app 41 | Maccy.app 42 | Magnet.app 43 | Mate Translate.app 44 | Microsoft Edge.app 45 | Moom.app 46 | MuteMe-Client.app 47 | Notion.app 48 | Numbers.app 49 | OBS.app 50 | OpenVPN Connect.app 51 | Pages.app 52 | Pika.app 53 | Pitch.app 54 | Postico 2.app 55 | Postman.app 56 | Pure Paste.app 57 | Robo 3T.app 58 | RunJS.app 59 | Safari Technology Preview.app 60 | Safari.app 61 | Shottr.app 62 | Signal.app 63 | Slack.app 64 | SoundSource.app 65 | Spark Desktop.app 66 | Spotify.app 67 | Synergy.app 68 | TestFlight.app 69 | The Unarchiver.app 70 | Time Zone Converter and Clock.app 71 | Unsplash Wallpapers.app 72 | VirtualBox.app 73 | Visual Studio Code.app 74 | Warp.app 75 | WebStorm.app 76 | Whimsical.app 77 | Wondershare Filmora Mac.app 78 | Xcode.app 79 | YubiKey Manager.app 80 | iA Presenter.app 81 | iHosts.app 82 | iTerm.app 83 | lghub.app 84 | logioptionsplus.app 85 | zoom.us.app 86 | -------------------------------------------------------------------------------- /apps/update-installed-apps.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Get the directory where the script is located 4 | SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 5 | 6 | # Generate the current list of installed applications 7 | current_apps=$(mktemp) 8 | find /Applications -maxdepth 1 -name "*.app" -print0 | while IFS= read -r -d '' file; do 9 | basename "$file" 10 | done > "$current_apps" 11 | 12 | # Define the path to the existing list of installed applications 13 | existing_apps="$SCRIPT_DIR/installed-apps" 14 | 15 | # Check if the existing_apps file exists, if not create an empty one 16 | if [ ! -f "$existing_apps" ]; then 17 | touch "$existing_apps" 18 | fi 19 | 20 | # Combine both lists and remove duplicates 21 | combined_apps=$(sort -u "$current_apps" "$existing_apps") 22 | 23 | # Prepare the options for whiptail 24 | options=() 25 | while IFS= read -r app; do 26 | # Skip empty lines 27 | [ -z "$app" ] && continue 28 | 29 | if grep -Fxq "$app" "$existing_apps" 2>/dev/null; then 30 | options+=("$app" "" ON) 31 | else 32 | options+=("$app" "" OFF) 33 | fi 34 | done <<< "$combined_apps" 35 | 36 | # Use whiptail to present the options 37 | selected_apps=$(whiptail --title "Select Installed Apps" --checklist \ 38 | "Choose which applications to keep in the list:" 20 78 15 \ 39 | "${options[@]}" 3>&1 1>&2 2>&3) 40 | 41 | # Check if the user canceled the operation 42 | if [ $? -eq 0 ]; then 43 | # Update the installed-apps file with the selected applications 44 | # Put each app on its own line while preserving spaces within app names 45 | echo "$selected_apps" | tr -d '"' | sed 's/\.app /.app\n/g' > "$existing_apps" 46 | echo "The installed-apps file has been updated." 47 | else 48 | echo "Operation canceled." 49 | fi 50 | 51 | # Clean up 52 | rm "$current_apps" -------------------------------------------------------------------------------- /vim/.vimrc: -------------------------------------------------------------------------------- 1 | "" Theme 2 | syntax enable " Enable syntax processing 3 | set background=dark " Dark background for the theme 4 | let g:solarized_termcolors=256 " Degraded 256 colorscheme 5 | colorscheme solarized " Solarized colorscheme 6 | 7 | "" General 8 | set number " Show line numbers 9 | set linebreak " Break lines at word (requires Wrap lines) 10 | set showbreak=+++ " Wrap-broken line prefix 11 | set textwidth=100 " Line wrap (number of cols) 12 | set showmatch " Highlight matching brace 13 | set visualbell " Use visual bell (no beeping) 14 | 15 | set hlsearch " Highlight all search results 16 | set smartcase " Enable smart-case search 17 | set ignorecase " Always case-insensitive 18 | set incsearch " Searches for strings incrementally 19 | 20 | set autoindent " Auto-indent new lines 21 | set expandtab " Use spaces instead of tabs 22 | set shiftwidth=4 " Number of auto-indent spaces 23 | set smartindent " Enable smart-indent 24 | set smarttab " Enable smart-tabs 25 | set tabstop=4 " Number of spaces per Tab 26 | set softtabstop=4 " Number of spaces per Tab when editing 27 | set showcmd " Show command in bottom bar 28 | set cursorline " Highlight current line 29 | set wildmenu " Visual autocomplete for command menu 30 | 31 | "" Advanced 32 | set ruler " Show row and column ruler information 33 | set undolevels=1000 " Number of undo levels 34 | set backspace=indent,eol,start " Backspace behaviour 35 | 36 | "" Key maps 37 | inoremap jk l 38 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ~dotfiles 2 | iterm 3 | 4 | ## ⏰ Install steps in a new machine 5 | 6 | ### Install Fundamental Apps 7 | 1. Install **[Chrome](https://www.google.com/chrome/)**, **[1Password](https://1password.com/downloads/mac/)**, and **[Warp](https://www.warp.dev/download)** 8 | 1. Install **Elgato Camera Hub**, **Elgato Control Center**, **Elgato Stream Deck**, and **Game Capture HD** from [here](https://www.elgato.com/us/en/s/downloads) 9 | 1. Install **[Logitech Options+](https://www.logitech.com/en-us/software/logi-options-plus.html)** 10 | 1. Install **[Logitech G Hub](https://www.logitechg.com/en-us/innovation/g-hub.html)** 11 | 1. Install **Purchased Apps** from **[App Store](https://support.apple.com/en-us/118212#macOS)** 12 | 1. Install **Downloaded Apps** following `~/dotfiles/apps` 13 | 1. Install **[Visual Studio Code](https://www.cursor.com/downloads)** and **[Cursor](https://www.cursor.com/downloads)** 14 | 15 | ### Configure Git 16 | > (If not available) Install **Git** through Xcode Command Line Tools `xcode-select --install` 17 | 1. Add the **SSH Keys** from 1Password to the `.ssh` folder and update permissions `chmod 400 id_{algorithm}` 18 | 1. Add **SSH key** and add it to the agent `ssh-add -K ~/.ssh/id_{algorithm}`. 19 | 1. Set **git name** `git config --global user.name "Guillermo Rodas"`. 20 | 1. Set **git email** `git config --global user.email "@gmail.com"`. 21 | 1. Clone **dotfiles** repository `git@github.com:glrodasz/dotfiles.git`. 22 | 23 | ### Configure ZSH 24 | > **Linux:** install `sudo apt install zsh` and make default zsh shell `chsh -s $(which zsh)` 25 | 1. Install **Oh My Zsh** `sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"` 26 | 1. Install **ZSH config** from `~/dotfiles/zsh` 27 | 28 | ### ZSH Optimizations 29 | 1. Clone **zsh-defer** with `git clone https://github.com/romkatv/zsh-defer.git ~/.zsh-defer` (Using a hidden folder `.zsh-defer` instead) 30 | 2. Clone **evalcache** with `git clone https://github.com/mroth/evalcache ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/evalcache` 31 | 32 | ### Configure Brew 33 | 1. Install **brew** `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"`. 34 | 1. Run the commands to make brew available in the path. 35 | 1. Install **brew packages** from `~/dotfiles/brew`. 36 | 37 | ### Configure Development Environment 38 | 1. Install **nvm** following [these instructions](https://github.com/nvm-sh/nvm#install--update-script) 39 | 1. Install **Active LTS** `nvm install --lts` and **Current** version `nvm install node` 40 | 1. Install **npm packages** from `~/dotfiles/npm` 41 | 42 | ### Install Hack and JetBrains Mono fonts 43 | 1. Install **Hack Nerd Font** and **JetBrainsMono Nerd Font** fonts from https://www.nerdfonts.com/font-downloads. 44 | 45 | ### Configure Terminals and Vim 46 | 1. Set **terminals** config from `~/dotfiles/terminal/*` 47 | 1. Set **vim** config from `~/dotfiles/vim` 48 | 49 | ### Configure Editors 50 | 1. Configure **Visual Studio Code** from `~/dotfiles/editors/vscode` 51 | 1. Configure **Cursor** from `~/dotfiles/editors/cursor` 52 | 1. Configure **WebStorm** from `~/dotfiles/editors/webstorm` 53 | 54 | ### Configure Extra options 55 | 1. Configure **Macbook** options from `~/dotfiles/mac` 56 | 1. Configure extra apps here: https://share.lazyapp.io/do-not-forget-to-backup-09d35f99-43f1-5f90-9bb3-708e1b1d853c 57 | 58 | ## 🍓 Raspberry Pi OS 59 | Follow **Configure Git**, **Configure ZSH**, **Configure Development Environment**, and **Configure Terminal** instructions and `~/dotfiles/raspberry` instructions. 60 | 61 | ## ⏳ Backup for the future 62 | 1. Follow the instructions inside each folder 63 | 1. Commit lastest changes in `~/dotfiles` and push them. 64 | -------------------------------------------------------------------------------- /terminal/iterm/Snazzy.itermcolors: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Ansi 0 Color 6 | 7 | Alpha Component 8 | 1 9 | Blue Component 10 | 0.0 11 | Color Space 12 | Calibrated 13 | Green Component 14 | 0.0 15 | Red Component 16 | 0.0 17 | 18 | Ansi 1 Color 19 | 20 | Alpha Component 21 | 1 22 | Blue Component 23 | 0.27334880828857422 24 | Color Space 25 | Calibrated 26 | Green Component 27 | 0.26170071959495544 28 | Red Component 29 | 0.98747438192367554 30 | 31 | Ansi 10 Color 32 | 33 | Alpha Component 34 | 1 35 | Blue Component 36 | 0.48438894748687744 37 | Color Space 38 | Calibrated 39 | Green Component 40 | 0.98277664184570312 41 | Red Component 42 | 0.31426474452018738 43 | 44 | Ansi 11 Color 45 | 46 | Alpha Component 47 | 1 48 | Blue Component 49 | 0.54832202196121216 50 | Color Space 51 | Calibrated 52 | Green Component 53 | 0.98275065422058105 54 | Red Component 55 | 0.9424901008605957 56 | 57 | Ansi 12 Color 58 | 59 | Alpha Component 60 | 1 61 | Blue Component 62 | 0.99877303838729858 63 | Color Space 64 | Calibrated 65 | Green Component 66 | 0.72887319326400757 67 | Red Component 68 | 0.28794747591018677 69 | 70 | Ansi 13 Color 71 | 72 | Alpha Component 73 | 1 74 | Blue Component 75 | 0.70531737804412842 76 | Color Space 77 | Calibrated 78 | Green Component 79 | 0.29879066348075867 80 | Red Component 81 | 0.98751437664031982 82 | 83 | Ansi 14 Color 84 | 85 | Alpha Component 86 | 1 87 | Blue Component 88 | 0.9942852258682251 89 | Color Space 90 | Calibrated 91 | Green Component 92 | 0.91508829593658447 93 | Red Component 94 | 0.54558646678924561 95 | 96 | Ansi 15 Color 97 | 98 | Alpha Component 99 | 1 100 | Blue Component 101 | 0.92636489868164062 102 | Color Space 103 | Calibrated 104 | Green Component 105 | 0.93136489391326904 106 | Red Component 107 | 0.93123704195022583 108 | 109 | Ansi 2 Color 110 | 111 | Alpha Component 112 | 1 113 | Blue Component 114 | 0.48438894748687744 115 | Color Space 116 | Calibrated 117 | Green Component 118 | 0.98277664184570312 119 | Red Component 120 | 0.31426474452018738 121 | 122 | Ansi 3 Color 123 | 124 | Alpha Component 125 | 1 126 | Blue Component 127 | 0.54832202196121216 128 | Color Space 129 | Calibrated 130 | Green Component 131 | 0.98275065422058105 132 | Red Component 133 | 0.9424901008605957 134 | 135 | Ansi 4 Color 136 | 137 | Alpha Component 138 | 1 139 | Blue Component 140 | 0.99877303838729858 141 | Color Space 142 | Calibrated 143 | Green Component 144 | 0.72887319326400757 145 | Red Component 146 | 0.28794747591018677 147 | 148 | Ansi 5 Color 149 | 150 | Alpha Component 151 | 1 152 | Blue Component 153 | 0.70531737804412842 154 | Color Space 155 | Calibrated 156 | Green Component 157 | 0.29879066348075867 158 | Red Component 159 | 0.98751437664031982 160 | 161 | Ansi 6 Color 162 | 163 | Alpha Component 164 | 1 165 | Blue Component 166 | 0.9942852258682251 167 | Color Space 168 | Calibrated 169 | Green Component 170 | 0.91508829593658447 171 | Red Component 172 | 0.54558646678924561 173 | 174 | Ansi 7 Color 175 | 176 | Alpha Component 177 | 1 178 | Blue Component 179 | 0.92636489868164062 180 | Color Space 181 | Calibrated 182 | Green Component 183 | 0.93136489391326904 184 | Red Component 185 | 0.93123704195022583 186 | 187 | Ansi 8 Color 188 | 189 | Alpha Component 190 | 1 191 | Blue Component 192 | 0.33335328102111816 193 | Color Space 194 | Calibrated 195 | Green Component 196 | 0.3333476185798645 197 | Red Component 198 | 0.33335760235786438 199 | 200 | Ansi 9 Color 201 | 202 | Alpha Component 203 | 1 204 | Blue Component 205 | 0.27334880828857422 206 | Color Space 207 | Calibrated 208 | Green Component 209 | 0.26170071959495544 210 | Red Component 211 | 0.98747438192367554 212 | 213 | Background Color 214 | 215 | Alpha Component 216 | 1 217 | Blue Component 218 | 0.15977835655212402 219 | Color Space 220 | Calibrated 221 | Green Component 222 | 0.12215268611907959 223 | Red Component 224 | 0.1176580935716629 225 | 226 | Badge Color 227 | 228 | Alpha Component 229 | 0.5 230 | Blue Component 231 | 0.0 232 | Color Space 233 | Calibrated 234 | Green Component 235 | 0.0 236 | Red Component 237 | 1 238 | 239 | Bold Color 240 | 241 | Alpha Component 242 | 1 243 | Blue Component 244 | 0.96353918313980103 245 | Color Space 246 | Calibrated 247 | Green Component 248 | 0.96352285146713257 249 | Red Component 250 | 0.96355170011520386 251 | 252 | Cursor Color 253 | 254 | Alpha Component 255 | 1 256 | Blue Component 257 | 0.89585196971893311 258 | Color Space 259 | Calibrated 260 | Green Component 261 | 0.89585232734680176 262 | Red Component 263 | 0.89585232734680176 264 | 265 | Cursor Guide Color 266 | 267 | Alpha Component 268 | 0.25 269 | Blue Component 270 | 1 271 | Color Space 272 | Calibrated 273 | Green Component 274 | 0.9100000262260437 275 | Red Component 276 | 0.64999997615814209 277 | 278 | Cursor Text Color 279 | 280 | Alpha Component 281 | 1 282 | Blue Component 283 | 0.96544981002807617 284 | Color Space 285 | Calibrated 286 | Green Component 287 | 0.96543341875076294 288 | Red Component 289 | 0.96546226739883423 290 | 291 | Foreground Color 292 | 293 | Alpha Component 294 | 1 295 | Blue Component 296 | 0.90218889713287354 297 | Color Space 298 | Calibrated 299 | Green Component 300 | 0.92725068330764771 301 | Red Component 302 | 0.9216761589050293 303 | 304 | Link Color 305 | 306 | Alpha Component 307 | 1 308 | Blue Component 309 | 0.82339191436767578 310 | Color Space 311 | Calibrated 312 | Green Component 313 | 0.6027643084526062 314 | Red Component 315 | 0.24144099652767181 316 | 317 | Selected Text Color 318 | 319 | Alpha Component 320 | 1 321 | Blue Component 322 | 0.0 323 | Color Space 324 | Calibrated 325 | Green Component 326 | 0.0 327 | Red Component 328 | 0.0 329 | 330 | Selection Color 331 | 332 | Alpha Component 333 | 1 334 | Blue Component 335 | 0.77537858486175537 336 | Color Space 337 | Calibrated 338 | Green Component 339 | 0.68074733018875122 340 | Red Component 341 | 0.50582021474838257 342 | 343 | 344 | -------------------------------------------------------------------------------- /zsh/.zshrc: -------------------------------------------------------------------------------- 1 | #==================== 2 | # Initialization 3 | #==================== 4 | 5 | # How to profile zsh 6 | # for i in $(seq 1 10); do /usr/bin/time zsh -i -c exit; done 7 | 8 | # Kiro CLI pre block. Keep at the top of this file. 9 | [[ -f "${HOME}/Library/Application Support/kiro-cli/shell/zshrc.pre.zsh" ]] && builtin source "${HOME}/Library/Application Support/kiro-cli/shell/zshrc.pre.zsh" 10 | 11 | source ~/.zsh-defer/zsh-defer.plugin.zsh 12 | 13 | #==================== 14 | # Core Environment & Prompt 15 | #==================== 16 | export ZSH="$HOME/.oh-my-zsh" 17 | export ZSH_CUSTOM="$HOME/.oh-my-zsh/custom" 18 | export NVM_DIR="$HOME/.nvm" 19 | 20 | # Performance and Compatibility Settings 21 | DISABLE_AUTO_UPDATE="true" 22 | ZSH_DISABLE_COMPFIX=true 23 | export GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=1 24 | export GRPC_PYTHON_BUILD_SYSTEM_ZLIB=1 25 | export VIRTUAL_ENV_DISABLE_PROMPT=1 26 | 27 | # Dynamic Python Version for Google Cloud SDK 28 | CLOUDSDK_PYTHON=$(pyenv which python3 2>/dev/null) 29 | 30 | # Prompt initialization (needs to be immediate) 31 | eval "$(starship init zsh)" 32 | 33 | #==================== 34 | # Critical Path Configuration 35 | #==================== 36 | # System Paths (including $HOME/.local/bin for user-specific scripts) (needed immediately) 37 | export PATH="/usr/local/bin:/usr/local/sbin:$HOME/.local/bin:$PATH" 38 | 39 | # Python-related Paths (Pyenv) 40 | zsh-defer export PATH="$HOME/.pyenv/bin:$PATH" 41 | 42 | # Ruby-related Paths (RVM and additional Ruby binaries) 43 | zsh-defer export PATH="$HOME/.rvm/bin:/usr/local/opt/ruby/bin:$PATH" 44 | 45 | # MongoDB path 46 | zsh-defer export PATH="$PATH:/usr/local/mongodb/bin" 47 | 48 | # Android SDK path 49 | zsh-defer export ANDROID_HOME=$HOME/Library/Android/sdk 50 | zsh-defer export PATH="$PATH:$ANDROID_HOME/emulator" 51 | zsh-defer export PATH="$PATH:$ANDROID_HOME/platform-tools" 52 | 53 | # Java OpenJDK path 54 | zsh-defer export PATH="/opt/homebrew/bin/java:$PATH" 55 | zsh-defer export JAVA_HOME="/opt/homebrew/opt/openjdk@21" 56 | 57 | # Antigravity path 58 | zsh-defer export PATH="$HOME/.antigravity/antigravity/bin:$PATH" 59 | 60 | #==================== 61 | # OS-Specific Config 62 | #==================== 63 | # Optimized HOMEBREW_PREFIX Setting | checks for ARM vs Intel 64 | if [[ "$(uname -m)" == "arm64" ]]; then 65 | export HOMEBREW_PREFIX="/opt/homebrew" 66 | else 67 | export HOMEBREW_PREFIX="/usr/local" 68 | fi 69 | 70 | # macOS 71 | [[ "$(uname -s)" == "Darwin" ]] && { 72 | export APPLE_SSH_ADD_BEHAVIOR=macos 73 | 74 | # Open SSL and Kafka hotfix 75 | zsh-defer export LDFLAGS="-L/opt/homebrew/opt/openssl/lib" 76 | zsh-defer export CPPFLAGS="-I/opt/homebrew/opt/openssl/include" 77 | 78 | # C paths for python libs to access (confluent_kafka) 79 | zsh-defer export C_INCLUDE_PATH=$C_INCLUDE_PATH:$HOMEBREW_PREFIX/include 80 | zsh-defer export LIBRARY_PATH=$LIBRARY_PATH:$HOMEBREW_PREFIX/lib 81 | 82 | # Z plugin 83 | zsh-defer . $HOMEBREW_PREFIX/etc/profile.d/z.sh 84 | 85 | # SSH Agent alias (Including loading resident keys from FIDO authenticator) 86 | [[ -f ~/.ssh/id_rsa ]] && ID_RSA_OPT="-K ~/.ssh/id_rsa" 87 | [[ -f ~/.ssh/id_ed25519 ]] && ID_ED25519_OPT="-K ~/.ssh/id_ed25519" 88 | alias sshadd="ssh-add ${ID_RSA_OPT:-} ${ID_ED25519_OPT:-}" 89 | } 90 | 91 | # Linux/WSL 92 | [[ "$(uname -s)" == "Linux" ]] && { 93 | PURE_PROMPT_SYMBOL=">" 94 | 95 | # SSH Agent alias 96 | [[ -f ~/.ssh/id_rsa ]] && ID_RSA_OPT="~/.ssh/id_rsa" 97 | [[ -f ~/.ssh/id_ed25519 ]] && ID_ED25519_OPT="~/.ssh/id_ed25519" 98 | alias sshadd="ssh-add ${ID_RSA_OPT:-} ${ID_ED25519_OPT:-}" 99 | } 100 | 101 | # Load Oh My Zsh custom plugins with defer 102 | load_omz_plugins_with_defer() { 103 | local plugin 104 | for plugin in "$@"; do 105 | zsh-defer source "$ZSH_CUSTOM/plugins/$plugin/$plugin.plugin.zsh" 106 | done 107 | } 108 | 109 | #==================== 110 | # Plugins & Shell 111 | #==================== 112 | # Essential plugins and evalcache for immediate eval commands 113 | plugins=(git evalcache) 114 | source $ZSH/oh-my-zsh.sh 115 | 116 | # Defer additional plugins 117 | load_omz_plugins_with_defer z poetry 118 | zsh-defer source $HOMEBREW_PREFIX/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh 119 | 120 | #==================== 121 | # Aliases 122 | #==================== 123 | # Git 124 | alias gaem="g commit --allow-empty -m" 125 | alias gwip='g commit --all -m "chore: work in progress" -n' 126 | alias gwin='g add -A && g commit -m "chore: commit changes"' 127 | alias greb='git rebase -i $(git merge-base HEAD origin/main)' 128 | 129 | # Node Version Manager 130 | alias nvmu="nvm use" 131 | alias nvmx="nvm use 16" 132 | alias nvmy="nvm use 20" 133 | alias nvmz="nvm use 22" 134 | 135 | # Package Managers 136 | alias npmd="npm run dev" 137 | alias npms="npm start" 138 | alias yarnd="yarn dev" 139 | alias yarns="yarn start" 140 | alias pnpmd="pnpm run dev" 141 | alias pnpms="pnpm start" 142 | alias denod="deno run dev" 143 | alias denos="deno run start" 144 | 145 | # Cleanup 146 | alias rmnpmi="rm -rf node_modules && npm cache clean --force && npm i" 147 | alias rmyarn="rm -rf node_modules && yarn cache clean && yarn --force" 148 | alias rmmodules="find . -name node_modules -type d -prune -exec rm -rf '{}' +" 149 | 150 | # Python 151 | alias py2="pyenv global 2" 152 | alias py3="pyenv global 3" 153 | 154 | # System Utils 155 | alias rmorig="rm -rf **/*.orig" 156 | alias rm="trash" 157 | alias cl="clear" 158 | alias cafe="cat /dev/urandom | hexdump | grep \"ca fe\"" 159 | alias sagent="eval `ssh-agent`" 160 | alias mostused='history | awk '\''{print $2}'\'' | sort | uniq -c | sort -nr | head -n 10' 161 | 162 | #==================== 163 | # Functions 164 | #==================== 165 | # Git branch fuzzy finder 166 | fbr() { 167 | git fetch 168 | local branches branch 169 | branches=$(git branch -a) && 170 | branch=$(echo "$branches" | fzf +s +m -e) && 171 | git checkout $(echo "$branch" | sed "s:.* remotes/origin/::" | sed "s:.* ::") 172 | } 173 | 174 | # Find a process given a port 175 | findport() { 176 | sudo lsof -n -i :$1 | egrep "LISTEN|PID" 177 | } 178 | 179 | # Find a process given a name 180 | findproc() { 181 | ps -fa | egrep "$1|PID" 182 | } 183 | 184 | # List GitHub repository tags 185 | _github_tags() { 186 | local repo=$1 187 | local count=${2:-5} 188 | local per_page=$((count > 100 ? 100 : count)) 189 | local page=1 190 | local results="" 191 | local result_count=0 192 | 193 | while [ $result_count -lt $count ]; do 194 | local page_results=$(curl -s "https://api.github.com/repos/$repo/tags?per_page=$per_page&page=$page" \ 195 | | jq -r "map(select(.name)) | .[].name") 196 | 197 | if [ -z "$page_results" ]; then 198 | break 199 | fi 200 | 201 | local lines=$(echo "$page_results" | wc -l | tr -d ' ') 202 | if [ $lines -eq 0 ]; then 203 | break 204 | fi 205 | 206 | results="$results$page_results"$'\n' 207 | result_count=$((result_count + lines)) 208 | page=$((page + 1)) 209 | 210 | if [ $page -gt 10 ]; then 211 | break 212 | fi 213 | done 214 | 215 | echo "$results" | head -n $count 216 | } 217 | 218 | # List Python versions 219 | pythonver() { 220 | _github_tags "python/cpython" "$@" 221 | } 222 | 223 | # List Node versions 224 | nodever() { 225 | _github_tags "nodejs/node" "$@" 226 | } 227 | 228 | # Get a lucky message 229 | lucky() { 230 | local cow=$(cowsay -l | tail -n +2 | tr ' ' '\n' | shuf -n 1) 231 | fortune | cowsay -f $cow | lolcat --seed 0 --spread 1.0 232 | } 233 | 234 | # Testing packages installation :) 235 | busy() { 236 | while true; do 237 | if [ -f package.json ]; then 238 | packages=($(jq -r 'to_entries[] | select(.key | test("dependencies|devDependencies")) | .value | to_entries[] | .key' package.json)) 239 | else 240 | packages=("react" "react-dom" "styled-components" "react-router-dom" "formik" "date-fns" "eslint" "prettier" "webpack" "babel" "typescript") 241 | fi 242 | 243 | for pkg in "${packages[@]}"; do 244 | echo -e "\033[1;32m> \033[0m \033[1mInstalling\033[0m $pkg..." 245 | sleep 0.$((RANDOM % 5))${RANDOM:0:1} 246 | echo -e "\033[1;34m> \033[0m \033[1mDownloading metadata for $pkg..." 247 | sleep 1.$((RANDOM % 5)) 248 | 249 | progress=0 250 | while [ $progress -lt 100 ]; do 251 | increment=$((RANDOM % 20 + 5)) 252 | progress=$((progress + increment)) 253 | if [ $progress -gt 100 ]; then progress=100; fi 254 | bar_length=20 255 | filled=$((progress * bar_length / 100)) 256 | bar=$(printf "%0.s=" $(seq 1 $filled)) 257 | echo -ne "\033[1;36mProgress: [${bar}] ${progress}%\033[0m\033[K\r" 258 | sleep 0.$((RANDOM % 3)) 259 | done 260 | 261 | echo -e "" 262 | echo -e "\033[1;33m> \033[0m \033[1mBuilding\033[0m $pkg..." 263 | sleep 0.$((RANDOM % 9)) 264 | done 265 | done 266 | } 267 | 268 | #==================== 269 | # Deferred Initializations 270 | #==================== 271 | # Development Tools 272 | zsh-defer . "$NVM_DIR/nvm.sh" --no-use 273 | zsh-defer . "$HOME/.deno/env" 274 | 275 | # Combine defer + evalcache for expensive operations 276 | zsh-defer _evalcache pyenv init - 277 | zsh-defer _evalcache pyenv virtualenv-init - 278 | 279 | # Google Cloud SDK 280 | if [ -f "$HOME/google-cloud-sdk/path.zsh.inc" ]; then 281 | zsh-defer _evalcache source "$HOME/google-cloud-sdk/path.zsh.inc" 282 | fi 283 | if [ -f "$HOME/google-cloud-sdk/completion.zsh.inc" ]; then 284 | zsh-defer _evalcache source "$HOME/google-cloud-sdk/completion.zsh.inc" 285 | fi 286 | 287 | # Docker CLI completions 288 | if [ -d "$HOME/.docker/completions" ]; then 289 | zsh-defer eval 'fpath=($HOME/.docker/completions $fpath); autoload -Uz compinit; compinit' 290 | fi 291 | 292 | #==================== 293 | # Local Config 294 | #==================== 295 | # .zshrc.local for secrets and machine-specific configurations 296 | # This file should NOT be tracked in git. 297 | [[ -f ~/.zshrc.local ]] && zsh-defer source ~/.zshrc.local 298 | 299 | # Kiro CLI post block. Keep at the bottom of this file. 300 | [[ -f "${HOME}/Library/Application Support/kiro-cli/shell/zshrc.post.zsh" ]] && builtin source "${HOME}/Library/Application Support/kiro-cli/shell/zshrc.post.zsh" 301 | -------------------------------------------------------------------------------- /apps/franz/whatsapp/icon.svg: -------------------------------------------------------------------------------- 1 | icon --------------------------------------------------------------------------------