How to minimize pain of Windows in work environment?
Hello all!
I began working today, where the work is closely related to programming. Despite this, the work computer is set up as Windows (eww). I want to look for work-arounds, as installing linux on a work machine is a no-go.
I wonder, what is the way to minimize pain from having to use windows? Either that, or a way to maximize work done on linux-like stuffs. A linux server is given for us, and I think I can install WSL. Any recommendations on this setup?
Especially, I miss the virtual desktop feature, is there any way to use it? Is there a way I can run compositor through WSL? Also, should I install Pop! OS for the feature, or is it available on e.g. Ubuntu (default WSL)?
Sorry to ask a non-exclusively-linux question, but I think, hopefully, many linux people have experience to give me pointers what to do with a windows work environment.
Why aren't you discussing this with your leadership?
If you're doing Linux dev work, there must be a reason your team is using Windows, and they have process around dev tasks. And your team must have process/tools for what your role does.
This seems very much like an internal discussion around what your team does.
I see, I gotta talk about it with the leadership. For context, my work is just a small university lab (5~20 people), so I expect it to be less organized.
The last time I had to ask permission for something like this, the issue turned out to be simply that the IT staff wasn't trained in Linux and therefore couldn't support it. I was more than capable of administering my own Linux box and ensuring that it wouldn't become a risk to our company network, so we agreed that I would do that.
It was a win-win result: I had the tool I needed to be most productive, and IT had fewer machines to support.
WSL2 with VSCode is really common. Windows Terminal is actually good. I use Ubuntu at work, and run Docker community edition and Vim. Firefox in the windows instance. Biggest issue is always the corporate firewall, good luck!
When people complain about Windows in a work environment, I wonder really what their complaints are. I mean I don't like windows either but at the end of the day you're just using visual studio and maybe a terminal emulator to access your work. Your codebase is on a test server or production server.
That said, my mind was blown when I used my first mac. Even the best windows laptop I've been given at work would maybe last 4 hours without charging. I can use my Mac for almost two days without charging it which makes going to the office that much easier when I can sit outside. I don't know if Windows is just extremely inefficient with its resource management or of it's all the bullshit spyware companies bloat every PC with but if the company absolutely won't let you install a Linux desktop OS I'd just ask for a Mac. Plenty of staff use them at universities
I really dislike the implementation of virtual desktops in Windows compared to say Plasma, but it is there, and it gets the job done. I realize this doesn't solve your other problems.
A virtual machine with Linux might be an option or Remote Desktop to a linux machine.
If its just about virtual desktops:
Windows 11 has that, i think win+ctrl+d creates a new one and win+ctrl+left arrow/right arrow scrolls through the desktops.
with that Docker and WSL(because powershell confuses me, and iam to lazy to learn it) i work pretty much the same as i would on a linux machine with a non-tiling window manager.
What virtual desktops do you prefer? I don't find Mac OS's significantly better, and I haven't spent much time with very many Linux window managers other than i3 (and that was years ago).
Programming on Windows can be totally fine, if you're working with a language that cares about Windows support. E.g. in my experience:
Good: Rust, Go, C#, Java, Deno, Dart
Okish: Python, C++, Node
Bad: Perl, OCaml
If it's in the "bad" category I would recommend installing WSL and using VSCode's remote feature that lets you have a Windows copy of VSCode connect to WSL.
Have you asked whether they'd be okay with a dual-boot? I recently started work as well (gamedev) and while most of the studio is on Windows I was able to set up a NixOS install for productivity (and to test the game on more configs).
VirtualBox itself is under GPLv3. Only the Extension Pack has a wonky license, and you only need that, if you want to e.g. pass a USB port directly into the VM. Or are you not allowed to even just use GPLv3 software?
VMware was also good a few years ago, although of course paid software. Since we last used it, it has been acquired by Broadcom, though, and I have read that the prices are now rather extortionate, but I don't know, if that also applies to the desktop software.
And I don't know how you'd actually use Hyper-V without a frontend like VirtualBox or VMware.
But honestly, if it makes your VM run, it's probably good enough. The main thing you need for dev work is a CPU and to my knowledge, CPU passthrough is a problem solved by all mainstream hypervisors, meaning you get close to 100% of the CPU speed inside the VM, no matter what you use.
I've thought about situations like yours and what I would do if I were in that situation someday. For me, the plan is to try doing as much in the console as possible, which means Vim/Neovim for development and Tmux for window management.
Citrix... I use my Linux setup to remote into my work laptop work for work... It allows me to have my standard Linux workflow while having access to my work stuff and not putting that anywhere locally.