Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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 🪟🪄
- Host: GitHub
- URL: https://github.com/2KAbhishek/win2k
- Owner: 2KAbhishek
- License: gpl-3.0
- Created: 2022-10-23T01:18:35.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-07-06T05:19:13.000Z (4 months ago)
- Last Synced: 2024-08-02T16:56:08.438Z (3 months ago)
- Topics: cli, dev, developer-experience, dotfiles, eye-candy, neovim, oh-my-posh, powershell, tiling, tooling, vim, windows
- Language: PowerShell
- Size: 353 KB
- Stars: 87
- Watchers: 4
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- my-awesome-github-stars - 2KAbhishek/win2k - Ultimate Dev Setup for Windows 🪟🪄 (PowerShell)
README
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 ShortcutsI 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
| More Links
| Other Projects