Help me setup "dev environment"

I'm futzing around with ARM, trying to make it "better" (at least for me.)

My ripping machine is Ubuntu Server 18-latest without X.

My "work machine" (the one I do most of my typing on) is Windows.

Since ARM is based on udev rules/triggers, bash and python (as well as MakeMKV and HandBrake command-line utils) AND since I don't have an optical drive on my "work machine" I'm having trouble figuring out the best environment for working on the remote machine.

What I'm doing now is using xming on Windows, putty into ARM machine, launching gedit in a remote X session and doing my editing from there. While GEdit isn't terrible, it does kinda suck. I don't normally mind vi/vim, but I haven't found a good workflow for easily jumping between files.

What version of Windows? If it's 10, jump through the hoops to get the Windows Subsystem for Linux running, then you can launch an honest-to-God Ubuntu window and do your development, either on your Windows machine or via SSH into the ripping machine.

I don't have any input on Linux development tools, all my work is done in the Microsoft stack.

But what I'm asking for is a method/mechanism to more easily make changes and test those changes to the ARM scripts. On another machine which has an optical drive. That's running Linux. From a machine that's (currently) running Windows.

What version of Windows? If it's 10, jump through the hoops to get the Windows Subsystem for Linux running, then you can launch an honest-to-God Ubuntu window and do your development, either on your Windows machine or via SSH into the ripping machine.

I don't have any input on Linux development tools, all my work is done in the Microsoft stack.

Adding WSL doesn't really buy me anything. I still have to "pipe" the X Windows stuff back over the wire via x-over-ssh to my Windows box. XMing does a decent job of X Windows server.

The Simplest (hah!) Thing That Works(tm) would be for me to install full-up GUI on the ARM machine and do my development directly on it.

The next simplest would be to (a) swap to Linux on my desktop and (b) install a DVD/Bluray drive into it -- which would mean (1) an external drive or (2) remove the guts of my computer and put them into a new case that supports a 5.25" ODD bay.

But what I'm asking for is a method/mechanism to more easily make changes and test those changes to the ARM scripts. On another machine which has an optical drive. That's running Linux. From a machine that's (currently) running Windows.

What version of Windows? If it's 10, jump through the hoops to get the Windows Subsystem for Linux running, then you can launch an honest-to-God Ubuntu window and do your development, either on your Windows machine or via SSH into the ripping machine.

I don't have any input on Linux development tools, all my work is done in the Microsoft stack.

Adding WSL doesn't really buy me anything. I still have to "pipe" the X Windows stuff back over the wire via x-over-ssh to my Windows box. XMing does a decent job of X Windows server.

The Simplest (hah!) Thing That Works(tm) would be for me to install full-up GUI on the ARM machine and do my development directly on it.

The next simplest would be to (a) swap to Linux on my desktop and (b) install a DVD/Bluray drive into it -- which would mean (1) an external drive or (2) remove the guts of my computer and put them into a new case that supports a 5.25" ODD bay.

Isn't this what EMACS Tramp is for? So that you never have to log onto a remote system to edit files on it.

Adding WSL doesn't really buy me anything. I still have to "pipe" the X Windows stuff back over the wire via x-over-ssh to my Windows box. XMing does a decent job of X Windows server.

I'm confused...you said you don't even have X on your Ubuntu box. Why would you be piping X Windows over to the Windows box?

I think maybe the confusion is you seem to think your code editor has to live on the box where your program ultimately runs. It doesn't. Code is just text files, compilers are just command-line programs, and your final executable is just a file you can move to anywhere. There's no reason why you couldn't edit your program in VS Code on Windows, compile it in a WSL window, and they deploy the compiled code to your Ubuntu machine to run. Or set up Samba on your Ubuntu box so you can edit files on the Ubuntu box in Windows via a share, then compile and run on the Ubuntu box. Or use any of the thousands of non-GUI text editors on Ubuntu via SSH through WSL Bash, Putty, etc.

Adding WSL doesn't really buy me anything. I still have to "pipe" the X Windows stuff back over the wire via x-over-ssh to my Windows box. XMing does a decent job of X Windows server.

I'm confused...you said you don't even have X on your Ubuntu box. Why would you be piping X Windows over to the Windows box?

I think maybe the confusion is you seem to think your code editor has to live on the box where your program ultimately runs. It doesn't. Code is just text files, compilers are just command-line programs, and your final executable is just a file you can move to anywhere. There's no reason why you couldn't edit your program in VS Code on Windows, compile it in a WSL window, and they deploy the compiled code to your Ubuntu machine to run. Or set up Samba on your Ubuntu box so you can edit files on the Ubuntu box in Windows via a share, then compile and run on the Ubuntu box. Or use any of the thousands of non-GUI text editors on Ubuntu via SSH through WSL Bash, Putty, etc.

You have a ton of options here.

I don't have an X-based desktop environment setup. I've installed GEdit which brings in enough X stuff to make it work, but doesn't install desktop manager, etc.

I think the best bet is going to be a samba share. Its python, so no "compilation" necessary. I guess I can have VS Code or w/e running locally, modifying code on the share and an ssh session to the remote machine to test/execute. Remember, the "runtime" needs access to DVD/Bluray reader which I don't have locally.

Since it's python I'd look into PyCharm's remote interpreter options if you can swing for the professional version. That way you can do your whole development on your Windows PC but running and debugging happens on the Linux system. That is, if I understood your initial post correctly.