Community-driven coverage of elementary OS — news, guides & forums
Dark abstract low-poly geometric landscape with layered triangular facets in deep navy, charcoal, and muted teal, illuminated by a soft electric-blue glow near the horizon

News roundups, tutorials, application guides, and forums — built by users, for users of the elegant Linux distribution.

elementary weekly
#20
Latest roundup · 18 Apr 2015
Freya Release
Final
Covered in weekly #19 & #20
Forum Topics
Active
Installation, customization & more

How to install and use Visual Studio Code on elementary OS

Visual Studio Code (VS Code) is a capable code editor and integrated development environment (IDE) for elementary OS. It combines syntax highlighting, Git controls, an integrated terminal, debugging tools, and a large extension marketplace in a window that suits the operating system’s uncluttered desktop. For Python, JavaScript, shell scripts, web projects, and system configuration, it provides a practical workspace without changing the distribution itself.

Most people have two sensible installation routes: Microsoft’s official Debian package or the Flathub Flatpak. The Debian package blends directly with the operating system’s package management and normally starts quickly; Flatpak gives the editor a more isolated environment and is convenient when a consistent, independently managed version matters. Both provide the core VS Code experience, but they store settings in different places and differ in their access to host files and native extensions.

Before choosing, check your processor architecture and the projects you expect to run. Most retail and office computers use Intel or AMD processors and need the x64 build, while a Raspberry Pi or another ARM64 system needs the matching package. Extensions can add substantial demands, so spare memory and disk space matter more than installing a large collection of optional tools.

Installation is only the first part of a comfortable setup. Trusted extensions, a useful editor profile, a working terminal, and sensible Git settings turn a downloaded application into a daily development environment. The steps below cover those pieces in an order that keeps the system tidy and makes later troubleshooting easier.

Choosing the best installation route

Choose the Debian package for the smoothest fit with elementary OS. It is usually the best default on an Intel or AMD computer, particularly if you want Remote SSH, native debugger components, or other extensions that interact closely with the host. APT resolves libraries from the distribution’s repositories, Software Updater can handle the application, and the launcher behaves like other locally installed programs.

Choose Flatpak when isolation, easy reversibility, or independent updates are more important than native extension support. The sandbox can reduce the potential impact of a faulty extension, and removing the package is straightforward. It is a good option on an ARM64 device, although you should still check whether the extensions you need are fully supported in the sandbox.

Your decision does not need to be permanent. Install one route first, work with it, and move only if a concrete limitation appears. Keep a note of the installation method and any extension names, because that small record saves time when a project starts behaving differently. The community forum is also useful for local knowledge; a short question with the exact error often receives a practical “no worries” answer from another Australian user.

Installing the official Debian package

Download the Linux .deb file from Microsoft’s official Visual Studio Code download page, choosing Debian x64 for an Intel or AMD machine and Debian ARM64 for an ARM64 machine. A browser download is fine, but a terminal can be quicker. Open a terminal with Ctrl+Alt+T, change to the Downloads folder with cd ~/Downloads, and check that the filename identifies the architecture you chose.

Install the local package with sudo apt install ./code_amd64.deb, replacing code_amd64.deb with the actual versioned filename if necessary. APT will ask for your user password before proceeding; nothing appears while you type it, which is normal. On an ARM64 system, use the matching code_arm64.deb name. You can also double-click the package and use the graphical installer instead of typing a command.

The package registers Microsoft’s update source, so later security and application updates should appear through APT or the elementary OS Software Updater. Do not try to install code from an unrelated third-party repository. If you prefer the desktop’s graphical package workflow, the community walkthrough to sideloading non-AppCenter software explains how software outside AppCenter can be added while keeping the source and permission decisions visible.

Installing VS Code with Flatpak

Flatpak is already available on many elementary OS installations. Check with flatpak --version; if the command is missing, install it using sudo apt install flatpak. Then run flatpak remotes to confirm that Flathub is configured. If it is absent, download the official Flathub .flatpakrepo file and add it with flatpak remote-add --if-not-exists flathub /path/to/flathub.flatpakrepo.

Install the editor with flatpak install flathub com.visualstudio.code, then launch it with flatpak run com.visualstudio.code. The first start can take longer because Flatpak prepares the runtime and sandbox. You can launch it later from the Applications grid, but the terminal command is useful when you want to open a particular folder immediately and pass VS Code a diagnostic flag.

The Flathub build is well suited to editing files that the application is permitted to access. If a trusted project is hidden, inspect the Flatpak filesystem permission rather than copying the whole project elsewhere. Extensions that rely on native libraries or host commands may need extra configuration, so test your Python debugger or container tools early. If they fail, the Debian package is usually the simpler route.

Configuring the editor for real work

On first launch, VS Code asks whether you trust the application. Trust it only when it came from Microsoft’s official download page or Flathub’s verified listing. Once inside, choose File and Open Folder, then select a project directory instead of opening random files one at a time. The Explorer, Search, Source Control, Run, Extensions, and Settings panels provide the main parts of the interface, and the Command Palette opened with Ctrl+Shift+P can reach most actions by name.

Australian PC keyboards generally use a standard English layout, so the Ctrl key replaces the Command key used on a Mac. Common shortcuts include Ctrl+Shift+P for the command palette, Ctrl+P for quick file access, the backtick shortcut for the integrated terminal, and F5 to start debugging. These shortcuts are worth learning early because they remove the need to hunt through menus.

Open the user settings JSON file and make small, deliberate changes rather than accepting a large configuration copied from the internet. For example, set editor.fontSize to 15, editor.wordWrap to on, and editor.formatOnSave to true if that suits your project. The Settings search box can find each control, while the JSON file shows its exact name. Keep a project-level file for settings that should travel with the code and leave personal preferences in the user file.

Extensions add language support, linting, formatting, database tools, and remote workflows. A Python developer might start with the Microsoft Python and Python Debugger extensions, a JavaScript developer with ESLint and Prettier, and someone working with remote Australian servers with Remote SSH. Check the publisher, recent updates, documentation, and requested permissions before installation. An extension can run commands, so trust it with the same care as any script downloaded from the internet.

Working with terminals, debugging, and Git

The integrated terminal opens from the View menu or with the backtick shortcut and starts in the project or home directory depending on how VS Code was launched. Use it for pwd, ls, python3 --version, node --version, and the build tools required by your project. A task configured in .vscode/tasks.json is useful for repeatable commands, but keep it in the repository only when every contributor should run it. Never run the editor or its terminal as root; use sudo only for the one command that genuinely requires it.

For Python debugging, create or open a small file, select Run and Debug, and choose Python. The extension generates a launch.json configuration, after which pressing F5 starts the debugger. Breakpoints pause execution, the Variables panel shows values, and the Debug Console accepts expressions. Test this with a harmless script before relying on it for a larger project, since the correct interpreter and virtual environment are chosen in different places.

Git is built into the editor, and the Source Control panel can create a repository, stage changes, inspect differences, and make commits. Set your identity once with git config --global user.name "Your Name" and git config --global user.email "you@example.com", then use git config --global init.defaultBranch main if you prefer main over another default. Universities and software teams in Sydney, Melbourne, and elsewhere often use GitHub, GitLab, or a self-hosted server, so check which remote and branch rules your project expects before pushing.

Remote SSH is particularly useful when a course, workplace, or research group keeps source code on a Linux server. Install the remote extension from Microsoft, connect to the host, and choose the remote folder as the workspace. Keep secrets and production credentials on the server rather than in .vscode/settings.json. A commit history and a remote backup are separate protections, so neither should be treated as a substitute for the other.

Updating, backing up, and protecting VS Code

Updates are easiest to manage when they come from the same route used for installation. A Debian install normally updates through Software Updater or sudo apt update followed by sudo apt upgrade; a Flatpak install updates with flatpak update. Restart VS Code after an application update if a menu or extension appears stale. Extensions also have their own update controls, so review those periodically instead of assuming every marketplace change is covered by the operating system.

The editor should run as your normal user and open only folders you trust. VS Code’s Workspace Trust feature can limit tasks, debugging, and extension activity in unfamiliar projects, which is valuable when a repository comes from an online class or coding forum. Do not switch it off merely to silence a warning. On a metered or slower regional connection, schedule application and extension updates at a sensible time; an update on a typical NBN connection in Melbourne is uneventful, but the same download may be less convenient in a remote Australian town.

Back up the user settings and list essential extensions. With the Debian package, settings usually live under ~/.config/Code/User; the Flatpak version keeps them under ~/.var/app/com.visualstudio.code/. Settings Sync can copy preferences through a Microsoft account, but users who avoid cloud storage can export a settings profile and reinstall extensions from the Extensions view. A small local archive is useful after changing extension versions or moving to another computer.


The most reliable VS Code installation is the one whose source, update path, and permission model you understand. On elementary OS, the official Debian package integrates most directly, while Flatpak offers isolation and straightforward management. Whichever route is chosen, opening a real project, enabling only the extensions the work requires, and keeping Git and terminal behaviour predictable will provide more value than an elaborate collection of tools.

The habit to remember is simple: download from a trusted source, keep application and extension updates current, and respect the trust boundary around code. With those foundations in place, Visual Studio Code becomes a dependable daily workspace for learning, administration, and professional development on elementary OS.

Browse the News Archive
Latest Updates

From the elementary weekly series

Low-poly faceted abstract render in dark charcoal and electric blue tones, suggesting a news bulletin or announcement
elementary news

elementary weekly #20

The first week with the final Freya release — community reactions, tips, and early impressions gathered in one roundup.

Abstract low-poly geometric scene in midnight blue and soft cyan, conveying a live broadcast or event atmosphere
elementary news

elementary SPECIAL

A live Hangouts event with the elementary OS founders, held on 11 April 2015, discussing the Freya final release.

Low-poly faceted render in deep navy and muted teal with subtle amber highlights, suggesting a tutorial or guide
Tips and Tricks

Timeshift Guide

How to use Timeshift — the intuitive system restore utility for elementary OS — to recover from configuration mishaps.

Explore

Topics & Resources

Dive into guides, application recommendations, and community discussions covering every aspect of elementary OS.