Skip to main content

Drop-in replacement for i3-dmenu-desktop with simple app priorization

Project description

pri3o-dmenu-desktop

Description

pri3o-dmenu-desktop is a drop-in replacement for Michael Stapelberg's i3-dmenu-desktop that adds simple application priorization. It supports all options present in i3-dmenu-desktop and a few more.

At this point priority is simply the absolute number times the program was run. For example a program ran three times has a higher priority than a program only run twice. It's very simple but pretty effective. In the future I might add a time-based component as well.

The priority data is stored in a sqlite database in $XDG_CONFIG_HOME/pri3o-dmenu-desktop/dmenu.db (defaults to ~/.config/pri3o-dmenu-desktop/dmenu.db) but a custom location can be specified via command line parameter. A new db will be create if it does not exist yet.

Requirements

To run this you need Python 3, all used libraries should be present in the standard distribution. Python 3 should already be present in any modern, non-minimal distribution. For older/LTS distributions (e.g. CentOS 7) you may need to install it.

For RedHat based distros this can be done via:

yum install python3

For Debian based distros use:

apt install python3

Installing

The easiest way to install is using pip3:

pip3 install pri3o_dmenu_desktop

Running

Just run using

pri3o-dmenu-desktop [OPTIONS]

If run without parameters, will behave like i3-dmenu-desktop without parameters. The optional commandline parameters are:

  • -d, --database=PATH path to database file; default $XDG_CONFIG_HOME/pri3o-dmenu-desktop/dmenu.db
  • -e, --entry-type=TYPE display "Name" (TYPE=name), "Exec" (TYPE=command) or .desktop filename (TYPE=filename) in dmenu, default name
  • -l, --locale=LOCALE use LOCALE (e.g. en_GB) for localisation of "Name", default is system locale
  • -m, --dmenu=COMMAND run this command for dmenu, default dmenu -i
  • -t, --term=COMMAND use this command for programs that need to be run in a terminal, default i3-sensible-terminal -e

Speed

As some people may wonder about how fast it is:

 % time pri3o-dmenu-desktop --dmenu=/bin/false
pri3o-dmenu-desktop --dmenu=/bin/false  0,06s user 0,01s system 99% cpu 0,070 total

 % time i3-dmenu-desktop --dmenu=/bin/false
i3-dmenu-desktop --dmenu=/bin/false  0,11s user 0,01s system 99% cpu 0,114 total

 % time j4-dmenu-desktop --dmenu=/bin/false
j4-dmenu-desktop --dmenu=/bin/false  0,00s user 0,00s system 97% cpu 0,006 total

On my system (SSD-only) it is slightly faster than i3-dmenu-desktop, but still much slower than j4-dmenu-desktop. For all practical purposes these differences should negligible unless you have a lot of applications and/or a slow hard drive.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pri3o_dmenu_desktop-0.1.2.tar.gz (6.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pri3o_dmenu_desktop-0.1.2-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

Details for the file pri3o_dmenu_desktop-0.1.2.tar.gz.

File metadata

  • Download URL: pri3o_dmenu_desktop-0.1.2.tar.gz
  • Upload date:
  • Size: 6.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.3

File hashes

Hashes for pri3o_dmenu_desktop-0.1.2.tar.gz
Algorithm Hash digest
SHA256 4672869ed9036cfb2ec5b34dcbff15bf9f23f2ca1d929becf230325906afb80a
MD5 1441db04a160748ecdb45e3a55b1335d
BLAKE2b-256 48a9c4aa2ae220e3e0b04ee0f52d1affc7169143dfbba89b5ecaf443015180ca

See more details on using hashes here.

File details

Details for the file pri3o_dmenu_desktop-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: pri3o_dmenu_desktop-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 7.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.3

File hashes

Hashes for pri3o_dmenu_desktop-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ed39b162266170d900347866b12c394c8d857a9055190150fb210a0840d1f455
MD5 204a23a8ce5c411e213848b996ea6614
BLAKE2b-256 c416893a8c8ced57cac04d23c249edbc1ced065a52defd0764a21d387da090b7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page