The Delay | Pluckeye

The Pluckeye delay is the most important Pluckeye setting.

The effect of the delay

When the delay is 0 (sometimes represented as “nil”), any change to your Pluckeye 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 a.com
allow everything
block everything

You could also uninstall Pluckeye 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 b.com, the rule would not take effect (i.e., b.com would not be allowed) until 3 seconds after you added it, since this change increases what you can access.

  pluck delay 3
  pluck + allow b.com

However, if you removed the rule allow b.com, this change would take effect immediately (since it decreases your access), and b.com 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 Pluckeye using the button in the browser extension settings or using the uninstall command (pluck uninstall in a console window), Pluckeye 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

Using the browser extension

v1.0+

  1. Click the Pluck 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 seconds

You can also use this command to check what your current delay is. If you run

   pluck delay

it will show you your current delay, converted to seconds.

Varying the delay by time of day

Pluckeye 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, Pluck 1.0+)

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 through a feature known as “delay patterns”. An example delay pattern is

+ ^action:allow

A delay pattern may match loosely (a substring match), exactly (an exact string match), or prefixedly (a prefix string 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 the operation that will be delayed.

After the operation character is a space.

After the space is an optional pattern prefix, which may be either ~ or ^. If neither are specified the pattern matches loosely, 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:

~
means to match loosely. (simple string matching).
^
means to match only if the match string is at the start of a rule.
^$
means to match only if the match string matches the rule exactly.

For example:

  pluck delay 1h
  pluck delay 45m "+ ~youtube"                              # delay new youtube videos by 45 minutes
  pluck delay 45m "+ youtube"                               # ditto, loose match is the default
  pluck delay 45m "+ ^action:allow url:https://www.youtube" # prefix match
  pluck delay 24h "+ ^action:allow everything:true$"        # exact match

Because allowing everything and slowing blocking, the following are not matched loosely; they are handled as special cases.

  pluck delay 30m "+ allow"            # delay allowing a new anything by 30 minutes
  pluck delay 10h "- block"            # delay removing any block by 10 hours
  pluck delay 24h "+ allow everything" # delay whiteout by 24 hours

Importing configurations

On the users site, 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.