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 VS Code on elementary OS for Programming

Visual Studio Code combines a fast text editor with source control, debugging and an extensible tool ecosystem. On elementary OS it provides a comfortable place to write Python, JavaScript, HTML, CSS and other code without changing the desktop’s familiar layout. The editor runs as a normal Linux application, so projects remain in your home directory and ordinary terminal tools continue to work beside it.

This guide favours Microsoft’s official Debian package because it integrates cleanly with apt and elementary OS. It also explains choices around architectures, extensions, workspaces and updates, so beginners can avoid duplicate installations while experienced users can tune the application. Commands are written for current elementary OS releases; check your release before copying anything. The process requires no separate development account, and personal projects should remain outside system directories such as /usr.

Choose the installation route that fits elementary OS

Start by choosing one delivery method. An entry in AppCenter is convenient when it is supplied by Microsoft and matches the package you intend to manage. The official .deb is usually the most direct option on an apt-based system: it creates the normal application launcher, makes the code command available and avoids the extra sandbox or wrapper used by some Snap and Flatpak builds. Do not install several versions merely to compare them. Using one route also prevents duplicate launchers, duplicated extensions and uncertainty over which installation Software Updater manages.

Most computers sold in Australia use Intel or AMD processors, making amd64 the likely package architecture. Some ARM-based devices, including a growing number of single-board computers and development boards, need the arm64 build. Confirm rather than guess by running cat /etc/os-release and dpkg --print-architecture. The first command identifies the elementary OS release; the second selects the correct installer.

If the architecture output ends in amd64, select Linux Debian x64. If it ends in arm64 or aarch64, use Linux Debian ARM 64. Obtain the file only from Microsoft’s official Visual Studio Code download page, then compare its displayed package name with the architecture command. A package for another architecture may download successfully yet fail to install or launch.

Install the editor with apt safely

Open your browser, choose the stable Debian package identified above and save it to Downloads. In Files, check that the filename resembles code_amd64.deb; the precise version number can change over time. The .deb extension is significant. A .tar.gz archive is portable, but it does not automatically create an application menu entry, desktop integration or an apt-managed update path.

In Terminal, run cd ~/Downloads, then sudo apt update, and finally sudo apt install ./code_amd64.deb. If your browser assigned a versioned filename, type that exact name instead. Apt reads the package’s dependency information and can prompt for anything missing. If you downloaded the ARM build, select its filename in the same way. Never substitute a random mirror or a file sent through an unsolicited chat message.

After installation, close the terminal and launch Visual Studio Code from the applications menu. You can also run code --version; seeing a version number confirms the command-line entry point is working. If code is not found immediately, start the graphical application once, reopen the terminal and check /usr/bin/code. If a signature or dependency warning appears, verify the download source rather than forcing apt to bypass it. Read and accept the editor’s terms at first launch, but do not expose secret project material until Workspace Trust has been reviewed. The application runs as your desktop user rather than root, so new files retain normal home-directory ownership.

Open a real project and learn the interface

A code editor is most useful when it opens a project folder rather than a loose file. Run mkdir -p "$HOME/Projects/elementary-demo" and then code "$HOME/Projects/elementary-demo". The first command creates the directory if needed, while the second asks the editor to open it. The Explorer shows project files on the left, tabs hold open documents, and the integrated terminal starts in the workspace root. A visible project root also makes relative paths, search results and Git changes easier to understand than a collection of scattered files.

If the command does not launch the app, use Open Folder in Visual Studio Code and select Projects/elementary-demo from Home. Create hello.py and save a short program. The Activity Bar switches among Explorer, Search, Source Control, Run and Debug, and Extensions, keeping related tools in one window. Split Editor, available from the View menu or an editor’s context menu, is useful when comparing files.

Use Python as the first exercise because it produces immediate output. In the integrated terminal, check python3 --version. If the command is missing, install the interpreter from apt in a separate system terminal with sudo apt install python3, then return to the workspace. Run the file with python3 hello.py, or use Run Python File in Terminal after installing Microsoft’s Python extension. Terminal paths remain relative to the opened workspace, which is why hello.py works without a long /home/name/... prefix.

Configure the editor for Australian use before writing a larger program. Choose the Australian or English (Australian) keyboard layout in the system settings; for shortcut work, Ctrl+K Ctrl+T opens the Keyboard Shortcuts editor and its key-recording control. Set the system time zone through the clock or Settings panel: Sydney and Brisbane use UTC+10, Perth uses UTC+8, and Adelaide and Darwin use a half-hour offset. For dates, DD/MM/YYYY is conventional in Australia, so programs that need regional formatting can use an en_AU locale.

Add only the extensions your project needs

Extensions turn the basic editor into language-specific tooling, but they should be selected deliberately. Microsoft’s Python extension supplies editing, linting and debugging integration, and Pylance provides fast language analysis when required. For a web project, HTML and CSS language support plus a reputable local-server extension can be useful. Search the Marketplace, read the publisher and update information, and prefer an established publisher over a near-identical name.

Workspace Trust is a security boundary rather than an obstacle to bypass. When opening a downloaded repository, inspect the project first and trust the folder only if its code and tasks make sense. Visual Studio Code can limit terminal commands, debugging and some extensions in untrusted workspaces. Review any extension-controlled task definitions before trusting them, especially tasks labelled install, build or run, because they can execute shell commands with your user permissions. Pin important tool versions in the project where the language supports it, record extension recommendations in .vscode/extensions.json, and review updates with the same care used for new software.

The Australian market sees Visual Studio Code widely used in small businesses, start-ups, universities and government technology teams, particularly in Sydney, Melbourne and Brisbane. The editor itself is free, while some extensions or related services may display prices in Australian dollars and include GST where applicable. Check publisher identity, subscription terms and privacy settings, especially when an employer restricts where source code or telemetry may go. Shared settings belong in the workspace or version-controlled project configuration rather than being forced onto every colleague.

Build, debug and maintain your workflow

Source control is easier when learned alongside the first program. Install Git if necessary with sudo apt install git, then set the identity that should appear in commits by running git config --global user.name "Your Name" and git config --global user.email "you@example.com". Use an email address appropriate for your public GitHub, GitLab or work account. In the demo folder, run git init, select Source Control, stage hello.py and make an initial commit. The command git config --global init.defaultBranch main gives new repositories a predictable branch name.

Debugging provides a more precise alternative to adding temporary print statements. Open hello.py, choose Run and Debug, select a Python interpreter when prompted and set a breakpoint by clicking beside a line number. Execution pauses there, while the Variables panel shows current values and the Debug Console accepts expressions. A generated launch.json lets you choose the working directory, interpreter and program; edit it through the Run and Debug panel rather than guessing at hidden settings.

Let apt handle maintenance for a native installation. sudo apt update refreshes package lists, and Software Updater can apply available upgrades through the normal elementary OS workflow. To inspect the editor specifically, run apt list --upgradable and look for its package. If removal is required, sudo apt remove code preserves project files, while settings and extension data may remain under ~/.config/Code and ~/.vscode/extensions. Uninstalling an application and removing its personal data are separate operations, so copy any custom snippets, keybindings or settings needed elsewhere first. Package management differs for a Snap or Flatpak, so any alternative is removed with that format’s own tool.

Some faults are desktop-specific: a launcher fails after an update, a keyboard shortcut conflicts with elementary OS, an extension cannot see a Python environment, or an integrated terminal starts in the wrong directory. Record the command output, editor version and exact error before changing settings. The elementary OS community’s community forum guide points to the Reddit and Matrix discussions where users can compare packaging details and ask for focused help.


The application becomes dependable through a simple loop: the project stays open as a folder, changes are saved, the program runs in a known terminal, unusual behaviour is inspected with the debugger and meaningful edits are committed. Extensions remain few enough to understand, only inspected code is trusted, and one package manager handles installation and removal.

Visual Studio Code is not doing the programming by itself. Apt supplies and updates the application, extensions add language services, terminal tools execute the code, and Git records its history. Keeping those roles clear makes faults easier to locate and gives beginners a reliable route to more capable 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.