Freshest is a minimalist graphical customizable application menu/launcher with a simple-but-effective automatic reordering mechanism. It is written in Python with GTK+.
How does it work? When you launch an application, it is moved to the head of the list. This way the most heavily used applications are concentrated in one end, and the least used ones in the other. This has two-way benefit, as most of the time you’ll want to use an application which you use frequently (duh!…), but sometimes you’d rather choose to launch one which gathers dust (e.g. that game you’ve downloaded months ago but haven’t got the chance to play and now you find it awesome).
- Automatic reordering of items according to your changing habits and needs.
- Everything is done in open human-readable, computer-manipulatable standard formats (freedesktop.org’s desktop entries and JSON). Desktop entries can be copied (or symlinked) from your system’s appropriate directory (e.g.
/usr/share/applications
in [http://archlinux.org](Arch Linux)). - Native support for localization (POSIX locale). If a desktop entry file doesn’t contain a name suitable for your language, you can add it manually.
- While manipulating the menu requires some technical skills, using the menu is dead simple, making it perfect for children (my kids use it for launching games).
One can have several independent profiles; they are located by default each at ~/.config/freshest/PROFILENAME
, where the default PROFILENAME
is default
. The latter is used by running freshest
, while other profiles can be used by running freshest PROFILENAME
(this will create a new profile in case it doesn't exist yet).
Each profile has:
applications/
: a subdirectory which you should populate with.desktop
fileslist.json
: an automatically managed file which contains data about which applications was used most recentlyconfig.json
: a configuration file
Desktop entry files can be easily edited with any text editor. If you want a specialized tool, give this a try.
You can select an application either using a mouse or a keyboard. Pressing r
selects a random application.
A example of a populated menu, with English locale:
The same menu with Hebrew locale (notice the change in direction):
Feel free to contribute to this software ☺. Just fork it, make the changes you want and send a pull request.
I’m a novice Python programmer. I’m aware the code isn’t elegant; if you have suggestions for making it more readable, efficient, neat or Pythonic, don’t hesitate.