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.
WSL, if not then msys2/git bash at bare minimum
Poweshell 7 is okay if you have access to it but regular day to day shell scripting is like as 10x more verbose with powershell than bash
I just use WSL at work, extremely fortunate to be able to despite IT locking down everything as much as possible
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.
+1 for bringing it up as serious discussion.
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.
Sounds more like a win-lin result to me.
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.
Or they are simply overworked like most IT teams.
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.
Yeah that’s a good point.
The thing with our organization is they selected technologies that are simply not compatible with Linux. Even using WSL is complicated.
It’s dumb because the vast majority of the tasks I do and the technologies I work with is almost exclusively made to work on Linux or requires a Linux VM to work.
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.
What are you doing? Why do you need Linux at all?
Actually, it’s pretty surprising to me that a small university lab is forcing a specific version of a specific OS on you.
I see; it is not forcing per se, it’s just that the computer comes with Windows pre-installed, and I am worried that changing it will cause more issues than it’s worth.
My boss lets me remote into a Linux VM hosted on a company server. You could just use a normal VM.
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 exactly are you trying to get around? The question is kinda broad.
If your issue is your program behaving differently or being hard to set up depending on the OS, a common strategy is Docker.
PS: why is your employer forcing you to use old Windows that’s going to go end-of-life basically tomorrow morning? That’s odd.
They said they work at a university…
Universities tend to be fans of outdated software?
They are very slow to change
A few years ago a pretty big state university I worked at didn’t use any kind of NAT. They had such a large public network space(a lot of universities do) that they would just give hosts public IPs. You could go home and just RDP into your desktop. Universities can be a wild wild west.
@someacnt X410, an X server Windows app should work fine with WSL2. Running a graphical environment in WSL2 can be challenging, you better of using Windows Terminal and an editor with a client/server architecture that support WSL2 like VSCode.
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.
https://www.howtogeek.com/796349/how-to-use-virtual-desktops-on-windows-11/
Win10 similar.
Thanks, I will look into it.
Windows terminal for starters. Windows has virtual desktops built in.
Windows virtual desktops are not what I would call a good experience. I personally would just use the task bar to switch between Windows.
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).
I don’t use virtual desktops on Windows since they are so poorly implemented. I just use the task bar.
Gnome and KDE both have solid virtual desktop implementations. (gnome especially) I use the tools that I have available at the time.
What’s wrong with the Windows one, and/or what’s better about Gnome’s or KDE’s?
How do I use windows virtual desktop?
Win + Tab.
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 want to look for work-arounds
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.
I see, I will note myself to ask permission about these stuffs. Thanks!
What kind of programming work are you doing?
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.
I think, hopefully, many linux people have experience to give me pointers what to do with a windows work environment
Windows people would have much more experience. Try [email protected] ?
I’ve cracked this code (at least for me)
Use Hyper-V to create a workspace VM, using your favorite OS.
Keep all business related things on the host:
- 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.
If you’re allowed a VM, I would recommend using that. Trying to make Windows suitable for dev work is a bottomless pit…
Any good hypervisor? On Windows it seems like you either have hyper-V or VMware. (Virtual box isn’t an option because licensing BS)
Proxmox? :P I don’t know if that’s actually a good rec lol
That’s a OS not a Windows application
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.
The trickly part about Virtualbox is that they like to trick you into using the guest addons. Also last time I checked copy and paste didn’t work without the addons but it has been a while. Hyper-V has its own console and its own tooling if you are fine with it. It isn’t bad but I don’t personally care for it. VMware pro is free now but I would rather avoid Broadcom.
Linux virtualization is better by far. I wish there were more options that were actually multiplatform.
You’re mixing things up there. The Guest Additions is something different than the Extension Pack. The Guest Additions is just a package that gets installed in the virtualized/guest OS, which yeah, makes the clipboard work and sets the resolution correctly and things like that. As far as I can tell from the source code, the Guest Additions are under MIT license, though I didn’t check every file.
And VMware Pro is only free for personal use, so at least for OP, that wouldn’t work.
I believe VMware Pro is now free for everyone but I could be mistaken.
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).
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!