software catalog

This commit is contained in:
2026-10-28 15:08:48 -06:00
parent 201ed5f730
commit c468387825
152 changed files with 4127 additions and 68 deletions
+10 -67
View File
@@ -9,11 +9,15 @@ sections:
subhead: "CoreDesktop installs a lot of useful software, mostly for work at Federated Computer, but you may find it useful too. Missing something? Suggest it, or send in a PR."
tiles: ["neovim", "Firefox", "Element"]
ctas:
- label: "Browse the catalog"
url: "#catalog"
style: primary
- label: "Suggest a title"
url: "/contribute/"
style: primary
style: ghost
- type: table
id: sources
kicker: "Four sources"
headline: "Where the software comes from."
lede: "Each source has its own list in the repository, so you can see exactly what's installed."
@@ -24,72 +28,11 @@ sections:
- ["Flathub", "48 desktop apps in their own sandboxes", "[install-flatpaks.sh](https://gitea.federated.computer/Federated_Computer/coredesktop/src/branch/main/install-flatpaks.sh)"]
- ["mise", "Ruby and Rails", "[install-mise-ruby-rails.sh](https://gitea.federated.computer/Federated_Computer/coredesktop/src/branch/main/install-mise-ruby-rails.sh)"]
- type: cards
kicker: "From Flathub"
headline: "48 desktop apps, ready on first login."
lede: "Want more? Visit [flathub.org](https://flathub.org)."
columns: 3
items:
- label: "Browsers"
title: "Every browser you test against"
body: "Chrome, Chromium, Firefox, Brave, Zen and Vivaldi, plus Helium from the AUR as the default. Pick another in Settings › Apps › Default Apps."
- label: "Messaging"
title: "Talk to anyone"
body: "Signal, Telegram, Discord, Revolt and FluffyChat, Element from pacman, and Zoom for meetings."
- label: "Email & notes"
title: "Write it down"
body: "Thunderbird and Evolution for email; Obsidian, Logseq and Xournal++ for notes; Apostrophe for Markdown writing."
- label: "Media"
title: "Make and play media"
body: "Kdenlive for video editing, OBS for recording, Audacity for audio, Inkscape for vector graphics, Scribus for page layout, Spotify and Jellyfin."
- label: "Developers"
title: "Code and data"
body: "VS Code and VSCodium (VS Code without the Microsoft telemetry), Postman, DBeaver and Beekeeper Studio."
- label: "Local AI"
title: "Models on your own machine"
body: "Alpaca and LM Studio run language models locally, with nothing leaving your computer."
- label: "Remote"
title: "Reach other machines"
body: "Remmina and RustDesk for remote desktops, LocalSend to send files to nearby devices, and Trayscale for Tailscale."
- label: "Utilities"
title: "The useful little things"
body: "Boxes for virtual machines, Impression to write ISOs to USB sticks, Warehouse to manage Flatpaks, Extension Manager for [GNOME](https://www.gnome.org), and Helvum for audio routing."
- label: "And more"
title: "Downtime included"
body: "qBittorrent, RetroArch and others. See [install-flatpaks.sh](https://gitea.federated.computer/Federated_Computer/coredesktop/src/branch/main/install-flatpaks.sh) for the full list."
- type: split
kicker: "Development tools"
headline: "A full toolchain, out of the box."
lede: "Everything you need to build, run and ship, including three terminals: the GNOME console, kitty and ghostty."
columns:
- title: "Languages & runtimes"
items:
- "Go, Rust, Python, Node.js, npm and Bun"
- "Ruby and Rails, through mise"
- "Hugo and Dart Sass for websites"
- "Docker, Docker Compose and lazydocker"
- "pandoc and TeX Live for documents"
- title: "In the terminal"
items:
- "neovim (with kickstart.nvim), vim and tmux (with tpm)"
- "herdr, lazygit and difftastic"
- "ripgrep, fd, fzf, bat, eza, zoxide and yazi"
- "btop, htop, fastfetch and hyperfine"
- "nmap, mtr, sniffnet and whois"
- type: checklist
kicker: "On the desktop"
headline: "Also from pacman and the AUR."
items:
- "**LibreOffice** for documents, spreadsheets and slides"
- "**Bitwarden** for passwords"
- "**Element** for Matrix chat"
- "**GIMP**, **Flameshot** and **ImageMagick** for images"
- "**VLC** and **mpv** for video"
- "**Winboat** to run Windows apps"
- "**Cline Desktop**, in the AI sandbox"
- "**GNOME Tweaks** and the extra GNOME apps"
- type: catalog
id: catalog
kicker: "Catalog"
headline: "Everything CoreDesktop installs."
lede: "Grouped by what you'd use it for. Open a title for what it does, how CoreDesktop sets it up, and links to its website and source code. The libraries and plumbing behind them are in [packages.conf](https://gitea.federated.computer/Federated_Computer/coredesktop/src/branch/main/packages.conf)."
- type: final-cta
headline: "Something missing?"
+28
View File
@@ -0,0 +1,28 @@
---
title: "age"
category: "Backup, files and security"
tagline: "Simple, modern file encryption with small keys and no configuration."
source: "pacman"
package: "age"
command: "age"
website: "https://age-encryption.org/"
code: "https://github.com/FiloSottile/age"
---
## What it is
age encrypts files. You encrypt to someone's short public key, or to a passphrase, and only the matching private key or passphrase can decrypt the result. It does one job, has no settings to get wrong, and is a simpler alternative to GPG for sending or storing a file safely. `age-keygen` makes a key pair, and age can also encrypt to SSH public keys.
```
age -p -o notes.txt.age notes.txt
```
## Why it's here
- **Hard to misuse.** There are no ciphers or options to pick.
- **Small keys.** A public key fits on one line, so it's easy to share.
- **Works with SSH keys.** Encrypt a file to a colleague's existing `ssh-ed25519` key.
## On CoreDesktop
age is installed from pacman, with nothing extra configured. Run `age` in a terminal. `update` keeps it current with the rest of the Arch packages.
+25
View File
@@ -0,0 +1,25 @@
---
title: "Alpaca"
category: "AI"
tagline: "A GNOME app for chatting with AI models, including ones that run entirely on your computer."
source: "Flathub"
package: "com.jeffser.Alpaca"
website: "https://jeffser.com/alpaca/"
code: "https://github.com/Jeffser/Alpaca"
---
## What it is
Alpaca is a chat app for AI language models, built for the GNOME desktop. It runs open models locally through Ollama, so your conversations never leave your computer, and can also connect to online providers when you want a larger model.
You download models from inside the app, then chat with them much as you would with an online assistant: ask questions, attach documents and images, and keep several conversations side by side.
## Why it's here
- **Private.** With a local model, nothing you type is sent anywhere.
- **Native.** It looks and behaves like the rest of the GNOME desktop.
- **Easy models.** Find, download and switch models without touching a terminal.
## On CoreDesktop
Alpaca is installed from Flathub. Open it from the app menu. Local models run on your own hardware, so larger ones need plenty of memory and work best with a capable GPU. `update` keeps Alpaca current with the rest of the Flatpaks.
+24
View File
@@ -0,0 +1,24 @@
---
title: "Apostrophe"
category: "Office, notes and writing"
tagline: "A distraction-free Markdown editor for GNOME, with live preview and export."
source: "Flathub"
package: "org.gnome.gitlab.somas.Apostrophe"
replaces: ["iA Writer", "Typora"]
website: "https://apps.gnome.org/Apostrophe/"
code: "https://gitlab.gnome.org/World/apostrophe"
---
## What it is
Apostrophe is a Markdown editor for writing prose. Its window is a clean page with a focus mode that dims everything but the current sentence, a word and character count, and a live preview of the formatted text. Behind the scenes it uses Pandoc, so you can export to HTML, PDF, Word documents and other formats.
## Why it's here
- **Room to write.** Nothing on screen but your text, for essays, posts and drafts.
- **Plain Markdown.** Files are ordinary `.md` text that any other tool can open.
- **Export anywhere.** Pandoc turns a draft into a document in the format you need.
## On CoreDesktop
CoreDesktop installs Apostrophe as a Flatpak from Flathub. Open it from the app grid, or open a Markdown file with it from Files. `update` keeps it current along with your other Flatpaks.
+27
View File
@@ -0,0 +1,27 @@
---
title: "asdf"
category: "Languages and runtimes"
tagline: "A plugin-based version manager for languages and tools, driven by .tool-versions files."
source: "AUR"
package: "asdf-vm"
command: "asdf"
website: "https://asdf-vm.com/"
code: "https://github.com/asdf-vm/asdf"
links:
- name: "Getting started with asdf"
url: "https://asdf-vm.com/guide/getting-started.html"
---
## What it is
asdf manages several versions of programming languages and tools, such as Node.js, Ruby, Python or Elixir, through plugins. A `.tool-versions` file in a project lists the versions it needs, and asdf uses them whenever you work in that directory.
## Why it's here
- **One manager, many languages.** Plugins cover hundreds of tools.
- **Shared project files.** Many projects already ship a `.tool-versions` file.
- **An alternative to mise.** For teams and scripts that expect asdf.
## On CoreDesktop
asdf is installed from the AUR, but CoreDesktop doesn't add it to your shell: follow asdf's getting started guide to put its shims on your PATH. CoreDesktop manages Ruby with [mise](/software/mise/), which reads `.tool-versions` files too. `update` keeps asdf current with the rest of the AUR packages.
+23
View File
@@ -0,0 +1,23 @@
---
title: "Audacity"
category: "Audio and video"
tagline: "Record and edit audio: podcasts, voiceovers, interviews and music."
source: "Flathub"
package: "org.audacityteam.Audacity"
replaces: ["Adobe Audition"]
website: "https://www.audacityteam.org/"
code: "https://github.com/audacity/audacity"
---
## What it is
Audacity is an open-source audio editor and recorder. You record from a microphone or open existing audio files, then cut, copy, mix and arrange them on multiple tracks. Built-in effects handle noise reduction, normalizing, compression and equalization, and it exports to formats such as WAV, MP3, FLAC and Ogg.
## Why it's here
- **Clean up recordings.** Remove background noise, trim mistakes and even out levels in a voice recording.
- **Podcasts and voiceovers.** Multitrack editing is enough for interviews and narration.
## On CoreDesktop
CoreDesktop installs Audacity as a Flatpak from Flathub. Open it from the app grid. `update` keeps it current along with your other Flatpaks.
+26
View File
@@ -0,0 +1,26 @@
---
title: "bat"
category: "Terminal and shell"
tagline: "cat with syntax highlighting, line numbers and Git changes."
source: "pacman"
package: "bat"
command: "bat"
code: "https://github.com/sharkdp/bat"
---
## What it is
bat prints files to the terminal like `cat`, but with syntax highlighting for most languages, line numbers, and markers for lines changed since the last Git commit. Long files open in a pager so you can scroll.
```
bat script.sh
```
## Why it's here
- **Readable code in the terminal.** Highlighting makes config files and scripts easier to scan.
- **Good previews.** Other tools use it to show file contents, such as fzf's preview pane.
## On CoreDesktop
bat is installed from pacman. Type `bat` in a terminal. CoreDesktop's `ff` alias uses it to preview files while you fuzzy-find them with fzf. `update` keeps bat current along with the rest of the pacman packages.
+24
View File
@@ -0,0 +1,24 @@
---
title: "Beekeeper Studio"
category: "Developer tools"
tagline: "A clean, easy SQL editor and database manager for PostgreSQL, MySQL, SQLite and more."
source: "Flathub"
package: "io.beekeeperstudio.Studio"
replaces: ["TablePlus"]
website: "https://www.beekeeperstudio.io/"
code: "https://github.com/beekeeper-studio/beekeeper-studio"
---
## What it is
Beekeeper Studio is a database client focused on being simple to use. You connect to a database such as PostgreSQL, MySQL, SQLite or SQL Server, write queries in tabs with autocompletion, and browse and edit table data in a spreadsheet-like view. Saved queries and query history are kept for each connection.
## Why it's here
- **Easy to pick up.** A modern interface without the clutter of larger database tools.
- **Everyday SQL.** Fast for writing queries and checking data during development.
- **Open source.** The Community edition is free.
## On CoreDesktop
Beekeeper Studio is installed from Flathub. Open it from the app menu. `update` keeps it current with the rest of the Flatpaks.
+32
View File
@@ -0,0 +1,32 @@
---
title: "Bitwarden"
category: "Backup, files and security"
tagline: "An open-source password manager that syncs across your devices and doubles as your SSH agent."
source: "pacman"
package: "bitwarden"
command: "bitwarden-desktop"
replaces: ["1Password", "LastPass"]
website: "https://bitwarden.com/"
code: "https://github.com/bitwarden/clients"
links:
- name: "Bitwarden SSH agent"
url: "https://bitwarden.com/help/ssh-agent/"
---
## What it is
Bitwarden is a password manager. It keeps your passwords, passkeys, card details and secure notes in an encrypted vault that only your master password can open, and syncs it between the desktop app, your phone and browser extensions.
The desktop app can also store SSH keys and act as an SSH agent, so `ssh` and `git` ask Bitwarden for a key instead of reading one from `~/.ssh`.
## Why it's here
- **Open source and audited.** The clients and server code are public, and the encryption happens on your device.
- **Everywhere you are.** The same vault works on Linux, Windows, macOS, Android, iOS and in every major browser.
- **Somewhere safe for the important things.** Such as the backup passphrase `configure` shows you once.
## On CoreDesktop
CoreDesktop installs the Bitwarden desktop app from pacman. Open it from the app menu, or run `bitwarden-desktop`. Install and every `update` make sure your `~/.bashrc` has a line that points `SSH_AUTH_SOCK` at `~/.bitwarden-ssh-agent.sock`, so once you turn on the SSH agent in Bitwarden's settings, your terminal uses the keys in your vault.
When you set up [backups](/utilities/#configure), save the passphrase in Bitwarden. The [AI sandbox](/ai-sandbox/) keeps agents out of `~/.config/Bitwarden`. `update` keeps Bitwarden current with the rest of the Arch packages.
+26
View File
@@ -0,0 +1,26 @@
---
title: "BlueZ"
category: "Desktop and system"
tagline: "The Linux Bluetooth stack, turned on, so headphones, mice and keyboards just pair."
source: "pacman"
package: "bluez"
command: "bluetoothctl"
code: "https://git.kernel.org/pub/scm/bluetooth/bluez.git"
links:
- name: "Bluetooth on the Arch wiki"
url: "https://wiki.archlinux.org/title/Bluetooth"
---
## What it is
BlueZ is the official Bluetooth stack for Linux. Its service talks to your Bluetooth adapter and handles pairing and connections, and GNOME's Bluetooth settings are built on it. bluez-utils adds `bluetoothctl`, a command-line tool for scanning, pairing and connecting devices.
## Why it's here
- **Wireless devices work.** Headphones, speakers, mice, keyboards and game controllers.
- **Managed from Settings.** Pairing happens in GNOME, no terminal needed.
- **A fallback in the terminal.** `bluetoothctl` helps when a device won't behave.
## On CoreDesktop
CoreDesktop installs BlueZ and bluez-utils from pacman and enables `bluetooth.service`. Pair devices in **Settings › Bluetooth**. `update` keeps both current.
+31
View File
@@ -0,0 +1,31 @@
---
title: "BorgBackup"
category: "Backup, files and security"
tagline: "Deduplicating, compressed, encrypted backups to a disk or a server over SSH."
source: "pacman"
package: "borg"
command: "borg"
website: "https://www.borgbackup.org/"
code: "https://github.com/borgbackup/borg"
links:
- name: "Borg documentation"
url: "https://borgbackup.readthedocs.io/"
---
## What it is
BorgBackup, or Borg, makes backups into a repository on a local disk or on a server you reach over SSH. Each backup is a full snapshot you can browse or mount, but Borg stores only the chunks of data that changed, so daily backups take little extra space. Data is compressed and can be encrypted before it leaves your machine.
```
borg create /mnt/usb/borg::{now} ~/Documents
```
## Why it's here
- **Space-efficient.** Deduplication means a year of daily backups can fit where a few full copies would.
- **Encrypted.** Repositories can be encrypted with a key only you hold.
- **Good for your own backups.** To a USB drive, a NAS or any server with SSH.
## On CoreDesktop
Borg is installed from pacman for backups you set up yourself. CoreDesktop's own daily [backups](/utilities/#backups) use [restic](/software/restic/) instead, so Borg doesn't run unless you use it. The [AI sandbox](/ai-sandbox/) keeps agents out of `~/.config/borg`, where Borg keeps its keys. `update` keeps it current with the rest of the Arch packages.
+24
View File
@@ -0,0 +1,24 @@
---
title: "GNOME Boxes"
category: "Desktop and system"
tagline: "Run other operating systems in virtual machines, set up in a few clicks."
source: "Flathub"
package: "org.gnome.Boxes"
replaces: ["VMware Workstation", "Parallels Desktop"]
website: "https://apps.gnome.org/Boxes/"
code: "https://gitlab.gnome.org/GNOME/gnome-boxes"
---
## What it is
GNOME Boxes creates and runs virtual machines: whole computers running inside a window. Pick an operating system from its list and Boxes downloads it, or point it at an ISO file. It uses QEMU and KVM underneath, the same virtualization Linux servers use, but hides the details.
## Why it's here
- **Try before you install.** Test another Linux distribution without touching your disk.
- **A clean test machine.** Check software or a website on a fresh system, then throw it away.
- **Simple.** Sensible defaults and a short setup instead of pages of options.
## On CoreDesktop
Boxes is installed from Flathub. Open it from the app menu. Virtual machines need virtualization turned on in your computer's firmware settings. The Flatpak update keeps Boxes current.
+28
View File
@@ -0,0 +1,28 @@
---
title: "Brave"
category: "Web browsers"
tagline: "A Chromium-based browser that blocks ads and trackers out of the box."
source: "Flathub"
package: "com.brave.Browser"
replaces: ["Google Chrome", "Microsoft Edge"]
website: "https://brave.com/"
code: "https://github.com/brave/brave-browser"
---
## What it is
Brave is a web browser built on Chromium with privacy features added on top. Its built-in Shields block ads, trackers and fingerprinting by default, and it includes a private window that routes through Tor, its own search engine, and an optional AI assistant.
Because it's Chromium underneath, Chrome extensions install from the Chrome Web Store and sites built for Chrome work as expected.
## Why it's here
- **Blocking without setup.** Ads and trackers are blocked from the first page you open.
- **Chrome-compatible.** Web apps, video calls and extensions behave as they do in Chrome.
- **Tor when you need it.** A private window with Tor is one menu item away.
## On CoreDesktop
CoreDesktop installs Brave as a Flatpak from Flathub. Open it from the app grid. Helium is CoreDesktop's default browser; to make Brave the default instead, pick it in **Settings › Apps › Default Apps**.
The sandboxed AI agents can't read your Brave profile. `update` keeps Brave current along with your other Flatpaks.
+23
View File
@@ -0,0 +1,23 @@
---
title: "btop"
category: "Desktop and system"
tagline: "A colorful terminal monitor for CPU, memory, disks, network and processes."
source: "pacman"
package: "btop"
command: "btop"
code: "https://github.com/aristocratos/btop"
---
## What it is
btop is a resource monitor for the terminal. It shows CPU use per core, memory, disk and network activity as live graphs, with a sortable, filterable list of processes underneath that you can inspect or stop. It works with the mouse as well as the keyboard.
## Why it's here
- **The whole machine at a glance.** See what's busy without opening several tools.
- **Find the culprit.** Sort processes by CPU or memory and stop the one misbehaving.
- **Works over SSH.** Check a remote machine from your terminal.
## On CoreDesktop
btop is installed from pacman, with nothing extra configured. Run `btop` in a terminal and press <kbd>q</kbd> to quit. `update` keeps it current.
+23
View File
@@ -0,0 +1,23 @@
---
title: "Bubblewrap"
category: "Backup, files and security"
tagline: "The unprivileged sandboxing tool that keeps AI agents and Flatpak apps in their own box."
source: "pacman"
package: "bubblewrap"
command: "bwrap"
code: "https://github.com/containers/bubblewrap"
---
## What it is
Bubblewrap runs a program in a sandbox: a private view of the file system in which it sees only the folders it's been given, optionally without network access. It uses the kernel's namespaces, so no root daemon is involved. It's a building block for other tools rather than something most people run directly.
## Why it's here
- **It contains the AI agents.** The sandbox that limits which files they can read and write is built on it.
- **It contains Flatpak apps.** Flatpak runs every app inside a Bubblewrap sandbox.
- **No root needed.** Sandboxes are set up by your user, not a privileged service.
## On CoreDesktop
Bubblewrap is installed from pacman. CoreDesktop's [AI sandbox](/ai-sandbox/) uses Anthropic's sandbox runtime, which relies on Bubblewrap and socat, to run opencode, Hermes Agent and Cline Desktop, and Claude Code's own built-in sandbox uses it too. You don't need to run `bwrap` yourself. `update` keeps it current.
+31
View File
@@ -0,0 +1,31 @@
---
title: "Bun"
category: "Languages and runtimes"
tagline: "A JavaScript runtime, package manager, bundler and test runner in one fast tool."
source: "pacman"
package: "bun"
command: "bun"
website: "https://bun.com/"
code: "https://github.com/oven-sh/bun"
links:
- name: "Bun documentation"
url: "https://bun.com/docs"
---
## What it is
Bun runs JavaScript and TypeScript, like Node.js, and also installs packages, bundles code and runs tests, all from one binary. It aims to work as a drop-in replacement for Node.js in most projects, and runs TypeScript files directly without a separate build step.
## Why it's here
- **Fast installs.** `bun install` reads `package.json` and installs dependencies much faster than npm.
- **TypeScript without setup.** `bun run file.ts` just works.
- **Fewer tools.** Runtime, package manager, bundler and test runner in one.
## On CoreDesktop
Bun is installed from pacman, alongside Node.js, so you can use either per project. `update` keeps it current with the rest of the pacman packages.
```
bun run index.ts
```
+25
View File
@@ -0,0 +1,25 @@
---
title: "Chromium"
category: "Web browsers"
tagline: "The open-source browser that Chrome, Brave, Vivaldi and Helium are built on."
source: "Flathub"
package: "org.chromium.Chromium"
replaces: ["Google Chrome", "Microsoft Edge"]
website: "https://www.chromium.org/Home/"
code: "https://chromium.googlesource.com/chromium/src"
---
## What it is
Chromium is the open-source web browser project behind Google Chrome. Chrome, Microsoft Edge, Brave, Vivaldi and Helium all start from its code and add their own features. Chromium on its own is the plain version: the same engine and interface as Chrome, without Google's branding, sign-in prompts or automatic background updater.
## Why it's here
- **Chrome without the extras.** Sites and extensions that work in Chrome work here, built entirely from open source.
- **A clean testing browser.** It's useful as a separate browser with its own profile for testing web apps or keeping work and personal browsing apart.
## On CoreDesktop
CoreDesktop installs Chromium as a Flatpak from Flathub. Open it from the app grid. Helium is CoreDesktop's default browser; to make Chromium the default instead, pick it in **Settings › Apps › Default Apps**.
The sandboxed AI agents can't read your Chromium profile. `update` keeps Chromium current along with your other Flatpaks.
+24
View File
@@ -0,0 +1,24 @@
---
title: "Clang"
category: "Languages and runtimes"
tagline: "The LLVM compiler for C, C++ and Objective-C, alongside Arch's standard build tools."
source: "pacman"
package: "clang"
command: "clang"
website: "https://clang.llvm.org/"
code: "https://github.com/llvm/llvm-project"
---
## What it is
Clang is a compiler for C, C++ and Objective-C, part of the LLVM project. It turns source code into programs, with clear error messages and fast compiles, and comes with tools such as `clang-format` for formatting code and `clang-tidy` for finding bugs. It's the default compiler on macOS and is used to build Chrome and Firefox.
## Why it's here
- **Readable errors.** Its messages point to the exact spot and often suggest the fix.
- **Needed for builds.** Some software compiles only with Clang, or needs its libraries.
- **Code tools.** Formatting and static analysis for C and C++ projects.
## On CoreDesktop
Clang is installed from pacman. CoreDesktop includes it, with [CMake](/software/cmake/), because Hermes Agent's Matrix support builds a library that needs `clang++`. CoreDesktop also installs `base-devel`, Arch's group of build tools: GCC, make, pkgconf and the rest of what's needed to compile software and build AUR packages. `update` keeps them all current with the rest of the pacman packages.
+33
View File
@@ -0,0 +1,33 @@
---
title: "Claude Code"
category: "AI"
tagline: "Anthropic's coding agent for the terminal, with its built-in sandbox turned on for every command it runs."
source: "installer"
command: "claude"
website: "https://claude.com/product/claude-code"
links:
- name: "Claude Code documentation"
url: "https://code.claude.com/docs/en/overview"
- name: "Claude Code sandboxing"
url: "https://code.claude.com/docs/en/sandboxing"
---
## What it is
Claude Code is Anthropic's AI coding agent. You run it in a terminal inside a project, describe what you want in plain language, and it reads the code, edits files, runs commands and tests, and explains what it did. It asks before it does anything you haven't allowed.
It works with Git, understands large codebases, and can be extended with your own commands, hooks and MCP servers.
## Why it's here
- **Works where the code is.** It runs in your terminal and project directory, next to your editor and tools.
- **Reads before it writes.** It looks through the codebase to understand it, then makes focused changes you can review.
- **Contained.** Every command it runs goes through its own sandbox, limited to your project and an allow list of sites.
## On CoreDesktop
CoreDesktop installs Claude Code with Anthropic's official native installer, which puts `claude` in `~/.local/bin` and keeps itself up to date; CoreDesktop adds `~/.local/bin` to your PATH. If you don't already have `~/.claude/settings.json`, it writes one with hooks that show a desktop notification when Claude needs your input and when it finishes a task.
The other agents run in CoreDesktop's sandbox, but Claude Code can't, because bubblewrap can't run inside itself. Instead CoreDesktop turns on Claude Code's own built-in sandbox and gives it the same list of allowed sites; anything you've already set in the `sandbox` section of your settings wins. Type `/sandbox` inside Claude to see it. The other agents can't read Claude's login. See [AI sandbox](/ai-sandbox/) for how the sandboxes work.
Before the first use, run `configure claude` and choose how you pay: a Claude subscription (Pro, Max, Team or Enterprise) or the Anthropic Console. Then start it from a project directory with `claude`.
+27
View File
@@ -0,0 +1,27 @@
---
title: "cliamp"
category: "Entertainment"
tagline: "A retro terminal music player inspired by Winamp, for local files, streams and podcasts."
source: "AUR"
package: "cliamp"
command: "cliamp"
website: "https://www.cliamp.stream/"
code: "https://github.com/bjarneo/cliamp"
---
## What it is
cliamp is a music player for the terminal, styled after Winamp 2. It plays local files and folders, internet radio and podcasts, and can connect to streaming services and media servers such as Spotify, YouTube Music, SoundCloud, Navidrome, Plex and Jellyfin.
```
cliamp ~/Music
```
## Why it's here
- **Music without leaving the terminal.** Play a folder or a stream from the shell you're already in.
- **Winamp, in a terminal.** A spectrum visualizer, parametric equalizer and playlists, in a Winamp-style layout.
## On CoreDesktop
CoreDesktop installs cliamp from the AUR. Run `cliamp` in a terminal. `update` keeps it current with the rest of the AUR packages.
+28
View File
@@ -0,0 +1,28 @@
---
title: "Cline Desktop"
category: "AI"
tagline: "The Cline coding agent as a desktop app, sandboxed to your projects in ~/Projects."
source: "AUR"
package: "cline-desktop"
command: "cline-desktop"
website: "https://cline.bot/desktop"
code: "https://github.com/cline/cline"
---
## What it is
Cline is an open-source AI coding agent, best known as an extension for VS Code. Cline Desktop is the same agent as a standalone app: you open a project folder, talk to the agent in a chat window, and it reads, edits and runs your code while showing the project and Git branch it's working on.
You bring your own API key for any provider, such as Anthropic, OpenAI, Gemini or a local model, or sign in with a Cline account. Sessions are kept in a sidebar, and you can edit an earlier message to rewind the project and try again from there.
## Why it's here
- **No editor required.** A coding agent in its own window, for when you don't want a full IDE open.
- **Any provider.** Use the models you already pay for, and switch mid-project.
- **Open source.** The same open Cline agent as the editor extension and command line.
## On CoreDesktop
Cline Desktop comes from the AUR as an unofficial Linux build, compiled from Cline's source. Opened from the app menu, it runs in CoreDesktop's [AI sandbox](/ai-sandbox/) and starts in `~/Projects`: it can change files there, open projects elsewhere only to read them, and reach Cline's own servers (cline.bot) along with AI providers and common developer sites. It can't read your SSH keys, passwords, browser data or the other agents' logins.
It draws through your Wayland session but can't reach the session's other sockets, so it runs without D-Bus, the keyring or the GPU. To run it without the sandbox, type `unsandboxed cline-desktop`. `update` keeps it current with the rest of the AUR packages.
+27
View File
@@ -0,0 +1,27 @@
---
title: "CMake"
category: "Languages and runtimes"
tagline: "The cross-platform build system generator most C and C++ projects use."
source: "pacman"
package: "cmake"
command: "cmake"
website: "https://cmake.org/"
code: "https://gitlab.kitware.com/cmake/cmake"
---
## What it is
CMake describes how to build a C or C++ project in a `CMakeLists.txt` file, then generates the build files for whatever tool does the compiling, such as make or Ninja. The same project builds on Linux, macOS and Windows.
## Why it's here
- **The common standard.** Most open-source C and C++ projects build with it.
- **Needed for installs.** Some Python and Rust packages run CMake to compile their native parts.
## On CoreDesktop
CMake is installed from pacman. CoreDesktop includes it, with [Clang](/software/clang/), because Hermes Agent's Matrix support builds python-olm, which needs it; when `update` updates Hermes, it tells CMake how to build python-olm's older build files. `update` keeps CMake current with the rest of the pacman packages.
```
cmake -B build && cmake --build build
```
+23
View File
@@ -0,0 +1,23 @@
---
title: "Codd"
category: "Developer tools"
tagline: "A lightweight, native PostgreSQL client for GNOME."
source: "Flathub"
package: "io.github.anil_e.Codd"
code: "https://github.com/anil-e/codd"
---
## What it is
Codd is a PostgreSQL client built for the GNOME desktop with GTK and libadwaita. It saves your connections, with passwords stored in the keyring, and lets you browse tables and views, inspect their columns, indexes and constraints, and write SQL with highlighting and schema-aware completion. You can page through and edit table rows, staging changes and committing them together in one transaction.
It's named after Edgar F. Codd, who introduced the relational model behind SQL databases.
## Why it's here
- **Native and light.** A GNOME app, not a browser in a window.
- **Focused on PostgreSQL.** The everyday jobs, done simply.
## On CoreDesktop
Codd is installed from Flathub. Open it from the app menu. `update` keeps it current with the rest of the Flatpaks.
+26
View File
@@ -0,0 +1,26 @@
---
title: "CUPS"
category: "Desktop and system"
tagline: "The printing system for Linux, turned on, with a PDF printer included."
source: "pacman"
package: "cups"
website: "https://openprinting.github.io/cups/"
code: "https://github.com/OpenPrinting/cups"
links:
- name: "CUPS on the Arch wiki"
url: "https://wiki.archlinux.org/title/CUPS"
---
## What it is
CUPS is the printing service on Linux and most Unix systems. Apps send it documents, and it queues them and talks to your printers, over USB or the network. Most current network printers work with it without a driver, using the IPP Everywhere standard.
## Why it's here
- **Printing works.** Add a printer and print from any app.
- **Driverless for most printers.** Modern network printers are found and set up automatically.
- **Print to PDF.** cups-pdf adds a virtual printer that saves to a file.
## On CoreDesktop
CoreDesktop installs CUPS from pacman with cups-pdf and gtk3-print-backends, which lets GTK apps see your printers, and turns `cups.service` on. Add printers in **Settings › Printers**. Only this computer can reach the printing service: [audit](/utilities/#audit) lists it on port 631. As the [System page](/system/) notes, printing to other CoreDesktop machines may need more work. `update` keeps CUPS current.
+31
View File
@@ -0,0 +1,31 @@
---
title: "curl"
category: "Networking and remote access"
tagline: "Transfer data to and from URLs: download files, call APIs, test web servers."
source: "pacman"
package: "curl"
command: "curl"
website: "https://curl.se/"
code: "https://github.com/curl/curl"
links:
- name: "GNU Wget"
url: "https://www.gnu.org/software/wget/"
---
## What it is
curl sends requests to URLs and prints or saves what comes back. It speaks HTTP and HTTPS along with FTP, SFTP and many other protocols, and lets you set headers, methods and request bodies, which makes it the standard tool for testing web APIs and downloading in scripts.
```
curl -L -o file.zip https://example.com/file.zip
```
## Why it's here
- **APIs from the terminal.** Send any HTTP request and see the full response.
- **Downloads in scripts.** Installers and scripts everywhere use it.
- **Debugging web servers.** `curl -I` shows a site's headers and redirects.
## On CoreDesktop
curl is installed from pacman. CoreDesktop also installs GNU Wget, `wget`, which is simpler for downloading files and can fetch whole directories recursively; CoreDesktop's own install command uses it. `update` keeps both current with the pacman packages.
+27
View File
@@ -0,0 +1,27 @@
---
title: "Dart Sass"
category: "Languages and runtimes"
tagline: "The reference Sass compiler, for writing CSS with variables, nesting and mixins."
source: "pacman"
package: "dart-sass"
command: "sass"
website: "https://sass-lang.com/"
code: "https://github.com/sass/dart-sass"
---
## What it is
Sass is a stylesheet language that compiles to CSS. It adds variables, nesting, mixins and modules, so large stylesheets stay organized. Dart Sass is the main implementation, maintained by the Sass team, and the one that gets new features first.
## Why it's here
- **Better CSS.** Reuse values and patterns instead of repeating them.
- **Works with Hugo.** Hugo can compile a site's Sass with Dart Sass.
## On CoreDesktop
Dart Sass is installed from pacman and provides the `sass` command. `update` keeps it current with the rest of the pacman packages.
```
sass --watch styles.scss styles.css
```
+30
View File
@@ -0,0 +1,30 @@
---
title: "davfs2"
category: "Backup, files and security"
tagline: "Mounts a WebDAV share, such as your Nextcloud files, as an ordinary folder."
source: "pacman"
package: "davfs2"
website: "https://savannah.nongnu.org/projects/davfs2"
code: "https://github.com/alisarctl/davfs2"
links:
- name: "cadaver"
url: "https://notroj.github.io/cadaver/"
---
## What it is
davfs2 is a file system driver for WebDAV, the protocol Nextcloud and many other file servers use. It mounts a WebDAV share at a folder, so any app can open and save files there as if they were on your disk. It keeps a local cache so files you've opened stay quick.
cadaver, installed alongside it, is a command-line WebDAV client: it browses a share and uploads or downloads files with FTP-style commands, without mounting anything.
## Why it's here
- **Your Nextcloud in Files.** Open and save your Core's files from any app.
- **No sync client needed.** Files stay on the server instead of being copied to every machine.
- **A quick check from the terminal.** cadaver lists or fetches files on a WebDAV server in seconds.
## On CoreDesktop
When you connect your Core with [configure](/utilities/#configure), it mounts your Nextcloud files with davfs2 at `/mnt/{your domain}`. It adds the mount to `/etc/fstab` so you can mount it without sudo, adds you to the `network` group, saves a Nextcloud app password in `~/.davfs2/secrets`, mounts it each time you log in, and adds it to the Files sidebar under your domain name.
The [backups](/utilities/#backups) don't use this mount, and the [AI sandbox](/ai-sandbox/) keeps agents out of `~/.davfs2`. Both davfs2 and cadaver come from pacman, and `update` keeps them current.
+26
View File
@@ -0,0 +1,26 @@
---
title: "DBeaver Community"
category: "Developer tools"
tagline: "A free database tool that connects to PostgreSQL, MySQL, SQLite and dozens more."
source: "Flathub"
package: "io.dbeaver.DBeaverCommunity"
replaces: ["DataGrip", "Navicat"]
website: "https://dbeaver.io/"
code: "https://github.com/dbeaver/dbeaver"
---
## What it is
DBeaver is a database client: it connects to a database so you can browse its tables, view and edit data, and write and run SQL with completion and highlighting. The free Community edition works with almost any database that has a JDBC driver, including PostgreSQL, MySQL, MariaDB, SQLite, Oracle and SQL Server, and downloads the driver it needs when you first connect.
It also draws diagrams of how tables relate, and imports and exports data in formats such as CSV and JSON.
## Why it's here
- **One tool for every database.** The same interface whatever the project uses.
- **Full featured.** Schema browsing, data editing, diagrams and data transfer.
- **Free and open source.**
## On CoreDesktop
DBeaver Community is installed from Flathub. Open it from the app menu. `update` keeps it current with the rest of the Flatpaks.
+29
View File
@@ -0,0 +1,29 @@
---
title: "difftastic"
category: "Developer tools"
tagline: "A diff tool that understands code syntax, so it shows what really changed."
source: "pacman"
package: "difftastic"
command: "difft"
website: "https://difftastic.wilfred.me.uk/"
code: "https://github.com/Wilfred/difftastic"
---
## What it is
difftastic compares files by their structure rather than line by line. It parses the code for dozens of languages, so a reformatted or re-indented block isn't shown as changed, and moved or wrapped code is matched up correctly. Results are shown side by side with syntax highlighting.
## Why it's here
- **Less noise.** Formatting changes don't hide the real ones.
- **Works with Git.** Use it as Git's diff tool for any command that shows a diff.
## On CoreDesktop
difftastic is installed from pacman as the `difft` command. CoreDesktop doesn't make it Git's default diff tool; to use it for one command:
```
GIT_EXTERNAL_DIFF=difft git diff
```
`update` keeps it current with the rest of the pacman packages.
+21
View File
@@ -0,0 +1,21 @@
---
title: "Discord"
category: "Messaging and meetings"
tagline: "Voice, video and text chat for communities, gaming groups and friends."
source: "Flathub"
package: "com.discordapp.Discord"
website: "https://discord.com/"
---
## What it is
Discord is a chat service organized around servers: communities with their own text channels, always-on voice channels and screen sharing. It started with gamers and is now used by open-source projects, classes and hobby groups of all kinds. The app and service are closed source and run by Discord Inc.
## Why it's here
- **Where communities meet.** Many projects and groups do their support and discussion on Discord.
- **Drop-in voice.** Voice channels let you join a conversation without scheduling a call.
## On CoreDesktop
CoreDesktop installs Discord as a Flatpak from Flathub. Open it from the app grid and sign in. `update` keeps it current along with your other Flatpaks.
+39
View File
@@ -0,0 +1,39 @@
---
title: "Docker"
category: "Developer tools"
tagline: "Run apps and services in containers, with Docker Compose, a working firewall and no sudo."
source: "pacman"
package: "docker"
command: "docker"
website: "https://www.docker.com/"
code: "https://github.com/moby/moby"
links:
- name: "Docker Compose"
url: "https://docs.docker.com/compose/"
- name: "ufw-docker"
url: "https://github.com/chaifeng/ufw-docker"
---
## What it is
Docker runs software in containers: isolated packages that hold an app with everything it needs, from libraries to configuration. A container runs the same on your laptop as on a server, so you can start a database, a web app or a whole development stack with one command, and remove it without leaving anything behind.
Docker Compose describes a set of containers that work together, such as an app, its database and a cache, in one `compose.yaml` file, and starts them all with `docker compose up`.
## Why it's here
- **Clean installs.** Try or run services without installing them on the system.
- **The same everywhere.** What runs in a container here runs the same in production.
- **Whole stacks at once.** Compose brings up every service a project needs.
## On CoreDesktop
CoreDesktop installs Docker and Docker Compose from pacman, enables and starts the Docker service, and adds you to the `docker` group so you can run `docker` without sudo. The group takes effect at your next login. The aliases `d` for `docker` and `ld` for [lazydocker](/software/lazydocker/) are set up too.
Ports that Docker containers publish would normally get around the ufw firewall, so CoreDesktop also installs ufw-docker. To let a container's port through:
```
sudo ufw-docker allow <container> <port>
```
`audit` lists ports containers publish. The AI agents in the [AI sandbox](/ai-sandbox/) can't reach the Docker socket or your Docker credentials. `update` keeps Docker current with the rest of the pacman packages.
+30
View File
@@ -0,0 +1,30 @@
---
title: "Element"
category: "Messaging and meetings"
tagline: "The Matrix chat app, set up to use your Federated Computer Core's chat server."
source: "pacman"
package: "element-desktop"
command: "element-desktop"
replaces: ["Slack", "Microsoft Teams"]
website: "https://element.io/"
code: "https://github.com/element-hq/element-desktop"
links:
- name: "Matrix"
url: "https://matrix.org/"
---
## What it is
Element is a chat and calling app for Matrix, an open standard for messaging. Matrix works like email: anyone can run a server, and people on different servers can talk to each other. Element gives you direct messages, group rooms, threads, file sharing, and voice and video calls, with end-to-end encryption on by default for private chats.
## Why it's here
- **Your own chat server.** Your Federated Computer Core runs a Matrix server, and Element is the desktop app for it.
- **Team chat without a vendor.** Rooms, threads and spaces cover what teams use Slack or Teams for.
- **Encrypted by default.** Direct messages and private rooms are end-to-end encrypted.
## On CoreDesktop
CoreDesktop installs Element from pacman. Running `configure core` points it at your Core's Matrix server (`matrix.<your domain>`), so you only choose **Sign in** and log in with your Core account through single sign-on. Reboot once after installing CoreDesktop so Element can find the keychain it keeps its encryption keys in.
Open Element from the app grid or run `element-desktop`. The sandboxed AI agents can't read its data in `~/.config/Element`. `update` keeps it current with the rest of the pacman packages.
+21
View File
@@ -0,0 +1,21 @@
---
title: "Embellish"
category: "Graphics and design"
tagline: "Browse, preview and install Nerd Fonts, and copy their icons."
source: "Flathub"
package: "io.github.getnf.embellish"
code: "https://github.com/getnf/embellish"
---
## What it is
Embellish is a small GNOME app for Nerd Fonts: programming fonts patched with thousands of extra icons for terminals, prompts and editors. It lists every available Nerd Font, previews them, and installs or removes one with a click. It also has a searchable cheat sheet of the icons, so you can copy one into your prompt or config.
## Why it's here
- **Fonts for the terminal.** Prompts, file listings and editor plugins use Nerd Font icons, and Embellish makes picking a font easy.
- **No manual downloads.** No zip files to unpack into font folders.
## On CoreDesktop
CoreDesktop installs Embellish as a Flatpak from Flathub. Open it from the app grid. `update` keeps it current along with your other Flatpaks.
+23
View File
@@ -0,0 +1,23 @@
---
title: "Evolution"
category: "Email and calendar"
tagline: "GNOME's all-in-one email, calendar, contacts and tasks app."
source: "Flathub"
package: "org.gnome.Evolution"
replaces: ["Microsoft Outlook"]
website: "https://gitlab.gnome.org/GNOME/evolution/-/wikis/home"
code: "https://gitlab.gnome.org/GNOME/evolution"
---
## What it is
Evolution is the GNOME project's personal information manager. In one window it brings together email, calendars, an address book, tasks and memos, in the style of Microsoft Outlook. It speaks IMAP and SMTP for mail, CalDAV and CardDAV for calendars and contacts, and can connect to Microsoft Exchange and Microsoft 365 accounts.
## Why it's here
- **Everything in one place.** Mail, calendar, contacts and tasks share one app, as many people are used to from Outlook.
- **Exchange support.** It's one of the few Linux apps that connects to Exchange and Microsoft 365 directly.
## On CoreDesktop
CoreDesktop installs Evolution as a Flatpak from Flathub. Open it from the app grid and add your accounts in its setup assistant. `update` keeps it current along with your other Flatpaks.
+26
View File
@@ -0,0 +1,26 @@
---
title: "Extension Manager"
category: "Desktop and system"
tagline: "Browse, install and configure GNOME Shell extensions without a web browser."
source: "Flathub"
package: "com.mattjakeman.ExtensionManager"
website: "https://mattjakeman.com/apps/extension-manager"
code: "https://github.com/mjakeman/extension-manager"
links:
- name: "GNOME Extensions"
url: "https://extensions.gnome.org/"
---
## What it is
Extension Manager is an app for GNOME Shell extensions, the add-ons that change how the desktop looks and behaves. It searches and installs extensions from extensions.gnome.org, shows screenshots and ratings, and lets you turn installed extensions on and off, open their settings, or remove them.
## Why it's here
- **One place for extensions.** No browser add-on or website needed.
- **See before you install.** Descriptions, screenshots and user ratings are in the app.
- **Quick settings.** Each extension's preferences are a click away.
## On CoreDesktop
Extension Manager is installed from Flathub. Open it from the app menu. It shows the extensions CoreDesktop installs, Tiling Shell and Tailscale, alongside any you add, and you can open Tiling Shell's settings from there. `update` updates your extensions, and the Flatpak update keeps Extension Manager itself current.
+33
View File
@@ -0,0 +1,33 @@
---
title: "eza"
category: "Terminal and shell"
tagline: "A modern ls with colors, icons, Git status and tree views. CoreDesktop's ls."
source: "pacman"
package: "eza"
command: "eza"
website: "https://eza.rocks/"
code: "https://github.com/eza-community/eza"
---
## What it is
eza lists files, like `ls`, with clearer output: file types in color, human-readable sizes, icons, Git status for each file, and a built-in tree view. It's the maintained community fork of the earlier `exa` project.
## Why it's here
- **Easier to read.** Colors and icons make file types stand out.
- **Git-aware.** Long listings can show which files are modified or new.
- **Trees built in.** No separate tool needed to see a directory's structure.
## On CoreDesktop
eza is installed from pacman, and CoreDesktop's shell setup makes it the default for listing files. All of these list directories first and show icons where the terminal supports them:
```
ls # eza
ll # long listing with sizes
la # long listing including hidden files
lt # two-level tree with Git status
```
Type `command ls` if you need the original. `update` keeps eza current with the pacman packages.
+26
View File
@@ -0,0 +1,26 @@
---
title: "fastfetch"
category: "Terminal and shell"
tagline: "Show your system's details next to a distro logo in the terminal."
source: "pacman"
package: "fastfetch"
command: "fastfetch"
code: "https://github.com/fastfetch-cli/fastfetch"
---
## What it is
fastfetch prints a summary of your system, such as the OS, kernel, desktop, CPU, GPU, memory and disk usage, beside an ASCII logo of your distribution. It's a faster, maintained successor to neofetch.
```
fastfetch
```
## Why it's here
- **System details in one command.** Handy when asking for help or checking a new machine.
- **Quick.** It's written in C and returns instantly.
## On CoreDesktop
fastfetch is installed from pacman. Type `fastfetch` in a terminal. `update` keeps it current along with the rest of the pacman packages.
+27
View File
@@ -0,0 +1,27 @@
---
title: "fd"
category: "Terminal and shell"
tagline: "A simpler, faster way to find files by name."
source: "pacman"
package: "fd"
command: "fd"
code: "https://github.com/sharkdp/fd"
---
## What it is
fd finds files and directories by name. It's an easier alternative to `find`: you type part of a name instead of a list of flags, matches are highlighted, and it skips hidden files and anything in `.gitignore` by default.
```
fd config ~/.config
```
## Why it's here
- **Short commands.** `fd name` replaces `find . -iname '*name*'`.
- **Fast.** It searches directories in parallel.
- **Respects .gitignore.** Build output and dependencies stay out of the results.
## On CoreDesktop
fd is installed from pacman. Type `fd` in a terminal. `update` keeps it current along with the rest of the pacman packages.
+28
View File
@@ -0,0 +1,28 @@
---
title: "Firefox"
category: "Web browsers"
tagline: "Mozilla's independent, open-source browser, with its own engine and a deep add-on library."
source: "Flathub"
package: "org.mozilla.firefox"
replaces: ["Google Chrome", "Microsoft Edge"]
website: "https://www.firefox.com/"
code: "https://github.com/mozilla-firefox/firefox"
---
## What it is
Firefox is the web browser made by Mozilla, a nonprofit. Unlike most browsers today it isn't built on Chromium: it runs on Mozilla's own Gecko engine, which keeps one real alternative to Google's engine alive on the web.
It blocks many trackers by default with Enhanced Tracking Protection, syncs bookmarks, passwords and tabs through an optional Mozilla account, and has a large catalog of add-ons, including uBlock Origin.
## Why it's here
- **A second engine.** When a site misbehaves in a Chromium browser, Firefox is the quickest way to tell whether it's the site or the browser.
- **Privacy built in.** Tracker blocking and container tabs keep sites from following you around.
- **Add-ons that go further.** Firefox still supports the full-strength versions of content blockers and other extensions.
## On CoreDesktop
CoreDesktop installs Firefox as a Flatpak from Flathub. Open it from the app grid. Helium is CoreDesktop's default browser; to make Firefox the default instead, pick it in **Settings › Apps › Default Apps**.
The sandboxed AI agents can't read your Firefox profile. `update` keeps Firefox current along with your other Flatpaks.
+28
View File
@@ -0,0 +1,28 @@
---
title: "Flameshot"
category: "Graphics and design"
tagline: "Take a screenshot, mark it up with arrows, boxes and text, then save or copy it."
source: "pacman"
package: "flameshot"
command: "flameshot"
replaces: ["Snagit"]
website: "https://flameshot.org/"
code: "https://github.com/flameshot-org/flameshot"
---
## What it is
Flameshot is a screenshot tool with built-in annotation. You drag to select part of the screen, then draw arrows, boxes, numbered markers and text, blur sensitive details, and save the result, copy it to the clipboard or pin it on screen, all before the capture closes.
```
flameshot gui
```
## Why it's here
- **Annotate in one step.** No need to open an image editor to point at something.
- **Blur before you share.** Hide emails, names or tokens before a screenshot leaves your machine.
## On CoreDesktop
CoreDesktop installs Flameshot from pacman. Open it from the app grid, or run `flameshot gui` to start a capture. CoreDesktop doesn't bind it to a key, so Print Screen still opens GNOME's own screenshot tool. `update` keeps Flameshot current with the rest of the pacman packages.
+22
View File
@@ -0,0 +1,22 @@
---
title: "FluffyChat"
category: "Messaging and meetings"
tagline: "A friendly, simple Matrix chat app that feels like a phone messenger."
source: "Flathub"
package: "im.fluffychat.Fluffychat"
website: "https://fluffychat.im/"
code: "https://github.com/krille-chan/fluffychat"
---
## What it is
FluffyChat is a chat app for Matrix, the open messaging standard your Core's chat server uses. Where Element is built around teams, rooms and spaces, FluffyChat looks and feels like a phone messenger: a list of chats, bubbles, stickers and voice messages. It supports end-to-end encryption and works with any Matrix server.
## Why it's here
- **A simpler Matrix client.** It's an easy way into Matrix for people who find Element busy.
- **Same account, same chats.** Sign in with your Core account and your rooms and messages are all there.
## On CoreDesktop
CoreDesktop installs FluffyChat as a Flatpak from Flathub. Open it from the app grid and sign in with your Matrix server's address and your account. `update` keeps it current along with your other Flatpaks.
+29
View File
@@ -0,0 +1,29 @@
---
title: "fwupd"
category: "Desktop and system"
tagline: "Firmware updates for your laptop, drives and peripherals, from the vendors themselves."
source: "pacman"
package: "fwupd"
command: "fwupdmgr"
website: "https://fwupd.org/"
code: "https://github.com/fwupd/fwupd"
---
## What it is
fwupd updates the firmware in your hardware: the system BIOS or UEFI, SSDs, docks, keyboards, mice and more. Hardware vendors publish their updates to the Linux Vendor Firmware Service (LVFS), and fwupd downloads and installs the ones that apply to your devices, so you don't need the vendor's Windows tool.
```
fwupdmgr get-updates
fwupdmgr update
```
## Why it's here
- **Security fixes below the OS.** Firmware has bugs too, and some are serious.
- **No Windows required.** Many vendors ship their updates through LVFS.
- **Signed updates.** Firmware is checked before it's installed.
## On CoreDesktop
fwupd is installed from pacman, and `fwupd-refresh.timer` is enabled so the list of available firmware stays current. Each [`update`](/utilities/#update) checks for firmware updates and tells you if there are any, but doesn't install them, as firmware often needs a reboot. When it says there are, run `fwupdmgr update`.
+26
View File
@@ -0,0 +1,26 @@
---
title: "fzf"
category: "Terminal and shell"
tagline: "A fuzzy finder for files, command history and anything else you can list."
source: "pacman"
package: "fzf"
command: "fzf"
website: "https://junegunn.github.io/fzf/"
code: "https://github.com/junegunn/fzf"
---
## What it is
fzf takes any list, such as file names, command history or Git branches, and lets you filter it by typing a few letters in any order. You pick a line with the arrow keys and Enter, and fzf prints it so other commands can use it.
## Why it's here
- **Find things without exact names.** A few letters are enough to narrow thousands of entries.
- **Works with everything.** Pipe any command's output into it.
- **Shell shortcuts.** Its key bindings make history search and path entry much quicker.
## On CoreDesktop
fzf is installed from pacman, and CoreDesktop's shell setup turns on its Bash key bindings: **Ctrl-R** searches your command history, **Ctrl-T** inserts a file path, and **Alt-C** changes into a directory you pick.
CoreDesktop also adds two aliases. `ff` fuzzy-finds a file with a [bat](/software/bat/) preview of its contents, and `eff` opens the file you pick in your editor (Neovim unless you've set `$EDITOR`). `update` keeps fzf current with the pacman packages.
+26
View File
@@ -0,0 +1,26 @@
---
title: "Ghostty"
category: "Terminal and shell"
tagline: "A fast, native terminal emulator with GPU rendering, tabs and splits."
source: "pacman"
package: "ghostty"
command: "ghostty"
website: "https://ghostty.org/"
code: "https://github.com/ghostty-org/ghostty"
---
## What it is
Ghostty is a terminal emulator: the window where you type commands. It draws text on the GPU so scrolling and large outputs stay smooth, and it uses native GTK on Linux, so its tabs, splits and menus look like the rest of GNOME. It works with sensible defaults and needs no configuration file to get started.
## Why it's here
- **Fast.** GPU rendering keeps it responsive with long logs and full-screen terminal apps.
- **Native.** It follows GNOME's look and behaves like a desktop app, not a port.
- **Modern terminal features.** Splits, tabs, ligatures and inline images work out of the box.
## On CoreDesktop
Ghostty is installed from pacman. Open it from the app grid or type `ghostty`. When CoreDesktop's update notification asks you to run an update, it opens a terminal to run `update` in; if GNOME's own terminal isn't available it uses Ghostty.
`update` keeps Ghostty current along with the rest of the pacman packages.
+24
View File
@@ -0,0 +1,24 @@
---
title: "GIMP"
category: "Graphics and design"
tagline: "The GNU Image Manipulation Program, for photo editing, retouching and image work."
source: "pacman"
package: "gimp"
command: "gimp"
replaces: ["Adobe Photoshop"]
website: "https://www.gimp.org/"
code: "https://gitlab.gnome.org/GNOME/gimp"
---
## What it is
GIMP is an open-source raster image editor. It handles photo retouching, color correction, cropping and resizing, compositing with layers and masks, and painting. It opens most image formats, including Photoshop's PSD files, and can be extended with plugins and scripts.
## Why it's here
- **Photo editing without a subscription.** Layers, masks, selections and filters cover most of what people use Photoshop for.
- **Everyday image jobs.** Cropping a screenshot, resizing for the web or blurring a detail takes a minute.
## On CoreDesktop
CoreDesktop installs GIMP from pacman. Open it from the app grid or run `gimp`. `update` keeps it current with the rest of the pacman packages.
+33
View File
@@ -0,0 +1,33 @@
---
title: "Git"
category: "Developer tools"
tagline: "The version control system almost every software project uses, with CoreDesktop's shortcuts."
source: "pacman"
package: "git"
command: "git"
website: "https://git-scm.com/"
code: "https://github.com/git/git"
links:
- name: "Pro Git (free book)"
url: "https://git-scm.com/book/en/v2"
---
## What it is
Git records the history of a project's files. Each commit is a snapshot you can go back to, compare or undo, and branches let you work on several changes at once and merge them when they're ready. It's distributed: every copy of a repository has the full history, and you share work by pushing and pulling between copies, often through GitHub, GitLab or Gitea.
## Why it's here
- **The standard.** Nearly every open-source and commercial project uses it.
- **Safe experiments.** Branch, try something, and throw it away if it doesn't work.
- **Needed by everything else.** Editors, AI agents and installers all use Git.
## On CoreDesktop
Git is installed from pacman. CoreDesktop adds shell shortcuts for it:
- `g` for `git`, and `lg` for [lazygit](/software/lazygit/)
- `gcm "message"` commits with a message, `gcam "message"` commits all changed files, and `gcad` adds changed files to the last commit
- `ga <branch>` creates a worktree for a new branch next to the current repository, in `../<repo>--<branch>`, and moves you into it; `gd`, run inside it, removes the worktree and its branch
`update` keeps Git current with the rest of the pacman packages.
+24
View File
@@ -0,0 +1,24 @@
---
title: "GNOME Disks"
category: "Desktop and system"
tagline: "Format, partition, check and image your drives from one window."
source: "pacman"
package: "gnome-disk-utility"
command: "gnome-disks"
website: "https://apps.gnome.org/DiskUtility/"
code: "https://gitlab.gnome.org/GNOME/gnome-disk-utility"
---
## What it is
GNOME Disks shows every drive in your computer, internal or plugged in, and what's on it. It formats and partitions drives, sets up encryption, mounts and unmounts partitions, and changes how they're mounted at boot. It also reads a drive's SMART health data, benchmarks its speed, and creates or restores disk images.
## Why it's here
- **Prepare a drive.** Format a USB stick or external disk, encrypted if you like, in a couple of clicks.
- **Check a drive's health.** SMART data warns you before a disk fails.
- **Image a whole disk.** Save a drive to a file, or write one back.
## On CoreDesktop
GNOME Disks is installed from pacman as one of CoreDesktop's maintenance tools. Open it from the app menu as **Disks**, or run `gnome-disks`. `update` keeps it current with the rest of the Arch packages.
+22
View File
@@ -0,0 +1,22 @@
---
title: "GNOME Keyring"
category: "Desktop and system"
tagline: "Keeps your passwords and secrets encrypted, and unlocks them when you log in."
source: "pacman"
package: "gnome-keyring"
code: "https://gitlab.gnome.org/GNOME/gnome-keyring"
---
## What it is
GNOME Keyring stores passwords, keys and other secrets for your apps in an encrypted file. It's unlocked with your login password when you sign in, so apps can fetch the secrets they need without asking you each time. Apps reach it through the standard Secret Service interface, so browsers, mail clients and command-line tools can all use it.
## Why it's here
- **Fewer password prompts.** Apps remember your accounts without storing them in plain text.
- **Online Accounts use it.** The passwords for accounts you add in GNOME live here.
- **Scripts can use it too.** `secret-tool` stores and reads secrets from the terminal.
## On CoreDesktop
GNOME Keyring is installed from pacman as one of CoreDesktop's maintenance tools. When you [connect your Core](/utilities/#configure), the Nextcloud and email accounts added to Online Accounts keep their passwords here, and the daily [backups](/utilities/#backups) keep their Nextcloud app password and passphrase here, so they can run without asking. The [AI sandbox](/ai-sandbox/) keeps agents out of `~/.local/share/keyrings`. `update` keeps it current.
+23
View File
@@ -0,0 +1,23 @@
---
title: "GNOME Tweaks"
category: "Desktop and system"
tagline: "The GNOME settings that aren't in Settings: fonts, title bar buttons, keyboard and mouse options."
source: "pacman"
package: "gnome-tweaks"
command: "gnome-tweaks"
code: "https://gitlab.gnome.org/GNOME/gnome-tweaks"
---
## What it is
GNOME Tweaks is a settings app for the options GNOME's own Settings leaves out. It sets interface and monospace fonts and their scaling, adds minimize and maximize buttons to title bars, chooses the theme for older apps, the cursor and icons, and changes keyboard and mouse behavior, such as what Caps Lock does.
## Why it's here
- **Fonts and scaling.** Pick a different font or make text slightly larger without changing the whole display scale.
- **Title bar buttons.** Bring back minimize and maximize if you miss them.
- **Keyboard options.** Turn Caps Lock into Ctrl or Escape, or change the key that opens the overview.
## On CoreDesktop
GNOME Tweaks is installed from pacman with nothing extra configured. Open it from the app menu as **Tweaks**, or run `gnome-tweaks`. `update` keeps it current with the rest of the Arch packages.
+30
View File
@@ -0,0 +1,30 @@
---
title: "GNOME"
category: "Desktop and system"
tagline: "The desktop itself: clean, keyboard-friendly, and set up here for tiling."
source: "pacman"
package: "gnome"
website: "https://www.gnome.org/"
code: "https://gitlab.gnome.org/GNOME/gnome-shell"
links:
- name: "GNOME apps"
url: "https://apps.gnome.org/"
---
## What it is
GNOME is a desktop environment for Linux: the top bar, the app launcher and overview, the Settings app, the Files manager and a set of core apps that share one look. It stays out of the way, works well with just a keyboard, and runs on Wayland by default.
The `gnome` package group is the desktop and its core apps. `gnome-extra` adds more GNOME apps and tools on top.
## Why it's here
- **Calm and consistent.** One design across the desktop and its apps, with few settings to fiddle with.
- **Keyboard first.** Press <kbd>Super</kbd> and type to open anything.
- **Extensible.** Shell extensions such as Tiling Shell add what GNOME leaves out.
## On CoreDesktop
You install Arch with GNOME before CoreDesktop. The installer then makes sure the `gnome` and `gnome-extra` groups are there from pacman, enables the GDM login screen, and installs the Tiling Shell and Tailscale extensions with gext. It loads CoreDesktop's [tiling](/system/#tiling) settings for Tiling Shell from `gnome/gnome-settings.dconf`.
`update` updates GNOME with the rest of Arch, then updates your extensions and reinstalls any that no longer support the current GNOME Shell. It reapplies CoreDesktop's extension settings only when CoreDesktop changes them, so your own tweaks stay. Log out and back in to load updated extensions.
+31
View File
@@ -0,0 +1,31 @@
---
title: "Go"
category: "Languages and runtimes"
tagline: "Google's simple, fast compiled language, popular for servers and command-line tools."
source: "pacman"
package: "go"
command: "go"
website: "https://go.dev/"
code: "https://github.com/golang/go"
links:
- name: "A Tour of Go"
url: "https://go.dev/tour/"
---
## What it is
Go is a programming language created at Google. It compiles quickly to a single binary with no dependencies, has concurrency built into the language, and comes with its own tools for building, testing, formatting and managing modules. Docker, Kubernetes, Hugo and many command-line tools are written in it.
## Why it's here
- **Small and readable.** A short language specification and one standard formatting style.
- **One binary.** Programs build into a single file you can copy anywhere.
- **Everything in one command.** `go build`, `go test`, `go fmt` and `go get` come with it.
## On CoreDesktop
Go is installed from pacman. Downloaded modules go in `~/go/pkg/mod`. CoreDesktop's backups leave that folder out, since it can be downloaded again, and the AI agents in the [AI sandbox](/ai-sandbox/) can write to it and reach the Go module proxy. `update` keeps Go current with the rest of the pacman packages.
```
go run .
```
+24
View File
@@ -0,0 +1,24 @@
---
title: "Google Chrome"
category: "Web browsers"
tagline: "Google's browser, for sites and Google services that expect it."
source: "Flathub"
package: "com.google.Chrome"
website: "https://www.google.com/chrome/"
---
## What it is
Google Chrome is the most widely used web browser. It's built on the open-source Chromium project, with Google's additions on top: sign-in and sync with your Google account, automatic updates, Google's translation and password features, and licensed media codecs.
## Why it's here
- **The reference browser.** Most web apps are built and tested in Chrome first, so it's the safe choice when something only works there.
- **Google account sync.** If your bookmarks, passwords and extensions live in a Google account, Chrome picks them up when you sign in.
- **Web developer tools.** Chrome DevTools is the standard many web tutorials assume.
## On CoreDesktop
CoreDesktop installs Chrome as a Flatpak from Flathub. Open it from the app grid. Helium is CoreDesktop's default browser; to make Chrome the default instead, pick it in **Settings › Apps › Default Apps**.
The sandboxed AI agents can't read your Chrome profile. `update` keeps Chrome current along with your other Flatpaks.
+29
View File
@@ -0,0 +1,29 @@
---
title: "Helium"
category: "Web browsers"
tagline: "A private, fast Chromium-based browser, and CoreDesktop's default."
source: "AUR"
package: "helium-browser-bin"
command: "helium-browser"
replaces: ["Google Chrome", "Microsoft Edge"]
website: "https://helium.computer/"
code: "https://github.com/imputnet/helium-linux"
---
## What it is
Helium is a web browser built on Chromium, the open-source project behind Google Chrome. It keeps Chrome's speed and compatibility but strips out the parts that phone home: no Google account sync nagging, no telemetry, and uBlock Origin built in to block ads and trackers from the first page you open.
Because it's Chromium underneath, sites that work in Chrome work in Helium, and extensions from the Chrome Web Store install as usual.
## Why it's here
- **Private by default.** Ad and tracker blocking is on out of the box, with no settings to hunt for.
- **Chrome-compatible.** Web apps, video calls and extensions behave as they do in Chrome.
- **Light.** Without Google's background services it starts quickly and uses less memory.
## On CoreDesktop
Helium is installed from the AUR and set as your default browser once, at install. Links you click in other apps open in it. If you'd rather use another browser, pick it in **Settings › Apps › Default Apps**: CoreDesktop won't change it back.
`update` keeps Helium current along with the rest of the AUR packages.
+21
View File
@@ -0,0 +1,21 @@
---
title: "Helvum"
category: "Audio and video"
tagline: "A patchbay for PipeWire: see and rewire how audio and video flow between apps."
source: "Flathub"
package: "org.pipewire.Helvum"
code: "https://gitlab.freedesktop.org/pipewire/helvum"
---
## What it is
Helvum is a graphical patchbay for PipeWire, the system that handles sound and video on modern Linux desktops. It shows every app, microphone, speaker and camera as a box with ports, and the connections between them as lines. You drag between ports to connect them, for example to send one app's audio into a recording app, or to route a microphone to two places at once.
## Why it's here
- **See your audio.** When sound goes to the wrong place, the graph shows why.
- **Custom routing.** Connect apps and devices in ways the Sound settings can't.
## On CoreDesktop
CoreDesktop installs Helvum as a Flatpak from Flathub. Open it from the app grid. `update` keeps it current along with your other Flatpaks.
+35
View File
@@ -0,0 +1,35 @@
---
title: "herdr"
category: "AI"
tagline: "A terminal workspace for running several AI coding agents at once, and coming back to them later."
source: "AUR"
package: "herdr"
command: "herdr"
website: "https://herdr.dev/"
code: "https://github.com/herdrdev/herdr"
links:
- name: "herdr quick start"
url: "https://herdr.dev/docs/quick-start/"
---
## What it is
herdr is a terminal workspace manager built for AI coding agents. It splits your terminal into panes, like tmux, and runs your agents in them: Claude Code, opencode and others. Each pane is marked working, blocked or idle, so you can see at a glance which agent is waiting for an answer.
Its terminals keep running in a background server when you close the window or lose an SSH connection; run `herdr` again to pick up where you left off. It can also gather sessions from several machines into one window.
## Why it's here
- **Many agents, one view.** Run agents across projects side by side and spot the one that's stuck.
- **Walk away.** Detach with `ctrl+b q` and the agents keep working.
- **Uses what you have.** It doesn't replace your agents or your terminal; it runs them.
## On CoreDesktop
herdr is installed from the AUR. Start it in a project directory:
```
herdr
```
Agents you start by name in its panes, such as `opencode` or `hermes`, still run in CoreDesktop's [AI sandbox](/ai-sandbox/). `update` keeps herdr current with the rest of the AUR packages.
+30
View File
@@ -0,0 +1,30 @@
---
title: "Hermes Agent"
category: "AI"
tagline: "Nous Research's self-improving agent, in your terminal and over Matrix, running in CoreDesktop's sandbox."
source: "installer"
command: "hermes"
website: "https://hermes-agent.nousresearch.com/"
code: "https://github.com/NousResearch/hermes-agent"
links:
- name: "Hermes Agent documentation"
url: "https://hermes-agent.nousresearch.com/docs/"
---
## What it is
Hermes Agent is an AI agent from Nous Research. It has a full terminal interface for coding and everyday tasks, and it learns as it works: it keeps memory across sessions, writes reusable skills after complex tasks and can search its past conversations.
A background process called the gateway lets you talk to it from messaging apps such as Matrix, Telegram, Discord or Signal, and it can run scheduled jobs on its own. It works with Nous Portal, OpenRouter, OpenAI, Anthropic and other providers, or your own endpoint.
## Why it's here
- **Remembers.** Memory and skills carry over from one session to the next.
- **Reachable from your phone.** Through the gateway, you can message it from Matrix and other chat apps.
- **Any model.** Switch providers and models with `hermes model`.
## On CoreDesktop
CoreDesktop installs Hermes Agent with its official installer from hermes-agent.nousresearch.com, skipping its setup questions and background service, and `update` runs `hermes update` to keep it current. Typing `hermes` or `hermes-agent` runs it in CoreDesktop's [AI sandbox](/ai-sandbox/): it can change files only in the directory you start it from and in `~/.hermes`, and reach only AI providers and common developer sites. Its sandbox allows local sockets, so it can talk to its gateway, but hides your session's D-Bus and SSH agent, Docker, Tailscale, X11, tmux and browsers. To run it without the sandbox, type `unsandboxed hermes`.
If you set up the gateway, CoreDesktop runs it in the sandbox too, and lets it reach the Matrix server in Hermes' settings. For other messaging services, add their domains to `~/.config/coredesktop/sandbox/hermes.json`. Before the first use, run `configure hermes` and choose Nous Portal, where one sign-in covers the model, web search, images and more, or another provider such as OpenRouter, OpenAI, Anthropic or your own endpoint.
+24
View File
@@ -0,0 +1,24 @@
---
title: "htop"
category: "Desktop and system"
tagline: "The classic interactive process viewer for the terminal."
source: "pacman"
package: "htop"
command: "htop"
website: "https://htop.dev/"
code: "https://github.com/htop-dev/htop"
---
## What it is
htop is an interactive process viewer: a better `top`. It lists running processes with their CPU and memory use, shows meters for each CPU core and for memory and swap, and lets you sort, search, filter, show processes as a tree, and send signals to stop one, all from the keyboard.
## Why it's here
- **Everywhere.** It's on nearly every Linux server, so it's worth knowing.
- **Quick to drive.** The function keys along the bottom do the common jobs.
- **Light.** It starts instantly and uses almost nothing itself.
## On CoreDesktop
htop is installed from pacman, with nothing extra configured. Run `htop` in a terminal and press <kbd>F10</kbd> or <kbd>q</kbd> to quit. `update` keeps it current.
+28
View File
@@ -0,0 +1,28 @@
---
title: "Hugo"
category: "Languages and runtimes"
tagline: "A fast static site generator that turns Markdown into a complete website."
source: "pacman"
package: "hugo"
command: "hugo"
website: "https://gohugo.io/"
code: "https://github.com/gohugoio/hugo"
---
## What it is
Hugo builds websites from Markdown files and templates. You write pages as plain text, choose or write a theme, and Hugo generates a folder of HTML, CSS and images you can host anywhere, with no database or server code. It builds even large sites in seconds, and its development server reloads the page in your browser as you edit.
## Why it's here
- **Fast.** Builds take milliseconds to seconds.
- **Simple hosting.** The output is static files, cheap to host and hard to break.
- **One binary.** No runtime or dependency tree to manage.
## On CoreDesktop
Hugo is installed from pacman, along with [Dart Sass](/software/dart-sass/), which Hugo can use to compile Sass stylesheets. `update` keeps it current with the rest of the pacman packages. Preview a site with:
```
hugo server
```
+26
View File
@@ -0,0 +1,26 @@
---
title: "hyperfine"
category: "Developer tools"
tagline: "Benchmark shell commands and compare how fast they run, with statistics."
source: "pacman"
package: "hyperfine"
command: "hyperfine"
code: "https://github.com/sharkdp/hyperfine"
---
## What it is
hyperfine times commands. It runs each one many times, after warm-up runs, and reports the mean, spread and range, so you can tell whether one version of a script or a build setting is really faster than another. It can export results as Markdown, JSON or CSV.
## Why it's here
- **Real numbers.** Repeated runs and statistics instead of a single `time`.
- **Side-by-side comparisons.** Give it several commands and it says which is fastest, and by how much.
## On CoreDesktop
hyperfine is installed from pacman. `update` keeps it current with the rest of the pacman packages.
```
hyperfine 'grep -r foo .' 'rg foo'
```
+27
View File
@@ -0,0 +1,27 @@
---
title: "ImageMagick"
category: "Graphics and design"
tagline: "Convert, resize and edit images from the command line, one file or thousands."
source: "pacman"
package: "imagemagick"
command: "magick"
website: "https://imagemagick.org/"
code: "https://github.com/ImageMagick/ImageMagick"
---
## What it is
ImageMagick is a command-line toolkit for working with images. It converts between more than 200 formats and can resize, crop, rotate, compress, add text and watermarks, and combine images. Because it runs from the terminal, it's ideal for scripts and batch jobs.
```
magick photo.png -resize 50% photo.jpg
```
## Why it's here
- **Batch work.** Resize or convert a folder of images with one command.
- **A building block.** Many other tools and scripts call ImageMagick to handle images.
## On CoreDesktop
CoreDesktop installs ImageMagick from pacman. Run `magick` in a terminal. `update` keeps it current with the rest of the pacman packages.
+22
View File
@@ -0,0 +1,22 @@
---
title: "impala"
category: "Networking and remote access"
tagline: "A terminal interface for managing Wi-Fi with iwd."
source: "pacman"
package: "impala"
command: "impala"
code: "https://github.com/pythops/impala"
---
## What it is
impala is a text-based interface for Wi-Fi. It lists nearby networks, connects to them (including WPA Enterprise and hidden networks), and can share a network's details as a QR code, all from the keyboard. It works with iwd, the wireless daemon from Intel, rather than NetworkManager.
## Why it's here
- **Wi-Fi without a desktop.** Useful on a console or when GNOME isn't running.
- **Clear and quick.** Networks, signal strength and connection state on one screen.
## On CoreDesktop
impala is installed from pacman. It needs the iwd service running, and its authors recommend disabling NetworkManager while you use it to avoid conflicts. CoreDesktop manages Wi-Fi with NetworkManager, so for everyday use, **Settings › Wi-Fi** or `nmtui` is the simpler choice. `update` keeps impala current with the pacman packages.
+23
View File
@@ -0,0 +1,23 @@
---
title: "Impression"
category: "Desktop and system"
tagline: "Write a disk image to a USB drive to make a bootable installer."
source: "Flathub"
package: "io.gitlab.adhami3310.Impression"
website: "https://apps.gnome.org/Impression/"
code: "https://gitlab.com/adhami3310/Impression"
---
## What it is
Impression makes bootable drives. Choose an ISO or other disk image, choose a USB drive, and it writes the image so the drive can start a computer, for example to install Linux or Windows. It can also download some popular Linux distributions for you.
## Why it's here
- **Simple.** No options to puzzle over, just the image and the drive.
- **Works for any system.** Linux distributions and Windows installers alike.
- **Handy for Arch.** Make a USB stick with the Arch ISO, which is what you'd boot to [roll back a snapshot](/system/#snapshots).
## On CoreDesktop
Impression is installed from Flathub. Open it from the app menu. The Flatpak update keeps it current.
+23
View File
@@ -0,0 +1,23 @@
---
title: "Inkscape"
category: "Graphics and design"
tagline: "A vector graphics editor for logos, illustrations, diagrams and SVG."
source: "Flathub"
package: "org.inkscape.Inkscape"
replaces: ["Adobe Illustrator"]
website: "https://inkscape.org/"
code: "https://gitlab.com/inkscape/inkscape"
---
## What it is
Inkscape is an open-source vector graphics editor. Vector images are made of shapes and paths rather than pixels, so they stay sharp at any size: the right format for logos, icons, illustrations, diagrams and print. Inkscape's native format is SVG, the web's standard vector format, and it also imports and exports PDF, EPS and PNG.
## Why it's here
- **Illustrator-style design.** Paths, the pen tool, text on paths, gradients and boolean operations are all there.
- **Native SVG.** Graphics for websites and apps come out as clean, standard SVG.
## On CoreDesktop
CoreDesktop installs Inkscape as a Flatpak from Flathub. Open it from the app grid. `update` keeps it current along with your other Flatpaks.
+23
View File
@@ -0,0 +1,23 @@
---
title: "Jellyfin Desktop"
category: "Entertainment"
tagline: "The desktop app for Jellyfin, the self-hosted media server for your films, shows and music."
source: "Flathub"
package: "org.jellyfin.JellyfinDesktop"
replaces: ["Plex"]
website: "https://jellyfin.org/"
code: "https://github.com/jellyfin/jellyfin-desktop"
---
## What it is
Jellyfin is an open-source media server: you run it on a computer or server at home, point it at your films, TV shows and music, and stream them to any device. Jellyfin Desktop is the app for watching from your computer. It plays through mpv, so it supports hardware decoding, audio passthrough and more formats without the server having to convert them.
## Why it's here
- **Your own streaming service.** Watch your own media library without a subscription or an account with someone else.
- **Better playback than a browser.** Files play directly that the web interface would have to transcode.
## On CoreDesktop
CoreDesktop installs Jellyfin Desktop as a Flatpak from Flathub. Open it from the app grid and enter your Jellyfin server's address. It replaces the older Jellyfin Media Player Flatpak, which `update` removes. `update` keeps Jellyfin Desktop current along with your other Flatpaks.
+27
View File
@@ -0,0 +1,27 @@
---
title: "jq"
category: "Terminal and shell"
tagline: "Read, filter and reshape JSON on the command line."
source: "pacman"
package: "jq"
command: "jq"
website: "https://jqlang.org/"
code: "https://github.com/jqlang/jq"
---
## What it is
jq is a command-line processor for JSON. It pretty-prints JSON, pulls out the fields you want, and transforms data with a small filter language, which makes it the standard way to work with API responses and JSON files in scripts.
```
curl -s https://api.github.com/repos/jqlang/jq | jq '.stargazers_count'
```
## Why it's here
- **JSON everywhere.** APIs and many tools output JSON, and jq makes it readable.
- **Scriptable.** Shell scripts use it to pick values out of JSON.
## On CoreDesktop
jq is installed from pacman. CoreDesktop's own scripts use it too, for example `configure` reads Tailscale's status with it. `update` keeps jq current along with the rest of the pacman packages.
+30
View File
@@ -0,0 +1,30 @@
---
title: "just"
category: "Developer tools"
tagline: "A command runner: save a project's commands in a justfile and run them by name."
source: "pacman"
package: "just"
command: "just"
website: "https://just.systems/"
code: "https://github.com/casey/just"
links:
- name: "The just manual"
url: "https://just.systems/man/en/"
---
## What it is
just saves the commands a project uses, such as building, testing or deploying, in a `justfile`, as named recipes. `just test` runs the test recipe; `just` on its own runs the first one, and `just --list` shows them all. It's like make for running commands, without make's quirks around files and tabs.
## Why it's here
- **Commands you don't have to remember.** Each project documents its own tasks.
- **Simple syntax.** Recipes can take arguments and depend on each other.
## On CoreDesktop
just is installed from pacman. `update` keeps it current with the rest of the pacman packages.
```
just --list
```
+23
View File
@@ -0,0 +1,23 @@
---
title: "Kdenlive"
category: "Audio and video"
tagline: "KDE's multitrack video editor, for everything from quick cuts to full projects."
source: "Flathub"
package: "org.kde.kdenlive"
replaces: ["Adobe Premiere Pro"]
website: "https://kdenlive.org/"
code: "https://invent.kde.org/multimedia/kdenlive"
---
## What it is
Kdenlive is an open-source video editor from the KDE community. You arrange clips on a multitrack timeline, trim and split them, and add transitions, titles, effects and color correction. It handles most video and audio formats, uses proxy clips to keep editing smooth with large footage, and renders to common formats for the web or other devices.
## Why it's here
- **A real editor.** Multiple tracks, keyframed effects and audio mixing cover YouTube videos, tutorials and short films.
- **Works with OBS.** Record with OBS Studio, then cut and polish the recording here.
## On CoreDesktop
CoreDesktop installs Kdenlive as a Flatpak from Flathub. Open it from the app grid. `update` keeps it current along with your other Flatpaks.
+26
View File
@@ -0,0 +1,26 @@
---
title: "kitty"
category: "Terminal and shell"
tagline: "A GPU-based terminal emulator you can script and extend."
source: "pacman"
package: "kitty"
command: "kitty"
website: "https://sw.kovidgoyal.net/kitty/"
code: "https://github.com/kovidgoyal/kitty"
---
## What it is
kitty is a terminal emulator that renders on the GPU and is built to be driven from the keyboard. It has its own tabs and window layouts, a protocol for showing images in the terminal, and "kittens": small add-on programs for things like viewing images, diffing files or picking Unicode characters. Everything is set in a plain text file, `~/.config/kitty/kitty.conf`.
## Why it's here
- **Keyboard-first.** Tabs, splits and layouts are all on shortcuts.
- **Scriptable.** You can control a running kitty from the command line or from scripts.
- **Graphics in the terminal.** Tools that support its image protocol can show pictures inline.
## On CoreDesktop
kitty is installed from pacman. Open it from the app grid or type `kitty`. It's the last fallback CoreDesktop's update notification uses to open a terminal for `update`.
`update` keeps kitty current along with the rest of the pacman packages.
+28
View File
@@ -0,0 +1,28 @@
---
title: "lazydocker"
category: "Developer tools"
tagline: "A terminal interface for Docker and Compose: containers, logs and stats in one view."
source: "pacman"
package: "lazydocker"
command: "lazydocker"
code: "https://github.com/jesseduffield/lazydocker"
---
## What it is
lazydocker is a full-screen terminal interface for Docker and Docker Compose. It lists your containers, images, volumes and Compose services, shows each one's logs and CPU and memory use as it runs, and lets you restart, stop, remove or open a shell in a container with a single key.
## Why it's here
- **Everything at a glance.** No more chains of `docker ps` and `docker logs`.
- **Quick fixes.** Restart a service or clean up old images in a keystroke.
## On CoreDesktop
lazydocker is installed from pacman, and CoreDesktop adds the alias `ld` for it:
```
ld
```
`update` keeps it current with the rest of the pacman packages.
+29
View File
@@ -0,0 +1,29 @@
---
title: "lazygit"
category: "Developer tools"
tagline: "A terminal interface for Git: stage, commit, branch and rebase with a few keystrokes."
source: "pacman"
package: "lazygit"
command: "lazygit"
code: "https://github.com/jesseduffield/lazygit"
---
## What it is
lazygit is a full-screen terminal interface for Git. It shows your changed files, branches, commits and stashes in panels, and turns common jobs into single keys: stage a file or a single line, commit, push, switch branches, or reorder and squash commits in an interactive rebase.
## Why it's here
- **See everything at once.** Status, diff and history side by side.
- **Hard things made easy.** Partial staging, cherry-picks and rebases without memorizing commands.
- **Stays in the terminal.** Works over SSH and next to your editor.
## On CoreDesktop
lazygit is installed from pacman, and CoreDesktop adds the alias `lg` for it. Run it inside a repository:
```
lg
```
`update` keeps it current with the rest of the pacman packages.
+27
View File
@@ -0,0 +1,27 @@
---
title: "LibreOffice"
category: "Office, notes and writing"
tagline: "A full office suite: documents, spreadsheets, presentations, drawings and databases."
source: "pacman"
package: "libreoffice-fresh"
command: "libreoffice"
replaces: ["Microsoft Office"]
website: "https://www.libreoffice.org/"
code: "https://git.libreoffice.org/core"
---
## What it is
LibreOffice is an open-source office suite from The Document Foundation. It includes Writer for documents, Calc for spreadsheets, Impress for presentations, Draw for diagrams, Base for databases and Math for formulas. It opens and saves Microsoft Office files (.docx, .xlsx, .pptx), and its native format is the OpenDocument standard.
## Why it's here
- **Office without a subscription.** It covers what most people use Word, Excel and PowerPoint for.
- **Opens what people send you.** Microsoft Office files open and save in their own formats.
- **Exports to PDF.** Any document exports to PDF in one step.
## On CoreDesktop
CoreDesktop installs LibreOffice from pacman as `libreoffice-fresh`, the branch with the newest features. If an older install had the LibreOffice Flatpak, `update` removes it in favor of this package.
Open the apps from the app grid, or run `libreoffice`. `update` keeps it current with the rest of the pacman packages.
+24
View File
@@ -0,0 +1,24 @@
---
title: "LM Studio"
category: "AI"
tagline: "Find, download and run open AI models on your own computer, with a chat window and a local API."
source: "Flathub"
package: "ai.lmstudio.lm-studio"
website: "https://lmstudio.ai/"
---
## What it is
LM Studio is a desktop app for running AI language models locally. You browse and download open models such as Llama, Qwen, Gemma or Mistral from inside the app, then chat with them in a window, with no account and no data sent to a cloud service.
It can also serve a loaded model over a local API that's compatible with OpenAI's, so other apps and scripts on your computer can use it in place of an online provider.
## Why it's here
- **Local and private.** Models run on your hardware, and your prompts stay on your computer.
- **A model catalog built in.** It shows which versions of a model will fit your memory.
- **A local server.** Point developer tools at it to test against a model without paying per request.
## On CoreDesktop
LM Studio is installed from Flathub. Open it from the app menu. Larger models need plenty of memory and run best with a capable GPU. `update` keeps LM Studio current with the rest of the Flatpaks.
+24
View File
@@ -0,0 +1,24 @@
---
title: "LocalSend"
category: "Networking and remote access"
tagline: "Send files to nearby phones and computers over your local network."
source: "Flathub"
package: "org.localsend.localsend_app"
replaces: ["AirDrop"]
website: "https://localsend.org/"
code: "https://github.com/localsend/localsend"
---
## What it is
LocalSend shares files and text between devices on the same network, without the internet or an account. Open it on both devices, they find each other, and you pick the files to send. It runs on Linux, Windows, macOS, Android and iOS, and transfers are encrypted.
## Why it's here
- **AirDrop for every platform.** Move photos from a phone or documents to a laptop in a few taps.
- **Stays local.** Files go straight between devices, not through a cloud service.
- **No account.** Install it and it works.
## On CoreDesktop
LocalSend is installed from Flathub. Open it from the app grid. CoreDesktop's firewall allows LocalSend's port, 53317, so other devices can find this one and send to it. `update` keeps LocalSend current with the rest of the Flatpaks.
+24
View File
@@ -0,0 +1,24 @@
---
title: "Logseq"
category: "Office, notes and writing"
tagline: "An outliner for notes and journals, stored as local Markdown files."
source: "Flathub"
package: "com.logseq.Logseq"
replaces: ["Roam Research"]
website: "https://logseq.com/"
code: "https://github.com/logseq/logseq"
---
## What it is
Logseq is an open-source note-taking app built around an outline. Every note is a list of bullets that you can indent, fold, link and reference from other pages. Each day starts with a journal page, so you can write first and organize later through links and tags. Notes are stored as Markdown or Org files in a folder on your computer.
## Why it's here
- **Write first, file later.** The daily journal and links mean you don't have to decide where a note goes.
- **Local and open.** Your notes are plain files, and the app is open source.
- **Tasks in your notes.** TODOs and queries collect tasks from across your pages.
## On CoreDesktop
CoreDesktop installs Logseq as a Flatpak from Flathub. Open it from the app grid and choose a folder for your notes. `update` keeps it current along with your other Flatpaks.
+26
View File
@@ -0,0 +1,26 @@
---
title: "lsd"
category: "Terminal and shell"
tagline: "Another modern ls, with colors, icons and a tree view."
source: "pacman"
package: "lsd"
command: "lsd"
code: "https://github.com/lsd-rs/lsd"
---
## What it is
lsd ("LSDeluxe") is a rewrite of `ls` that adds colors, file-type icons and a tree view, while keeping most of `ls`'s familiar options. It's an alternative to eza if you prefer its look.
```
lsd -l --tree --depth 2
```
## Why it's here
- **Familiar flags.** Most `ls` options work as you expect.
- **Choice.** Some people prefer its layout and colors to eza's.
## On CoreDesktop
lsd is installed from pacman with no aliases: CoreDesktop's `ls` aliases use eza. Type `lsd` to use it. `update` keeps it current along with the rest of the pacman packages.
+24
View File
@@ -0,0 +1,24 @@
---
title: "mdns-tui-browser"
category: "Networking and remote access"
tagline: "Browse the services that devices on your LAN announce over mDNS."
source: "AUR"
package: "mdns-tui-browser"
command: "mdns-tui-browser"
code: "https://github.com/hrzlgnm/mdns-tui-browser"
---
## What it is
mdns-tui-browser is a terminal app that lists the services devices on your local network advertise over mDNS (also called Bonjour or Zeroconf): printers, SSH servers, media players, smart home devices and so on, with their host names, addresses and ports.
## Why it's here
- **Find devices by name.** See what's on your LAN without knowing IP addresses.
- **Check mDNS works.** Confirm your machines are announcing themselves.
## On CoreDesktop
mdns-tui-browser is installed from the AUR. CoreDesktop sets up mDNS so machines on your LAN can find each other: it enables `avahi-daemon`, allows mDNS (5353/udp) through the firewall, and advertises this machine's SSH server, so you can reach it as `<hostname>.local`. When systemd-resolved is enabled, the installer also runs `fixmdns.sh`, which adds nss-mdns to `/etc/nsswitch.conf` ahead of systemd-resolved so `.local` names resolve.
Type `mdns-tui-browser` to see what's announcing itself. `update` keeps it current with the AUR packages.
+24
View File
@@ -0,0 +1,24 @@
---
title: "Midnight Commander"
category: "Terminal and shell"
tagline: "A two-pane terminal file manager in the style of Norton Commander."
source: "pacman"
package: "mc"
command: "mc"
website: "https://midnight-commander.org/"
code: "https://github.com/MidnightCommander/mc"
---
## What it is
Midnight Commander is a terminal file manager with two side-by-side panes, function-key shortcuts and a menu bar, modeled on the DOS-era Norton Commander. It copies and moves files between panes, browses inside archives, and includes a text editor (`mcedit`) and file viewer. You can use the mouse in it, too.
## Why it's here
- **Easy to learn.** The function keys are labeled along the bottom of the screen.
- **Two panes.** Copying between directories is one keypress.
- **Handy on servers.** It runs anywhere there's a terminal.
## On CoreDesktop
Midnight Commander is installed from pacman with no extra setup. Type `mc` in a terminal. `update` keeps it current along with the rest of the pacman packages.
+27
View File
@@ -0,0 +1,27 @@
---
title: "mise"
category: "Languages and runtimes"
tagline: "Installs and switches versions of Ruby, Node, Python and other tools, per project."
source: "installer"
command: "mise"
website: "https://mise.jdx.dev/"
code: "https://github.com/jdx/mise"
---
## What it is
mise is a version manager for programming languages and developer tools. It installs as many versions of Ruby, Node.js, Python, Go and hundreds of other tools as you need, and switches between them automatically as you move between projects, based on a `mise.toml` (or an asdf `.tool-versions` file) in each project. It can also set environment variables and run tasks for a project.
## Why it's here
- **The right version per project.** Change directory and the versions change with you.
- **One tool for every language.** No separate rbenv, nvm and pyenv.
- **Fast.** It changes your PATH directly instead of running every command through a wrapper.
## On CoreDesktop
CoreDesktop installs mise with its official installer from mise.run, which puts it in `~/.local/bin` and turns it on in `~/.bashrc`. CoreDesktop uses it to install [Ruby and Rails](/software/ruby-on-rails/), and `update` runs `mise self-update` and upgrades Ruby. Commands run over SSH can find tools installed with mise, and the `ga` function, which creates a Git worktree, trusts the new worktree's mise config.
```
mise use node@22
```
+27
View File
@@ -0,0 +1,27 @@
---
title: "mpv"
category: "Audio and video"
tagline: "A minimal, keyboard-driven media player that plays almost anything."
source: "pacman"
package: "mpv"
command: "mpv"
website: "https://mpv.io/"
code: "https://github.com/mpv-player/mpv"
---
## What it is
mpv is an open-source media player with almost no interface: a window with your video and a small on-screen controller. It's controlled from the keyboard, plays nearly every format, uses hardware decoding, and can be configured and scripted through plain text files and Lua. Given a URL, it can play online video through yt-dlp when that's installed.
```
mpv video.mkv
```
## Why it's here
- **Fast and light.** It opens instantly and gets out of the way.
- **Great from the terminal.** Play a file, a folder or a stream with one command.
## On CoreDesktop
CoreDesktop installs mpv from pacman. Open it from the app grid, run `mpv` with a file, or drop a file on its window. `update` keeps it current with the rest of the pacman packages.
+27
View File
@@ -0,0 +1,27 @@
---
title: "mtr"
category: "Networking and remote access"
tagline: "traceroute and ping combined, updating live for every hop."
source: "pacman"
package: "mtr"
command: "mtr"
website: "https://www.bitwizard.nl/mtr/"
code: "https://github.com/traviscross/mtr"
---
## What it is
mtr shows the path your traffic takes to another host and keeps measuring it: for each router along the way it shows packet loss and response times, updated continuously. It's the quickest way to see where a slow or dropping connection goes wrong.
```
mtr example.com
```
## Why it's here
- **Find the bad hop.** See whether a problem is your Wi-Fi, your ISP or further away.
- **Live view.** Statistics build up over time instead of a single snapshot.
## On CoreDesktop
mtr is installed from pacman. Type `mtr` in a terminal. `update` keeps it current along with the rest of the pacman packages.
+31
View File
@@ -0,0 +1,31 @@
---
title: "Neovim"
category: "Code editors"
tagline: "The modern Vim, set up with kickstart.nvim so it's useful from the first launch."
source: "pacman"
package: "neovim"
command: "nvim"
website: "https://neovim.io/"
code: "https://github.com/neovim/neovim"
links:
- name: "kickstart.nvim"
url: "https://github.com/nvim-lua/kickstart.nvim"
- name: "Neovim documentation"
url: "https://neovim.io/doc/"
---
## What it is
Neovim is a fork of Vim, the keyboard-driven text editor, rebuilt for extensibility. It keeps Vim's modal editing, where you switch between moving around, inserting text and running commands, and adds a built-in Lua scripting engine, a language server client for code completion and diagnostics, and Tree-sitter for accurate syntax highlighting.
## Why it's here
- **Fast everywhere.** It runs in any terminal, locally or over SSH, and opens instantly.
- **An IDE when you want one.** Language servers give it go-to-definition, completion and inline errors for most languages.
- **Yours to shape.** The whole configuration is Lua in `~/.config/nvim`.
## On CoreDesktop
CoreDesktop installs Neovim from pacman and, if you don't already have a configuration, clones [kickstart.nvim](https://github.com/nvim-lua/kickstart.nvim) into `~/.config/nvim`. Kickstart is a single, well-commented `init.lua` that sets up a plugin manager, fuzzy finding, language servers and a color scheme. The first time you run `nvim`, it downloads its plugins.
An existing `~/.config/nvim` is left alone. Neovim is also the editor the `eff` alias opens: it fuzzy-finds a file with fzf and opens the one you pick.
+22
View File
@@ -0,0 +1,22 @@
---
title: "NerdFetch"
category: "Terminal and shell"
tagline: "A small system info script that uses Nerd Font icons."
source: "AUR"
package: "nerdfetch"
command: "nerdfetch"
code: "https://github.com/thatonecalculator/NerdFetch"
---
## What it is
NerdFetch is a minimal "fetch" script: it prints a few lines about your system, such as the OS, kernel, uptime, packages and memory, each with an icon from Nerd Fonts. It's a plain POSIX shell script, so it's light and portable.
## Why it's here
- **Compact.** A short summary that fits beside your prompt.
- **Icons included.** CoreDesktop installs the Nerd Fonts symbols it uses.
## On CoreDesktop
NerdFetch is installed from the AUR, along with the `ttf-nerd-fonts-symbols` font package that provides its icons. Type `nerdfetch` in a terminal. `update` keeps it current along with the rest of the AUR packages.
+28
View File
@@ -0,0 +1,28 @@
---
title: "NetworkManager"
category: "Networking and remote access"
tagline: "Manages your wired, Wi-Fi and VPN connections behind GNOME's network settings."
source: "pacman"
package: "networkmanager"
command: "nmcli"
website: "https://networkmanager.dev/"
code: "https://gitlab.freedesktop.org/NetworkManager/NetworkManager"
---
## What it is
NetworkManager is the service that brings your network connections up and keeps them working: it joins Wi-Fi networks, configures wired links, and handles VPNs and mobile broadband. GNOME's network settings and Quick Settings menu talk to it. It also has two terminal tools: `nmcli` for commands and scripts, and `nmtui` for a simple menu.
```
nmcli device wifi list
```
## Why it's here
- **Networking that just works.** Connections come up on their own and roam between networks.
- **GNOME integration.** Wi-Fi and VPNs are managed in **Settings › Wi-Fi** and **Settings › Network**.
- **Terminal tools too.** `nmcli` and `nmtui` when there's no desktop.
## On CoreDesktop
NetworkManager is installed from pacman and `NetworkManager.service` is enabled. CoreDesktop masks `NetworkManager-wait-online.service` so the desktop doesn't wait for the network at boot. `update` keeps it current with the pacman packages.
+27
View File
@@ -0,0 +1,27 @@
---
title: "Nmap"
category: "Networking and remote access"
tagline: "Discover devices on a network and see which ports and services they expose."
source: "pacman"
package: "nmap"
command: "nmap"
website: "https://nmap.org/"
code: "https://github.com/nmap/nmap"
---
## What it is
Nmap is a network scanner. It finds which hosts are up on a network, which ports they have open, and often which services and versions are behind them. Administrators use it to take inventory and to check that a firewall exposes only what it should.
```
nmap -sn 192.168.1.0/24 # list the devices on your LAN
```
## Why it's here
- **Know your network.** Find every device on your LAN and what it's running.
- **Check your firewall.** Scan your own machines from another one to confirm what's reachable.
## On CoreDesktop
Nmap is installed from pacman. Type `nmap` in a terminal; some scan types need `sudo`. Only scan networks you own or have permission to test. `update` keeps Nmap current with the pacman packages.
+29
View File
@@ -0,0 +1,29 @@
---
title: "Node.js and npm"
category: "Languages and runtimes"
tagline: "JavaScript outside the browser, with npm for the world's largest package registry."
source: "pacman"
package: "nodejs"
command: "node"
website: "https://nodejs.org/"
code: "https://github.com/nodejs/node"
links:
- name: "npm documentation"
url: "https://docs.npmjs.com/"
---
## What it is
Node.js runs JavaScript on your computer instead of in a web browser. It's used for web servers, build tools and command-line apps, and most front-end tooling, from bundlers to linters, runs on it.
npm is Node's package manager. It installs libraries and tools from the npm registry into your project, records them in `package.json`, and runs your project's scripts.
## Why it's here
- **Web development needs it.** Most JavaScript and TypeScript projects build and test with Node.
- **A huge package library.** The npm registry has a package for nearly everything.
- **Tools run on it.** Many developer tools install with `npm install --global` or run with `npx`.
## On CoreDesktop
CoreDesktop installs Node.js and npm from pacman. It uses npm itself to install the sandbox runtime behind the [AI sandbox](/ai-sandbox/) into `~/.local`, since npm's own global folder is under `/usr`; you can do the same for your own global tools with `npm install --global --prefix ~/.local <package>`. npm's cache in `~/.npm` is left out of backups, and sandboxed AI agents can write to it and reach the npm registry. `update` keeps Node.js and npm current with the rest of the pacman packages.
+26
View File
@@ -0,0 +1,26 @@
---
title: "Noto fonts"
category: "Desktop and system"
tagline: "Fonts for nearly every language, color emoji, and the icon glyphs your terminal uses."
source: "pacman"
package: "noto-fonts"
website: "https://fonts.google.com/noto"
code: "https://github.com/notofonts"
links:
- name: "Nerd Fonts"
url: "https://www.nerdfonts.com/"
---
## What it is
Noto is a font family from Google that aims to cover every script in Unicode, so text in any language shows up instead of as empty boxes. noto-fonts-emoji adds Noto Color Emoji, the full set of color emoji. ttf-nerd-fonts-symbols adds the Nerd Fonts symbols: icons for files, folders, Git and programming languages that terminal tools draw with.
## Why it's here
- **No empty boxes.** Web pages and documents in any language display properly.
- **Emoji everywhere.** In chats, mail and the terminal.
- **Icons in the terminal.** The starship prompt and the `ls` aliases use them.
## On CoreDesktop
CoreDesktop installs all three packages from pacman. Nothing needs setting up: apps pick the fonts up automatically, and the icons show in the starship prompt and in `ls`, `ll`, `la` and `lt`, which run eza with icons, as described in the [shell setup](/system/#shell). `update` keeps them current.
+22
View File
@@ -0,0 +1,22 @@
---
title: "OBS Studio"
category: "Audio and video"
tagline: "Record your screen and camera, or stream live, with scenes you build yourself."
source: "Flathub"
package: "com.obsproject.Studio"
website: "https://obsproject.com/"
code: "https://github.com/obsproject/obs-studio"
---
## What it is
OBS Studio is open-source software for screen recording and live streaming. You build scenes from sources such as your screen, a window, a webcam, images and text, mix audio from your microphone and desktop, and switch between scenes as you go. It records to a file or streams to services such as YouTube and Twitch.
## Why it's here
- **Screen recordings and demos.** Tutorials, bug reports and walkthroughs, with your camera in the corner if you want.
- **Live streaming.** It's the standard tool for streaming to the major platforms.
## On CoreDesktop
CoreDesktop installs OBS Studio as a Flatpak from Flathub. Open it from the app grid; on GNOME, add a **Screen Capture (PipeWire)** source to record your screen. `update` keeps it current along with your other Flatpaks.
+22
View File
@@ -0,0 +1,22 @@
---
title: "Obsidian"
category: "Office, notes and writing"
tagline: "A notes app that keeps your notes as plain Markdown files, linked together."
source: "Flathub"
package: "md.obsidian.Obsidian"
website: "https://obsidian.md/"
---
## What it is
Obsidian is a note-taking app built on plain Markdown files in a folder on your computer, which it calls a vault. You link notes to each other with `[[double brackets]]`, and Obsidian shows backlinks and a graph of how your notes connect. A large library of community plugins and themes extends it. The app is free for personal use and closed source; your notes stay ordinary files you can open with anything.
## Why it's here
- **Your notes are just files.** A vault is a folder of Markdown, so it works with Git, backups and any other editor.
- **Linked thinking.** Links and backlinks turn a pile of notes into a personal wiki.
- **Extensible.** Plugins add tasks, calendars, diagrams and more.
## On CoreDesktop
CoreDesktop installs Obsidian as a Flatpak from Flathub. Open it from the app grid and create a vault or open an existing folder. `update` keeps it current along with your other Flatpaks.
+31
View File
@@ -0,0 +1,31 @@
---
title: "opencode"
category: "AI"
tagline: "An open-source coding agent for the terminal that works with almost any AI provider."
source: "pacman"
package: "opencode"
command: "opencode"
website: "https://opencode.ai/"
code: "https://github.com/anomalyco/opencode"
links:
- name: "opencode documentation"
url: "https://opencode.ai/docs/"
---
## What it is
opencode is an AI coding agent that runs in your terminal. Inside a project, you ask it to explain code, fix a bug or build a feature, and it reads files, makes edits and runs commands to get there.
It isn't tied to one company's models. You sign in to the providers you use, such as Anthropic, OpenAI, OpenRouter or a local model server, and switch between their models as you go.
## Why it's here
- **Open source.** The agent itself is free software you can read and change.
- **Any model.** One tool for every provider, so you can pick the model that suits the task or the budget.
- **A full terminal interface.** Sessions, file changes and command output in one place, next to your editor.
## On CoreDesktop
opencode is installed from pacman and runs in CoreDesktop's [AI sandbox](/ai-sandbox/). Typing `opencode` starts it sandboxed: it can change files only in the directory you start it from (plus its own settings and caches), can't read your SSH keys, passwords, browser data or the other agents' logins, and can reach only AI providers, opencode.ai and common developer sites. Start it from a project directory; it won't start in your home folder. To run it without the sandbox, type `unsandboxed opencode`.
Before the first use, run `configure opencode`. It signs you in to a provider, or takes its API key, and offers to add more. Pick the model inside opencode with `/models`. `update` keeps opencode current with the rest of the pacman packages.
+30
View File
@@ -0,0 +1,30 @@
---
title: "OpenSSH"
category: "Networking and remote access"
tagline: "Log in to other machines securely, and let them log in to this one."
source: "pacman"
package: "openssh"
command: "ssh"
website: "https://www.openssh.com/"
code: "https://github.com/openssh/openssh-portable"
---
## What it is
OpenSSH is the standard implementation of SSH, the encrypted protocol for logging in to another computer's shell, running commands on it and copying files (`scp`, `sftp`). It includes the client, `ssh`, and the server, `sshd`, that accepts connections, plus tools for creating and managing keys.
```
ssh you@machine.local
```
## Why it's here
- **Remote shells.** Work on your other machines and servers from this one.
- **Secure file transfer.** Copy files with `scp`, `sftp` or `rsync` over SSH.
- **Tunnels.** Forward ports to reach services on another machine.
## On CoreDesktop
OpenSSH is installed from pacman and `sshd.service` is enabled, so you can SSH into this computer. The firewall allows SSH on port 22, and Avahi advertises it on your LAN, so other machines can reach this one as `<hostname>.local`. Commands run with `ssh machine command` can find tools in `~/.local/bin` and mise.
For the client, CoreDesktop sets keepalives so a dropped connection is noticed within a minute (your `~/.ssh/config` still wins per host) and points `SSH_AUTH_SOCK` at Bitwarden's SSH agent. It also adds shell functions for port forwarding: `fip <host> <port>...` forwards local ports to the same ports on a host, `dip <port>...` stops them, and `lip` lists them. `update` keeps OpenSSH current with the pacman packages.
+30
View File
@@ -0,0 +1,30 @@
---
title: "pacman-contrib"
category: "Desktop and system"
tagline: "Extra pacman tools: cache cleaning, update checks, dependency trees and more."
source: "pacman"
package: "pacman-contrib"
command: "paccache"
code: "https://gitlab.archlinux.org/pacman/pacman-contrib"
links:
- name: "Cleaning the package cache"
url: "https://wiki.archlinux.org/title/Pacman#Cleaning_the_package_cache"
---
## What it is
pacman-contrib is a set of small tools that go with pacman, Arch's package manager. `paccache` cleans old package files out of pacman's cache, `checkupdates` lists available updates without touching your system, `pactree` shows what a package depends on, and `pacdiff` helps merge changed configuration files after an update.
```
pactree -r openssl
```
## Why it's here
- **Disk space.** pacman keeps every package it downloads, and paccache trims that.
- **Answers about packages.** See why something is installed, or what depends on it.
- **Config merges.** pacdiff finds the `.pacnew` files updates leave behind.
## On CoreDesktop
pacman-contrib is installed from pacman as one of CoreDesktop's maintenance tools. At the end of each [`update`](/utilities/#update), `paccache` keeps the two most recent versions of each installed package in the cache and removes all cached versions of uninstalled ones. If `update` stops because `/` is low on space, `sudo paccache -rk1` frees more.
+27
View File
@@ -0,0 +1,27 @@
---
title: "Pandoc"
category: "Office, notes and writing"
tagline: "Converts documents between formats: Markdown, Word, HTML, PDF, EPUB and dozens more."
source: "pacman"
package: "pandoc-cli"
command: "pandoc"
website: "https://pandoc.org/"
code: "https://github.com/jgm/pandoc"
---
## What it is
Pandoc is a command-line tool that converts documents from one markup format to another. It reads and writes Markdown, HTML, Word (.docx), OpenDocument, LaTeX, EPUB, reStructuredText and many more. With a LaTeX engine installed it also produces PDFs.
```
pandoc notes.md -o notes.docx
```
## Why it's here
- **Write once, publish anywhere.** Draft in Markdown and hand people a Word file, a web page or a PDF.
- **PDFs out of the box.** TeX Live is installed too, so `pandoc notes.md -o notes.pdf` works.
## On CoreDesktop
CoreDesktop installs Pandoc from pacman; on Arch the `pandoc` command comes from the `pandoc-cli` package. Run `pandoc` in a terminal. `update` keeps it current with the rest of the pacman packages.
+28
View File
@@ -0,0 +1,28 @@
---
title: "pipx"
category: "Languages and runtimes"
tagline: "Installs Python command-line apps, each in its own isolated environment."
source: "pacman"
package: "python-pipx"
command: "pipx"
website: "https://pipx.pypa.io/"
code: "https://github.com/pypa/pipx"
---
## What it is
pipx installs Python applications, the kind you run as commands, into separate virtual environments and puts their commands in `~/.local/bin`. Each app gets its own copy of its dependencies, so apps can't break each other or the system's Python.
## Why it's here
- **Safe installs.** Python apps from PyPI without touching the system Python.
- **One command per app.** `pipx install`, `pipx upgrade` and `pipx uninstall`.
- **Try before you install.** `pipx run` runs an app once without keeping it.
## On CoreDesktop
pipx is installed from pacman, and CoreDesktop uses it to install terrahour and gext, the command-line tool that installs its GNOME extensions. `update` upgrades the pipx apps CoreDesktop installs, and when Arch moves to a new Python version, which breaks pipx environments, it rebuilds all of them. Apps you install yourself are upgraded by you:
```
pipx upgrade-all
```
+27
View File
@@ -0,0 +1,27 @@
---
title: "Postman"
category: "Developer tools"
tagline: "Build, send and test API requests, and keep them organized in shareable collections."
source: "Flathub"
package: "com.getpostman.Postman"
website: "https://www.postman.com/"
links:
- name: "Postman documentation"
url: "https://learning.postman.com/docs/"
---
## What it is
Postman is an app for working with web APIs. You build an HTTP request, with its method, headers, body and authentication, send it and inspect the response. Requests are saved in collections you can share with a team, and environments switch values such as server addresses and keys between development and production.
It can also run test scripts against responses, and mock or document an API.
## Why it's here
- **APIs without code.** Try an endpoint before writing a line of client code.
- **Saved and shared.** Collections keep every request a project needs in one place.
- **A team standard.** Many APIs publish Postman collections to get started with.
## On CoreDesktop
Postman is installed from Flathub. Open it from the app menu and sign in with a Postman account. `update` keeps it current with the rest of the Flatpaks.
+33
View File
@@ -0,0 +1,33 @@
---
title: "Python"
category: "Languages and runtimes"
tagline: "The general-purpose scripting language, with pip and a set of common libraries."
source: "pacman"
package: "python-pip"
command: "python"
website: "https://www.python.org/"
code: "https://github.com/python/cpython"
links:
- name: "pip documentation"
url: "https://pip.pypa.io/"
---
## What it is
Python is a programming language known for readable code and a large standard library. It's used for scripts and automation, web services, data analysis and machine learning. pip is its package installer: it fetches libraries from the Python Package Index (PyPI).
## Why it's here
- **Readable and quick to write.** A good first language and a good tool for small jobs.
- **Libraries for everything.** PyPI has packages for almost any task.
- **Many tools need it.** A lot of Linux software is written in Python.
## On CoreDesktop
Python itself comes with Arch. CoreDesktop adds pip from pacman, along with Python libraries packaged by Arch: Pillow for images, PyGObject for GNOME apps, Pygments for syntax highlighting, and docutils and MyST-Parser for documentation. `update` keeps them current with the rest of the pacman packages.
Arch doesn't let pip install into the system Python, so install libraries into a virtual environment for each project, use [uv](/software/uv/), or install Python apps with [pipx](/software/pipx/).
```
python -m venv .venv && source .venv/bin/activate && pip install requests
```
+23
View File
@@ -0,0 +1,23 @@
---
title: "qBittorrent"
category: "Entertainment"
tagline: "An open-source BitTorrent client with search, RSS and no ads."
source: "Flathub"
package: "org.qbittorrent.qBittorrent"
replaces: ["uTorrent"]
website: "https://www.qbittorrent.org/"
code: "https://github.com/qbittorrent/qBittorrent"
---
## What it is
qBittorrent is an open-source client for BitTorrent, the peer-to-peer protocol used to share large files such as Linux ISOs. It downloads from torrent files and magnet links, lets you pick files within a torrent and limit bandwidth, and has a built-in torrent search and RSS feed downloader. A web interface lets you control it from another device.
## Why it's here
- **Clean and ad-free.** It does what uTorrent did without the ads or bundled extras.
- **Works with Sonarr.** Sonarr can send downloads to qBittorrent and pick them up when they finish.
## On CoreDesktop
CoreDesktop installs qBittorrent as a Flatpak from Flathub. Open it from the app grid, or open a magnet link or `.torrent` file with it. `update` keeps it current along with your other Flatpaks.
+29
View File
@@ -0,0 +1,29 @@
---
title: "rclone"
category: "Backup, files and security"
tagline: "Copy, sync and mount files on dozens of cloud storage services from the command line."
source: "pacman"
package: "rclone"
command: "rclone"
website: "https://rclone.org/"
code: "https://github.com/rclone/rclone"
---
## What it is
rclone is "rsync for cloud storage". It copies and syncs files between your computer and storage services such as S3, Backblaze B2, Google Drive, Dropbox, OneDrive and any WebDAV server, including Nextcloud. It can also mount a remote as a folder, check that two locations match, and encrypt files before they're uploaded.
```
rclone config
rclone sync ~/Photos b2:my-photos
```
## Why it's here
- **One tool for every cloud.** The same commands work whichever service you use.
- **Safe syncing.** `--dry-run` shows what would change before anything does.
- **It carries the backups.** restic reaches your Nextcloud through it.
## On CoreDesktop
rclone is installed from pacman. CoreDesktop's [backups](/utilities/#backups) use it to give restic a direct WebDAV connection to your Nextcloud, with its own app password from your keyring, so they don't depend on the `/mnt` mount. That connection is set up with environment variables, not in your rclone config, so `rclone config` is yours to use for other remotes. `update` keeps it current.
+24
View File
@@ -0,0 +1,24 @@
---
title: "Remmina"
category: "Networking and remote access"
tagline: "A remote desktop client for RDP, VNC, SSH and SPICE connections."
source: "Flathub"
package: "org.remmina.Remmina"
replaces: ["Microsoft Remote Desktop"]
website: "https://www.remmina.org/"
code: "https://gitlab.com/Remmina/Remmina"
---
## What it is
Remmina connects to other computers' desktops. It speaks RDP, the protocol Windows uses for Remote Desktop, as well as VNC, SPICE and SSH, so one app covers Windows PCs, Linux machines and virtual machines. You save each connection as a profile and open it with a double-click.
## Why it's here
- **Windows desktops from Linux.** Connect to a Windows PC or server over RDP.
- **One app for many protocols.** RDP, VNC, SPICE and SSH in the same list.
- **Saved profiles.** Keep your connections and their settings in one place.
## On CoreDesktop
Remmina is installed from Flathub. Open it from the app grid. `update` keeps it current along with the rest of the Flatpaks.
+34
View File
@@ -0,0 +1,34 @@
---
title: "restic"
category: "Backup, files and security"
tagline: "Fast, encrypted, deduplicated backups, and the engine behind CoreDesktop's daily backups."
source: "pacman"
package: "restic"
command: "restic"
website: "https://restic.net/"
code: "https://github.com/restic/restic"
links:
- name: "restic documentation"
url: "https://restic.readthedocs.io/"
---
## What it is
restic is a backup program. It saves snapshots of your files into a repository on a local disk, an SFTP server or a cloud storage service. Every snapshot is encrypted, and data that hasn't changed since the last one is stored only once, so frequent backups stay small and quick.
## Why it's here
- **Encrypted by default.** A repository can't be read without its passphrase, wherever it's stored.
- **Small and fast.** Deduplication means each daily backup only uploads what changed.
- **Reaches almost anywhere.** Through rclone it can back up to dozens of storage services, including Nextcloud.
## On CoreDesktop
restic runs CoreDesktop's daily backups of your home folder to your Nextcloud files, once you run `configure backup`. How they work, what's left out and how long backups are kept is on the [Utilities page](/utilities/#backups). To look at your backups or get files back:
```
source ~/.local/share/coredesktop/system/backup-env.sh
restic snapshots
```
See [restoring from a backup](/utilities/#restoring-from-a-backup) for the rest. restic is installed from pacman, and `update` keeps it current.
+25
View File
@@ -0,0 +1,25 @@
---
title: "RetroArch"
category: "Entertainment"
tagline: "One app for emulating classic consoles and computers, with a controller-friendly menu."
source: "Flathub"
package: "org.libretro.RetroArch"
website: "https://www.retroarch.com/"
code: "https://github.com/libretro/RetroArch"
links:
- name: "RetroArch documentation"
url: "https://docs.libretro.com/"
---
## What it is
RetroArch is an open-source frontend for emulators, game engines and media players. Each emulator is a plugin called a core, downloaded from inside the app, covering systems from early arcade machines and home consoles through to handhelds. RetroArch gives them all the same menu, controller setup, save states, shaders and netplay.
## Why it's here
- **One app for many systems.** Download the cores you need and play through a single interface.
- **Made for controllers.** The whole menu works from a gamepad, from the couch.
## On CoreDesktop
CoreDesktop installs RetroArch as a Flatpak from Flathub. Open it from the app grid, then use **Online Updater › Core Downloader** to get cores. Games aren't included: load your own. `update` keeps RetroArch current along with your other Flatpaks.

Some files were not shown because too many files have changed in this diff Show More