1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-07-30 03:23:08 +03:00

Add config setting for side panel location (left or top) in half screen mode

This commit is contained in:
Stefan Haller
2023-11-26 13:11:50 +01:00
parent 15da702140
commit d70dd5123d
5 changed files with 85 additions and 1 deletions

View File

@ -107,6 +107,10 @@ func (self *WindowArrangementHelper) GetWindowDimensions(informationStr string,
}
func shouldUsePortraitMode(args WindowArrangementArgs) bool {
if args.ScreenMode == types.SCREEN_HALF {
return args.UserConfig.Gui.EnlargedSideViewLocation == "top"
}
switch args.UserConfig.Gui.PortraitMode {
case "never":
return false
@ -241,7 +245,11 @@ func getMidSectionWeights(args WindowArrangementArgs) (int, int) {
}
} else {
if args.ScreenMode == types.SCREEN_HALF {
mainSectionWeight = 1
if args.UserConfig.Gui.EnlargedSideViewLocation == "top" {
mainSectionWeight = 2
} else {
mainSectionWeight = 1
}
} else if args.ScreenMode == types.SCREEN_FULL {
mainSectionWeight = 0
}

View File

@ -121,6 +121,70 @@ func TestGetWindowDimensions(t *testing.T) {
B: information
`,
},
{
name: "half screen mode, enlargedSideViewLocation left",
mutateArgs: func(args *WindowArrangementArgs) {
args.Height = 20 // smaller height because we don't more here
args.ScreenMode = types.SCREEN_HALF
args.UserConfig.Gui.EnlargedSideViewLocation = "left"
},
expected: `
╭status──────────────────────────────╮╭main───────────────────────────────╮
│ ││ │
│ ││ │
│ ││ │
│ ││ │
│ ││ │
│ ││ │
│ ││ │
│ ││ │
│ ││ │
│ ││ │
│ ││ │
│ ││ │
│ ││ │
│ ││ │
│ ││ │
│ ││ │
│ ││ │
╰────────────────────────────────────╯╰───────────────────────────────────╯
<options──────────────────────────────────────────────────────>A<B────────>
A: statusSpacer1
B: information
`,
},
{
name: "half screen mode, enlargedSideViewLocation top",
mutateArgs: func(args *WindowArrangementArgs) {
args.Height = 20 // smaller height because we don't more here
args.ScreenMode = types.SCREEN_HALF
args.UserConfig.Gui.EnlargedSideViewLocation = "top"
},
expected: `
╭status───────────────────────────────────────────────────────────────────╮
│ │
│ │
│ │
│ │
│ │
╰─────────────────────────────────────────────────────────────────────────╯
╭main─────────────────────────────────────────────────────────────────────╮
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
╰─────────────────────────────────────────────────────────────────────────╯
<options──────────────────────────────────────────────────────>A<B────────>
A: statusSpacer1
B: information
`,
},
{
name: "search mode",
mutateArgs: func(args *WindowArrangementArgs) {