Skip to content

Lesson 13 — Communication & Calls

Email, Matrix chat, video calls. Sources: vendor/nixproject/modules/home/selfhosted.nix (Thunderbird, Nheko), vendor/nixproject/modules/home/apps.nix (Zoom, Teams).


Thunderbird — email

Thunderbird connects to your Stalwart mail server at mymail.wilsoz.com.

First-time account setup

  1. Open Thunderbird
  2. Email → Set Up an Existing Email Account
  3. Enter your name, email address, and password
  4. Thunderbird will try to auto-detect — if it fails, enter manually:
  5. IMAP: mymail.wilsoz.com, port 993, SSL/TLS
  6. SMTP: mymail.wilsoz.com, port 465 (or 587), SSL/TLS
  7. Username: your LDAP username
  8. Click Done

The interface

Left panel   → account tree (Inbox, Sent, folders)
Middle panel → message list
Right panel  → message preview

Keyboard shortcuts

Shortcut Action
N New message
R Reply
Shift-R Reply all
F Forward
Del Delete message
M Mark as read/unread
Ctrl-F Search messages
F (in folder list) Filter messages

Organising with folders and filters

Create a folder: Right-click your account → New Folder.

Set up filters (auto-sort incoming mail): 1. Tools → Message Filters → New 2. Set conditions (From, Subject, etc.) 3. Set action (Move to folder, Mark as read, etc.)

Filters run on new mail automatically.

Unified Inbox

If you have multiple accounts, Thunderbird → Local Folders → Unified Folders gives a combined view across all accounts.


Nheko — Matrix chat

Nheko connects to your Matrix server at chat.wilsoz.com (via Synapse). It's a lightweight native Qt client.

First-time setup

  1. Open Nheko
  2. Click Sign in
  3. Homeserver: https://chat.wilsoz.com
  4. Enter your Matrix username (e.g. @marcus:chat.wilsoz.com) and password
  5. Complete any verification steps

Secret storage / E2E encryption

Matrix uses end-to-end encryption (E2E) for DMs and encrypted rooms. Nheko uses secret storage to hold your encryption keys. On first login:

  1. Nheko will ask you to set up a Security Key or Recovery Phrase — do this and store it in Bitwarden
  2. If you see a "secret storage" error on first launch, this is what the claude-fix on your USB stick fixed for the MacBook Air — the fix ensures the keyring (secret storage backend) is properly available in Sway

The interface

Left panel   → room list (rooms you've joined)
Right panel  → current room messages

Useful shortcuts:

Shortcut Action
Ctrl-K Quick room switcher
Ctrl-F Search in current room
Page Up/Down Scroll history
/ in message box Commands (e.g. /join #room:server)

Joining rooms

  • Press the + icon → Join room → enter room address (#room:server.org)
  • For rooms on your own server: #room:chat.wilsoz.com
  • For public rooms on matrix.org or elsewhere, enter the full address

Sending messages

  • Markdown works in most Matrix clients: **bold**, *italic*, `code`
  • Drag and drop to send files/images
  • Reply to a specific message by hovering over it and clicking the reply icon

Zoom — video calls

Native Linux Zoom client. Just works.

zoom                 # launch from terminal, or use app menu

First-time setup

  1. Launch Zoom → Sign In
  2. Use SSO if your organisation has it, otherwise email + password
  3. Go to Settings → Audio → select your microphone (check it works with easyeffects running if you use mic processing — see lesson 16)
  4. Go to Settings → Video → select your camera (EliteBook camera or external USB webcam)

During a call

  • Mute/unmute: Alt-A (or the mute button)
  • Start/stop video: Alt-V
  • Share screen: Alt-Shift-S (on Wayland you'll get a window/screen picker)
  • Reactions: use the Reactions menu in the toolbar

Wayland screen sharing

On Wayland, Zoom uses the XDG Desktop Portal for screen sharing — you'll get a picker to choose which window or screen to share. This works correctly with your PipeWire setup.


Teams — PWA in Chromium

Microsoft Teams has no native Linux desktop app. Your config installs it as a Progressive Web App (PWA) in Chromium, which gives it its own window and app menu entry.

Look for Microsoft Teams in your app menu — it opens https://teams.microsoft.com in a standalone Chromium window.

Why PWA works for Teams

  • Camera and microphone work via the browser's media APIs
  • Screen sharing works on Wayland (uses XDG portal, same as Zoom)
  • Notifications work via the browser's notification system
  • It behaves like a native app with its own window and taskbar entry

First-time setup

  1. Open the Teams PWA from the app menu
  2. Sign in with your Microsoft account
  3. Allow camera and microphone when prompted
  4. In Teams Settings → Notifications → enable browser notifications

Microphone with Teams

If you're using easyeffects for mic processing (noise reduction, EQ), make sure Teams is picking up the processed output:

  1. Open Zoom / Teams
  2. In their audio settings, look for a device labelled something like easyeffects_sink or WEBRTC VoiceCapture
  3. Select that as the microphone input

If you can't find it, open qpwgraph to see how audio is routing and connect the right nodes (see lesson 16).


Camera quick reference

Machine Camera situation
EliteBook 845 Built-in webcam — works normally
MacBook Air FaceTime HD camera — works via facetimehd module but can be flaky; USB webcam is reliable fallback

For important video calls on the MacBook Air, the $20 USB webcam mentioned in the README is the safe choice.