Git Product home page Git Product logo

win2k's Introduction

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 and posh2k
  • Powerful personalized editing with nvim2k
  • Tiling window management with komorebi and whkd
  • Modern and intuitive keybindings for Windows inspired by tmux-tilit
  • Statusbar support with yasb
  • More!!

Setup

๐Ÿš€ Installation

  • Enable remote script execution (Only needed one time)
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
  • Install scoop
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression
  • Install git (7zip and aria2 to help with scoop installations) if you haven't already
scoop install aria2 7zip git
  • Clone win2k
git clone --recurse-submodules https://github.com/2kabhishek/win2k
  • Run setup in Admin mode (Press Win + x and select Terminal (Admin))
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 an admin mode or run the command from setup.ps1 manually.

๐Ÿ’ป Usage

Configure Git

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

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

Setting Up Neovim

Next I would recommend setting up nvim2k

  • Clone the repo in a appropriate location
git clone https://github.com/2kabhishek/nvim2k
  • Setup symlink
New-Item -ItemType SymbolicLink -Path "$env:LOCALAPPDATA\nvim" -Target "$PWD\nvim2k" -Force

PowerToys

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

  • Win + q for closing current window
  • Remap Caps Lock to Esc for efficiency

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 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 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.

# 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.

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 โ€” Dev Environment
  • nvim2k โ€” Personalized Editor
  • qute2k โ€” Personalized Browser
  • Powershell
  • Windows Terminal

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

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

win2k's People

Contributors

2kabhishek avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

win2k's Issues

Uninstallation guide

Description of the bug

Hi, thank you for developing these scripts. I am still learning the whole procedure.

Please can you provide some notes on how to uninstall (or revert) the changes that were introduced by the installer script?

Steps To Reproduce

  1. Install the script
  2. Try to uninstall all the different changes

Additional Information

No response

[BUG]: openssh not recognised

Description of the bug

I'm unable to run the following command on Windows 11.

openssh wget curl nodejs python powershell powertoys winget oh-my-posh 7zip gzip komorebi whkd

and it returns

openssh: The term 'openssh' is not recognized as a name of a cmdlet, function, script file, or executable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

I'm new to Windows and I don't understand the openssh command. I did go through this guide to install openssh. However it does not seem available on the terminal.

I also don't understand the use of this command to install those various items. I would have thought that you would use scoop to install, like, oh-my-posh.

Steps To Reproduce

Explained above. Cloned win2k and trying to manually go through the commands in the .ps file to diagnose.

Additional Information

No response

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.