From af1543135d42adc2e97dc5243aeef7418cd3b00d Mon Sep 17 00:00:00 2001
From: Matthias Nott <mnott@mnsoft.org>
Date: Sat, 07 Mar 2026 08:39:26 +0100
Subject: [PATCH] feat: dual address auto-switch, custom icon, notifications, image support

---
 app/navigate.tsx |   68 ++++++++++++++++++++--------------
 1 files changed, 40 insertions(+), 28 deletions(-)

diff --git a/app/navigate.tsx b/app/navigate.tsx
index d8b11c7..5a252d0 100644
--- a/app/navigate.tsx
+++ b/app/navigate.tsx
@@ -9,21 +9,29 @@
   label: string;
   key: string;
   icon?: string;
-  wide?: boolean;
+  flex?: number;
 }
 
-const NAV_BUTTONS: NavButton[][] = [
+const NAV_ROWS: NavButton[][] = [
+  // Row 1: Vi motion
   [
-    { label: "Esc", key: "escape" },
-    { label: "Tab", key: "tab" },
-    { label: "Enter", key: "enter" },
-    { label: "Ctrl-C", key: "ctrl-c" },
+    { label: "0", key: "0" },
+    { label: "k", key: "k", icon: "↑" },
+    { label: "G", key: "G" },
+    { label: "dd", key: "dd" },
   ],
+  // Row 2: Arrow keys
   [
-    { label: "", key: "left", icon: "←" },
-    { label: "", key: "up", icon: "↑" },
-    { label: "", key: "down", icon: "↓" },
-    { label: "", key: "right", icon: "→" },
+    { label: "h", key: "h", icon: "←" },
+    { label: "j", key: "j", icon: "↓" },
+    { label: "l", key: "l", icon: "→" },
+    { label: "Esc", key: "escape" },
+  ],
+  // Row 3: Action keys
+  [
+    { label: "Tab", key: "tab" },
+    { label: "Enter", key: "enter", flex: 2 },
+    { label: "^C", key: "ctrl-c" },
   ],
 ];
 
@@ -119,18 +127,17 @@
       {/* Navigation buttons */}
       <View
         style={{
-          paddingHorizontal: 12,
-          paddingBottom: 8,
-          gap: 8,
+          paddingHorizontal: 16,
+          paddingBottom: 12,
+          gap: 10,
         }}
       >
-        {NAV_BUTTONS.map((row, rowIdx) => (
+        {NAV_ROWS.map((row, rowIdx) => (
           <View
             key={rowIdx}
             style={{
               flexDirection: "row",
-              gap: 8,
-              justifyContent: "center",
+              gap: 10,
             }}
           >
             {row.map((btn) => (
@@ -138,25 +145,30 @@
                 key={btn.key}
                 onPress={() => handleNavPress(btn.key)}
                 style={({ pressed }) => ({
-                  flex: btn.wide ? 2 : 1,
-                  height: 52,
+                  flex: btn.flex ?? 1,
+                  height: 56,
                   borderRadius: 14,
                   alignItems: "center",
                   justifyContent: "center",
                   backgroundColor: pressed ? "#4A9EFF" : "#1E1E2E",
-                  borderWidth: 1,
+                  borderWidth: 1.5,
                   borderColor: pressed ? "#4A9EFF" : "#2E2E45",
                 })}
               >
-                <Text
-                  style={{
-                    color: "#E8E8F0",
-                    fontSize: btn.icon ? 22 : 15,
-                    fontWeight: "700",
-                  }}
-                >
-                  {btn.icon ?? btn.label}
-                </Text>
+                {btn.icon ? (
+                  <View style={{ alignItems: "center" }}>
+                    <Text style={{ color: "#E8E8F0", fontSize: 20, fontWeight: "700" }}>
+                      {btn.icon}
+                    </Text>
+                    <Text style={{ color: "#5A5A78", fontSize: 10, marginTop: 1 }}>
+                      {btn.label}
+                    </Text>
+                  </View>
+                ) : (
+                  <Text style={{ color: "#E8E8F0", fontSize: 16, fontWeight: "700" }}>
+                    {btn.label}
+                  </Text>
+                )}
               </Pressable>
             ))}
           </View>

--
Gitblit v1.3.1