My Ultimate Development Setup: Efficiency, Style, and Portability

Akshay N
4 min readDec 10, 2023

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.

--

--

Akshay N
Akshay N

Written by Akshay N

Skilled Software Developer & DevOps pro. Quick learner, problem-solver, team player. Passionate about efficient, innovative tech solutions.

No responses yet