๐ญ HyperShell: Unifying Windows and Linux
๐ Introduction
Introducing HyperShellโa meticulously crafted terminal setup that unites the best of Windows and Linux. If you love Linux's flexibility but still value some of what Windows offers, HyperShell is here to provide a seamless, powerful working environment.
๐ The Hybrid Approach: Windows + WSL2
As a long-time Linux enthusiast who also appreciates certain aspects of Windows, I created HyperShell to blend the best of both worlds. Here's why this hybrid setup fits my workflow:
Feature | Description |
---|---|
๐ง Linux Development Environment | With WSL2, you get a full-fledged Linux environment, perfect for all your development needs. |
๐ต Music Production | Windows excels in audio drivers and support for music production software. I use it for DAWs like Ableton Live, making it an essential part of my creative process. |
๐ฎ Gaming and Graphics | Leverage Windows' extensive support for gaming and graphics tools. HyperShell lets you easily switch gears without rebooting. |
๐ง Tool Flexibility | The ability to switch between Linux and Windows tools is key, whether you're debugging code, editing videos, or tinkering with hardware. |
๐งฐ Key Components of HyperShell
HyperShell combines a carefully curated set of tools that make it both powerful and enjoyable to use:
- ๐ฅ๏ธ Windows Terminal: A sleek, customizable command-line interface.
- ๐ง WSL2 with Ubuntu: A fully integrated Linux experience right inside Windows.
- ๐ง PowerShell: Enhanced for smoother interactions with the Windows system, including useful keybindings and productivity enhancements.
- ๐ AstroNvim: A turbocharged Neovim setup (more on this below).
- ๐ Starship: A cross-shell prompt that's as customizable as it is beautiful.
- ๐ FZF: A fuzzy finder that makes searching files and history lightning fast.
- ๐ LSD: A modern replacement for ls, with lots of visual enhancements.
- ๐ Git: Version control with custom aliases for quick operations.
- ๐ณ Docker: Containerization, plus helpful aliases and integrations.
- ๐ Keybindings and Custom Aliases: Configured in both PowerShell and Zsh to boost efficiency.
๐ ๏ธ Setting Up HyperShell
Getting started with HyperShell is a breeze:
-
Clone the repository:
1git clone https://github.com/hyperb1iss/dotfiles.git %USERPROFILE%\dev\dotfiles
-
Run the installation script (you'll need admin privileges):
1cd %USERPROFILE%\dev\dotfiles 2install.bat
This script takes care of:
- Installing essential tools via Chocolatey (PowerShell Core, Windows Terminal, Git, VS Code, Node.js, Python, Rust, Docker, and more).
- Setting up PowerShell modules for extended functionality.
- Configuring Git with custom aliases for a smoother workflow.
- Installing VS Code extensions commonly used by developers.
- Setting up WSL2 for seamless Linux integration.
- Installing and configuring Starship for a consistent prompt across shells.
- Setting up AstroNvim with pre-configured settings.
๐ AstroNvim: Elevating the Neovim Experience
AstroNvim is my go-to Neovim configurationโit's a powerful, feature-rich setup that brings out the best of Neovim without much hassle.
Key Features:
- ๐ Blazing fast startup time
- ๐ฆ Easy plugin management
- ๐จ Beautiful and functional UI
- ๐ Built-in dashboard
- ๐ Fuzzy finding with Telescope
- ๐ณ File explorer with Neo-tree
- ๐จโ๐ป Powerful LSP integration
With HyperShell, AstroNvim is automatically installed and configured. To start using it, simply open Neovim:
1nvim
For customization, head over to ~/AppData/Local/nvim/lua/user/init.lua
. AstroNvim comes with a ton of features out of the box, and you can tweak it to your heart's content.
๐ค Using HyperShell: Key Features and Commands
HyperShell comes packed with features to supercharge your terminal experience. Here are some key commands and keybindings to get you started:
๐ Fuzzy Finding with FZF
Ctrl+f
: Fuzzy find files in the current directory and subdirectoriesAlt+c
: Fuzzy find and change to a directoryCtrl+r
: Fuzzy find and execute a command from history
๐ Enhanced Directory Navigation
cd -
: Go back to the previous directorymkcd <dir>
: Create a directory and change into itlt
: List files and directories in a tree structure
๐๏ธ Linux-style Aliases
ls
,ll
,la
: Colorful directory listings with LSDcat
,less
: Use bat for syntax highlightinggrep
,find
,sed
,awk
: Use GNU versions for extended functionalitytouch
,mkdir
: Create files and directorieswhich
: Find the location of a command
๐ง WSL Integration
wsld
: Switch to the WSL environmentwslopen <path>
: Open a WSL directory in Windows Explorerwgrep
,wsed
,wfind
,wawk
: Run Linux commands from PowerShell
๐ Git Shortcuts
gst
: Git statusga
: Git addgco
: Git commitgpp
: Git pushgcp
: Git cherry-pick
๐ณ Docker Shortcuts
dps
: List running Docker containersdi
: List Docker images
๐ Reloading HyperShell
reload
: Reload the PowerShell profile to apply changes
These are just a few examplesโexplore the HyperShell dotfiles to discover more custom functions and aliases to speed up your workflow.
๐ช Leveraging HyperShell: Tips and Tricks
Here are some tips to help you make the most of HyperShell:
- Customize Key Bindings: Modify keybindings in the PowerShell profile (
$PROFILE
) to suit your preferences. - Extend Functionality: Add your own aliases, functions, and scripts to the profile files to further tailor HyperShell to your needs.
- Explore Tools: Dive deeper into the capabilities of tools like FZF, LSD, and bat. They have a lot to offer!
- Leverage WSL: Make full use of WSL for Linux-specific tasks. You can easily switch between Windows and Linux environments.
- Learn Keybindings: Commit the custom keybindings to muscle memory. They're designed to minimize hand movement and boost efficiency.
- Stay Updated: Pull the latest changes from the dotfiles repo regularly to get updates and improvements.
๐ฌ Wrap-Up
HyperShell is all about creating a seamless, flexible terminal experience for those who love both Windows and Linux. It's perfect for developers, sysadmins, and creatives who want the best of both worlds without the hassle of juggling two separate setups.
If you're ready to level up your terminal game, check out the GitHub repository and give HyperShell a try. I'd love to hear how it works for youโfeel free to open an issue or share your thoughts!