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.
EDIT: The Windows is Windows 10.
EDIT: It seems like using WSL is servicable, while being janky at times. Gotta see how it goes.
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.
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.
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.
I tried at my job. Basically the IT guys are too incompetent and don't know how to manage Linux computers.
But the company had to be able to have control over what users install, they must also have a VPN and proxy set up in a way that they can monitor what employees do or what they browse. They currently use Zscaler.
Managing Linux devices is more complicated since it was very poor Intune and GPO support so you basically have to have another separate system for that.
We only have Linux workstations at work because a dev outside IT, setup their own Linux platform and does it support it. IT support won't help with any problems though.
The only way Linux workstations are officially supported is that they have certificates for 802.1x.
If the person that supports the Linux platform quits I'm not sure anyone else could take up the task. The Linux sysadmins might but I doubt they have the time for that.
A few people also setup their own Linux computers and abused a flaw in the 802.1x. implementation that allowed them to use Ethernet with a username and password instead of a certificate. That is fortunately fixed now.
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.
I recently upgraded to Windows 11 and it's absolutely fine. Admittedly I did some research, got the IoT LTSC version and enabled the Rufus options to remove account requirements etc. But after that it's pretty much the same as Windows 10, just slightly swisher animations.
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
If you are used to your custom tiling window manager, you are less productive on Windows.
Additionally, you have an increased anger level due to all the Windows annoyances.
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).
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.
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!
It's not your computer, i highly recommend you ask for permission.
Especially, I miss the virtual desktop feature,
SysInternals has that feature (Desktops specifically) you can use for Windows 10 (and i think it's native on 11). This is a common feature in most Linux distros...
What i do is work mostly on VirtualBox VMs, but had to have clearance from IT for that (and for USB) 'cos i do all kinds off stuff that triggers their normie warnings.
Use Hyper-V to create a workspace VM, using your favorite OS.
Keep all business related things on the host:
email
instant mesenger
meeting software
MDM
etc
Put all dev related thing in VM
docker
ide/text editor
dev tools
Set up "enhanced sessions" with
shared drives
clipboard integration
automatic monitor resizing
It isn't easy, and a lot of the sotware used for deep integration is archived but it still works. But since Hyper-V is integrated with the windows kernel, you can achieve near-metal performance with minimal tweaking.
Best part? New laptop? Just export the VM onto it, you lose nothing.
This even works in Windows 11.
I have played the cat and mouse game of Docker for windows and WSL and been dissapointed time and time again. No more.
Free yourself. Escape Windows development pain. Carve out a palace of your own design from within the jail provided you, and make it the best dev environment for you.
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.
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.
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.
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).