1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# Noctiluca's config: a sample with every table. Copy it to
# ~/.config/noctiluca/config.toml (Linux; Application Support on macOS,
# %APPDATA% on Windows), or name another with `noctiluca --config PATH`.
# A key Noctiluca does not know is a warning, never an error.
[]
# The first page, when none is named on the command line.
= "https://docs.rs"
# projection (Chrome's layout in cells), reader (one column), pixels
# (Chrome's pixels in Kitty graphics, sent where they change), or raster.
= "projection"
# Where a page sets no background of its own, let the terminal's own
# background show (a translucent or themed terminal): in the faithful
# projection, and in Chrome's pixels where the image protocol keeps
# transparency. --transparent sets it for one run.
= false
[]
# The search engine for words the address bar does not know. {} is the
# query, escaped. No tracking parameters are added.
= "https://html.duckduckgo.com/html/?q={}"
[]
# Keywords: `gh rs-rich` in the address bar, or `noctiluca gh rs-rich`.
# A template's {} takes the words after the keyword; the keyword alone
# opens its site's home. A table sets both; false removes a built-in.
= "https://github.com/search?q={}"
= { = "https://en.wikipedia.org/w/index.php?search={}", = "https://en.wikipedia.org" }
# mdn = false
[]
# vim (o, f, /, H and L, g t) or plain (Ctrl+O, Alt+Left, Ctrl+F).
= "vim"
# Any action, by its id (`noctiluca keys` lists them): keys separated by
# spaces are alternatives; `none` (or "") unbinds. A line with a key
# name Noctiluca does not know is a warning, and only that line is skipped.
# hints = "f alt+f"
[]
# Pages' sound plays on the machine Chrome runs on. Off by default.
= false
# The most frames a second a moving picture (a GIF, a video) shows: a
# ceiling, not a target (the byte budget decides how many your terminal
# is sent); video never goes above 30.
= 30
# auto, ansi (half blocks), kitty, sixel, iterm2, or none (alt text only).
= "auto"
# Bytes a second moving pictures may send the terminal, shared by those in
# view; short of it, a picture steps down Kitty, iTerm2, Sixel, then half
# blocks. Unset: 4M on this machine, 256K over SSH, then what the terminal
# is measured taking (here up to 32M; over SSH only ever lower).
# bandwidth = "4M"
[]
# A control socket for scripts and coding agents of your own user
# (`noctiluca ls`, `noctiluca action …`): in a private directory under
# $XDG_RUNTIME_DIR, no network listener. Off unless turned on here or with
# --control. Unix only for now.
= false
# Refuse every action that changes anything (open, click, type, …): an
# agent can only read. --read-only sets it for one run.
= false
# Where Ctrl+G sends the element you pick: clipboard, pane (the pane beside
# this one, through the terminal's API), or pane:ID.
= "clipboard"
[]
# Terminal adaptations: named rules about constructs, never about a site.
# Every rule is on but text-over-pictures, which changes what a page
# means. `a` toggles all of them off and on while browsing, `?` lists
# them, and --adapt=-RULE or --no-adapt sets them for one run.
= true
= true
= true
= true
= true
= true
= true
= true
= false
= true
# Off: the page's own colours, on white on a light terminal, lightness
# inverted on black on a dark one (COLORFGBG says which).
= true
= true
[]
# A kept profile (its cookies and storage stay between runs), opt-in. By
# default each run has a temporary, private one.
# name = "work"
# Per-site settings: a host, a wildcard (*.example.com) or a URL prefix.
# The most specific match wins: a prefix, then a host, then a wildcard.
[]
= "reader"
# `s WORDS` in the address bar searches this site.
= "s"
[]
# A key binds an action, an element by its accessible role and name
# (looked up when the key is pressed), or a list of those. Never a script
# or a CSS selector. Ctrl+K ("Bind a key on this site…") binds one from
# the page itself.
= "scroll.down"
= { = "link", = "Next" }