
Backend Launcher: Quick App Switcher
Jump back to the record you had open this morning, from any machine: recents and favourites stored on the server, in the command palette.
Available for Odoo 16.0, Odoo 17.0, Odoo 18.0, Odoo 19.0. Technical name bambooforge_launcher.
Backend Launcher: Quick App Switcher
Odoo's command palette (Ctrl+K) searches menus and commands. It cannot take you back to the quotation you were reading before lunch, and nothing in it survives a different browser.
Recents, on the server
Every record you open is remembered: the model, the record, its name, when you last saw it and how often. Press Ctrl+K and type >, and the records you have been working in are right there, newest first.
The important word is server. A recents list kept in the browser's local storage is gone when you pick up the laptop, gone again when IT clears the cache, and gone a third time when you switch to the other browser you keep for the customer portal. This one follows the person: the tab you had open on the office desktop is one keystroke away at home.
What it will not do is remember something you were not allowed to see. The record is read with your rights before it is written down, so a recents list can never become a back door into a record a rule keeps from you.
The list is capped — a list nobody scrolls past twenty should not carry a thousand rows per person forever — and Launcher › Recently Opened shows the same thing as a list for people who would rather click, with a Forget everything to wipe it.
Favourites, with a key
Pin any record or any menu. Give the ones you live in a number, and Alt+1 … Alt+9 go straight there from anywhere in the backend — not just from the screen where a particular view happens to be mounted. Type * in the palette for the whole list.
A favourite whose target has gone — a record somebody deleted, a menu you no longer have access to — is silently skipped rather than offered. A shortcut into an error page is worse than no shortcut.
Two people can each use Alt+3 for their own thing; hotkeys are unique per person, not per database.
Everything is yours alone
Both lists are per user, and a global record rule sees to it: your recents are yours, your favourites are yours, and no report, no export and no clever domain reaches anybody else's. Global rather than attached to a group, because a rule attached to a group is OR-ed with every other group's rule — and "mine is mine" has to hold without exception.
How it fits the four versions
One file of JavaScript for 16.0 through 19.0. That is possible because everything it hangs off is identical on all four: the command_provider and command_categories registries, the hotkey service, and the form controller's model and record id.
The namespaces are > and * because the obvious ones are taken: web owns / for menus, and mail owns @ for user mentions and # for channels wherever Discuss is installed. A recents list served under a palette whose placeholder reads Search for a user…, with real users listed beneath it, is not a feature — so a test pins both namespaces and fails if either of the taken ones ever creeps back in.
What it deliberately does not do
It does not remember list views, dashboards or reports — only records you opened. A recents list of "the sales order list, forty times" is not a recents list.
It does not remember a record you were creating and never saved. There is nothing to go back to.
It is an internal tool: portal and public users are refused at the server, not merely hidden from the menu.
Screens


