|
| 1 | +# 🧰 utils-scripts |
| 2 | + |
| 3 | +> Personal collection of setup scripts for building a high-performance AI/ML developer environment — terminal, shell, editor, and Python stack — optimised for Unix/Debian and macOS. |
| 4 | +
|
| 5 | +[](LICENSE) |
| 6 | +[]() |
| 7 | +[](https://buy.stripe.com/8x200i8bSgVe3Vl3g8bfO00) |
| 8 | + |
| 9 | +--- |
| 10 | + |
| 11 | +## 🧭 Table of Contents |
| 12 | +1. [Motivation](#motivation) |
| 13 | +2. [What’s Included](#whats-included) |
| 14 | +3. [Supported Platforms](#supported-platforms) |
| 15 | +4. [Installation](#installation) |
| 16 | +5. [Usage](#usage) |
| 17 | +6. [Configuration & Customisation](#configuration--customisation) |
| 18 | +7. [Contributing](#contributing) |
| 19 | +8. [Support](#support) |
| 20 | +9. [License](#license) |
| 21 | + |
| 22 | +--- |
| 23 | + |
| 24 | +## 💡 Motivation |
| 25 | +As a Senior Engineering Manager and Principal in AI/ML, I often rebuild new environments for experiments, demos, or teaching. |
| 26 | +This repo standardises and automates my setup for: |
| 27 | + |
| 28 | +- ⚙️ Configuring a **modern shell** (`zsh`, `starship`, `tmux`) |
| 29 | +- 🧑💻 Installing a **Python + ML toolchain** with key libraries |
| 30 | +- 🪄 Setting up **Neovim** for fast and extensible Python development |
| 31 | +- 💻 Supporting **Debian/Ubuntu** and **macOS** systems |
| 32 | +- 🚀 Maximising developer productivity and terminal performance |
| 33 | + |
| 34 | +Everything is tuned to work well together — lightweight, consistent, and fast. |
| 35 | + |
| 36 | +--- |
| 37 | + |
| 38 | +## 📦 What’s Included |
| 39 | +| File | Description | |
| 40 | +|------|--------------| |
| 41 | +| `install_my_programs_debian` | Installs core packages on Debian/Ubuntu | |
| 42 | +| `install_my_programs_mac` | Installs core packages on macOS (via Homebrew) | |
| 43 | +| `install_my_programs_unix` | Generic fallback for Unix systems | |
| 44 | +| `requirements.txt` | Python and AI/ML library dependencies | |
| 45 | +| `run_commands/` | Helper utilities and shell functions | |
| 46 | +| `python/` | Additional Python utility scripts | |
| 47 | +| `.gitignore` | Standard ignore patterns | |
| 48 | +| `LICENSE` | GPL-2.0 License file | |
| 49 | + |
| 50 | +Includes dependencies for: |
| 51 | +- **Terminal:** tmux, zsh, starship |
| 52 | +- **Editor:** neovim (Lua config-ready) |
| 53 | +- **Python:** numpy, pandas, torch, scikit-learn, transformers (editable) |
| 54 | +- **Optional:** git, curl, wget, build-essentials |
| 55 | + |
| 56 | +--- |
| 57 | + |
| 58 | +## 🧩 Supported Platforms |
| 59 | +✅ **Debian / Ubuntu** |
| 60 | +✅ **macOS** |
| 61 | +⚠️ Other Unix flavours may work but aren’t officially tested. |
| 62 | + |
| 63 | +--- |
| 64 | + |
| 65 | +## ⚙️ Installation |
| 66 | + |
| 67 | +### 1️⃣ Clone the Repository |
| 68 | +```bash |
| 69 | +git clone https://github.com/dmoliveira/utils-scripts.git |
| 70 | +cd utils-scripts |
| 71 | +``` |
| 72 | + |
| 73 | +### 2️⃣ Choose and Run Your Installer |
| 74 | + |
| 75 | +**Debian / Ubuntu:** |
| 76 | +```bash |
| 77 | +chmod +x install_my_programs_debian |
| 78 | +./install_my_programs_debian |
| 79 | +``` |
| 80 | + |
| 81 | +**macOS:** |
| 82 | +```bash |
| 83 | +chmod +x install_my_programs_mac |
| 84 | +./install_my_programs_mac |
| 85 | +``` |
| 86 | + |
| 87 | +**Generic Unix:** |
| 88 | +```bash |
| 89 | +chmod +x install_my_programs_unix |
| 90 | +./install_my_programs_unix |
| 91 | +``` |
| 92 | + |
| 93 | +### 3️⃣ Install Python Packages (optional) |
| 94 | +```bash |
| 95 | +pip install -r requirements.txt |
| 96 | +``` |
| 97 | + |
| 98 | +--- |
| 99 | + |
| 100 | +## 🧠 Usage |
| 101 | +After installation you’ll have: |
| 102 | + |
| 103 | +- **zsh + starship** prompt with Git & Python awareness |
| 104 | +- **tmux** for persistent terminal sessions |
| 105 | +- **neovim** configured for Python and AI workflows |
| 106 | +- **Python environment** ready with key ML libraries |
| 107 | + |
| 108 | +Example: |
| 109 | +```bash |
| 110 | +tmux new -s ai_env |
| 111 | +nvim my_script.py |
| 112 | +``` |
| 113 | + |
| 114 | +For Neovim productivity: |
| 115 | +- `:Ex` → File explorer |
| 116 | +- `<leader>f` → Fuzzy search |
| 117 | +- `gd` → Go to definition |
| 118 | +- `K` → Hover docs |
| 119 | + |
| 120 | +--- |
| 121 | + |
| 122 | +## 🔧 Configuration & Customisation |
| 123 | + |
| 124 | +### Shell |
| 125 | +Edit your `~/.zshrc` or add functions in `~/.zsh.d/` for modularity. |
| 126 | +Example alias: |
| 127 | +```bash |
| 128 | +alias gs='git status' |
| 129 | +alias py='python3' |
| 130 | +``` |
| 131 | + |
| 132 | +### Starship Prompt |
| 133 | +Config file: `~/.config/starship.toml` |
| 134 | +```toml |
| 135 | +[character] |
| 136 | +success_symbol = "🚀 " |
| 137 | +error_symbol = "💥 " |
| 138 | +``` |
| 139 | + |
| 140 | +### tmux |
| 141 | +Edit `~/.tmux.conf` for shortcuts, layouts and themes. |
| 142 | +Example: |
| 143 | +``` |
| 144 | +set -g mouse on |
| 145 | +bind r source-file ~/.tmux.conf \; display "Reloaded!" |
| 146 | +``` |
| 147 | + |
| 148 | +### Neovim |
| 149 | +Modify `~/.config/nvim/init.lua` to adjust plugins or keymaps. |
| 150 | +Consider adding: |
| 151 | +- LSP support (`pyright`, `lua_ls`) |
| 152 | +- Formatter (`black`, `ruff`) |
| 153 | +- Plugins (`nvim-treesitter`, `telescope.nvim`, `lualine.nvim`) |
| 154 | + |
| 155 | +### Python |
| 156 | +Keep `requirements.txt` up to date with your preferred ML stack. |
| 157 | +Recommended additions: |
| 158 | +``` |
| 159 | +xgboost |
| 160 | +lightgbm |
| 161 | +sentence-transformers |
| 162 | +gradio |
| 163 | +mlflow |
| 164 | +``` |
| 165 | + |
| 166 | +--- |
| 167 | + |
| 168 | +## 🤝 Contributing |
| 169 | +Contributions, feedback and improvements are welcome! |
| 170 | +1. Fork this repo |
| 171 | +2. Create a new branch (`git checkout -b feature/your-feature`) |
| 172 | +3. Commit and push your changes |
| 173 | +4. Open a pull request |
| 174 | + |
| 175 | +Please make sure your scripts are portable and keep dependencies minimal. |
| 176 | + |
| 177 | +--- |
| 178 | + |
| 179 | +## ❤️ Support |
| 180 | +If this project helped you save time or setup headaches, consider supporting: |
| 181 | + |
| 182 | +[](https://buy.stripe.com/8x200i8bSgVe3Vl3g8bfO00) |
| 183 | + |
| 184 | +Your contribution helps keep these utilities maintained and up to date. |
| 185 | + |
| 186 | +--- |
| 187 | + |
| 188 | +## 📜 License |
| 189 | +This project is licensed under the [GNU GPL-2.0 License](LICENSE). |
| 190 | + |
| 191 | +--- |
| 192 | + |
| 193 | +**Author:** [Diego Marinho](https://github.com/dmoliveira) |
| 194 | +**Repository:** [github.com/dmoliveira/utils-scripts](https://github.com/dmoliveira/utils-scripts) |
| 195 | +**Last Updated:** 2025-11-02 |
0 commit comments