My Ultimate Development Setup: Efficiency, Style, and Portability
Welcome to an in-depth look at my development setup, a carefully crafted environment that blends efficiency, style, and portability. Whether you’re a Windows, Mac, or Linux user, you might find elements here that could enhance your own development experience.
Windows Setup: Windows Terminal and Git Bash
The Power of Windows Terminal and Git Bash
On Windows, I harness the power of Windows Terminal coupled with Git Bash. Windows Terminal is not just a step up from the traditional command prompt; it’s a modern, feature-rich console that supports multiple tabs, panes, Unicode characters, and custom themes. Git Bash, on the other hand, brings the robustness of Unix command-line tools to Windows, offering a familiar environment for those accustomed to a Unix-like command line.
Splitting Windows Terminal for Enhanced Productivity
One feature I particularly enjoy is the ability to split Windows Terminal both horizontally and vertically. This functionality is a game-changer for multitasking, allowing me to view multiple files and run different commands simultaneously. I’ve set up custom bash aliases to manage these splits efficiently. Here’s a placeholder for a detailed explanation and code snippet:
alias V='wt.exe sp -d "$(pwd)" -V'
alias H='wt.exe sp -d "$(pwd)" -H'
Mac Setup: Zsh and Termux
Leveraging Zsh and Termux on Mac
For Mac users, my go-to setup involves Zsh and Termux. Zsh (Z Shell) is an incredibly powerful shell that offers numerous improvements over the standard bash shell. It’s known for its interactive features, like advanced tab completion and globbing, customizable prompts, and theme support. Termux, a terminal emulator for macOS, complements Zsh by providing a more robust and feature-rich terminal experience.
Zsh: The Powerhouse Shell
Why Zsh Stands Out
Zsh is more than just a shell; it’s a powerful command interpreter used for scripting and interactive use. Its customization capabilities are unmatched, allowing users to modify their shell environment extensively. The plugin system in Zsh is a standout feature, enabling the addition of powerful tools and shortcuts to streamline your workflow. Themes in Zsh not only change the aesthetic but also enhance readability and user experience. The scripting in Zsh is also more advanced than bash, offering more features and a better user experience.
Starship: Elevating the Terminal Experience
The Aesthetics and Functionality of Starship
Starship is my prompt of choice for its minimalism, speed, and customization options. It works across different shells, including Zsh, making it a versatile choice for any setup. The prompt is designed to show relevant information at a glance while being visually unobtrusive. Its customization options are vast, allowing you to display everything from your current Git branch to the version of the programming language you’re using.
Streamlining Setup Across Devices
Easy Replication of My Environment
One of the challenges in software development is maintaining a consistent environment across multiple devices. I’ve streamlined this process with simple commands:
Linux Setup Command
curl -sSL https://gist.githubusercontent.com/akshay-na/dc29ce1b6e980f94ff72e595f05e29b7/raw | sh
Windows Setup Command
iex ((Invoke-WebRequest -UseBasicParsing -Uri https://gist.githubusercontent.com/akshay-na/8f17578fc118fee6823ddd9204c55d69/raw).Content)
My Go-To Aliases
Streamlining Daily Tasks with Aliases
For day-to-day activities, I rely on a set of aliases covering Docker, Kubernetes, Git, NPM, and more. These aliases are not just shortcuts; they are essential tools that save time and reduce repetitive strain. They are available in my GitHub Gist, providing an easy reference and setup.
Font Choice: CaskaydiaCove Nerd Font
Why Font Matters
The CaskaydiaCove Nerd Font Regular is my choice for its clean, readable style, and excellent integration with terminal applications. A good font can significantly improve readability and reduce eye strain during long coding sessions.
Avoiding VS Code Terminal
Stability Over Convenience
While the integrated terminal in Visual Studio Code is convenient, I prefer stability. Using separate terminal applications ensures that a crash in VS Code doesn’t bring down everything I’m working on.
Windows-Specific Setup: Zsh and Bash
Best of Both Worlds
On Windows, I use Zsh for navigation and command execution, while Bash is reserved for running applications. This dual-shell setup allows me to leverage the strengths of both environments.
Further Reading: Installing Zsh and Starship
For those new to Zsh on Windows, check out this detailed blog post on installing and configuring it.
Conclusion
My development setup is a carefully balanced ecosystem, designed to maximize efficiency, ease of use, and aesthetic pleasure. It’s a testament to how a well-thought-out environment can enhance productivity and make the development process more enjoyable. I encourage you to explore these setups and adapt them to fit your workflow.