DEV Community

Cover image for Winfiles - Ultimate Dev Setup for Windows ๐ŸชŸ๐Ÿช„
Abhishek Keshri
Abhishek Keshri

Posted on • Updated on • Originally published at 2kabhishek.github.io

Winfiles - Ultimate Dev Setup for Windows ๐ŸชŸ๐Ÿช„

Do you find the Windows dev environment lacking? Do you miss your precious CLI tools on Windows?

Well I felt the same way too. That's why I combined a package manager, a powerful CLI editor, tiling window management and lots of other tools in a easy to set up solution.

Introducing Winfiles

Screenshot

Winfiles is a set of handcrafted configs for setting up a complete dev environment on Windows.

It makes developing on Windows much more pleasant for CLI lovers.

โœจ Features

  • Can set up a complete dev environment within minutes
  • Full featured CLI dev environment on Windows (natively, without WSL!)
  • Powerful personalized editing with nvim2k
  • Shiny and extensible prompt with oh-my-posh and Posh2K
  • Modern and intuitive keybindings for Windows Terminal inspired by tmux-tilit
  • Tiling window management with komorebi and AutoHotKey
  • Statusbar support with yasb
  • More!!

Setup

โšก Requirements

  • Powershell >= 7 (recommended), Most features should work on Powershell 1.0
  • scoop โ€” for package management
  • Meslo Nerd Font โ€” Recommended font for glyphs support

๐Ÿš€ Installation

# Install scoop
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser # Optional: Needed to run a remote script the first time
irm get.scoop.sh | iex

# Install git if you haven't already
scoop install git

git clone https://github.com/2kabhishek/Winfiles
cd Winfiles

.\setup.ps1
Enter fullscreen mode Exit fullscreen mode

This will install all necessary packages, modules and setup symlinks for you.

๐Ÿ’ป Usage

Tiling

Tiling is disabled by default as AutoHotKey keybindings are somewhat buggy.

But if you want to use Tiling Window Manager without keybindings:

Run StartTiling/StopTiling on a Powershell prompt to control tiling.

I recommend using PowerTools to add some keybindings, for example:

  • Win + q for closing current window

Status Bar

You can use yasb to show a status bar, similar to polybar.
Follow instructions on yasb to set up.

My yasb configs are here

Extra Fonts

If you want to try out other fonts, you can also use oh-my-posh to install fonts

Just run oh-my-posh font install and select the font of your choice.

More Tools

I have intentionally kept the default list of packages to bare essentials.

If you want any other tools you can install them with scoop or winget.

# Install VS Code
scoop install code
# Install winget
scoop install winget
Enter fullscreen mode Exit fullscreen mode

You can also search for packages using scoop search name.

Other Configs

For most tools I'm symlinking configs over from my main Dotfiles.

You can do the same or plugin your own.

Behind The Code

๐ŸŒˆ Inspiration

I find working on Windows somewhat unpleasant, WSL although tries and fixes it, but it felt constrained.

That's why I decided to set up a dev environment using native windows tooling.

๐Ÿ’ก Challenges/Learnings

  • The main challenge was to figure out all the pieces of this puzzle and solving it.
  • Learned a lot about Powershell and did quite some scripting with it.
  • Learned more about the Windows ecosystem, different environment variables, configs etc.
  • Had lots of fun!

๐Ÿงฐ Tooling

  • Dotfiles โ€” Dev Environment
  • nvim2k โ€” Personalized Editor
  • Powershell
  • Windows Terminal

Repo

GitHub logo 2KAbhishek / Winfiles

Ultimate Dev Setup for Windows ๐ŸชŸ๐Ÿช„

Winfiles

License People Stars Forks Watches Last Updated

Ultimate Dev Setup for Windows ๐ŸชŸ๐Ÿช„

Winfiles in action
Winfiles in action

Winfiles is a set of handcrafted configs for setting up a complete dev environment on Windows.

It makes developing on Windows much more pleasant for CLI lovers.

โœจ Features

  • Can set up a complete dev environment within minutes
  • Full featured CLI dev environment on Windows (natively, without WSL!)
  • Powerful personalized editing with nvim2k
  • Shiny and extensible prompt with oh-my-posh and Posh2K
  • Modern and intuitive keybindings for Windows Terminal inspired by tmux-tilit
  • Tiling window management with komorebi and AutoHotKey
  • Statusbar support with yasb
  • More!!

Setup

โšก Requirements

  • Powershell >= 7 (recommended), Most features should work on Powershell 1.0
  • scoop โ€” for package management
  • Meslo Nerd Font โ€” Recommended font for glyphs support

๐Ÿš€ Installation

# Install scoop
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser # Optional: Needed to run a remote script the first time
irm get.scoop.sh | iex
# Install git if you
โ€ฆ
Enter fullscreen mode Exit fullscreen mode

โญ hit the star button if you found this useful โญ

Source| Blog | Twitter | LinkedIn | More Links | Other Projects

Top comments (0)