$linuxjunkies
>

A Linux Remote-Work Setup

Set up a full Linux remote-work environment: multi-monitor displays, Zoom/Teams/Element video calls, WireGuard/OpenVPN, calendar sync, and a password manager.

IntermediateUbuntuDebianFedoraArch10 min readUpdated June 7, 2026

Before you start

  • A working Linux desktop installation with a Wayland or X11 session
  • Sudo or root access for installing packages
  • VPN credentials (.conf or .ovpn file) from your employer or VPN provider
  • Google or Microsoft account credentials for calendar sync

Working remotely on Linux is entirely viable — often superior to other platforms — but it requires deliberate setup. This guide walks through multi-monitor configuration, video conferencing tools, VPN connectivity, calendar sync, and a password manager workflow. Each section is self-contained so you can tackle only what you need.

Multi-Monitor Configuration

On Wayland (GNOME, KDE Plasma 6, Sway), monitor layout is handled natively without X11's xrandr. On X11 sessions, xrandr is still the standard tool.

Wayland: GNOME

Open Settings → Displays. Drag monitors to match your physical layout, set resolution and refresh rate per display, then click Apply. Changes persist via ~/.config/monitors.xml.

Wayland: KDE Plasma 6

Use System Settings → Display and Monitor. Plasma stores layout in ~/.local/share/kscreen/. Hot-plugging is handled automatically.

X11: xrandr

Query connected outputs first:

xrandr --query

Place a second monitor to the right of the primary:

xrandr --output HDMI-1 --auto --right-of eDP-1

To make this persistent across reboots, drop it into ~/.profile or a dedicated autostart script. Replace output names with those shown by --query on your machine.

Scaling on HiDPI mixed setups

Mixed-DPI setups (one HiDPI laptop, one 1080p external) are tricky. On GNOME Wayland, enable fractional scaling:

gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']"

On KDE Plasma 6, fractional scaling is stable by default — set it per-display in the Display settings panel.

Video Conferencing

Zoom

Zoom ships an official .deb and .rpm. Download the current release from zoom.us/download.

Debian/Ubuntu:

sudo apt install ./zoom_amd64.deb

Fedora/RHEL family:

sudo dnf install ./zoom_x86_64.rpm

Arch:

paru -S zoom

Zoom on Wayland now uses native Wayland by default in recent versions. If screen sharing is broken, force it:

WAYLAND_DISPLAY=wayland-0 zoom

If that still fails, switch your session to X11 or install the xdg-desktop-portal-gnome / xdg-desktop-portal-kde package, which enables PipeWire-based screen sharing.

Microsoft Teams

The official Teams Linux client was discontinued in 2023. Use Teams for Web in a Chromium-based browser, which supports camera, microphone, and screen sharing via WebRTC. Alternatively, install the community-maintained teams-for-linux wrapper:

# Arch
paru -S teams-for-linux-bin

# Flatpak (all distros)
flatpak install flathub com.github.IsmaelMartinez.teams_for_linux

The Flatpak requires xdg-desktop-portal for screen sharing under Wayland.

Element (Matrix)

Element is the primary open-source alternative for team chat and video calls.

# Flatpak
flatpak install flathub im.riot.Riot

# Arch
paru -S element-desktop

# Debian/Ubuntu — add the official repo
curl -fsSL https://packages.element.io/debian/element-io-archive-keyring.gpg \
  | sudo tee /usr/share/keyrings/element-io-archive-keyring.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/element-io-archive-keyring.gpg] https://packages.element.io/debian default main" \
  | sudo tee /etc/apt/sources.list.d/element-io.list
sudo apt update && sudo apt install element-desktop

Camera and microphone: PipeWire

Modern distros use PipeWire as the audio/video server. Verify it is running:

systemctl --user status pipewire pipewire-pulse

If either is inactive:

systemctl --user enable --now pipewire pipewire-pulse

List audio devices with:

pactl list short sources

VPN

WireGuard is the recommended protocol for new setups. OpenVPN and Cisco AnyConnect are covered for workplaces that require them.

WireGuard

# Debian/Ubuntu
sudo apt install wireguard

# Fedora
sudo dnf install wireguard-tools

# Arch
sudo pacman -S wireguard-tools

Place your .conf file (provided by your admin) in /etc/wireguard/wg0.conf, then:

sudo systemctl enable --now wg-quick@wg0

If you prefer a GUI, NetworkManager's WireGuard plugin works on all distros:

# Debian/Ubuntu
sudo apt install network-manager-openvpn-gnome
# Import a .conf via nmcli
sudo nmcli connection import type wireguard file /etc/wireguard/wg0.conf

OpenVPN

# Debian/Ubuntu
sudo apt install openvpn network-manager-openvpn-gnome

# Fedora
sudo dnf install openvpn NetworkManager-openvpn-gnome

Import your .ovpn profile through Network Settings → VPN → Import from file, or via CLI:

sudo nmcli connection import type openvpn file company.ovpn

Cisco AnyConnect / OpenConnect

OpenConnect is an open-source AnyConnect-compatible client:

sudo apt install openconnect network-manager-openconnect-gnome   # Debian/Ubuntu
sudo dnf install openconnect NetworkManager-openconnect-gnome    # Fedora

Connect via terminal: sudo openconnect vpn.company.com, or configure it through the NetworkManager VPN panel.

Calendar

Most remote workers need to sync with Google Calendar or Microsoft Exchange/M365.

GNOME: GNOME Calendar + Online Accounts

Go to Settings → Online Accounts and add your Google or Microsoft account. GNOME Calendar, GNOME Contacts, and Evolution mail all read from this shared backend automatically. For Exchange on-premises, use Evolution directly — it has native EWS (Exchange Web Services) support.

KDE: Kontact + Akonadi

Install the full groupware suite:

sudo apt install kontact akonadi-calendar-tools    # Debian/Ubuntu
sudo dnf install kontact                           # Fedora

Add CalDAV (Google) or EWS (Exchange) accounts through Kontact → Settings → Configure KMail → Accounts. Google requires an app password if 2FA is enabled.

Thunderbird + Lightning (cross-distro)

Thunderbird includes calendar support natively since version 115 ("Supernova"). Add Google Calendar via Calendar → New Calendar → On the Network → Google Calendar. For Exchange, install the Owl for Exchange extension (paid) or configure EWS manually.

Password Manager

Bitwarden

Bitwarden is open-source, cross-platform, and has strong Linux support. Install the desktop client:

# Flatpak (recommended, always up to date)
flatpak install flathub com.bitwarden.desktop

# Arch
paru -S bitwarden

# Snap
snap install bitwarden

Install the browser extension in Firefox or Chromium from their respective extension stores. The CLI is available for scripting:

sudo apt install bitwarden-cli    # Debian/Ubuntu via Bitwarden's repo
bw login
bw get password mysite.com

KeePassXC

KeePassXC is the go-to offline option. It integrates with browsers via the KeePassXC-Browser extension and supports SSH agent unlock.

sudo apt install keepassxc      # Debian/Ubuntu
sudo dnf install keepassxc      # Fedora
sudo pacman -S keepassxc        # Arch

Enable SSH agent integration under Tools → Settings → SSH Agent so that your SSH keys unlock with your vault password.

Verification

  • Run xrandr --query (X11) or check Display Settings (Wayland) to confirm all monitors are detected at correct resolutions.
  • Test camera and mic in Zoom or Element's pre-call screen before a real meeting.
  • After connecting via VPN, verify your exit IP: curl https://ifconfig.me — it should match your VPN server's IP.
  • Check calendar sync by creating a test event on your phone and confirming it appears on the Linux calendar within a few minutes.
  • Log in to a website using your password manager browser extension to confirm autofill is working.

Troubleshooting

ProblemLikely causeFix
Screen share black in Zoom/TeamsMissing portal backendInstall xdg-desktop-portal-gnome or -kde, then log out and back in
No audio in video callsPipeWire not running or wrong default deviceRun systemctl --user restart pipewire pipewire-pulse; check pactl list short sources
Second monitor not detectedDisplay connector not activeRun xrandr --auto on X11; hot-unplug and replug cable; check journalctl -b | grep drm for driver errors
WireGuard tunnel up but no trafficDNS or routing not configuredCheck wg show for handshake timestamp; verify DNS = and AllowedIPs = in your .conf
Calendar not syncingToken expired or firewall blocking CalDAV portRe-authenticate in Online Accounts / Kontact; ensure port 443 is open through VPN split-tunnel
tested on:Ubuntu 24.04Fedora 40Arch rollingDebian 12

Frequently asked questions

Does Zoom work properly on Wayland without switching to X11?
Yes, modern Zoom versions support native Wayland, but screen sharing requires xdg-desktop-portal-gnome (GNOME) or xdg-desktop-portal-kde (KDE) to be installed. After installing the portal package, log out and back in.
Is there a supported Microsoft Teams desktop client for Linux?
Microsoft discontinued the official Teams Linux client in 2023. The recommended alternatives are Teams in a Chromium-based browser (full WebRTC support) or the community-maintained teams-for-linux Flatpak.
How do I stop my VPN from routing all traffic, keeping local services accessible?
Configure split tunneling in your WireGuard .conf by setting AllowedIPs to only your company's subnets rather than 0.0.0.0/0. For OpenVPN, ask your admin to push a split-tunnel configuration or remove redirect-gateway def1 from your profile.
Can I sync Google Calendar without giving GNOME my Google account password?
Yes. GNOME Online Accounts uses OAuth2, so you authenticate in a browser and a token is stored — your actual password is never saved locally. For Thunderbird, you will need to generate a Google app password only if your account has 2FA and you add it as a CalDAV account manually.
Is Bitwarden safe to use as a cloud password manager on Linux?
Bitwarden uses end-to-end encryption; your vault is encrypted locally before upload and Bitwarden's servers never see your master password. If you prefer full control, you can self-host the Vaultwarden server on your own infrastructure.

Related guides