The Plucky delay is the most important Plucky setting.

The effect of the delay

When the delay is 0 (sometimes represented as “nil”), any change to your Plucky configuration will take effect immediately. For example, you could add any of the following rules to your configuration, and they would take effect immediately:

allow everything
block everything

You could also uninstall Plucky immediately.

However, when the delay is not 0 (nil), any changes to your configuration that will result in greater access will be delayed. (Other changes will still take immediate effect.)

For example, if your delay was set to 3 seconds and you added the rule allow, the rule would not take effect (i.e., would not be allowed) until 3 seconds after you added it, since this change increases what you can access.

pluck delay 3
pluck + allow

However, if you removed the rule allow, this change would take effect immediately (since it decreases your access), and would cease to be allowed.

Note that any decreases to your delay must also endure the delay period.

So if your delay is 3 seconds, after requesting the delay be set to 0, 3 seconds must still elapse before the effective delay actually becomes 0.

In addition, disabling the system feature (changing the installation level in older versions) or uninstalling requires that the delay be 0. So if you set your delay to 1 second and then try to uninstall Plucky using the button in the browser extension settings or using the uninstall command (pluck uninstall in a console window), Plucky will refuse to uninstall. You must first set the delay to 0 and wait for this change to become effective.

See tips for some other tips on the delay and related features.

Setting the delay

In the browser extension

  1. Click the Plucky button (in the top right corner of your browser).
  2. In the new tab that opens, click “config” in the navigation bar at the top.
  3. Click the “delay” button that shows your current delay.
  4. Enter the new delay you want.
  5. Click “Apply”.
  6. If you have decreased the delay, wait for the new delay to come into effect.

Using a console

Use the delay command to set the delay in a console window. For example, to set the delay to 10 seconds, run:

pluck delay 10

You can also use this command to check what your current delay is. If you run the following command, it will show it will show you your current delay, converted to seconds.

pluck delay

Skipping the delay by using expedite approvals

The delay for any change can be skipped by using expedite.

Varying the delay by time of day

Plucky allows you to vary the delay by time of day.

pluck when 0-8 delay 3600
pluck when 8-12 delay 30
pluck when 12-24 delay 7200

See hrs3 for more on the time format used.

Delay patterns (advanced)

Delay patterns are somewhat complex, hard to describe, and to use them well may require some significant thought. If those hurdles don’t stop you, read on.

It is possible to use different delays for different changes to Plucky configuration through a feature known as “delay patterns”. For example, to specify that the allowing a new youtube video should require a 45 minute delay, the delay pattern + allow could be used like so:

pluck delay 45m "+ allow"

Thus would any rules that allow urls starting with be delayed by 45 minutes.

Similarly, to use a delay of 10 hours before removing any rule that blocks:

pluck delay 10h "- block"

To use a delay of 24 hours before a new allow everything rule would take effect:

pluck delay 24h "+ allow everything"

In the 3 examples above, everything between the double quotes is called the delay pattern.

Special syntax can be used to force certain kinds of matching of delay patterns.

Delay pattern that uses the general delay

To use a delay pattern that should use the general delay, whatever its value, use _ instead of an ordinary delay time. E.g.:

pluck delay _ "+ allow"

While it may seem redundant to specify the general delay, there are cases when this is handy.

Delay pattern details

TL;DR: In Plucky 1.13 or newer, leave out the anchor characters (^, $, or ~) for best results.

As of Plucky 1.13, delay patterns match naturally by default. Older versions of Plucky use loose matching by default.

A delay pattern may match naturally, loosely (a substring match), exactly (an exact match), or prefixedly (a prefix match). Although the ^$ syntax for delay patterns is borrowed from regular expressions, delay patterns are not regular expressions.

A delay pattern starts with an operation character that is + (add) or - (del) to indicate whether the pattern applies to adding rules or to removing existing rules.

After the operation character (+ or -) is a space.

After the space is an optional anchor character, which may be either ~ or ^. If neither are specified the pattern matches naturally, with a few special exceptions.

A pattern may end in a $ character to indicate the end of the pattern.

To restate, the special markers in delay patterns are:

match loosely (e.g. + ~youtu matches + allow
match only if the start of a rule strictly matches the characters that follow (see examples below).
match only if the rule matches exactly, from beginning to end (see examples below).
match only if the rule ends with a match for the pattern.

When there is no special marker, the delay pattern matches naturally, which means that the delay pattern is first converted to the internal Plucky language syntax, and then matching is performed over each term in the result, which is what somebody who didn’t read any of this documentation would probably expect.

For example:

pluck delay 1h
pluck delay 45m "+ allow"                 ## delay new youtube videos by 45 minutes
pluck + allow          ## delayed 45 minutes
pluck + allow user:jon ## also delayed 45 minutes
pluck + allow                                          ## delayed 1 hour

Be aware that host-specific rules do not at present affect urls, so most of the time, you want to use a url in delay patterns rather than a simple host name.

pluck delay 45m "+ allow"                                    ## probably bad
pluck delay 45m "+ allow"                           ## probably good

Because adding new allow rules, removing any block rules, and allowing everything are three operations that users often want to create a special delay pattern for, the following are handled as special cases to do these three things respectively.

pluck delay 30m "+ allow"            ## delay any new allowances by 30 minutes
pluck delay 10m "+ allow otherwise"  ## delay the allow otherwise rule by 40 minutes
pluck delay 10h "- block"            ## delay removal of any blocks by 10 hours
pluck delay 24h "+ allow everything" ## delay allowing of "everything" by 24 hours

Importing configurations

On, devices have delays as well as configurations. A delay on a device governs only the delay for changing the configuration assigned to that device; it does not govern changes to the configuration itself.