Commit Graph

33 Commits

Author SHA1 Message Date
MDietermann
32ab9e03b2 docs: add Plan 1 (Foundation) implementation plan 2026-04-13 18:09:31 +02:00
MDietermann
edbbf47e9f docs: add installer architecture redesign spec
Design for Go rewrite of the Bash installer: single static binary with
Bubble Tea + Huh TUI, four-phase module contract, DAG execution engine,
embedded config + optional overlay, and a minimal Bash pre-install shim.
Scoped to installer architecture only; toolset overhaul, CLI browser,
and TTY Nerd Font support are queued as follow-up specs.
2026-04-13 18:00:29 +02:00
MDietermann
897dc424dc Updated Gitignore 2026-04-13 17:40:22 +02:00
MDietermann
9c3cdbc90f Updated Gitignore 2026-04-13 17:39:18 +02:00
MDietermann
f53663298e fix(wokwi): add serial monitor config and USB_SERIAL_JTAG for ESP32-S3
- Add serialMonitor display config to all diagram templates
- Set USB_SERIAL_JTAG attr on ESP32-S3 for built-in USB serial
- Add TX/RX → $serialMonitor wiring for ESP32 (UART-based serial)
- Remove disconnected breadboard parts (wired directly to MCU pins)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 16:40:42 +02:00
MDietermann
33f1112bf8 fix(renode): wokwi-cli releases are plain binaries, not tarballs
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 16:27:07 +02:00
MDietermann
9bec4660f6 feat: add Wokwi CLI for visual breadboard simulation
- Install wokwi-cli binary from GitHub releases
- Generate wokwi.toml and board-specific diagram.json in arduino-new
  with a button + LED breadboard layout for each supported board
- Add <leader>aw keybinding in nvim to run Wokwi simulation
- Diagram templates for: uno, mega, nano, esp32, esp32s3 (+ default)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 16:05:24 +02:00
MDietermann
9c38a8414e fix(neovim): only remove lspconfig config, keep conform and other starter plugins
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 15:27:06 +02:00
MDietermann
b512d41dc8 feat: add Renode emulator, nvim-dap debugging, and backup collision fix
- Add Renode installation (AUR/deb) with arduino-sim helper script
  supporting STM32F4, RP2040, and nRF52840 (USB HID) platforms
- Add nvim-dap + nvim-dap-ui with GDB remote adapter for Renode debugging
- Add debug keybindings under <leader>d prefix
- Fix backup_config() path collisions when multiple sources share a
  basename (e.g. ~/.config/nvim and ~/.local/share/nvim)
- Strip NvChad starter's nvim-lspconfig block that conflicts with
  native vim.lsp.config, preserving configs/lazy.lua
- Update step counts from 11 to 12 (TOTAL_STEPS 12→13, 13→14 on WSL)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 15:23:57 +02:00
marvin.dietermann
7021c915e6 fix(neovim): migrate LSP config to native vim.lsp.config API
Replace deprecated require("lspconfig") setup with the Neovim 0.11+
native vim.lsp.config/vim.lsp.enable API. Clangd config now lives in
lsp/clangd.lua instead of the old plugins/lspconfig.lua +
configs/lspconfig.lua pair.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 15:02:01 +02:00
marvin.dietermann
d1286329f8 fix(common): restore output helpers after end_quiet_mode
After end_quiet_mode closes fd 3/4, the overridden warn/error/info
functions still reference >&3, causing "bad file descriptor" errors
for any calls after quiet mode ends (e.g. the reboot prompt).
Restore the original function definitions when leaving quiet mode.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 14:59:28 +02:00
marvin.dietermann
43247d4404 fix(arduino): probe for --insecure flag before using it
The --insecure global flag was removed in arduino-cli 1.0, causing
the command parser to fail with "unknown command update-index".
Detect support at runtime so the script works with both old and new
versions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 14:52:23 +02:00
marvin.dietermann
1f42e42bd1 feat: add Nerd Font installation, Yazi file manager, and themed Yazi config
- Install JetBrainsMono Nerd Font for icons across all TUI tools
- Add Yazi as terminal file manager with themed config per colorscheme
- Add write_yazi_config() to all 5 theme files
- Theme switcher (archduino-theme) now also updates Yazi
- Add 'y' alias for yazi in shell config
- Update step numbering (9 -> 11 steps) and README
2026-04-10 13:03:46 +02:00
marvin.dietermann
48f2201a12 feat: add post-install theme switcher (archduino-theme)
Add standalone theme switcher command that lets users change the global
colorscheme after installation. Updates Starship, Zellij, Lazygit, and
NvChad in one step. Includes `theme` shell alias and README docs.
2026-04-10 12:58:22 +02:00
marvin.dietermann
1e5b9a61a0 feat(neovim): migrate user plugins from LazyVim to NvChad
When a LazyVim config is detected, user-added plugin files are now
salvaged before the old config is removed. Managed and LazyVim-specific
files are filtered out, and remaining plugins are restored into the new
NvChad config with LazyVim references stripped. Both frameworks use
lazy.nvim, so most plugin specs are directly compatible.
2026-04-10 12:52:39 +02:00
marvin.dietermann
fbc1e60afc style: normalize whitespace and line endings in shell scripts
- Standardize indentation and spacing across install.sh and lib files
- Fix line ending inconsistencies for better cross-platform compatibility
- Improve curl flag usage in neovim.sh (-kLo with explicit temp path)
- Add theme persistence functionality to remember user's colorscheme choice

These changes improve code consistency and add the ability to save/restore
the selected theme across sessions.
2026-04-10 12:46:48 +02:00
marvin.dietermann
d5f57a3511 style(arduino): normalize whitespace and formatting in arduino.sh
- Standardize indentation and spacing
- Remove inconsistent whitespace characters
- Maintain functional behavior unchanged
2026-04-10 12:20:21 +02:00
marvin.dietermann
47224734f1 style: normalize whitespace and line endings across shell scripts
Clean up inconsistent whitespace formatting in:
- lib/arduino.sh
- install.sh
- lib/packages.sh
2026-04-10 12:08:39 +02:00
marvin.dietermann
c9f304a539 feat(install): improve Arduino CLI installation and add ca-certificates dependency
- Replace shell script installation with direct download approach for better reliability
- Use GitHub API to get latest Arduino CLI version automatically
- Add proper cleanup of temporary files after installation
- Include ca-certificates package in Arch Linux base packages for secure connections
- Maintain backward compatibility with existing installation flow
2026-04-10 12:06:57 +02:00
marvin.dietermann
de83f9ac30 fix(install): improve starship installation and oh-my-zsh configuration
- Use direct binary download for starship instead of install script for better reliability
- Add CHSH=no and --unattended flags to oh-my-zsh installation to prevent interactive prompts
- Add manual shell change logic with proper error handling
- Clean up temporary files after starship installation
2026-04-10 12:05:22 +02:00
marvin.dietermann
c0be2b9e50 style(install): normalize whitespace and formatting
Clean up inconsistent spacing and formatting in main install script
while preserving all functionality and logic.
2026-04-10 12:03:26 +02:00
marvin.dietermann
040839862d refactor(install): improve modular architecture and error handling
- Remove redundant installation checks in arduino.sh, git.sh
- Add bash shell enforcement in install.sh to prevent compatibility issues
- Streamline Arduino CLI installation logic for both Arch and other systems
- Improve Git and Lazygit installation messaging consistency
- Update install usage instructions for better clarity
- Enhance shell compatibility by enforcing bash execution
2026-04-10 11:51:03 +02:00
marvin.dietermann
ee0b7f5009 feat(themes): add theme system with starship integration
- Add theme selection system with 5 predefined themes
- Implement Catppuccin Mocha, Dracula, Gruvbox Dark, Nord, and Tokyo Night
- Each theme includes NvChad integration and starship prompt configuration
- Support for custom color palettes and consistent formatting
- Interactive theme selection with numbered menu
2026-04-10 11:44:34 +02:00
marvin.dietermann
c9fa40b31c refactor: restructure installation to modular architecture
- Remove monolithic bootstrap.sh in favor of modular design
- Add install.sh as new main entry point with improved UX
- Split functionality into focused modules:
  - lib/common.sh: shared utilities and environment detection
  - lib/packages.sh: base system packages
  - lib/neovim.sh: Neovim and LazyVim setup
  - lib/arduino.sh: Arduino CLI and board cores
  - lib/git.sh: Git and Lazygit configuration
  - lib/shell-config.sh: Zsh and shell environment
  - lib/starship.sh: Starship prompt setup
  - lib/zellij.sh: Zellij terminal multiplexer
  - lib/scaffold.sh: project scaffolding utilities
- Update README with new installation instructions and architecture
- Improve error handling and user feedback across modules
- Maintain compatibility with both Arch Linux and Ubuntu/WSL2

This modular approach enables better maintainability, testing,
and allows users to selectively run components as needed.
2026-04-10 11:41:21 +02:00
marvin.dietermann
f1db151f08 Added gitignore 2026-04-10 11:23:26 +02:00
marvin.dietermann
c89bf6c111 Merge remote-tracking branch 'origin/master' 2026-04-10 11:19:50 +02:00
MDietermann
91e1134982 Arduino-CLI now gets pulled from pacman 2026-04-09 08:25:46 +02:00
MDietermann
05e68cf24f Arduino-CLI now gets pulled from pacman 2026-04-09 08:23:30 +02:00
MDietermann
9b0fcde4b6 Arduino-CLI now gets pulled from pacman 2026-04-09 08:22:00 +02:00
MDietermann
fca8ad8444 Fixed permission error for arduino-cli 2026-04-09 08:15:58 +02:00
MDietermann
63b30b6953 Changed tio installation 2026-04-09 08:07:09 +02:00
marvin.dietermann
ead7a472ae Styling changes 2026-04-08 14:08:53 +02:00
Marvin Dietermann
fc42277ab9 Initial commit 2026-04-08 14:04:42 +02:00