The desktop

The menu

The menu is where everything is. Super+Space opens it, as does a click on the mark at the left end of the bar. Typing searches every entry of every submenu, every installed application and every setting.

Key Does
Typing Searches
↑ ↓ Move
Enter Open the entry or submenu
Esc Back one level, or close

What is in it

Submenu Holds
Apps Every installed application. Super+Alt+Space opens here directly.
Capture Screenshots: a region or the whole screen, to the clipboard or to a file.
Toggle Switches: the top bar, do not disturb, the SSH server.
Settings Open Settings, and a submenu for each area holding every setting in it.
Setup Audio, Bluetooth, Wi-Fi, Power, and Config, which opens each of your configuration files in the editor. Reload desktop is here too.
Install The Store, an application from Flathub by name, an Alpine package by name, the AI tools, and Jottacloud.
Remove The same, the other way.
Update Updates in the Store, everything at once, system packages or Flatpak applications alone, and the release channel.
Learn About Alpymist, your keybindings, and the Alpymist, Hyprland, Alpine and Flathub sites.
AI Claude Code, Codex and Gemini CLI, and the usage popup. See AI.
About What the probe says of this machine.
System Lock, suspend, log out, restart, shut down, and Fingerprints where a reader is set up. Super+Esc opens here directly.

You can walk through Settings from the menu, but searching is quicker: type "wallpaper", "lid" or "time zone" and the entry opens Settings at that setting.

Changing the menu

The menu is one TOML file. Setup › Config › Menu writes a copy of the built-in one to ~/.config/alpymist/menu.toml the first time, and opens it. From then on that file is your menu.

[menu.root]
title = "Alpymist"
items = [
  { name = "Apps", icon = "󰀻", menu = "apps" },
  { name = "Notes", icon = "󰎞", exec = "alpymist open editor ~/notes.md" },
]

An entry has a name, an icon (a Nerd Font glyph), and either menu, the name of a submenu, or exec, a command. These can be added:

Field Meaning
terminal = true Run the command in a terminal
hold = true Keep that terminal open afterwards, to read what it printed
detail = "…" A few words shown beside the name
keywords = ["…"] More words the search finds it by

The menu is read from the first of these that exists: ~/.config/alpymist/menu.toml, /etc/alpymist/menu.toml, and the copy built into the program. alpymist-menu --print-config prints the built-in one, and alpymist-menu --check says whether a file is valid.

A file of your own replaces the built-in menu, so it does not gain entries that a later release adds to the built-in one. If your file does not parse, the menu says so and shows the built-in entries, so a typo never leaves you without a way to shut down.

To add entries without taking the menu over, put a fragment in /etc/alpymist/menu.d/: a TOML file holding only [menu.NAME] tables, whose items are added to the menus of those names. That is how packages add theirs, from /usr/share/alpymist/menu.d/: Settings, the AI tools and Fingerprints all arrive that way, and they are merged into a menu of your own as well. --check reads your file alone, so it complains of a submenu that only a fragment provides, such as settings or ai, although the menu loads it.

Opening a submenu from a key

alpymist-menu NAME opens at a submenu, which is what the System and Apps keys do:

bind = SUPER, P, exec, alpymist-menu capture

Edit this chapter on GitHub