-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathdefault_config.jsonc
More file actions
144 lines (131 loc) · 6.27 KB
/
default_config.jsonc
File metadata and controls
144 lines (131 loc) · 6.27 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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
{
"$schema": "https://raw.githubusercontent.com/shkm/shellflow/main/schemas/config.schema.json",
// Shellflow Default Configuration
// https://github.com/shkm/shellflow/blob/main/src-tauri/src/default_config.jsonc
"main": {
// Command to run in the main terminal pane. If null or omitted, spawns your shell.
// "command": "claude",
"fontFamily": "Menlo, Monaco, 'Courier New', monospace",
"fontSize": 13,
"fontLigatures": false,
// Padding around the terminal content in pixels
"padding": 8
// Opacity (0.0 to 1.0) applied to the main area when drawer is focused.
// Defaults to panes.unfocusedOpacity if not specified.
// "unfocusedOpacity": 0.7
},
// Drawer terminal configuration. Properties inherit from "main" if not specified:
// fontFamily, fontSize, fontLigatures, padding
// Opacity (0.0 to 1.0) applied to drawer when open but not focused.
// Defaults to panes.unfocusedOpacity if not specified.
// "drawer": { "unfocusedOpacity": 0.7 },
"drawer": {},
// External applications to open directories/files with.
// Supports string shorthand ("zed") or object form ({ "command": "nvim", "target": "drawer" })
//
// Commands support {{ path }} template for path placement:
// - "nvim" → nvim "/path/to/file" (path appended)
// - "nvim {{ path }}" → nvim "/path/to/file" (explicit)
// - "code -g {{ path }}" → code -g "/path/to/file" (with flags)
//
// Target options:
// - "external": Run command directly (for GUI apps)
// - "terminal": Run inside a new terminal window (for TUI apps)
// - "drawer": Open in shellflow's drawer
// - "tab": Open in a new main area tab
//
// Platform defaults (when not configured):
// - terminal: Terminal.app (macOS), xdg-terminal-exec (Linux), Windows Terminal
// - editor: $VISUAL or $EDITOR, in a new terminal window
// - fileManager: Finder (macOS), xdg-open (Linux), explorer (Windows)
"apps": {
// "terminal": "ghostty",
// "editor": { "command": "zed", "target": "external" },
// "editor": { "command": "nvim", "target": "drawer" },
// "fileManager": "Finder"
},
"worktree": {
// Supports placeholder: {{ repo_directory }}
"directory": "{{ repo_directory }}/.worktrees",
// Branch to create worktrees from: "auto" (default branch), "current", or { "name": "branchname" }
"baseBranch": "auto",
"copy": {
"gitIgnored": false,
"except": [".claude", ".worktrees"]
},
// Focus the branch name input when creating a new worktree
"focusNewBranchNames": false,
"merge": {
"strategy": "merge",
"deleteWorktree": true,
"deleteLocalBranch": false,
"deleteRemoteBranch": false
},
"delete": {
// Delete the local branch when deleting a worktree
"deleteBranchWithWorktree": true
}
},
"indicators": {
// Time in ms after last activity before progress indicator turns off
"activityTimeout": 250,
// Show checkmark when activity stops (idle state)
"showIdleCheck": true
},
"scratch": {
// Create a scratch terminal when the app launches
"startOnLaunch": true
},
// Split pane configuration
"panes": {
// Opacity (0.0 to 1.0) applied to unfocused split panes
"unfocusedOpacity": 0.7
},
// AI-assisted actions configuration.
// Variables: {{ worktree_dir }}, {{ worktree_name }}, {{ branch }}, {{ target_branch }}, {{ conflicted_files }}
"actions": {
// Command to run for AI-assisted actions
"command": "claude",
// Prompt for merge conflict resolution
"mergeWorktreeWithConflicts": "In the git worktree at \"{{ worktree_dir }}\", complete the merge of branch \"{{ branch }}\" into \"{{ target_branch }}\".\n\nThe following files have merge conflicts:\n{% for file in conflicted_files %}- {{ file }}\n{% endfor %}\n\nAll conflict information is provided above - do not run git status or other diagnostic commands.\n\nRead only the conflicted files listed, resolve each conflict appropriately based on the code context, stage the resolved files with `git add`, and complete the merge with `git commit`.",
// Prompt for rebase conflict resolution
"rebaseWorktreeWithConflicts": "In the git worktree at \"{{ worktree_dir }}\", complete the rebase of branch \"{{ branch }}\" onto \"{{ target_branch }}\".\n\nThe following files have conflicts:\n{% for file in conflicted_files %}- {{ file }}\n{% endfor %}\n\nAll conflict information is provided above - do not run git status or other diagnostic commands.\n\nRead only the conflicted files listed, resolve each conflict appropriately based on the code context, stage the resolved files with `git add`, then run `git rebase --continue`.\n\nNote: Rebasing may involve multiple commits. After running `git rebase --continue`, check if there are more conflicts. If so, repeat the process until the rebase is complete."
}
// Theme configuration - uses VSCode themes.
// Can be a single theme name or light/dark object for system preference switching.
// When omitted, defaults to: { "light": "Catppuccin Latte", "dark": "Catppuccin Mocha" }
//
// Single theme (ignores system preference):
// "theme": "Catppuccin Mocha"
//
// Light/dark themes (switches based on system preference):
// "theme": {
// "light": "Catppuccin Latte",
// "dark": "Catppuccin Mocha"
// }
//
// Bundled themes: Catppuccin (Mocha, Macchiato, Frappé, Latte), One Dark Pro, Dracula, Nord, Gruvbox
// Custom themes: Place VSCode theme JSON files in ~/.config/shellflow/themes/
// How to handle borders when adapting themes:
// - "theme": Use exactly what the theme specifies (including transparent)
// - "subtle": Add subtle borders only where none exist (default)
// - "visible": Always ensure visible borders
// "themeBorderStyle": "subtle"
// Keyboard mappings are now defined in ~/.config/shellflow/mappings.jsonc
// See src/lib/defaultMappings.jsonc for default keybindings
// Example tasks (define in your project's .shellflow/config.jsonc):
// "tasks": [
// {
// "name": "Dev Server",
// "command": "npm run dev",
// "kind": "daemon",
// "env": {
// "PORT": "{{ branch | hash_port }}",
// "NODE_ENV": "development"
// },
// "urls": {
// "Dev": "http://localhost:{{ branch | hash_port }}"
// }
// }
// ]
}