rule-syntax

# This file contains a smattering of Pluckeye language samples, and
# the language described herein is specific to Pluckeye v0.99.x and
# above.
#
# For Pluckeye v0.98 and below, see old/legacy-rule-syntax.txt
#
# Note that more specific settings take precedence over less specific settings.
#
## Other notes
#
# To reset settings to the original, you may use the factoryreset command:
#
# pluck factoryreset

# The 'block everything' rule is the highest priority setting and
# overrides every other rule.  It used to be called "blackout".

block everything

# The 'allow everything' rule a high priority setting that overrides
# all other filtering except for 'block everything'.  It used to be
# called "whiteout".

allow everything

# hosts

allow pluckeye.net
block youtube.com

# IP addresses

allow 127.0.0.1
block 1.1.1.1

# a subnet (trailing 0's are special to Pluckeye)

allow 192.168.0.0

# ipv6

allow ::1
block [::1234]

# mediaType

allow image/svg+xml
block image/
block video/
block application/x-shockwave-flash
block application/x-silverlight

# ports

block port 25

# programs

allow program /usr/bin/git

# urls

allow http://www.pluckeye.net/faq.html
allow http://www.pluckeye.net/eyeball.png image/png

# scheduled settings
#
# uses hrs3 to describe time periods
#
# MTWRFAU <- sUn, Mon, Tue, Wed, thuR, Fri, sAt, sUn
# See also https://u.pluckeye.net/hrs3

when M10-12&13-15.T1-2 block everything
when 0000-0600 block everything
when MTWRF0800-1200&1300-1700 block a.pluckeye.net
when 201505301100-201505301130 block b.pluckeye.net
when now+30m block c.pluckeye.net
when F10-12 allow d.pluckeye.net

# mix and match (but not all combinations are valid)

block 1.1.1.1 port 80
allow youtube.com text/
when M10-12 allow youtube.com video/

# optional qualification
#
# Most syntax in this file is technically called "implicit form".
# When using "implicit form" the meaning of strings are inferred based
# on their syntax.  E.g. 1.2.3.4 is an ipv4 address.  However, you can
# and sometimes must explicitly qualify what you mean using one of the
# following prefixes.
#
# host, ipv4, ipv6, package, port, program, mediaType, when, or url.
#
# Such qualification is mandatory for package, port, program, and when
# terms as well as any term immediately following package or program
# because both package and program values can contain spaces.  For
# example, the following three entries have the same meaning.

allow pluckeye.net
allow host pluckeye.net
allow host:pluckeye.net

# the main delay

delay 3600

# delay patterns
#
# The syntax of these is *very* picky at present.
#
# To set a 10 hour delay for allowing everything (a.k.a., a whiteout):

delay 36000 + action:allow everything:true
#           must be a tab ^
#
# In a bash shell this is done like so:
#
# pluck + delay 36000 $'+ action:allow\teverything'
#
# To set a 3 hour delay for unblocking youtube.com:
#
# pluck + delay 3h $'- action:block\thost:youtube.com'

# noteworthy feature settings

# system is a feature to integrate with the entire system, not just a
# browser.  In Pluckeye 0.98.x and below, this formerly was called
# installation level 2.

system

# nhb is a feature that causes Pluckeye to block "more" outside the
# browser context.

nhb