# Danielfm Workstation Dev Role

This role configures workstations with comprehensive development tools and
environments. It sets up:

- **Text Editors**: Doom Emacs configuration with custom packages and themes
- **Terminal Environment**: Kitty terminal, tmux configuration
- **Development Tools**: Node.js/npm configuration, Android development tools
- **Shell Environment**: Development-specific bash configuration and aliases
- **IDE Integration**: Emacs client desktop integration for system-wide editing

## Requirements

- A Debian-based or Fedora-based Linux system
- Root privileges for package installation and system configuration
- Internet connection for downloading development tools and packages

## Role Variables

Available variables are listed below, along with default values.

## Dependencies

- `danielfm.workstation.base` (recommended to run first for essential packages)

## Example Playbook

```yaml
- hosts: localhost
  connection: local
  roles:
    - danielfm.workstation.base
    - danielfm.workstation.dev
```

## What This Role Configures

**Development Environment:**
- Doom Emacs configuration with custom packages
- Vim configuration for terminal-based editing
- Development-focused bash environment and aliases
- Starship prompt integration

**Terminal Setup:**
- Kitty terminal emulator with dark/light theme auto-switching
- Tmux configuration for terminal multiplexing
- Custom shell prompt and development shortcuts

**Development Tools:**
- Node.js and npm with custom registry configuration
- Android development tools and ADB udev rules
- System-wide Emacs client integration via desktop files
- Comprehensive language support (Go, Python, Node.js, Clang tools)
- Container tools (Podman, Distrobox, Helm)
- Cloud development tools (Google Cloud CLI, kubectl, Terraform, Vault, Packer)
- Use mise-en-place for managing development tools and environments

**Package Repositories:**
- Hashicorp repository
- Google Cloud CLI repository
- Mise repository

**Configuration Files:**
- `~/.config/doom/` - Complete Doom Emacs configuration
- `~/.config/kitty/` - Terminal emulator with theme switching
- `~/.tmux.conf` - Terminal multiplexer configuration
- `~/.vimrc` - Vim editor configuration
- `~/.npmrc` - Node.js package manager settings
- `/etc/udev/rules.d/51-android.rules` - Android device development access

## Important Notes

- Doom Emacs installation and package setup can take several minutes on first run
- Emacs daemon service is enabled for faster startup times
- The role removes vim-minimal packages to avoid conflicts with Neovim
- Android development requires device to be connected and USB debugging enabled
- Cloud tools require separate authentication setup after installation

## License

MIT

## Author Information

This role was created by Daniel Martins.
