Skip to content

A minimalist graphical customizable application menu/launcher with a simple-but-effective automatic reordering mechanism

License

Notifications You must be signed in to change notification settings

rwmpelstilzchen/freshest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Freshest

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).

Features

  • 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).

Usage

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 files
  • list.json: an automatically managed file which contains data about which applications was used most recently
  • config.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.

Screenshots

A example of a populated menu, with English locale: English menu

The same menu with Hebrew locale (notice the change in direction): Hebrew menu

Contribution

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.

Dependencies

  • PyGObject version 3, for GUI (Arch pygobject-devel; Fedora pygobject3; Ubuntu python-gobject)
  • PyXDG, for parsing .desktop files (Arch and Ubuntu python-xdg; Fedora pyxdg)

License

Abolish intellectual property! ☠

About

A minimalist graphical customizable application menu/launcher with a simple-but-effective automatic reordering mechanism

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages