Repository: fujiapple852/trippy (rust)

Issue:
Settings hotkeys
Currently users can press 's' (default binding) to toggle the settings dialog and use the left and right arrow keys (default bindings) to navigate between settings tabs.  It would be useful if users could jump directly to a seven settings tab using the hotkeys `1` through `7`.

Pull request:
feat(tui): add settings hotkeys (#1217)
Closes #1217 

Patch:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c5869f0..fb7d65a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -14,6 +14,7 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
   page ([#85](https://github.com/fujiapple852/trippy/issues/85))
 - Added support for last icmp packet type (`T`) column ([#1105](https://github.com/fujiapple852/trippy/issues/1105))
 - Added support for last icmp packet code (`C`) column ([#1109](https://github.com/fujiapple852/trippy/issues/1109))
+- Added settings dialog tab hotkeys ([#1217](https://github.com/fujiapple852/trippy/issues/1217))
 
 ### Changed
 
diff --git a/README.md b/README.md
index b5d303c..c710cdc 100644
--- a/README.md
+++ b/README.md
@@ -790,37 +790,44 @@ Color names are case-insensitive and may contain dashes.
 The following table lists the default Tui command key bindings. These can be overridden with the `--tui-key-bindings`
 command line option or in the `bindings` section of the configuration file.
 
-| Command                | Description                                     | Default  |
-|------------------------|-------------------------------------------------|----------|
-| `toggle-help`          | Toggle help                                     | `h`      |
-| `toggle-help-alt`      | Toggle help (alternative binding)               | `?`      |
-| `toggle-settings`      | Toggle settings                                 | `s`      |
-| `next-hop`             | Select next hop                                 | `down`   |
-| `previous-hop`         | Select previous hop                             | `up`     |
-| `next-trace`           | Select next trace                               | `right`  |
-| `previous-trace`       | Select previous trace                           | `left`   | 
-| `next-hop-address`     | Select next hop address                         | `.`      |
-| `previous-hop-address` | Select previous hop address                     | `,`      |
-| `address-mode-ip`      | Show IP address only                            | `i`      |
-| `address-mode-host`    | Show hostname only                              | `n`      |
-| `address-mode-both`    | Show both IP address and hostname               | `b`      |
-| `toggle-freeze`        | Toggle freezing the display                     | `ctrl+f` |
-| `toggle-chart`         | Toggle the chart                                | `c`      |
-| `toggle-map`           | Toggle the GeoIp map                            | `m`      |
-| `toggle-flows`         | Toggle the flows                                | `f`      |
-| `toggle-privacy`       | Toggle the hop privacy                          | `p`      |
-| `expand-hosts`         | Expand the hosts shown per hop                  | `]`      |
-| `expand-hosts-max`     | Expand the hosts shown per hop to the maximum   | `}`      |
-| `contract-hosts`       | Contract the hosts shown per hop                | `[`      |
-| `contract-hosts-min`   | Contract the hosts shown per hop to the minimum | `{`      |
-| `chart-zoom-in`        | Zoom in the chart                               | `=`      |
-| `chart-zoom-out`       | Zoom out the chart                              | `-`      |
-| `clear-trace-data`     | Clear all trace data                            | `ctrl+r` |
-| `clear-dns-cache`      | Flush the DNS cache                             | `ctrl+k` |
-| `clear-selection`      | Clear the current selection                     | `esc`    |
-| `toggle-as-info`       | Toggle AS info display                          | `z`      |
-| `toggle-hop-details`   | Toggle hop details                              | `d`      |
-| `quit`                 | Quit the application                            | `q`      |
+| Command                    | Description                                     | Default  |
+|----------------------------|-------------------------------------------------|----------|
+| `toggle-help`              | Toggle help                                     | `h`      |
+| `toggle-help-alt`          | Toggle help (alternative binding)               | `?`      |
+| `toggle-settings`          | Toggle settings                                 | `s`      |
+| `toggle-settings-tui`      | Open settings (Tui tab)                         | `1`      |
+| `toggle-settings-trace`    | Open settings (Trace tab)                       | `2`      |
+| `toggle-settings-dns`      | Open settings (Dns tab)                         | `3`      |
+| `toggle-settings-geoip`    | Open settings (GeoIp tab)                       | `4`      |
+| `toggle-settings-bindings` | Open settings (Bindings tab)                    | `5`      |
+| `toggle-settings-theme`    | Open settings (Theme tab)                       | `6`      |
+| `toggle-settings-columns`  | Open settings (Columns tab)                     | `7`      |
+| `next-hop`                 | Select next hop                                 | `down`   |
+| `previous-hop`             | Select previous hop                             | `up`     |
+| `next-trace`               | Select next trace                               | `right`  |
+| `previous-trace`           | Select previous trace                           | `left`   | 
+| `next-hop-address`         | Select next hop address                         | `.`      |
+| `previous-hop-address`     | Select previous hop address                     | `,`      |
+| `address-mode-ip`          | Show IP address only                            | `i`      |
+| `address-mode-host`        | Show hostname only                              | `n`      |
+| `address-mode-both`        | Show both IP address and hostname               | `b`      |
+| `toggle-freeze`            | Toggle freezing the display                     | `ctrl+f` |
+| `toggle-chart`             | Toggle the chart                                | `c`      |
+| `toggle-map`               | Toggle the GeoIp map                            | `m`      |
+| `toggle-flows`             | Toggle the flows                                | `f`      |
+| `toggle-privacy`           | Toggle the hop privacy                          | `p`      |
+| `expand-hosts`             | Expand the hosts shown per hop                  | `]`      |
+| `expand-hosts-max`         | Expand the hosts shown per hop to the maximum   | `}`      |
+| `contract-hosts`           | Contract the hosts shown per hop                | `[`      |
+| `contract-hosts-min`       | Contract the hosts shown per hop to the minimum | `{`      |
+| `chart-zoom-in`            | Zoom in the chart                               | `=`      |
+| `chart-zoom-out`           | Zoom out the chart                              | `-`      |
+| `clear-trace-data`         | Clear all trace data                            | `ctrl+r` |
+| `clear-dns-cache`          | Flush the DNS cache                             | `ctrl+k` |
+| `clear-selection`          | Clear the current selection                     | `esc`    |
+| `toggle-as-info`           | Toggle AS info display                          | `z`      |
+| `toggle-hop-details`       | Toggle hop details                              | `d`      |
+| `quit`                     | Quit the application                            | `q`      |
 
 The supported modifiers are: `shift`, `ctrl`, `alt`, `super`, `hyper` & `meta`. Multiple modifiers may be specified, for
 example `ctrl+shift+b`.
diff --git a/crates/trippy-tui/src/config/binding.rs b/crates/trippy-tui/src/config/binding.rs
index 2f2af29..4a87d6c 100644
--- a/crates/trippy-tui/src/config/binding.rs
+++ b/crates/trippy-tui/src/config/binding.rs
@@ -13,6 +13,13 @@ pub struct TuiBindings {
     pub toggle_help: TuiKeyBinding,
     pub toggle_help_alt: TuiKeyBinding,
     pub toggle_settings: TuiKeyBinding,
+    pub toggle_settings_tui: TuiKeyBinding,
+    pub toggle_settings_trace: TuiKeyBinding,
+    pub toggle_settings_dns: TuiKeyBinding,
+    pub toggle_settings_geoip: TuiKeyBinding,
+    pub toggle_settings_bindings: TuiKeyBinding,
+    pub toggle_settings_theme: TuiKeyBinding,
+    pub toggle_settings_columns: TuiKeyBinding,
     pub previous_hop: TuiKeyBinding,
     pub next_hop: TuiKeyBinding,
     pub previous_trace: TuiKeyBinding,
@@ -47,6 +54,13 @@ impl Default for TuiBindings {
             toggle_help: TuiKeyBinding::new(KeyCode::Char('h')),
             toggle_help_alt: TuiKeyBinding::new(KeyCode::Char('?')),
             toggle_settings: TuiKeyBinding::new(KeyCode::Char('s')),
+            toggle_settings_tui: TuiKeyBinding::new(KeyCode::Char('1')),
+            toggle_settings_trace: TuiKeyBinding::new(KeyCode::Char('2')),
+            toggle_settings_dns: TuiKeyBinding::new(KeyCode::Char('3')),
+            toggle_settings_geoip: TuiKeyBinding::new(KeyCode::Char('4')),
+            toggle_settings_bindings: TuiKeyBinding::new(KeyCode::Char('5')),
+            toggle_settings_theme: TuiKeyBinding::new(KeyCode::Char('6')),
+            toggle_settings_columns: TuiKeyBinding::new(KeyCode::Char('7')),
             previous_hop: TuiKeyBinding::new(KeyCode::Up),
             next_hop: TuiKeyBinding::new(KeyCode::Down),
             previous_trace: TuiKeyBinding::new(KeyCode::Left),
@@ -95,6 +109,16 @@ impl TuiBindings {
             (self.toggle_help, TuiCommandItem::ToggleHelp),
             (self.toggle_help_alt, TuiCommandItem::ToggleHelpAlt),
             (self.toggle_settings, TuiCommandItem::ToggleSettings),
+            (self.toggle_settings_tui, TuiCommandItem::ToggleSettings),
+            (self.toggle_settings_trace, TuiCommandItem::ToggleSettings),
+            (self.toggle_settings_dns, TuiCommandItem::ToggleSettings),
+            (self.toggle_settings_geoip, TuiCommandItem::ToggleSettings),
+            (
+                self.toggle_settings_bindings,
+                TuiCommandItem::ToggleSettings,
+            ),
+            (self.toggle_settings_theme, TuiCommandItem::ToggleSettings),
+            (self.toggle_settings_columns, TuiCommandItem::ToggleSettings),
             (self.previous_hop, TuiCommandItem::PreviousHop),
             (self.next_hop, TuiCommandItem::NextHop),
             (self.previous_trace, TuiCommandItem::PreviousTrace),
@@ -163,6 +187,34 @@ impl From<(HashMap<TuiCommandItem, TuiKeyBinding>, ConfigBindings)> for TuiBindi
                 .get(&TuiCommandItem::ToggleSettings)
                 .or(cfg.toggle_settings.as_ref())
                 .unwrap_or(&Self::default().toggle_settings),
+            toggle_settings_tui: *cmd_items
+                .get(&TuiCommandItem::ToggleSettingsTui)
+                .or(cfg.toggle_settings_tui.as_ref())
+                .unwrap_or(&Self::default().toggle_settings_tui),
+            toggle_settings_trace: *cmd_items
+                .get(&TuiCommandItem::ToggleSettingsTrace)
+                .or(cfg.toggle_settings_trace.as_ref())
+                .unwrap_or(&Self::default().toggle_settings_trace),
+            toggle_settings_dns: *cmd_items
+                .get(&TuiCommandItem::ToggleSettingsDns)
+                .or(cfg.toggle_settings_dns.as_ref())
+                .unwrap_or(&Self::default().toggle_settings_dns),
+            toggle_settings_geoip: *cmd_items
+                .get(&TuiCommandItem::ToggleSettingsGeoip)
+                .or(cfg.toggle_settings_geoip.as_ref())
+                .unwrap_or(&Self::default().toggle_settings_geoip),
+            toggle_settings_bindings: *cmd_items
+                .get(&TuiCommandItem::ToggleSettingsBindings)
+                .or(cfg.toggle_settings_bindings.as_ref())
+                .unwrap_or(&Self::default().toggle_settings_bindings),
+            toggle_settings_theme: *cmd_items
+                .get(&TuiCommandItem::ToggleSettingsTheme)
+                .or(cfg.toggle_settings_theme.as_ref())
+                .unwrap_or(&Self::default().toggle_settings_theme),
+            toggle_settings_columns: *cmd_items
+                .get(&TuiCommandItem::ToggleSettingsColumns)
+                .or(cfg.toggle_settings_columns.as_ref())
+                .unwrap_or(&Self::default().toggle_settings_columns),
             previous_hop: *cmd_items
                 .get(&TuiCommandItem::PreviousHop)
                 .or(cfg.previous_hop.as_ref())
@@ -496,6 +548,20 @@ pub enum TuiCommandItem {
     ToggleHelpAlt,
     /// Toggle the settings dialog.
     ToggleSettings,
+    /// Toggle the TUI settings dialog tab.
+    ToggleSettingsTui,
+    /// Toggle the trace settings dialog tab.
+    ToggleSettingsTrace,
+    /// Toggle the DNS settings dialog tab.
+    ToggleSettingsDns,
+    /// Toggle the Geoip settings dialog tab.
+    ToggleSettingsGeoip,
+    /// Toggle the bindings settings dialog tab.
+    ToggleSettingsBindings,
+    /// Toggle the theme settings dialog tab.
+    ToggleSettingsTheme,
+    /// Toggle the columns settings dialog tab.
+    ToggleSettingsColumns,
     /// Move down to the next hop.
     NextHop,
     /// Move up to the previous hop.
diff --git a/crates/trippy-tui/src/config/file.rs b/crates/trippy-tui/src/config/file.rs
index 9ff9cda..73551c6 100644
--- a/crates/trippy-tui/src/config/file.rs
+++ b/crates/trippy-tui/src/config/file.rs
@@ -350,6 +350,13 @@ pub struct ConfigBindings {
     pub toggle_help: Option<TuiKeyBinding>,
     pub toggle_help_alt: Option<TuiKeyBinding>,
     pub toggle_settings: Option<TuiKeyBinding>,
+    pub toggle_settings_tui: Option<TuiKeyBinding>,
+    pub toggle_settings_trace: Option<TuiKeyBinding>,
+    pub toggle_settings_dns: Option<TuiKeyBinding>,
+    pub toggle_settings_geoip: Option<TuiKeyBinding>,
+    pub toggle_settings_bindings: Option<TuiKeyBinding>,
+    pub toggle_settings_theme: Option<TuiKeyBinding>,
+    pub toggle_settings_columns: Option<TuiKeyBinding>,
     pub previous_hop: Option<TuiKeyBinding>,
     pub next_hop: Option<TuiKeyBinding>,
     pub previous_trace: Option<TuiKeyBinding>,
@@ -385,6 +392,13 @@ impl Default for ConfigBindings {
             toggle_help: Some(bindings.toggle_help),
             toggle_help_alt: Some(bindings.toggle_help_alt),
             toggle_settings: Some(bindings.toggle_settings),
+            toggle_settings_tui: Some(bindings.toggle_settings_tui),
+            toggle_settings_trace: Some(bindings.toggle_settings_trace),
+            toggle_settings_dns: Some(bindings.toggle_settings_dns),
+            toggle_settings_geoip: Some(bindings.toggle_settings_geoip),
+            toggle_settings_bindings: Some(bindings.toggle_settings_bindings),
+            toggle_settings_theme: Some(bindings.toggle_settings_theme),
+            toggle_settings_columns: Some(bindings.toggle_settings_columns),
             previous_hop: Some(bindings.previous_hop),
             next_hop: Some(bindings.next_hop),
             previous_trace: Some(bindings.previous_trace),
diff --git a/crates/trippy-tui/src/frontend.rs b/crates/trippy-tui/src/frontend.rs
index 2de572c..82c3544 100644
--- a/crates/trippy-tui/src/frontend.rs
+++ b/crates/trippy-tui/src/frontend.rs
@@ -89,6 +89,20 @@ fn run_app<B: Backend>(
                             || bindings.quit.check(key)
                         {
                             app.toggle_settings();
+                        } else if bindings.toggle_settings_tui.check(key) {
+                            app.show_settings_columns(0);
+                        } else if bindings.toggle_settings_trace.check(key) {
+                            app.show_settings_columns(1);
+                        } else if bindings.toggle_settings_dns.check(key) {
+                            app.show_settings_columns(2);
+                        } else if bindings.toggle_settings_geoip.check(key) {
+                            app.show_settings_columns(3);
+                        } else if bindings.toggle_settings_bindings.check(key) {
+                            app.show_settings_columns(4);
+                        } else if bindings.toggle_settings_theme.check(key) {
+                            app.show_settings_columns(5);
+                        } else if bindings.toggle_settings_columns.check(key) {
+                            app.show_settings_columns(6);
                         } else if bindings.previous_trace.check(key) {
                             app.previous_settings_tab();
                         } else if bindings.next_trace.check(key) {
@@ -109,6 +123,20 @@ fn run_app<B: Backend>(
                         app.toggle_help();
                     } else if bindings.toggle_settings.check(key) {
                         app.toggle_settings();
+                    } else if bindings.toggle_settings_tui.check(key) {
+                        app.show_settings_columns(0);
+                    } else if bindings.toggle_settings_trace.check(key) {
+                        app.show_settings_columns(1);
+                    } else if bindings.toggle_settings_dns.check(key) {
+                        app.show_settings_columns(2);
+                    } else if bindings.toggle_settings_geoip.check(key) {
+                        app.show_settings_columns(3);
+                    } else if bindings.toggle_settings_bindings.check(key) {
+                        app.show_settings_columns(4);
+                    } else if bindings.toggle_settings_theme.check(key) {
+                        app.show_settings_columns(5);
+                    } else if bindings.toggle_settings_columns.check(key) {
+                        app.show_settings_columns(6);
                     } else if bindings.next_hop.check(key) {
                         app.next_hop();
                     } else if bindings.previous_hop.check(key) {
diff --git a/crates/trippy-tui/src/frontend/binding.rs b/crates/trippy-tui/src/frontend/binding.rs
index 0c86b5d..8bdd512 100644
--- a/crates/trippy-tui/src/frontend/binding.rs
+++ b/crates/trippy-tui/src/frontend/binding.rs
@@ -9,6 +9,13 @@ pub struct Bindings {
     pub toggle_help: KeyBinding,
     pub toggle_help_alt: KeyBinding,
     pub toggle_settings: KeyBinding,
+    pub toggle_settings_tui: KeyBinding,
+    pub toggle_settings_trace: KeyBinding,
+    pub toggle_settings_dns: KeyBinding,
+    pub toggle_settings_geoip: KeyBinding,
+    pub toggle_settings_bindings: KeyBinding,
+    pub toggle_settings_theme: KeyBinding,
+    pub toggle_settings_columns: KeyBinding,
     pub previous_hop: KeyBinding,
     pub next_hop: KeyBinding,
     pub previous_trace: KeyBinding,
@@ -43,6 +50,13 @@ impl From<TuiBindings> for Bindings {
             toggle_help: KeyBinding::from(value.toggle_help),
             toggle_help_alt: KeyBinding::from(value.toggle_help_alt),
             toggle_settings: KeyBinding::from(value.toggle_settings),
+            toggle_settings_tui: KeyBinding::from(value.toggle_settings_tui),
+            toggle_settings_trace: KeyBinding::from(value.toggle_settings_trace),
+            toggle_settings_dns: KeyBinding::from(value.toggle_settings_dns),
+            toggle_settings_geoip: KeyBinding::from(value.toggle_settings_geoip),
+            toggle_settings_bindings: KeyBinding::from(value.toggle_settings_bindings),
+            toggle_settings_theme: KeyBinding::from(value.toggle_settings_theme),
+            toggle_settings_columns: KeyBinding::from(value.toggle_settings_columns),
             previous_hop: KeyBinding::from(value.previous_hop),
             next_hop: KeyBinding::from(value.next_hop),
             previous_trace: KeyBinding::from(value.previous_trace),
diff --git a/crates/trippy-tui/src/frontend/render/help.rs b/crates/trippy-tui/src/frontend/render/help.rs
index d0ea04b..60f0bf4 100644
--- a/crates/trippy-tui/src/frontend/render/help.rs
+++ b/crates/trippy-tui/src/frontend/render/help.rs
@@ -46,6 +46,6 @@ const HELP_LINES: [&str; 22] = [
     "+ & -            - zoom chart in and out",
     "z                - toggle AS information (if available)",
     "h or ?           - toggle help",
-    "s                - toggle settings",
+    "s                - toggle settings (jump to tab with 1-7 keys)",
     "q                - quit",
 ];
diff --git a/crates/trippy-tui/src/frontend/render/settings.rs b/crates/trippy-tui/src/frontend/render/settings.rs
index ecfebeb..7f9634a 100644
--- a/crates/trippy-tui/src/frontend/render/settings.rs
+++ b/crates/trippy-tui/src/frontend/render/settings.rs
@@ -301,6 +301,34 @@ fn format_binding_settings(app: &TuiApp) -> Vec<SettingsItem> {
         SettingsItem::new("toggle-help", format!("{}", binds.toggle_help)),
         SettingsItem::new("toggle-help-alt", format!("{}", binds.toggle_help_alt)),
         SettingsItem::new("toggle-settings", format!("{}", binds.toggle_settings)),
+        SettingsItem::new(
+            "toggle-settings-tui",
+            format!("{}", binds.toggle_settings_tui),
+        ),
+        SettingsItem::new(
+            "toggle-settings-trace",
+            format!("{}", binds.toggle_settings_trace),
+        ),
+        SettingsItem::new(
+            "toggle-settings-dns",
+            format!("{}", binds.toggle_settings_dns),
+        ),
+        SettingsItem::new(
+            "toggle-settings-geoip",
+            format!("{}", binds.toggle_settings_geoip),
+        ),
+        SettingsItem::new(
+            "toggle-settings-bindings",
+            format!("{}", binds.toggle_settings_bindings),
+        ),
+        SettingsItem::new(
+            "toggle-settings-theme",
+            format!("{}", binds.toggle_settings_theme),
+        ),
+        SettingsItem::new(
+            "toggle-settings-columns",
+            format!("{}", binds.toggle_settings_columns),
+        ),
         SettingsItem::new("next-hop", format!("{}", binds.next_hop)),
         SettingsItem::new("previous-hop", format!("{}", binds.previous_hop)),
         SettingsItem::new("next-trace", format!("{}", binds.next_trace)),
@@ -467,7 +495,7 @@ pub const SETTINGS_TABS: [(&str, usize); 7] = [
     ("Trace", 17),
     ("Dns", 4),
     ("GeoIp", 1),
-    ("Bindings", 29),
+    ("Bindings", 36),
     ("Theme", 31),
     ("Columns", 0),
 ];
diff --git a/crates/trippy-tui/src/frontend/tui_app.rs b/crates/trippy-tui/src/frontend/tui_app.rs
index 70dc6af..23b9cda 100644
--- a/crates/trippy-tui/src/frontend/tui_app.rs
+++ b/crates/trippy-tui/src/frontend/tui_app.rs
@@ -334,6 +334,14 @@ impl TuiApp {
         self.show_settings = !self.show_settings;
     }
 
+    pub fn show_settings_columns(&mut self, column_index: usize) {
+        self.show_settings = true;
+        if self.settings_tab_selected != column_index {
+            self.settings_tab_selected = column_index;
+            self.setting_table_state.select(Some(0));
+        }
+    }
+
     pub fn toggle_hop_details(&mut self) {
         if self.show_hop_details {
             self.tui_config.max_addrs = None;
diff --git a/crates/trippy-tui/src/lib.rs b/crates/trippy-tui/src/lib.rs
index 667131e..d147579 100644
--- a/crates/trippy-tui/src/lib.rs
+++ b/crates/trippy-tui/src/lib.rs
@@ -1,4 +1,8 @@
-#![allow(clippy::struct_excessive_bools, clippy::cast_sign_loss)]
+#![allow(
+    clippy::struct_excessive_bools,
+    clippy::cast_sign_loss,
+    clippy::struct_field_names
+)]
 #![forbid(unsafe_code)]
 
 use crate::config::TrippyAction;
diff --git a/trippy-config-sample.toml b/trippy-config-sample.toml
index 2803acf..820c2ef 100644
--- a/trippy-config-sample.toml
+++ b/trippy-config-sample.toml
@@ -381,6 +381,13 @@ map-info-panel-text-color = "gray"
 toggle-help = "h"
 toggle-help-alt = "?"
 toggle-settings = "s"
+toggle-settings-tui = "1"
+toggle-settings-trace = "2"
+toggle-settings-dns = "3"
+toggle-settings-geoip = "4"
+toggle-settings-bindings = "5"
+toggle-settings-theme = "6"
+toggle-settings-columns = "7"
 next-hop = "down"
 previous-hop = "up"
 next-trace = "right"


Test patch:
diff --git a/crates/trippy-tui/tests/resources/snapshots/trippy_tui__print__tests__output@tui_binding_commands_match.snap b/crates/trippy-tui/tests/resources/snapshots/trippy_tui__print__tests__output@tui_binding_commands_match.snap
index 34d5183..9de8c55 100644
--- a/crates/trippy-tui/tests/resources/snapshots/trippy_tui__print__tests__output@tui_binding_commands_match.snap
+++ b/crates/trippy-tui/tests/resources/snapshots/trippy_tui__print__tests__output@tui_binding_commands_match.snap
@@ -1,4 +1,4 @@
 ---
 source: crates/trippy-tui/src/print.rs
 ---
-TUIbindingcommands:toggle-help,toggle-help-alt,toggle-settings,next-hop,previous-hop,next-trace,previous-trace,next-hop-address,previous-hop-address,address-mode-ip,address-mode-host,address-mode-both,toggle-freeze,toggle-chart,toggle-map,toggle-flows,toggle-privacy,expand-hosts,expand-hosts-max,contract-hosts,contract-hosts-min,chart-zoom-in,chart-zoom-out,clear-trace-data,clear-dns-cache,clear-selection,toggle-as-info,toggle-hop-details,quit
+TUIbindingcommands:toggle-help,toggle-help-alt,toggle-settings,toggle-settings-tui,toggle-settings-trace,toggle-settings-dns,toggle-settings-geoip,toggle-settings-bindings,toggle-settings-theme,toggle-settings-columns,next-hop,previous-hop,next-trace,previous-trace,next-hop-address,previous-hop-address,address-mode-ip,address-mode-host,address-mode-both,toggle-freeze,toggle-chart,toggle-map,toggle-flows,toggle-privacy,expand-hosts,expand-hosts-max,contract-hosts,contract-hosts-min,chart-zoom-in,chart-zoom-out,clear-trace-data,clear-dns-cache,clear-selection,toggle-as-info,toggle-hop-details,quit