1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2024-11-28 09:08:41 +02:00
lazygit/docs/Config.md

301 lines
7.7 KiB
Markdown
Raw Normal View History

# User Config
2018-08-18 05:54:39 +02:00
Default path for the config file:
* Linux: `~/.config/jesseduffield/lazygit/config.yml`
* MacOS: `~/Library/Application Support/jesseduffield/lazygit/config.yml`
2020-04-24 23:31:32 +02:00
* Windows: `%APPDATA%\jesseduffield\lazygit\config.yml`
2019-12-05 04:35:29 +02:00
## Default
2018-08-18 05:54:39 +02:00
```yaml
2018-08-18 05:54:39 +02:00
gui:
# stuff relating to the UI
scrollHeight: 2 # how many lines you scroll by
scrollPastBottom: true # enable scrolling past the bottom
2020-03-03 15:08:34 +02:00
sidePanelWidth: 0.3333 # number from 0 to 1
2018-08-18 05:54:39 +02:00
theme:
lightTheme: false # For terminals with a light background
2018-08-18 05:54:39 +02:00
activeBorderColor:
- white
- bold
inactiveBorderColor:
2020-02-25 12:23:29 +02:00
- green
2018-08-18 05:54:39 +02:00
optionsTextColor:
- blue
selectedLineBgColor:
- bold
commitLength:
show: true
2019-11-10 07:20:35 +02:00
mouseEvents: true
2020-01-12 06:02:00 +02:00
skipUnstageLineWarning: false
2020-04-20 10:53:40 +02:00
skipStashWarning: true
2019-02-16 12:01:17 +02:00
git:
2020-03-03 14:10:42 +02:00
paging:
colorArg: always
useConfig: false
2019-02-16 12:01:17 +02:00
merging:
# only applicable to unix users
manualCommit: false
2020-04-20 10:35:22 +02:00
# extra args passed to `git merge`, e.g. --no-ff
args: ""
skipHookPrefix: WIP
2019-09-08 03:20:35 +02:00
autoFetch: true
2018-08-26 05:03:37 +02:00
update:
method: prompt # can be: prompt | background | never
days: 14 # how often an update is checked for
2018-08-26 07:46:18 +02:00
reporting: 'undetermined' # one of: 'on' | 'off' | 'undetermined'
2018-09-05 19:56:11 +02:00
confirmOnQuit: false
keybinding:
universal:
quit: 'q'
quit-alt1: '<c-c>' # alternative/alias of quit
return: '<esc>' # return to previous menu, will quit if there's nowhere to return
quitWithoutChangingDirectory: 'Q'
togglePanel: '<tab>' # goto the next panel
prevItem: '<up>' # go one line up
nextItem: '<down>' # go one line down
prevItem-alt: 'k' # go one line up
nextItem-alt: 'j' # go one line down
prevPage: ',' # go to next page in list
nextPage: '.' # go to previous page in list
gotoTop: '<' # go to top of list
gotoBottom: '>' # go to bottom of list
prevBlock: '<left>' # goto the previous block / panel
nextBlock: '<right>' # goto the next block / panel
prevBlock-alt: 'h' # goto the previous block / panel
nextBlock-alt: 'l' # goto the next block / panel
nextMatch: 'n'
prevMatch: 'N'
optionMenu: 'x' # show help menu
optionMenu-alt1: '?' # show help menu
select: '<space>'
2019-12-07 08:48:19 +02:00
goInto: '<enter>'
remove: 'd'
new: 'n'
edit: 'e'
openFile: 'o'
scrollUpMain: '<pgup>' # main panel scrool up
scrollDownMain: '<pgdown>' # main panel scrool down
scrollUpMain-alt1: 'K' # main panel scrool up
scrollDownMain-alt1: 'J' # main panel scrool down
scrollUpMain-alt2: '<c-u>' # main panel scrool up
scrollDownMain-alt2: '<c-d>' # main panel scrool down
executeCustomCommand: ':'
createRebaseOptionsMenu: 'm'
pushFiles: 'P'
pullFiles: 'p'
refresh: 'R'
createPatchOptionsMenu: '<c-p>'
2020-01-09 12:34:17 +02:00
nextTab: ']'
prevTab: '['
2020-02-24 23:32:46 +02:00
nextScreenMode: '+'
prevScreenMode: '_'
2020-03-21 04:39:20 +02:00
undo: 'z'
redo: '<c-z>'
2020-03-29 01:11:15 +02:00
filteringMenu: <c-s>
2020-03-29 09:13:03 +02:00
diffingMenu: '<c-e>'
2020-04-15 12:30:24 +02:00
copyToClipboard: '<c-o>'
status:
checkForUpdate: 'u'
2019-12-07 08:48:19 +02:00
recentRepos: '<enter>'
files:
commitChanges: 'c'
commitChangesWithoutHook: 'w' # commit changes without pre-commit hook
amendLastCommit: 'A'
commitChangesWithEditor: 'C'
ignoreFile: 'i'
refreshFiles: 'r'
stashAllChanges: 's'
viewStashOptions: 'S'
toggleStagedAll: 'a' # stage/unstage all
viewResetOptions: 'D'
fetch: 'f'
branches:
createPullRequest: 'o'
2019-12-07 08:48:19 +02:00
checkoutBranchByName: 'c'
forceCheckoutBranch: 'F'
rebaseBranch: 'r'
mergeIntoCurrentBranch: 'M'
2020-01-07 12:42:33 +02:00
viewGitFlowOptions: 'i'
2019-12-07 08:48:19 +02:00
fastForward: 'f' # fast-forward this branch from its upstream
pushTag: 'P'
setUpstream: 'u' # set as upstream of checked-out branch
2019-12-07 19:26:17 +02:00
fetchRemote: 'f'
commits:
squashDown: 's'
renameCommit: 'r'
renameCommitWithEditor: 'R'
2019-12-07 08:48:19 +02:00
viewResetOptions: 'g'
markCommitAsFixup: 'f'
createFixupCommit: 'F' # create fixup commit for this commit
squashAboveCommits: 'S'
moveDownCommit: '<c-j>' # move commit down one
moveUpCommit: '<c-k>' # move commit up one
amendToCommit: 'A'
pickCommit: 'p' # pick commit (when mid-rebase)
revertCommit: 't'
cherryPickCopy: 'c'
cherryPickCopyRange: 'C'
pasteCommits: 'v'
tagCommit: 'T'
checkoutCommit: '<space>'
resetCherryPick: '<c-R>'
stash:
popStash: 'g'
commitFiles:
checkoutCommitFile: 'c'
main:
toggleDragSelect: 'v'
toggleDragSelect-alt: 'V'
toggleSelectHunk: 'a'
2020-01-06 17:37:21 +02:00
pickBothHunks: 'b'
2018-08-18 05:54:39 +02:00
```
## Platform Defaults
### Windows
```yaml
os:
openCommand: 'cmd /c "start "" {{filename}}"'
```
### Linux
```yaml
os:
2018-09-04 11:18:18 +02:00
openCommand: 'sh -c "xdg-open {{filename}} >/dev/null"'
```
### OSX
```yaml
os:
openCommand: 'open {{filename}}'
```
### Recommended Config Values
for users of VSCode
```yaml
os:
openCommand: 'code -r {{filename}}'
```
## Color Attributes
2018-08-18 05:54:39 +02:00
For color attributes you can choose an array of attributes (with max one color attribute)
The available attributes are:
- default
- black
- red
- green
- yellow
- blue
- magenta
- cyan
- white
- bold
- reverse # useful for high-contrast
- underline
2018-08-21 05:42:17 +02:00
## Light terminal theme
2019-10-18 09:52:32 +02:00
If you have issues with a light terminal theme where you can't read / see the text add these settings
```yaml
gui:
theme:
lightTheme: true
activeBorderColor:
- black
- bold
inactiveBorderColor:
- black
selectedLineBgColor:
- bold
```
## Struggling to see selected line
If you struggle to see the selected line I recomment using the reverse attribute on selected lines like so:
```yaml
gui:
theme:
selectedLineBgColor:
- reverse
2019-10-18 09:52:32 +02:00
```
## Example Coloring
2018-08-21 05:42:17 +02:00
![border example](/docs/resources/colored-border-example.png)
## Keybindings
2020-04-03 08:38:46 +02:00
For all possible keybinding options, check [Custom_Keybindings.md](https://github.com/jesseduffield/lazygit/blob/master/docs/keybindings/Custom_Keybindings.md)
### Example Keybindings For Colemak Users
```yaml
keybinding:
universal:
2019-12-07 08:48:19 +02:00
prevItem-alt: 'u'
nextItem-alt: 'e'
prevBlock-alt: 'n'
nextBlock-alt: 'i'
nextMatch: '='
prevMatch: '-'
2019-12-05 04:34:59 +02:00
new: 'k'
edit: 'o'
openFile: 'O'
2019-12-07 08:48:19 +02:00
scrollUpMain-alt1: 'U'
scrollDownMain-alt1: 'E'
scrollUpMain-alt2: '<c-u>'
scrollDownMain-alt2: '<c-e>'
files:
2019-12-05 04:34:59 +02:00
ignoreFile: 'I'
commits:
2019-12-07 08:48:19 +02:00
moveDownCommit: '<c-e>'
moveUpCommit: '<c-u>'
toggleDiffCommit: 'l'
branches:
viewGitFlowOptions: 'I'
```
## Custom pull request URLs
Some git provider setups (e.g. on-premises GitLab) can have distinct URLs for git-related calls and
the web interface/API itself. To work with those, Lazygit needs to know where it needs to create
the pull request. You can do so on your `config.yml` file using the following syntax:
```yaml
services:
"<gitDomain>": "<provider>:<webDomain>"
```
Where:
- `gitDomain` stands for the domain used by git itself (i.e. the one present on clone URLs), e.g. `git.work.com`
- `provider` is one of `github`, `bitbucket` or `gitlab`
- `webDomain` is the URL where your git service exposes a web interface and APIs, e.g. `gitservice.work.com`
## Predefined commit message prefix
In situations where certain naming pattern is used for branches and commits, pattern can be used to populate
commit message with prefix that is parsed from the branch name.
Example:
* Branch name: feature/AB-123
* Commit message: [AB-123] Adding feature
```yaml
git:
commitPrefixes:
my_project: # This is repository folder name
pattern: "^\\w+\\/(\\w+-\\w+)"
replace: "[$1] "
```