Skip to content
This repository has been archived by the owner on Dec 13, 2024. It is now read-only.

bergercookie/awesome-albert-plugins

Repository files navigation

Awesome Albert Plugins

DEPRECATED Unfortunately the Albert python API is changing too fast and too much and I cannot keep up with maintaining this amount of plugins.


Code style: black

Description

This is a collection of plugins and themes for the Albert launcher. It strives to be up to date with the latest state of the Albert launcher and its Python API. In case of an older albert version, see the branches of this repo.

Demos

Plugins

Currently the list of plugins includes:

  • Abbreviations - ❗Lookup words stored in a file along with their description

  • Anki - 📇 Generate flashcards for Anki

  • Bluetooth - 🦷 Manage bluetooth devices

  • Clock - ⏰ Create countdown and stopwatch timers

  • Contacts - 📕 View your contacts and copy emails/telephones, etc.

  • Colors - 🎨 Color lookup using RGB, hex notation or color name

  • Emoji - 🎉 Search for and copy emojis to clipboard

  • Errno - ❗Lookup and get information on Linux error codes

  • Google Translate - 🉑 Reimplementation of this plugin with persistent storage of previous searches, no need for API key and smart HTTP querying to avoid blocking from Google.

  • Harakiri - 📫 Create temporary email addresses at harakirimail.com

  • IP show - 🌐 Display information about your network interfaces and public IPs

  • Image Search - 📷 Search the web for images, download them and/or copy them to clipboard

  • Jira - 📝 View and edit your Jira tickets from Albert

  • Killproc - ☠️ Kill processes based on fuzzy-search

  • Meme Generator - 😸 Generate memes and copy them to clipboard

  • Pass TOTP - 🔢 Generate 2FA codes with Pass and totp

  • Pass_rlded - 🔒 UNIX Password Manager interaction with fuzzy-search capabilities

  • Pulse Control - 🎤 Enable/disable sources and sinks from Pulse Control

  • Remmina - 🖥️ Start a Remmina VNC/SFTP connection

  • Saxophone - 🎷 Play your favorite internet radio stations / streams

  • Scratchpad - 📝 Take quick notes into a single textfile

  • Taskwarrior - 🪖 Interact with the Taskwarrior task manager

  • Template Albert Plugin - 🛠️ Template cookiecutter for creating new Albert plugins

  • Timezones - 🌏 Lookup timezone information

  • Tldr Lookup - Lookup tldr pages and commands

  • URL Error Lookup - 🔗 Lookup URL error codes

  • Words - 🔤 Lookup a word definition, synonyms and antonyms

  • Xkcd - 📓 List and fuzzy-search the latest xkcd comics

  • DuckDuckGo-based autocompletion search - 🦆 for searching on duckduckgo.com, github.com, stackoverflow, amazon, and a variety of other websites using ddgr

    • Suggestions-enabled search using ddgr on a variety of websites. For example:

      • DuckDuckGo

      • Amazon

      • Youtube

      • Github

      • Ebay

      • Imdb

      • Urban dictionary: Word/Slang definitions lookup

      • Python, OpenCV, Dlib, C++ documentation lookup

      • ...

      • ⚠️ To avoid getting blocked, a search request is only sent when the text ends with a dot ".".

      • Install google-chrome or chromium-browser to add an "Open in incognito mode" option

      • See the ddgr-specific section for more

Plugins have been tested with the Albert python v0.4 interface. If you're looking for a version that works with earlier versions of the plugin, see the prior-to-v0.4 branch. I'm using Python 3.6.8.

Themes

  • Mozhi - A flat, transparent and dark theme for Albert. (DEMO)

Motivation

It's really so easy writing plugins and automating parts of your workflow using Albert and its python extensions. That's the very reason I started writing them.

Installation

Requirements:

Clone this repository under your local Albert python plugins directory. By default the that is: ~/.local/share/albert/org.albert.extension.python/modules.

Then go to the Albert settings and enable the plugins that you are interested in using. Beware that you may need to install some more dependencies depending on the plugins you use. These dependencies will probably be pointed out either when you enable, or when you run the plugin for the first time. Refer to the directory of the corresponding plugin for more details.

ddgr-based plugins

The search plugins that use ddgr have not been committed to this repo. You can generate them offline using the create_ddgr_plugins.py script provided. Make sure you have Python >= 3.6 installed:

pip3 install --user --upgrade secrets requests ddgr cookiecutter
./create_ddgr_plugins.py

This will generate an Albert plugin for each one of the search engines specified in create_ddgr_plugins.py. Adjust the latter as required if you want to add more or remove plugins.

generate_plugins_only_for = [
    "alternativeto",
    "amazon",
    "askubuntu",
    "aur.archlinux",
    ...
    ]

I don't want to setup all the plugins, just a few

Very well, then after cloning this repo, just symlink or copy the plugin of choice under your local python plugins directory. For example for the jira plugin:

cp -r plugins/jira ~/.local/share/albert/org.albert.extension.python/modules/jira

After that, enable the plugin from the Albert settings.

Self Promotion

If you find this tool useful, please star it on Github

TODO List

See ISSUES list for the things that I'm currently either working on or interested in implementing in the near future. In case there's something you are interesting in working on, don't hesitate to either ask for clarifications or just do it and directly make a PR.

Ideas List (feel free to implement)

  • 🚧 Giphy - https://github.com/Giphy/giphy-python-client
  • 🚧 Devdocs.io/Zeal/Dash search
  • 🚧 Manage your VPN connections - Frontend to WireGuard?
  • 🚧 Spotify mini player - similar to this
  • 🚧 Movie search and ratings - be able to sign in to various services and (e.g., imdb) and submit a rating for a movie
  • 🚧 An alternative to Alfred's pkgman
  • 🚧 Vagrant start/stop boxes - see this
  • 🚧 Assembly instructions lookup - use this