diff --git a/src/config.zig b/src/config.zig index d04d97c..6f7f769 100644 --- a/src/config.zig +++ b/src/config.zig @@ -22,6 +22,7 @@ animation_max_lag: usize = 50, //milliseconds hover_time_ms: usize = 500, //milliseconds input_idle_time_ms: usize = 150, //milliseconds idle_actions: []const IdleAction = &default_actions, +idle_commands: ?[]const []const u8 = null, // a list of simple commands enable_format_on_save: bool = false, restore_last_cursor_position: bool = true, follow_cursor_on_buffer_switch: bool = false, //scroll cursor into view on buffer switch diff --git a/src/tui/tui.zig b/src/tui/tui.zig index 6ad0b07..aa960c1 100644 --- a/src/tui/tui.zig +++ b/src/tui/tui.zig @@ -318,6 +318,9 @@ fn handle_input_idle(self: *Self) void { var buf: [32]u8 = undefined; const m = tp.message.fmtbuf(&buf, .{"input_idle"}) catch return; _ = self.send_widgets(tp.self_pid(), m) catch return; + const idle_cmds = self.config_.idle_commands orelse return; + for (idle_cmds) |cmd| + command.executeName(cmd, .{}) catch |e| self.logger.print_err("idlerun", "idle run command '{s}' failed: {t}", .{ cmd, e }); } fn update_input_idle_timer(self: *Self) void {