summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2023-10-10 16:49:31 +1100
committerGitHub <noreply@github.com>2023-10-10 16:49:31 +1100
commit16f7b01fec5111146bff8c9d5c1eb5a63e78f14d (patch)
tree07cbb5325cffcdcb058ff6ba09bb742d007c3d66
parentc39fafe6ec6fb64d1510adef8980e93aebb334d5 (diff)
parent421c6565f9340bba2e30c1f87ff333bbea48cf31 (diff)
Add disabled compat for user config (#2833) (#3060)
-rw-r--r--docs/Config.md6
-rw-r--r--pkg/config/user_config.go2
-rw-r--r--pkg/gui/keybindings/keybindings.go4
-rw-r--r--pkg/integration/tests/misc/disabled_keybindings.go26
-rw-r--r--pkg/integration/tests/test_list.go1
5 files changed, 34 insertions, 5 deletions
diff --git a/docs/Config.md b/docs/Config.md
index 5bdcaed98..b37745b44 100644
--- a/docs/Config.md
+++ b/docs/Config.md
@@ -163,7 +163,7 @@ keybinding:
jumpToBlock: ['1', '2', '3', '4', '5'] # goto the Nth block / panel
nextMatch: 'n'
prevMatch: 'N'
- optionMenu: null # show help menu
+ optionMenu: <disabled> # show help menu
optionMenu-alt1: '?' # show help menu
select: '<space>'
goInto: '<enter>'
@@ -462,12 +462,12 @@ Supported versions are "2" and "3". The deprecated config `showIcons` sets the v
For all possible keybinding options, check [Custom_Keybindings.md](https://github.com/jesseduffield/lazygit/blob/master/docs/keybindings/Custom_Keybindings.md)
-You can disable certain key bindings by specifying `null`.
+You can disable certain key bindings by specifying `<disabled>`.
```yaml
keybinding:
universal:
- edit: null # disable 'edit file'
+ edit: <disabled> # disable 'edit file'
```
### Example Keybindings For Colemak Users
diff --git a/pkg/config/user_config.go b/pkg/config/user_config.go
index d3d77b666..de0495466 100644
--- a/pkg/config/user_config.go
+++ b/pkg/config/user_config.go
@@ -691,7 +691,7 @@ func GetDefaultConfig() *UserConfig {
NextMatch: "n",
PrevMatch: "N",
StartSearch: "/",
- OptionMenu: "",
+ OptionMenu: "<disabled>",
OptionMenuAlt1: "?",
Select: "<space>",
GoInto: "<enter>",
diff --git a/pkg/gui/keybindings/keybindings.go b/pkg/gui/keybindings/keybindings.go
index 4204dc4e1..fd8c694cf 100644
--- a/pkg/gui/keybindings/keybindings.go
+++ b/pkg/gui/keybindings/keybindings.go
@@ -100,7 +100,9 @@ func LabelFromKey(key types.Key) string {
func GetKey(key string) types.Key {
runeCount := utf8.RuneCountInString(key)
- if runeCount > 1 {
+ if key == "<disabled>" {
+ return nil
+ } else if runeCount > 1 {
binding, ok := keyByLabel[strings.ToLower(key)]
if !ok {
log.Fatalf("Unrecognized key %s for keybinding. For permitted values see %s", strings.ToLower(key), constants.Links.Docs.CustomKeybindings)
diff --git a/pkg/integration/tests/misc/disabled_keybindings.go b/pkg/integration/tests/misc/disabled_keybindings.go
new file mode 100644
index 000000000..55e07034d
--- /dev/null
+++ b/pkg/integration/tests/misc/disabled_keybindings.go
@@ -0,0 +1,26 @@
+package misc
+
+import (
+ "github.com/jesseduffield/lazygit/pkg/config"
+ . "github.com/jesseduffield/lazygit/pkg/integration/components"
+)
+
+var DisabledKeybindings = NewIntegrationTest(NewIntegrationTestArgs{
+ Description: "Confirms you can disable keybindings by setting them to <disabled>",
+ ExtraCmdArgs: []string{},
+ Skip: false,
+ SetupConfig: func(config *config.AppConfig) {
+ config.UserConfig.Keybinding.Universal.PrevItem = "<disabled>"
+ config.UserConfig.Keybinding.Universal.NextItem = "<disabled>"
+ config.UserConfig.Keybinding.Universal.NextTab = "<up>"
+ config.UserConfig.Keybinding.Universal.PrevTab = "<down>"
+ },
+ SetupRepo: func(shell *Shell) {},
+ Run: func(t *TestDriver, keys config.KeybindingConfig) {
+ t.Views().Files().
+ IsFocused().
+ Press("<up>")
+
+ t.Views().Worktrees().IsFocused()
+ },
+})
diff --git a/pkg/integration/tests/test_list.go b/pkg/integration/tests/test_list.go
index 89019719a..7759dcda7 100644
--- a/pkg/integration/tests/test_list.go
+++ b/pkg/integration/tests/test_list.go
@@ -170,6 +170,7 @@ var tests = []*components.IntegrationTest{
interactive_rebase.SwapWithConflict,
misc.ConfirmOnQuit,
misc.CopyToClipboard,
+ misc.DisabledKeybindings,
misc.InitialOpen,
misc.RecentReposOnLaunch,
patch_building.Apply,