-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathconfig.example.toml
More file actions
116 lines (106 loc) · 5.87 KB
/
Copy pathconfig.example.toml
File metadata and controls
116 lines (106 loc) · 5.87 KB
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
106
107
108
109
110
111
112
113
114
115
116
# nightcrow configuration example.
#
# Copy to ~/.nightcrow/config.toml and edit as needed. Every field is
# optional; omitted fields fall back to the defaults shown below.
[layout]
upper_pct = 55 # vertical % for the diff panel (1–99)
file_list_pct = 25 # horizontal % of upper panel for the file list (1–99)
[theme]
name = "yellow" # accent color preset: "yellow" | "cyan" | "green" | "magenta" | "blue"
[input]
# Leader (prefix) chord. nightcrow app commands are reached tmux-style by
# pressing the leader, then a follow-up key (e.g. <leader> q to quit). Every
# other key — including Ctrl chords like Ctrl+W / Ctrl+L — passes straight to
# the focused terminal so prompt-editing keys reach the program running there.
#
# Allowed form: "ctrl+<letter>" (a single ctrl chord). Reserved no-prefix keys
# (F1..F10 select project tabs, Shift+arrows, Shift+PgUp/PgDn) cannot be
# used as the leader.
#
# Migration: the old bare-Ctrl app shortcuts moved behind the leader:
# Ctrl+T → <leader> t Ctrl+W → <leader> w Ctrl+L → <leader> l
# Ctrl+O → <leader> o Ctrl+P → <leader> p Ctrl+Q → <leader> q
# Fullscreen is <leader> f; Ctrl+F is now the leader itself.
# Press the leader twice (<leader> <leader>) to send the literal leader byte
# to the terminal program.
leader = "ctrl+f" # default; one-handed, dodges tmux's Ctrl+B, terminal flow
# control (Ctrl+Q/S), the shell signals (Ctrl+C/D/Z), and the
# Ctrl chords an inner Claude Code pane uses (Ctrl+G=external
# editor, Ctrl+O/R/S/T/L)
[mouse]
# Capture the mouse: clicking a panel (file list, diff viewer, terminal pane)
# focuses it, clicks on terminal panes are forwarded to programs that asked
# for mouse reports (Claude Code, less --mouse, ...), and wheel scrolls move
# the pane under the pointer. While captured, select text in the outer
# terminal by holding its bypass modifier while dragging (Shift in
# xterm-family terminals, Option in iTerm2, Fn/Option in macOS Terminal.app).
# Set to false to give the mouse back to the outer terminal (plain-drag
# selection, no click forwarding).
enabled = true
[log]
enabled = true
dir = ".nightcrow/logs" # relative to repo root
rotation = "daily" # "daily" | "hourly" | "size"
max_size_mb = 10 # used when rotation = "size"
max_days = 7 # delete logs older than N days (0 = keep forever)
level = "info" # "error" | "warn" | "info" | "debug" | "trace"
prompt_log = false # record terminal prompt input line by line
commit_log_page_size = 100 # commits fetched per commit-log page (50..=500)
commit_log_prefetch_threshold = 25 # start the next-page fetch when the selection is
# within this many rows of the loaded tail (1..=page_size)
[agent_indicator]
enabled = true # color recently-touched files in the file list
hot_window_secs = 15 # seconds within which a file stays hot (3–3600)
auto_follow = false # jump selection to the freshest hot file when idle
[tree]
# Read-only directory-tree navigator (enter with <leader> b). Browse the whole
# working tree and preview any file's contents in the diff pane.
respect_gitignore = true # hide .gitignore-matched paths (target/, node_modules/, …)
max_depth = 64 # deepest directory level the tree will expand into (1..=1024)
live_watch = true # watch expanded dirs and refresh the tree live; set false
# to refresh only on tree entry (large trees / odd filesystems)
[web_mirror]
# Web mirror: serve a live, controllable view of this nightcrow in a browser.
# The browser and the local terminal drive the SAME session and stay in sync.
# Off by default — enabling it grants remote control of a shell, so treat the
# bind address and password as security-sensitive.
enabled = false # turn the web server on
bind = "127.0.0.1" # loopback only by default; set "0.0.0.0" deliberately.
# The server speaks plain HTTP — for remote access
# prefer an SSH tunnel or a TLS reverse proxy.
port = 8090
# Login password. If the web server is enabled and no password is set here, a
# random one is generated and written back to this line on first launch (and
# printed to the log) so it survives restarts and stays readable.
# password = "..."
# Alternatively store an Argon2 PHC hash instead of a plaintext password; it
# takes precedence over `password` when both are present.
# hashed_password = "$argon2id$v=19$m=..."
# Reserve startup commands: each [[startup_command]] opens its own terminal
# pane and runs `command` immediately (via `$SHELL -lc <command>`). Panes are
# per project, so these run again for every project tab you open, not once
# per process.
# Up to 8 entries (combined with CLI --exec). 8 matches the <leader> 3–9,0
# pane-jump keys, so every startup pane is reachable by a direct key
# (<leader> 1/2 reach the file list and diff viewer; the bare F-keys select
# project tabs). This caps only the startup
# batch — open more anytime with <leader> t (panes past the eighth are reached
# via focus cycling, Shift+←/→). `name` labels the tab; when omitted the
# command text is used. With no [[startup_command]] entries, nightcrow opens a
# single empty shell.
#
# [[startup_command]]
# name = "Claude" # optional tab label; falls back to the command text
# command = "claude" # required; must not be empty
#
# [[startup_command]]
# command = "cargo test --watch"
# Native web viewer: renders git data as a real web page and serves its own
# terminals, separate from the mirror above. Also available without the TUI as
# `nightcrow serve --repo <path>`.
[web_viewer]
enabled = false
bind = "127.0.0.1"
port = 8091
# password = "..." # generated and written here on first launch if unset
# hashed_password = "..." # Argon2 PHC string; takes precedence over password