Skip to main content

Create menus with dmenu-like applications, configured in toml.

Project description

Quick Actions

Configure Your Action menus with hierarchical TOML files bringing your own scripts.

Hey guys, I am here creating a cute little tool to have a place for actions, which I want to use, but don't want to bind them to specific keys (I don't use them that often). Check it out, maybe you will like it too.

Easily create powerful menus, you can define actions by giving it a label and a command to execute (or a path, relative path to TOML location are allowed).

You can use tags, prefixes and a bunch of directives (see examples).

Features

  • action IDs:
    • are generated from toml section headers
    • are prefixed with relative path: [CONFIG_DIR]/actions/a/b/default.toml, [toml_section]a.b.toml_section
  • search tags
  • prefix for execution (input: =2+2, prefix:=./calculator.sh 2+2)
    • if called without prefix, asks for input
  • set environment variables from TOML

Examples

full examples: Examples

Configuration

Default config dir on posix is $HOME/.config/quick_actions, on windows is $HOME/Appdata/Local/quick_actions.

  • WhatToDoMenu

  • [show group]

  • [populate options]

  • [ask arguments]

  • [ edit-results ]

  • show results

  • [edit-before-copy]

  • copy result

Actions

Actions are the menu entries.

action id is generated by the header, prefixed with relative path.

keys:

  • label: will be displayed in the menu (before id, command_prefix, search_tags)

  • exec:
    script prefix populate_options sleep_before search_tags show_response

[env]
ENV_VAR_NAME="ENV_VAR_VALUE"

Scopes

Prefix Scope

Prefix scoped settings match against the actions id, using str.startswith().

Action Scope

Action scoped settings are set specifically for every action.

Other

Display prefix

Install

Using pip

> pip install quick-actions

Using nixpkgs

{
    ...
    inputs = {
        quick-actions = {
            url = "git+https://gitlab.com/leswell/quick-actions";
            inputs.nixpkgs.follows = "nixpkgs";
        };
        ...
    }
}

AND add the package to system or home-manager quick-actions.packages.${pkgs.system}.quick-actions OR use one of the modules.

PLANS:

  • Module system? (eg. history module, hyprland module)

  • History for outputs (eg. script.calculator.qalc.calculator)

  • Copy result after show

  • State "persist"

  • Profiles, activatable with --profile flag, under config/profiles, which overwrites defaults

  • format-before-copy for actions (eg. script.calculator.qalc.calculator cut the operation, keep only the result)

  • format-action-result for actions (eg. colorpicker.hyprpicker)

  • hyprland keybinding modules, using hyprctl binds -j

  • frecency ordering for consecutive searches (something like zoxide)

  • Complete the docs / check out wiki

  • Aliases somehow (mayB prefix without arguments, SO rethink prefix)

  • config validetion with --validate-config

  • shortcut mode with --shortcut

  • Search for string (search tags removed) if no results

License

This project is licensed under the PolyForm Noncommercial License 1.0.0.

You are free to use, modify, and share this software for noncommercial purposes only.

Commercial use, including forks used in paid products, services, or business environments, is not allowed without explicit written permission from the author.

🔗 Read the full license here: PolyForm Noncommercial License 1.0.0

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

quick_actions-0.0.7a0.tar.gz (18.0 kB view details)

Uploaded Source

Built Distribution

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

quick_actions-0.0.7a0-py3-none-any.whl (23.8 kB view details)

Uploaded Python 3

File details

Details for the file quick_actions-0.0.7a0.tar.gz.

File metadata

  • Download URL: quick_actions-0.0.7a0.tar.gz
  • Upload date:
  • Size: 18.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.4

File hashes

Hashes for quick_actions-0.0.7a0.tar.gz
Algorithm Hash digest
SHA256 2e8785be974abac6cd60489d39e0aa231a6f4f386928fb085efd65e5d0456c42
MD5 98c12ec4760fe7fe2f9f2d9b3dea4092
BLAKE2b-256 7f7bfc71286392f61cc849236fbc4aeeb62d821f359aed3d189d22d867d19ebd

See more details on using hashes here.

File details

Details for the file quick_actions-0.0.7a0-py3-none-any.whl.

File metadata

File hashes

Hashes for quick_actions-0.0.7a0-py3-none-any.whl
Algorithm Hash digest
SHA256 09808598c1e98100900e013660d243c2452342434fe92b7c429c020d56be706b
MD5 a5ecce1e9ff59e997cfb89d35b03d878
BLAKE2b-256 01d368348ec0f89b27b80df8c63fdfdb08ec4d1e9075176431037d9258bc9b5f

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