Two packages, near-identical names, and one very common mistake between them: the VM where VMware Tools shows as running, yet drag and drop, copy-paste and screen resize are all dead. This page separates the two packages by the job each one does, so you install the right one the first time - desktop or server.
Ubuntu splits VMware Tools into two packages with a parent-and-addon relationship. The base open-vm-tools is the engine: a background service that talks to the host. The open-vm-tools-desktop package is the visible layer on top of it: the session agent that delivers resize, clipboard and drag and drop. Everything confusing about VMware Tools on Ubuntu - including most 'installed but nothing works' reports - comes from having the engine without the layer. Here is how to choose correctly.
If your Ubuntu VM has a graphical desktop you log into, the answer is the command from the video: sudo apt install open-vm-tools-desktop -y. Because the desktop package depends on the base package, apt installs both together - you never need to run two install commands. The result is the complete feature set: the window resizes the guest, the clipboard is shared, files drag across, and the service handles shutdowns and reporting underneath. This is the default recommendation for every desktop VM.
An Ubuntu Server with no graphical desktop has no screen to resize and no clipboard to share, so the desktop layer would sit there doing nothing while pulling in graphical libraries a lean server does not need. Install only the base: sudo apt install open-vm-tools -y. You still get the benefits that matter on a server - graceful shutdown and restart from the VMware console instead of a virtual power-cut, clock synchronisation with the host, and the host seeing the server's IP address and heartbeat. Right-sized, nothing wasted.
The trap looks like this: someone follows an old server-oriented tutorial on a desktop VM, installs only open-vm-tools, sees the service running - and concludes VMware Tools is broken because drag and drop does nothing. Nothing is broken; the features were never installed. The fix is simply to add the missing layer and reboot:
sudo apt install open-vm-tools-desktop -yIf a desktop VM's tools "run but do nothing", check for this before reinstalling anything or blaming VMware.
Guessing is unnecessary - ask the package manager:
dpkg -l | grep open-vmopen-vm-tools and open-vm-tools-desktop, both marked ii (installed).vmtoolsd --version prints it directly.This thirty-second check settles most arguments about whether the tools are "really installed".
When in doubt, match the package to the machine's job. Has a desktop you use? Install open-vm-tools-desktop - it includes everything. Headless server? Install open-vm-tools - it includes everything a server can use. The only genuinely wrong answers are the desktop package's absence on a desktop (missing features, endless confusion) - and, in the other direction, there is no harm case worth worrying about: worst case, a server carries a few unused libraries. The desktop trap is the one with real teeth, and now you know its name.
The video installs the desktop package the correct way in a single command - watch it if your VM is a desktop, which most are.
▶️ Watch Full VideoNo. The desktop package declares the base package as a dependency, so apt installs and configures both in one pass. Running the base install separately first does no harm, but it is a wasted step - one command with the -desktop package is the complete installation for a desktop VM.
There is no urgency - it will not break anything. The desktop components simply have no graphical session to serve, and the base service does the useful server work as normal. If you keep your servers deliberately minimal, removing the -desktop package is tidy, but treat it as housekeeping, not a fault to fix.
Add the desktop package and reboot: sudo apt install open-vm-tools-desktop -y. The moment a graphical session exists, the resize, clipboard and drag-and-drop features become relevant, and they all live in that package. The base service you already have keeps running underneath - nothing to reinstall or reconfigure on the host side.