Proxmox LXC desktop is the way to keep your old Linux PC useful after converting it to a server. You don’t need a full VM for a desktop environment — a container gets you there with way less overhead, but GPU and audio need some manual work.

Why LXC over a VM for a desktop
A VM gives you a full OS, but it also eats RAM and CPU just to run the display stack. An LXC container shares the host kernel, so a desktop inside it uses a fraction of the resources. The catch: the container doesn’t get direct hardware access by default. You have to pass through the GPU and sound devices yourself.
Create the container
Start with a Debian or Ubuntu template. Give it at least 2 cores and 2GB RAM — more if you’ll run browsers or heavy apps. The key settings are in the Options tab: enable nesting and FUSE, and set Unprivileged container to No. Yes, unprivileged is safer, but for a desktop with GPU access, privileged makes life easier.
Pass through the GPU
First, find your GPU on the host:
ls -l /dev/dri
You should see card0 and renderD128. Add these lines to the container config, usually /etc/pve/lxc/<CTID>.conf:
lxc.mount.entry: /dev/dri/card0 dev/dri/card0 none bind,optional,create=file
lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file
Then restart the container. Inside it, install the GPU drivers — for Intel, intel-media-va-driver and mesa-utils are enough. Check with glxinfo | grep renderer to confirm it’s using the host GPU.

Audio is the annoying part
PulseAudio or PipeWire inside the container won’t see the host’s sound card unless you pass it through. On the host, check /dev/snd/ for devices. Add them to the container config:
lxc.mount.entry: /dev/snd dev/snd none bind,optional,create=dir
But that alone doesn’t fix permissions. The container’s root user needs access to the audio group. Inside the container, add your user to the audio group and restart the session. If you still get no sound, try running pulseaudio --start as your user inside the container — sometimes the daemon doesn’t auto-start.
Install the desktop
Pick a lightweight DE — XFCE or LXQt work well. Install with tasksel or just apt install xfce4. Then you need a way to access it. VNC is the simplest: install x11vnc and start it on the container’s display. Or use X2Go for better performance over the network.
If you want to use the physical monitor and keyboard on the Proxmox host, that’s trickier. You’d need to pass through the host’s input devices and maybe run a second X server. Honestly, remote access is less hassle.
My take
LXC desktop works, but it’s not plug-and-play. GPU pass-through is straightforward, audio takes fiddling, and you’ll probably end up using VNC or X2Go anyway. If you just need a few GUI apps occasionally, a VM might be simpler. But if you want to keep resource usage low, LXC is the way. Just don’t expect it to be as smooth as a bare-metal install.
For more on LXC quirks, check out why LXC can’t export as OVA.