summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoroakio <ilya.dubadenko@gmail.com>2024-02-05 21:41:16 +0300
committerStefan Haller <stefan@haller-berlin.de>2024-04-10 17:38:57 +0200
commit2b5c8140805ee11be798ff1ff919652e2f92a5e7 (patch)
tree5caf0d0cc7c2cea8f420185bd6c4c68c3bb169d9
parent4ba85608c8f3f25051994d3a7dd45647f58b119c (diff)
Add StatusPanelView config
-rw-r--r--docs/Config.md1
-rw-r--r--pkg/config/user_config.go4
-rw-r--r--pkg/gui/controllers/status_controller.go67
-rw-r--r--schema/config.json9
4 files changed, 53 insertions, 28 deletions
diff --git a/docs/Config.md b/docs/Config.md
index cf78a3113..c6f5cbbf9 100644
--- a/docs/Config.md
+++ b/docs/Config.md
@@ -90,6 +90,7 @@ gui:
spinner:
frames: ['|', '/', '-', '\\']
rate: 50 # spinner rate in milliseconds
+ statusPanelView: 'dashboard' # one of 'dashboard' | 'allBranchesLog'
git:
paging:
colorArg: always
diff --git a/pkg/config/user_config.go b/pkg/config/user_config.go
index 20a404b16..29b46e903 100644
--- a/pkg/config/user_config.go
+++ b/pkg/config/user_config.go
@@ -147,6 +147,9 @@ type GuiConfig struct {
FilterMode string `yaml:"filterMode" jsonschema:"enum=substring,enum=fuzzy"`
// Config relating to the spinner.
Spinner SpinnerConfig `yaml:"spinner"`
+ // Status panel view.
+ // One of 'dashboard' (default) | 'allBranchesLog'
+ StatusPanelView string `yaml:"statusPanelView" jsonschema:"enum=dashboard,enum=allBranchesLog"`
}
func (c *GuiConfig) UseFuzzySearch() bool {
@@ -684,6 +687,7 @@ func GetDefaultConfig() *UserConfig {
Frames: []string{"|", "/", "-", "\\"},
Rate: 50,
},
+ StatusPanelView: "dashboard",
},
Git: GitConfig{
Paging: PagingConfig{
diff --git a/pkg/gui/controllers/status_controller.go b/pkg/gui/controllers/status_controller.go
index 54bd04ad5..6e4138fc3 100644
--- a/pkg/gui/controllers/status_controller.go
+++ b/pkg/gui/controllers/status_controller.go
@@ -83,35 +83,15 @@ func (self *StatusController) onClickMain(opts gocui.ViewMouseBindingOpts) error
}
func (self *StatusController) GetOnRenderToMain() func() error {
- versionStr := "master"
- version, err := types.ParseVersionNumber(self.c.GetConfig().GetVersion())
- if err == nil {
- // Don't just take the version string as is, but format it again. This
- // way it will be correct even if a distribution omits the "v", or the
- // ".0" at the end.
- versionStr = fmt.Sprintf("v%d.%d.%d", version.Major, version.Minor, version.Patch)
- }
+ config := self.c.UserConfig.Gui
- return func() error {
- dashboardString := strings.Join(
- []string{
- lazygitTitle(),
- "Copyright 2022 Jesse Duffield",
- fmt.Sprintf("Keybindings: %s", style.AttrUnderline.Sprint(fmt.Sprintf(constants.Links.Docs.Keybindings, versionStr))),
- fmt.Sprintf("Config Options: %s", style.AttrUnderline.Sprint(fmt.Sprintf(constants.Links.Docs.Config, versionStr))),
- fmt.Sprintf("Tutorial: %s", style.AttrUnderline.Sprint(constants.Links.Docs.Tutorial)),
- fmt.Sprintf("Raise an Issue: %s", style.AttrUnderline.Sprint(constants.Links.Issues)),
- fmt.Sprintf("Release Notes: %s", style.AttrUnderline.Sprint(constants.Links.Releases)),
- style.FgMagenta.Sprintf("Become a sponsor: %s", style.AttrUnderline.Sprint(constants.Links.Donate)), // caffeine ain't free
- }, "\n\n") + "\n"
-
- return self.c.RenderToMainViews(types.RefreshMainOpts{
- Pair: self.c.MainViewPairs().Normal,
- Main: &types.ViewUpdateOpts{
- Title: self.c.Tr.StatusTitle,
- Task: types.NewRenderStringTask(dashboardString),
- },
- })
+ switch config.StatusPanelView {
+ case "dashboard":
+ return self.showDashboard
+ case "allBranchesLog":
+ return self.showAllBranchLogs
+ default:
+ return self.showDashboard
}
}
@@ -224,6 +204,37 @@ func (self *StatusController) showAllBranchLogs() error {
})
}
+func (self *StatusController) showDashboard() error {
+ versionStr := "master"
+ version, err := types.ParseVersionNumber(self.c.GetConfig().GetVersion())
+ if err == nil {
+ // Don't just take the version string as is, but format it again. This
+ // way it will be correct even if a distribution omits the "v", or the
+ // ".0" at the end.
+ versionStr = fmt.Sprintf("v%d.%d.%d", version.Major, version.Minor, version.Patch)
+ }
+
+ dashboardString := strings.Join(
+ []string{
+ lazygitTitle(),
+ "Copyright 2022 Jesse Duffield",
+ fmt.Sprintf("Keybindings: %s", style.AttrUnderline.Sprint(fmt.Sprintf(constants.Links.Docs.Keybindings, versionStr))),
+ fmt.Sprintf("Config Options: %s", style.AttrUnderline.Sprint(fmt.Sprintf(constants.Links.Docs.Config, versionStr))),
+ fmt.Sprintf("Tutorial: %s", style.AttrUnderline.Sprint(constants.Links.Docs.Tutorial)),
+ fmt.Sprintf("Raise an Issue: %s", style.AttrUnderline.Sprint(constants.Links.Issues)),
+ fmt.Sprintf("Release Notes: %s", style.AttrUnderline.Sprint(constants.Links.Releases)),
+ style.FgMagenta.Sprintf("Become a sponsor: %s", style.AttrUnderline.Sprint(constants.Links.Donate)), // caffeine ain't free
+ }, "\n\n") + "\n"
+
+ return self.c.RenderToMainViews(types.RefreshMainOpts{
+ Pair: self.c.MainViewPairs().Normal,
+ Main: &types.ViewUpdateOpts{
+ Title: self.c.Tr.StatusTitle,
+ Task: types.NewRenderStringTask(dashboardString),
+ },
+ })
+}
+
func (self *StatusController) handleCheckForUpdate() error {
return self.c.Helpers().Update.CheckForUpdateInForeground()
}
diff --git a/schema/config.json b/schema/config.json
index 21860c39c..5d259cbd4 100644
--- a/schema/config.json
+++ b/schema/config.json
@@ -392,6 +392,15 @@
"additionalProperties": false,
"type": "object",
"description": "Config relating to the spinner."
+ },
+ "statusPanelView": {
+ "type": "string",
+ "enum": [
+ "dashboard",
+ "allBranchesLog"
+ ],
+ "description": "Status panel view.\nOne of 'dashboard' (default) | 'allBranchesLog'",
+ "default": "dashboard"
}
},
"additionalProperties": false,