From c7e41afeeddb126e39b7a1c5af03cdbc59a5447a Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Thu, 27 Feb 2025 13:43:59 +0100 Subject: [PATCH] feat(keybind): add keybind mode config setting to disable default bindings closes #193 --- src/keybind/keybind.zig | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/keybind/keybind.zig b/src/keybind/keybind.zig index 54ed92e..77773b1 100644 --- a/src/keybind/keybind.zig +++ b/src/keybind/keybind.zig @@ -173,6 +173,7 @@ const LoadError = (error{ NotFound, NotAnObject } || std.json.ParseError(std.jso const Namespace = struct { name: []const u8, fallback: ?*const Namespace = null, + no_defaults: bool = false, modes: std.StringHashMapUnmanaged(BindingSet), init_command: ?Command = null, @@ -201,7 +202,7 @@ const Namespace = struct { try self.load_settings(allocator, mode_entry.value_ptr.*); } - if (!std.mem.eql(u8, self.name, default_namespace) and self.fallback == null) + if (!self.no_defaults and !std.mem.eql(u8, self.name, default_namespace) and self.fallback == null) self.fallback = try get_or_load_namespace(default_namespace); var modes = parsed.value.object.iterator(); @@ -224,12 +225,14 @@ const Namespace = struct { init_command: ?[]const std.json.Value = null, deinit_command: ?[]const std.json.Value = null, inherit: ?[]const u8 = null, + no_defaults: ?bool = null, }; const parsed = try std.json.parseFromValue(JsonSettings, allocator, settings_value, .{ .ignore_unknown_fields = true, }); defer parsed.deinit(); self.fallback = if (parsed.value.inherit) |fallback| try get_or_load_namespace(fallback) else null; + self.no_defaults = parsed.value.no_defaults orelse false; if (parsed.value.init_command) |cmd| self.init_command = try Command.load(allocator, cmd); if (parsed.value.deinit_command) |cmd| self.deinit_command = try Command.load(allocator, cmd); }