Hey everyone,
Looking for examples of what other people do/use and suggestions on my future plans.
Right now I have a new Arch desktop setup to replace an old Mac Mini running Proxmox. Instead of VMs with Docker containers and LXC containers, I want to migrate those services to Podman on the Arch server.
I do most of my daily driving on a Mac Studio primarily for design/3D work, and I’d like to setup a remote development environment so I can use the Mac or an iPad etc to work on coding projects and manage my system (editing config files or .yaml files) on the Arch server. Previously I had a VM in Proxmox running Debian and VS Code using remote tunnels. I’d then auth with GitHub and remote tunnel into that VM. I want to move away from Microsoft products (VsCode and GitHub) and look at alternatives.
Right now I’m considering a new terminal on my Mac (currently iTerm) and server (Alacritty), sticking with zsh or moving to fish and trying LazyVim/NeoVim for file editing. I’d like to keep consistency across my devices and primarily work from a remote machine via SSH and WireGuard VPN when away from the local network.
- What’s everyone’s favorite shell, terminal emulator and IDE?
- Does it make sense to run things bare metal on the Arch server or should I utilize containers for everything and remotely connect to them per project?
- Is it pretty seamless using NeoVim remotely and does any solutions exist for LiveServer or does it make sense to just use something like Nginx in a container?
Still learning a lot, so any words of wisdom is appreciated!
I’ve used Distrobox for confining dev environments to a container and still be able to use tools installed on them in the DE. That falls down a bit when you get into mobile development where you have to interface attached devices over USB, I found. Maybe I just had to git gud at that.
- Fish, Alacritty, and Neovim.
- I’d recommend using bare metal. Containers only make sense for deployment. Otherwise, they’re just extra abstractions.
- Yes. https://neovim.io/doc/user/remote.html#_remote-editing But I honestly prefer to ssh into the remote machine and use the Neovim installation there. It’s usually more responsive, and nicer to move around several files.
I like bash, hate the language though but it does the job. I’m using blackbox and yakuake for terminal emulators and IDE is Neovim for frontend and Rider (Jetbrains) for c# backend. I like the debugging experience with Rider.
If you work through ssh then going all in on Neovim makes a lot of sense. I don’t know what you’re working on but through an ssh Neovim is best.
-
zsh, ghostty (enable the ssh shell-integration option for auto terminfo installation on the remote), lazyvim
-
Containers are your friend, especially when you’re going to be doing dev work. Keep the server lean and clean.
-
Yes:
https://neovim.io/doc/user/remote.html#_remote-editing
https://github.com/barrett-ruth/live-server.nvim
Also, +1 to the Forgejo recommendation.
-
Sounds like you’re looking for forgejo and vscodium. Yes, vscodium is vscode with telemetry stripped out.
I just ssh in and use the remote computer’s shell (typical bash on the remote side via gnome-terminal on my local Mint system) or mount a remote directory (via sftp) if I want to use a GUI editor. Not sure what hoops you have to jump through on Mac since I don’t use it these days. I’d assume you can ssh into a remote system from Mac’s default terminal app still? (I learned a bunch of Unix basics on OS X in a class ~20 years ago; it worked back then, at least…)
Shell: Bash. Basic and very consistent imo.
Terminal: foot. Basically wayland/sway default, but purely config-file driven, no UI.
IDE: I’m trying to move to neovim with LSP etc. fully, as most if not all IDEs move towards enshittification, especially towards ML, and those that don’t have very little or no feature benefit over nvim. Except being a standalone graphical program. And therefore annoying to use on remote servers.I do run nearly everything* bare metal on Arch. Simply because it’s very easy, as almost everything is either in the official repos, or in the AUR. In any case, 99% of the time it’s literally just “pacman -S $service; systemctl enable --now $service; nvim /etc/$service.conf”.
I don’t feel any difference between nvim locally and remote, except if the remote does not have foot-terminfo (or whatever your terminal is) installed.
*Except two services that have no or very little bare metal support - Piped and webodm/nodeodm. I’m working to get both nicely packaged.







