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