|
1 | 1 | # Hacker Keyboard: Tokyo Night |
2 | 2 |
|
3 | | -A modernization project of the legendary Hacker's Keyboard, bringing aesthetic and modern Android UX to the most powerful soft keyboard ever made. |
| 3 | + |
| 4 | + |
| 5 | + |
4 | 6 |
|
5 | | -[CHANGELOG](CHANGELOG.md) |
| 7 | +A professional modernization of the legendary **Hacker's Keyboard**. This project brings a premium, high-performance aesthetic and modern Android UX to the most powerful soft keyboard ever made, featuring the iconic **Tokyo Night** design system. |
6 | 8 |
|
7 | 9 |  |
8 | 10 |
|
9 | | -## 📜 The History: From 2011 to Today |
| 11 | +## 📜 The Story |
10 | 12 |
|
11 | | -Hacker's Keyboard was originally developed in 2011, based on the Android 2.3 (Gingerbread) AOSP keyboard. It became the gold standard for power users, developers, and sysadmins due to its full 5-row layout, working Tab/Ctrl/Esc keys, and essential arrow keys for SSH and terminal usage. |
| 13 | +Hacker's Keyboard was originally developed in 2011, based on the Gingerbread-era AOSP keyboard. It became the gold standard for power users, developers, and sysadmins due to its full 5-row layout, working Tab/Ctrl/Esc keys, and essential arrow keys for SSH and terminal usage. |
12 | 14 |
|
13 | | -### The Modernization Journey |
14 | | -This project transforms the "ancient" Gingerbread-style UI into a professional, data-driven modernization: |
15 | | -- **Phase I**: Purged 14+ inconsistent legacy themes and replaced them with the **Tokyo Night** design system. |
16 | | -- **Phase II**: Overhauled the core rendering logic from static bitmap nine-patches to a dynamic, attribute-driven XML system. |
17 | | -- **Phase III**: Refined interaction design with fluid animations, designer typography, and "AnySoft" style continuous stroke popups. |
| 15 | +This project carries that legacy forward, replacing decade-old assets and rendering logic with a data-driven architecture and a professional design language inspired by modern IDEs. |
18 | 16 |
|
19 | | -## ✨ Key Features (Modernized) |
| 17 | +--- |
| 18 | + |
| 19 | +## ✨ Key Features |
20 | 20 |
|
21 | 21 | ### 🎨 Tokyo Night Design System |
22 | 22 | Integrated 4 high-contrast variants based on the popular Neovim color scheme: |
23 | | -- **Storm** (Default): A balanced, deep blue-grey. |
24 | | -- **Night**: Darker, more intense tones for AMOLED/OLED and low-light. |
25 | | -- **Moon**: A slightly softer, cooler midnight palette. |
26 | | -- **Day**: A crisp, high-legibility light theme. |
| 23 | +- **Storm** (Default): A balanced, deep blue-grey for all-day focus. |
| 24 | +- **Night**: Darker, more intense tones—perfect for OLED screens. |
| 25 | +- **Moon**: A slightly softer midnight palette for reduced eye strain. |
| 26 | +- **Day**: A crisp, high-legibility light theme for bright environments. |
27 | 27 |
|
28 | 28 | ### ⌨️ Professional Typography |
29 | | -- **Google Sans Code Integration**: Integrated designer typography across all keys and popups for superior professional legibility. |
30 | | -- **Typographic Hierarchy**: High-opacity bold labels for primary functions and low-opacity hint characters for reduced visual noise |
| 29 | +- **Google Sans Code**: Designer monospace typography integrated across all keys and popups for superior legibility. |
| 30 | +- **Typographic Hierarchy**: High-opacity labels for primary functions with subtle "Hint" characters to reduce visual noise. |
31 | 31 |
|
| 32 | +### 🚀 Fluid Interactions |
| 33 | +- **Seamless Popups**: Our custom `SeamlessPopupDrawable` engine renders keys and popups as a single, continuous shape, eliminating the "floating box" feel of legacy keyboards. |
| 34 | +- **Spring Physics**: Responsive animations provide tactile, snappy feedback. |
| 35 | +- **Zero Latency**: Optimized for power users with 0ms popup delays and dynamic long-press triggers. |
32 | 36 |
|
33 | | -## 🛠 Technical Architecture |
| 37 | +--- |
34 | 38 |
|
35 | | -The project has been migrated to a modern, semantic architecture: |
| 39 | +## 📥 Installation |
36 | 40 |
|
37 | | -### 1. Data-Oriented Colors (`attrs.xml`) |
38 | | -Themes are no longer hardcoded. We use semantic roles to define the palette: |
39 | | -- `kbdColorBase`: Main keyboard tray background. |
40 | | -- `kbdColorAlpha`: Standard character key background. |
41 | | -- `kbdColorMod`: Functional key background (Shift, Ctrl, Alt). |
42 | | -- `kbdColorHighlight`: Pressed or Sticky (Locked) states. |
43 | | -- `kbdColorText`: Global label and icon color. |
44 | | -- `kbdColorPopup`: Border/Stroke color for overlays. |
| 41 | +The fastest way to get started is to download the latest signed APK: |
45 | 42 |
|
46 | | -### 2. Unified Asset System |
47 | | -Instead of maintaining dozens of bitmap files, we use a single, high-fidelity XML drawable system: |
48 | | -- `btn_key_tokyonight.xml`: Handles all key states with 2dp insets for a guaranteed 4dp visual gutter. |
49 | | -- **Vector Icons**: All keyboard symbols are vector-based and surgically tinted via theme attributes. |
| 43 | +1. **Download**: Get the latest signed APK from the [**Releases Page**](https://github.com/umairimtiaz9/hackerkeyboard-tokyonight/releases/tag/latest). |
| 44 | +2. **Install**: Open the `.apk` file on your Android device. |
| 45 | +3. **Enable**: Go to **Settings > System > Languages & input > On-screen keyboard** and enable "Hacker's Keyboard". |
| 46 | +4. **Enjoy**: Switch your input method and select your favorite Tokyo Night variant in the keyboard settings. |
50 | 47 |
|
51 | | -### 3. Java Integration |
52 | | -- **ContextThemeWrapper**: Injects theme attributes at runtime before layout inflation. |
53 | | -- **Dynamic Connection Patch**: Real-time positioning of an invisible overlay to merge keys and popups visually. |
| 48 | +--- |
54 | 49 |
|
55 | 50 | ## 🤝 Contributing |
56 | 51 |
|
57 | | -We welcome contributions! This project aims to maintain the "power user" soul of Hacker's Keyboard while keeping the UI modern. |
58 | | - |
59 | | -1. **Bug Fixes**: Help us resolve any legacy rendering issues on modern Android versions. |
60 | | -2. **Themes**: While Tokyo Night is the focus, the dynamic system allows for easy addition of new high-quality color schemes. |
61 | | - |
62 | | -## 📥 Installation |
63 | | - |
64 | | -1. Clone this repository. |
65 | | -2. Build using Android Studio or via Gradle. |
66 | | -3. Enable "Hacker's Keyboard" in your Android system settings. |
| 52 | +We welcome contributions that respect the "power user" soul of Hacker's Keyboard while adhering to the modern Tokyo Night visual guidelines. Whether it's language layouts, bug fixes, or theme refinements, your help is appreciated. |
67 | 53 |
|
68 | | -*Or Simply download & install from releases.* |
69 | 54 | --- |
70 | 55 |
|
71 | 56 | *Based on the original work by Klaus Weidner.* |
| 57 | +[Changelog](CHANGELOG.md) | [History](https://github.com/klausw/hackerskeyboard) |
0 commit comments