Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/2KAbhishek/win2k

Ultimate Dev Setup for Windows 🪟🪄
https://github.com/2KAbhishek/win2k

cli dev developer-experience dotfiles eye-candy neovim oh-my-posh powershell tiling tooling vim windows

Last synced: 2 days ago
JSON representation

Ultimate Dev Setup for Windows 🪟🪄

Awesome Lists containing this project

README

        

win2k


License


People


Stars


Forks


Watches


Last Updated

Ultimate Dev Setup for Windows 🪟🪄

win2k in action


win2k in action

win2k 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!)
- Shiny and extensible prompt with [oh-my-posh](https://ohmyposh.dev/) and [posh2k](https://github.com/2kabhishek/posh2k)
- Powerful personalized editing with [nvim2k](https://github.com/2kabhishek/nvim2k)
- Tiling window management with [komorebi](https://github.com/LGUG2Z/komorebi) and [whkd](https://github.com/LGUG2Z/whkd)
- Modern and intuitive keybindings for Windows inspired by [tmux-tilit](https://github.com/2kabhishek/tmux-tilit)
- Statusbar support with [yasb](https://github.com/denBot/yasb)
- More!!

## Setup

### 🚀 Installation

- Enable remote script execution (Only needed one time)

```powershell
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
```

- Install scoop

```powershell
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression
```

- Install git (7zip and aria2 to help with scoop installations) if you haven't already

```powershell
scoop install aria2 7zip git
```

- Clone win2k

```powershell
git clone --recurse-submodules https://github.com/2kabhishek/win2k
```

- Run setup in **Admin mode** (Press Win + x and select `Terminal (Admin)`)

```powershell
cd win2k
.\setup.ps1
```

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

If setup runs into errors, try running the command in admin mode again or run the command from `setup.ps1` manually.

### 💻 Usage

#### Windows Terminal

If you are having issues starting up Windows Terminal after the setup, you can try removing the folder:

`C:\Users\\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState`

#### Git

It is recommended to setup git and GitHub before anything else.

```powershell
git config --global user.name "Your Name"
git config --global user.email "[email protected]"

git config --global commit.gpgSign false #Disable GPG signing

gh auth login #Login to github
```

If you want to use GPG signing [check this](https://docs.github.com/en/authentication/managing-commit-signature-verification/adding-a-new-gpg-key-to-your-github-account)

#### Neovim

Next I would recommend setting up [nvim2k](https://github.com/2kabhishek/nvim2k)

- Clone the repo in a appropriate location

```powershell
git clone https://github.com/2kabhishek/nvim2k
```

- Setup symlink

```powershell
New-Item -ItemType SymbolicLink -Path "$env:LOCALAPPDATA\nvim" -Target "$PWD\nvim2k" -Force
```

#### PowerToys

I recommend using PowerToys to add some keybindings using the `Keyboard Manager`, for example:

- Remap Caps Lock to Esc for quick access in vim
- Remap Win + q to send Alt + F4 for closing current window, using the Remap Shortcuts

I also use the PowerToys Run launcher mapped to Win + Space

#### Tiling

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

#### Status Bar

You can use yasb to show a status bar, similar to polybar.
Follow instructions on [yasb](https://github.com/denBot/yasb) to set up.

My yasb configs are [here](https://github.com/2KAbhishek/win2k/tree/main/config/yasb)

#### 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` in an Admin window 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.

```powershell
# Install VS Code
scoop install code
# Install winget
scoop install winget
```

You can also search for packages using `scoop search name`.

#### Other Configs

For most tools I'm symlinking configs over from my main [dots2k](https://github.com/2kabhishek/dots2k).

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

- [dots2k](https://github.com/2kabhishek/dots2k) — Dev Environment
- [nvim2k](https://github.com/2kabhishek/nvim2k) — Personalized Editor
- [qute2k](https://github.com/2kabhishek/qute2k) — Personalized Browser
- Powershell
- Windows Terminal


⭐ hit the star button if you found this useful ⭐

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