DEV Community

Cover image for My developer workflow using WSL, tmux and Neovim

My developer workflow using WSL, tmux and Neovim

Shoubhit Dash on August 16, 2022

Hi! Today I'm gonna talk about my daily developer workflow and all the tools I use to set up a productive enviroment for coding. I think having a...
Collapse
 
almogtzabari profile image
Almog Tzabari

Nice! Thanks!

Collapse
 
nexxeln profile image
Shoubhit Dash

Thanks for reading!

Collapse
 
jakecarpenter profile image
Jake Carpenter

Love the article. Thanks for introducing me to exa. This thing is great.

Collapse
 
nexxeln profile image
Shoubhit Dash

Glad you like it!

Collapse
 
devvsakib profile image
Sakib Ahmed

oww,, awesome article

Collapse
 
rescenic profile image
Muhammad Ridwan Hakim, S.T.

Is that alacritty?
Image description
My alacritty looks bad. Where is the config file location for alacritty?

Collapse
 
nexxeln profile image
Shoubhit Dash

Yeah it is alacritty! The config file in windows is at %APPDATA%\alacritty\alacritty.yml

Collapse
 
moopet profile image
Ben Sinclair

Bash is great but I personally find it harder to customize.

What is it that you find harder to customise in bash compared to zsh?

Also, what features of exa are you using that aren't present in ls?

Collapse
 
nexxeln profile image
Shoubhit Dash

exa has a more readable output with colors and icons which you can look at and instantly know the filetypes of different files. It is also noticeably faster than ls.

Collapse
 
moopet profile image
Ben Sinclair

ls supports colours and symbols for file metadata (they're things like / and *, not icons, and they don't differentiate between file types, but I've very rarely been bothered about that. Either a directory is so full you're better off asking ls *.png to dig out the pictures or it's small and organised and you don't need help reading it.

Thread Thread
 
nexxeln profile image
Shoubhit Dash

Whatever works for you!

Collapse
 
nexxeln profile image
Shoubhit Dash

I may be wrong here but at least in my experience it was easier to install and configure plugins in zsh.

Not just this but zsh has so many other features too!

Collapse
 
moopet profile image
Ben Sinclair

Plugins are handled through a third-party tool (oh-my-zsh or whatever), they're not part of zsh are they? Most shells have those sort of plugin managers these days.

Collapse
 
kissu profile image
Konstantin BIFERT • Edited

Nice workflow and setup, especially since you're running inside of Windows and not in a barebone Linux! 👍🏻

Collapse
 
masroore profile image
Max Ehsan

nice collection of tools, দাদা. thanks

Collapse
 
yxsh profile image
Yash

looks sick man!

Collapse
 
nexxeln profile image
Shoubhit Dash

Thanks!

Collapse
 
siph profile image
Chris Dawkins

Nice setup but why even use Windows at this point?

Collapse
 
nexxeln profile image
Shoubhit Dash

Because I'm in high school right now and some of the apps we use for school aren't available in linux. Also I can't really afford to get two different systems, one for programming and one for gaming/other work. So this works fine for me.

When I go to college I'll switch to mac or linux.

Collapse
 
siph profile image
Chris Dawkins • Edited

I don't use Windows but it's pretty cool that that's possible.

Collapse
 
gcgbarbosa profile image
George C. G. Barbosa

that is what I thought... it must be such a pain... Recently my computer broke and I hve a desktop for gaming, with windows of course. I thought "i will try to setup a backup enviroment... I only neet emacs, what could possibly go wrong?"... well it I wasted 2 days and failed miserably...

Collapse
 
frackinfamous profile image
FrackinFamous

Windows is great ....if you use WSL and have the extra bit of ram. You can also install it without Docker Desktop, which takes up a decent amount of resources, but they don't make it readily apparent. You can just install Docker engine by itself if you need docker. I use Windows long enough click my terminal and don't leave Linux again. That way I can still have Windows for the things I need it for but get a super fast development experience with Linux. The only thing that people run into is storing files in the Windows system and then working from the Linux side. As long as you stay in Linux and store projects there, you'll never know the difference.

Collapse
 
christodoulos profile image
Christodoulos Fragkoudakis

Thanks so much for your inspiring post!

Collapse
 
defman profile image
Sergey Kislyakov

So in fish, things like bash scripts do not work. They have their own scripting language.

As long as the script have the shellbang, it should work fine in fish. The only "downside" is that you can't copy bash commands and expect them to work, though, but I'm against copying commands at all.

Collapse
 
nexxeln profile image
Shoubhit Dash

A lot of third party stuff use bash scripts and assume your shell is POSIX compliant. I had some trouble with a few neovim plugins etc. Plus a lot of installation scripts don't support fish.

I really love fish though

Collapse
 
lakshitsomani profile image
Lakshit Somani

Hello, I am having some problems when I tried to copy your configuration. First one is colorscheme not found, I tried to do as suggested on github repo of shaunsingh, but not worked. Second, I use cpp, and have clangd installed as language server, how to set that. Thank You fot the amazing article.

Collapse
 
feibrix profile image
Fabrizio Rapelli

I use Windows and it's pretty much unusable for programming.

That was enough for me to understand the type of article I was about to read.

Collapse
 
jiasheng profile image
JS

Just curious why are you using windows?

Collapse
 
nexxeln profile image
Shoubhit Dash

Can't use linux at the moment because of some school specific software. Hoping to switch to a mac next year in college though.

Collapse
 
jiasheng profile image
JS

I had a similar experience to you. I have been using windows for more than 20 years, then switched to mac several years ago, like moving to the Garden of Eden. I hope you will get that soon!

I did try to use WSL for a while but finally quit due to no GUI support. So Admire your Adaptability!

Collapse
 
georgeanderson profile image
George Guimarães

We have very similar setups. Which plugins do you use in your tmux?

Collapse
 
nexxeln profile image
Shoubhit Dash

I use just tmux-resurrect to store tmux sessions even after rebooting.

Collapse
 
hodolomax profile image
hodolomax

I recommend to use ubuntu or mint. I tried to use windows after 4 years :S I switch back to linux 3 days later :))

Collapse
 
nexxeln profile image
Shoubhit Dash

Def looking to switch to endeavour os when I go to college!

Collapse
 
haxnet profile image
HaxNet

don't do endeavour. try to install Arch from scratch so you can learn the in and out of setting all the configs. After you are done, then go with whatever distro of arch.

Thread Thread
 
nexxeln profile image
Shoubhit Dash

I've installed arch before on a very old laptop. It wasn't fun to say the least 🤣

Collapse
 
fiqrisr profile image
Fiqri Syah Redha

Hi, can you share your Tmux config? Thanks

Collapse
 
nexxeln profile image
Shoubhit Dash

Its just oh-my-tmux

Collapse
 
felopater profile image
几ㄚ乂 • Edited

the only reason i see u use wsl for is tmux?

what does tmux do that windows terminal can't do tho?

Powershell is good I use this exact same setup and I don't feel I am missing anything

Collapse
 
defman profile image
Sergey Kislyakov

I'm pretty sure they are using WSL because they are comfortable with linux. Learning PowerShell is not something many people consider now having WSL.

Collapse
 
nexxeln profile image
Shoubhit Dash • Edited

Good for you if you feel you're productive with your current setup!

I just like using linux more.

Collapse
 
msanchex profile image
Miguel Sanchez

Windows is better for gaming and other tools linux doesn't have ... However, for setup developer environment it's better to use linux ... We could have both OS, but it's required create hard disk partitions ... and there are a couple of ways to use linux inside windows and using both of them at the same time ... Virtual machine, WSL, containers (docker), etc

Collapse
 
v3ss0n profile image
Phyo Arkar Lwin

Time to switch to Linux. Btw I use arch.

Collapse
 
nexxeln profile image
Shoubhit Dash

I agree, I wanna switch to endeavour os when i go to college

Collapse
 
duyhung profile image
duyhungdz

very nice config
But i have an issue. Lsp didnt attach when i am using mnt/d/
Do you have the solution
Thank you!