From a6e3fa184f447399e96739a207dbb75e0ccfaa6d Mon Sep 17 00:00:00 2001 From: Luxferre Date: Mon, 19 Oct 2026 11:03:01 +0300 Subject: [PATCH] doc update --- MANUAL.md | 176 +++++++++++++++++++++++++++--------------------------- README.md | 25 ++++---- 2 files changed, 100 insertions(+), 101 deletions(-) diff --git a/MANUAL.md b/MANUAL.md index ccbcaff..f861563 100644 --- a/MANUAL.md +++ b/MANUAL.md @@ -1,4 +1,4 @@ -# Bananarchy Linux — User, Flashing & Customization Manual +# Bananarchy Linux — user, flashing & customization manual ![Bananarchy Banner](artwork/banner-800x240.png) @@ -10,43 +10,43 @@ This manual covers flashing, operating, and customizing **Bananarchy Linux** (`v --- -## 1. What Is Prepared in This Workspace +## 1. What is prepared in this workspace -### 1.1 System Images (`images/`) -- `images/bananarchy-nokia-argon.img` (linked as `images/nokia-argon-sxmo.img`) — Raw partitioned image (`256 MiB` `ext2` `pmOS_boot` + `ext4` `pmOS_root`) ready for EDL flashing to `userdata` or raw `dd` to a microSD card. +### 1.1 System images (`images/`) +- `images/bananarchy-nokia-argon.img` (linked as `images/nokia-argon-sxmo.img`) — raw partitioned image (`256 MiB` `ext2` `pmOS_boot` + `ext4` `pmOS_root`) ready for EDL flashing to `userdata` or raw `dd` to a microSD card. - `images/bananarchy-nokia-argon.sparse.img` (linked as `images/nokia-argon-sxmo.sparse.img`) — Android sparse image for `fastboot flash userdata`. -- `images/boot-bananarchy-nokia-argon.img` (linked as `images/boot-nokia-argon-sxmo.img`) — Standalone Android `boot.img` with Linux `6.12.1-msm8916`, initramfs, and appended DTB. +- `images/boot-bananarchy-nokia-argon.img` (linked as `images/boot-nokia-argon-sxmo.img`) — standalone Android `boot.img` with Linux `6.12.1-msm8916`, initramfs, and appended DTB. - Additional device images (`bananarchy-nokia-beatles.img`, `bananarchy-nokia-tough.img`, `bananarchy-nokia-sparkler.img`) can be generated at any time via `./rebuild-image.sh --mkinitfs`. -### 1.2 Bootloader & EDL Programmer (`bootloader/`) -- `bootloader/lk2nd-msm8909.img` — Secondary bootloader (`lk2nd`) providing Fastboot and `extlinux` boot discovery for MSM8905/MSM8909 devices. -- `bootloader/loaders/8110.mbn` — Signed Qualcomm Sahara/Firehose programmer (`05c6:9008`). +### 1.2 Bootloader & EDL programmer (`bootloader/`) +- `bootloader/lk2nd-msm8909.img` — secondary bootloader (`lk2nd`) providing Fastboot and `extlinux` boot discovery for MSM8905/MSM8909 devices. +- `bootloader/loaders/8110.mbn` — signed Qualcomm Sahara/Firehose programmer (`05c6:9008`). -### 1.3 Integrated Hardware & UX Tweaks -1. **Native 1:1 `240x320` Resolution & Enlarged Fonts**: +### 1.3 Integrated hardware & UX tweaks +1. **Native 1:1 `240x320` resolution & enlarged fonts**: - Sway runs at `output * scale 1` (`SXMO_SWAY_SCALE=1`) with Xwayland disabled to save RAM. - Enlarged fonts across all UI layers: `Sxmo 13` window titles and `24px` top bar, `34pt`/`14pt` Conky clock/date positioned cleanly above the Bananarchy emblem wallpaper, `15px` bold Wofi full-screen menus (`240x296`), `13pt` Foot terminal font, `220x28` Wob volume/brightness overlay, and `12pt` Dunst notifications. -2. **Multi-Mode `fcitx5-t9` Keypad Engine (`src/fcitx5-t9/`)**: +2. **Multi-mode `fcitx5-t9` keypad engine (`src/fcitx5-t9/`)**: - Supports 6 input modes cycled with `#` (`XF86NumericPound`): `abc`, `Abc`, `ABC`, `Sym`, `Ctl`, and `123`. - Includes instant case toggling during preedit, full 32-character ASCII punctuation/symbol entry, terminal control sequences (`^A`–`^Z`, `Esc`, `Tab`, `F1`–`F12`), and a `450ms` long-press `*` `Ctrl+` modifier latch. -3. **Bantam DIY AI Agent (`prebuilt/bantam/bantam`)**: +3. **Bantam AI agent (`prebuilt/bantam/bantam`)**: - Fetched from the latest `master` branch of `https://code.luxferre.top/luxferre/bantam-cpp`, cross-compiled for `armv7`, and installed to `/usr/bin/bantam` and `/usr/local/bin/bantam` (with no default `.bantam.cfg` pre-created). -4. **Mainline 6.12.1-msm8916 QDSP6 Audio, Voice Call & LTE Modem Stack**: +4. **Mainline 6.12.1-msm8916 QDSP6 audio, voice call & LTE modem stack**: - Patched `q6core`, `q6afe`, `q6afe-dai`, `q6voice-dai`, `q6mvm`, and device trees (`VoiceMMode1` DAI + PM8909 WCD codec). - WirePlumber `50-s16le.lua` (`S16LE` sample format enforcement), ALSA UCM2 profiles (`HiFi.conf` and `VoiceCall.conf`), `q6voiced`, `rmtfs`, `msm-modem-uim-selection`, `msm8909-modem-wwan-port`, and `ModemManager`. -5. **Memory & Swap Tuning for 512 MB RAM**: +5. **Memory & swap tuning for 512 MB RAM**: - `384 MiB` ZSTD-compressed `zram0` swap (priority `100`) + `512 MiB` `/swapfile` (priority `10`), with `vm.swappiness=100` and `vm.page-cluster=0`. -6. **Preinstalled On-Device Development & Scripting Stack**: - - **C / C++ Toolchain & Build Tools**: `gcc`, `g++`, `musl-dev`, `make`, `git`, `nano` - - **Janet**: `janet`, `janet-dev`, `jpm` (Janet Package Manager) +6. **Preinstalled on-device development & scripting stack**: + - **C / C++ toolchain & build tools**: `gcc`, `g++`, `musl-dev`, `make`, `git`, `nano` + - **Janet**: `janet`, `janet-dev`, `jpm` (Janet package manager) - **Perl**: `perl`, `perl-io-socket-ssl` (`IO::Socket::SSL`) - **Tcl & SQLite**: `tcl`, `tcl-lib` (`tcllib`), `tcl-tls`, `sqlite` (`sqlite3`), `sqlite-tcl` (`tcl-sqlite`) --- -## 2. Flashing Instructions +## 2. Flashing instructions -### Method A: Automated USB EDL Flasher (Recommended) +### Method A: Automated USB EDL flasher (recommended) Run the automated EDL flasher from the repository root on your host machine: ```bash @@ -57,18 +57,18 @@ sudo ./flash-edl.sh The script will: 1. Temporarily pause host `ModemManager` so it does not interfere with `05c6:9008`. 2. Wait for the phone to appear in Qualcomm EDL mode (`05c6:9008`): - - **Button combo**: Power off the phone, hold **D-Pad Up + D-Pad Down**, and plug in the USB cable. - - **EDL cable**: Hold the EDL cable button while plugging in USB. - - **From ADB / Fastboot**: The script automatically sends `adb reboot edl` or `fastboot oem edl` if detected. + - **Button combo**: power off the phone, hold **D-Pad up + D-Pad down**, and plug in the USB cable. + - **EDL cable**: hold the EDL cable button while plugging in USB. + - **From ADB / Fastboot**: the script automatically sends `adb reboot edl` or `fastboot oem edl` if detected. 3. Upload `bootloader/loaders/8110.mbn` via Sahara and connect to eMMC via Firehose. 4. Back up `gpt.bin`, `fsc`, `fsg`, `modemst1`, `modemst2`, `persist`, and `boot` into `./backup/` (if not already backed up). 5. Flash `lk2nd-msm8909.img` to `boot`, flash `images/bananarchy-.img` to `userdata`, clear the stock `system` superblock, and reboot into Bananarchy Linux. --- -### Method B: Fastboot Flashing (Once `lk2nd` Is Installed) +### Method B: Fastboot flashing (once `lk2nd` is installed) -1. Hold **D-Pad Up** while powering on the phone to enter `lk2nd` Fastboot mode. +1. Hold **D-Pad up** while powering on the phone to enter `lk2nd` Fastboot mode. 2. Flash the sparse system image to `userdata`: ```bash fastboot flash userdata ./images/bananarchy-nokia-argon.sparse.img @@ -78,7 +78,7 @@ The script will: --- -### Method C: Booting from a microSD Card +### Method C: Booting from a microSD card `lk2nd` automatically checks the microSD card for a `pmOS_boot` partition before internal eMMC: ```bash @@ -87,77 +87,77 @@ sudo dd if=./images/bananarchy-nokia-argon.img of=/dev/sdX bs=4M status=progress --- -## 3. Keypad Controls & Multi-Mode T9 Input Guide +## 3. Keypad controls & multi-mode T9 input guide -### 3.1 Global Sxmo Keypad Controls (`240x320`) +### 3.1 Global Sxmo keypad controls (`240x320`) -| Physical Key | Linux Keysym / Event | Action in Sxmo | +| Physical key | Linux keysym / event | Action in Sxmo | | :--- | :--- | :--- | -| **Left Softkey** | `XF86KbdLcdMenu1` (`KEY_MENU`) | Open **System Menu**, close open menu, or wake & unlock when locked | -| **Right Softkey / Back** | `XF86KbdLcdMenu2` / `BackSpace` (`KEY_BACK`) | Open **App Context Menu** (or close menu if open); in apps/T9 preedit acts as `BackSpace` | -| **Call (Green)** | `XF86PickupPhone` (`KEY_SEND`) | Wake & unlock when locked, confirm (`Return`) in menus, or: **1×** Answer call / **App Context Menu**, **2×** **Focus Next Window**, **3×** **Toggle Tiling Layout** (`Vertical` -> `Horizontal` -> `Tabbed`) | -| **End / Power (Red)** | `XF86PowerOff` | Wake & unlock when locked, close open menu, or: **1×** **Power Menu** (`space` shutter in Megapixels), **2×** cycle screen state, **3×** (or hold `400ms`) launch new terminal | -| **D-Pad Up / Down** | `Up` / `Down` | Navigate menus/apps; in T9 preedit: toggle letter case (`a` ↔ `A`) or jump `+4` / `-4` candidates; in idle `Ctl` mode: `Page_Up` / `Page_Down` | -| **D-Pad Left / Right** | `Left` / `Right` | Move cursor; in T9 preedit: step back 1 candidate (`Left`) / commit candidate (`Right`); in idle `Ctl` mode: `Home` / `End` | +| **Left softkey** | `XF86KbdLcdMenu1` (`KEY_MENU`) | Open **System menu**, close open menu, or wake & unlock when locked | +| **Right softkey / Back** | `XF86KbdLcdMenu2` / `BackSpace` (`KEY_BACK`) | Open **App context menu** (or close menu if open); in apps/T9 preedit acts as `BackSpace` | +| **Call (green)** | `XF86PickupPhone` (`KEY_SEND`) | Wake & unlock when locked, confirm (`Return`) in menus, or: **1×** answer call / **App context menu**, **2×** **Focus next window**, **3×** **Toggle tiling layout** (`vertical` -> `horizontal` -> `tabbed`) | +| **End / Power (red)** | `XF86PowerOff` | Wake & unlock when locked, close open menu, or: **1×** **Power menu** (`space` shutter in Megapixels), **2×** cycle screen state, **3×** (or hold `400ms`) launch new terminal | +| **D-Pad up / down** | `Up` / `Down` | Navigate menus/apps; in T9 preedit: toggle letter case (`a` ↔ `A`) or jump `+4` / `-4` candidates; in idle `Ctl` mode: `Page_Up` / `Page_Down` | +| **D-Pad left / right** | `Left` / `Right` | Move cursor; in T9 preedit: step back 1 candidate (`Left`) / commit candidate (`Right`); in idle `Ctl` mode: `Home` / `End` | | **Center OK** | `Return` (`KEY_OK`) | Confirm / Enter, or commit active T9 preedit candidate immediately | -| **Slider Close / Open** | `SW_LID` (`lid:on` / `lid:off`) | **Close**: close open menu, turn off keypad backlight, and lock/turn screen off; **Open**: restore keypad backlight, unlock, and turn screen on | +| **Slider close / open** | `SW_LID` (`lid:on` / `lid:off`) | **Close**: close open menu, turn off keypad backlight, and lock/turn screen off; **Open**: restore keypad backlight, unlock, and turn screen on | -> **Waking & Unlocking After Screen Fade**: +> **Waking & unlocking after screen fade**: > When the screen turns off after inactivity (or when the slider is closed), you can wake and unlock the phone in a single action by either: > - **Opening the slider** (`SW_LID` off), or -> - Pressing **End / Power (Red)**, **Left Softkey**, **Right Softkey**, or **Call (Green)** once. +> - Pressing **End / Power (red)**, **Left softkey**, **Right softkey**, or **Call (green)** once. -#### 3.1.1 Window Tiling Modes & Switching Combos +#### 3.1.1 Window tiling modes & switching combos By default, Sxmo Sway is configured with **`default_orientation vertical` (`splitv`)**, so opening multiple terminals stacks them **vertically (one terminal under another)** to maximize line width on the `240x320` portrait screen. -You can switch between **Vertical (`splitv`, one under another)**, **Horizontal (`splith`, side-by-side)**, and **Tabbed (`tabbed`, full-screen tabs)** layouts — as well as switch focus between open terminals — using any of the following combos: +You can switch between **vertical (`splitv`, one under another)**, **horizontal (`splith`, side-by-side)**, and **tabbed (`tabbed`, full-screen tabs)** layouts — as well as switch focus between open terminals — using any of the following combos: -1. **Direct Physical Keypad Combos**: - - **Triple-press Call (Green) (`3× Call`)**: Cycles the current container layout (`Vertical splitv` -> `Horizontal splith` -> `Tabbed` -> `Vertical splitv`). - - **Double-press Call (Green) (`2× Call`)**: Switches focus to the next open window/terminal (e.g., jumps between the top and bottom terminals). - - **Triple-press (or hold `400ms`) End / Power (Red) (`3× End`)**: Opens a new `Foot` terminal tiled in the active layout. -2. **Terminal Context Menu (`Right Softkey` or `1× Call (Green)` inside `Foot`)**: - - **Next Window**: Switch focus to the next open terminal/window. - - **Toggle Layout**: Cycle `splitv` -> `splith` -> `tabbed`. - - **Tile Vertical**: Immediately arrange open windows vertically (one under another) and set future splits to vertical. - - **Tile Horizontal**: Immediately arrange open windows horizontally (side-by-side) and set future splits to horizontal. - - **New Terminal** / **Close Terminal**: Open a new terminal or close the focused terminal. -3. **System Windows Menu (`Left Softkey` -> `Windows`)**: - - **Next window**: Focus the next window in the workspace. - - **`splitv -> splith -> tabbed`**: Cycle container layout mode. - - **Split vertical** / **Split horizontal** / **Tabbed layout**: Switch directly to the chosen layout. - - **Switch menu** / **Move menu** / **Kill window**: Switch to any window across workspaces, move windows between positions/workspaces, or close the focused window. -4. **External Keyboard / `swaymsg` (`$mod` = `Mod4` / `Super`)**: - - `Mod4+v`: Vertical split (`splitv`) - - `Mod4+b`: Horizontal split (`splith`) - - `Mod4+e`: Toggle split orientation (`layout toggle split` between vertical and horizontal) - - `Mod4+w`: Tabbed layout (`layout tabbed`) - - `Mod4+s`: Stacking layout (`layout stacking`) - - `Mod4+f`: Toggle fullscreen (`fullscreen`) - - `Mod4+Up` / `Mod4+Down` / `Mod4+Left` / `Mod4+Right`: Move focus between tiled windows - - `Mod4+Shift+Up` / `Mod4+Shift+Down` / `Mod4+Shift+Left` / `Mod4+Shift+Right`: Reposition focused window +1. **Direct physical keypad combos**: + - **Triple-press Call (green) (`3× Call`)**: cycles the current container layout (`vertical splitv` -> `horizontal splith` -> `tabbed` -> `vertical splitv`). + - **Double-press Call (green) (`2× Call`)**: switches focus to the next open window/terminal (e.g., jumps between the top and bottom terminals). + - **Triple-press (or hold `400ms`) End / Power (red) (`3× End`)**: opens a new `Foot` terminal tiled in the active layout. +2. **Terminal context menu (`Right softkey` or `1× Call (green)` inside `Foot`)**: + - **Next window**: switch focus to the next open terminal/window. + - **Toggle layout**: cycle `splitv` -> `splith` -> `tabbed`. + - **Tile vertical**: immediately arrange open windows vertically (one under another) and set future splits to vertical. + - **Tile horizontal**: immediately arrange open windows horizontally (side-by-side) and set future splits to horizontal. + - **New terminal** / **Close terminal**: open a new terminal or close the focused terminal. +3. **System windows menu (`Left softkey` -> `Windows`)**: + - **Next window**: focus the next window in the workspace. + - **`splitv -> splith -> tabbed`**: cycle container layout mode. + - **Split vertical** / **Split horizontal** / **Tabbed layout**: switch directly to the chosen layout. + - **Switch menu** / **Move menu** / **Kill window**: switch to any window across workspaces, move windows between positions/workspaces, or close the focused window. +4. **External keyboard / `swaymsg` (`$mod` = `Mod4` / `Super`)**: + - `Mod4+v`: vertical split (`splitv`) + - `Mod4+b`: horizontal split (`splith`) + - `Mod4+e`: toggle split orientation (`layout toggle split` between vertical and horizontal) + - `Mod4+w`: tabbed layout (`layout tabbed`) + - `Mod4+s`: stacking layout (`layout stacking`) + - `Mod4+f`: toggle fullscreen (`fullscreen`) + - `Mod4+Up` / `Mod4+Down` / `Mod4+Left` / `Mod4+Right`: move focus between tiled windows + - `Mod4+Shift+Up` / `Mod4+Shift+Down` / `Mod4+Shift+Left` / `Mod4+Shift+Right`: reposition focused window -### 3.2 Multi-Mode `fcitx5-t9` Keypad Reference +### 3.2 Multi-mode `fcitx5-t9` keypad reference -- **Short-press `#`** *(when no character is in preedit)*: Cycles through the 6 input modes (`abc` -> `Abc` -> `ABC` -> `Sym` -> `Ctl` -> `123` -> `abc`), displaying a `900ms` preedit status banner (`[Mode: abc]`, `[Mode: Abc]`, `[Mode: ABC]`, `[Mode: Sym]`, `[Mode: Ctl]`, `[Mode: 123]`). +- **Short-press `#`** *(when no character is in preedit)*: cycles through the 6 input modes (`abc` -> `Abc` -> `ABC` -> `Sym` -> `Ctl` -> `123` -> `abc`), displaying a `900ms` preedit status banner (`[Mode: abc]`, `[Mode: Abc]`, `[Mode: ABC]`, `[Mode: Sym]`, `[Mode: Ctl]`, `[Mode: 123]`). - **Auto-commit timeout**: `600ms` for keys with `<= 10` candidates, or `750ms` for keys with `> 10` candidates (`1` and `*` in `abc`/`Abc`/`ABC`, `*` in `Sym`, `9` in `Ctl`). Pressing a different key immediately commits the active candidate. - **While a candidate is highlighted (`[item]`) in preedit**: - - Press **`#`** or **D-Pad `Up`**: Toggles letter case (`a` <-> `A`) on the fly without changing mode, or jumps forward **`+4` candidates** for non-alphabetic items. - - Press **D-Pad `Down`**: Toggles letter case (`a` <-> `A`) for alphabetic items, or jumps backward **`-4` candidates** for non-alphabetic items. - - Press **D-Pad `Left`**: Steps backward **1 candidate** on the same key. - - Press **D-Pad `Right`** or **Center `OK` (`Return`)**: Commits the highlighted candidate immediately. - - Press **`BackSpace`**: Cancels the uncommitted preedit candidate without deleting previously committed text. + - Press **`#`** or **D-Pad `Up`**: toggles letter case (`a` <-> `A`) on the fly without changing mode, or jumps forward **`+4` candidates** for non-alphabetic items. + - Press **D-Pad `Down`**: toggles letter case (`a` <-> `A`) for alphabetic items, or jumps backward **`-4` candidates** for non-alphabetic items. + - Press **D-Pad `Left`**: steps backward **1 candidate** on the same key. + - Press **D-Pad `Right`** or **Center `OK` (`Return`)**: commits the highlighted candidate immediately. + - Press **`BackSpace`**: cancels the uncommitted preedit candidate without deleting previously committed text. - **Long-press (`>= 450ms`)**: - - **Hold `0`–`9`**: Commits the digit (`0`–`9`) immediately in any mode. + - **Hold `0`–`9`**: commits the digit (`0`–`9`) immediately in any mode. - **Hold `*`**: - - In `123` mode: Commits a decimal point (`.`) immediately. - - In all other modes: Toggles a one-shot **`Ctrl+` modifier latch** (`[Ctrl+ LATCH ON]` / `[Ctrl+ LATCH OFF]`; mode prefix shows `+^`, e.g. `abc+^`). The next committed key (`a`–`z`, `[`, `\`, `]`, `^`/`6`, `_`/`-`) is sent as `Ctrl+`. - - **Hold `#`**: Commits a literal `#` character immediately in any mode. + - In `123` mode: commits a decimal point (`.`) immediately. + - In all other modes: toggles a one-shot **`Ctrl+` modifier latch** (`[Ctrl+ LATCH ON]` / `[Ctrl+ LATCH OFF]`; mode prefix shows `+^`, e.g. `abc+^`). The next committed key (`a`–`z`, `[`, `\`, `]`, `^`/`6`, `_`/`-`) is sent as `Ctrl+`. + - **Hold `#`**: commits a literal `#` character immediately in any mode. -#### Modes 1–3: `abc` (Lowercase), `Abc` (One-Shot Shift), `ABC` (Caps Lock) +#### Modes 1–3: `abc` (lowercase), `Abc` (one-shot Shift), `ABC` (Caps Lock) *(In `Abc` and `ABC` modes, uppercase letters precede the digit and lowercase letters on keys `2`–`9`. In `Abc` mode, committing an alphabetic character automatically reverts to `abc`.)* -| Key | Tap Sequence (`abc` mode) | +| Key | Tap sequence (`abc` mode) | | :--- | :--- | | **`1`** | `.` `,` `-` `_` `!` `?` `/` `@` `:` `;` `'` `"` `+` `=` `*` `#` `$` `%` `^` `&` `(` `)` `[` `]` `{` `}` `<` `>` `\|` `\` `~` `` ` `` `1` | | **`2`** | `a` `b` `c` `2` `A` `B` `C` | @@ -171,8 +171,8 @@ You can switch between **Vertical (`splitv`, one under another)**, **Horizontal | **`0`** | `Space` (`SPC`) `0` `Ent` (`Return`) `Tab` | | **`*`** | `*` `#` `+` `-` `=` `_` `/` `\` `\|` `~` `` ` `` `@` `$` `%` `^` `&` `(` `)` `[` `]` `{` `}` `<` `>` `'` `"` `.` `,` `!` `?` `:` `;` `Tab` `Esc` `^C` `^D` `^Z` *(hold 450ms for `Ctrl+` latch)* | -#### Mode 4: `Sym` (Grouped ASCII Punctuation, Symbols & Special Keys) -| Key | Symbols / Keys | +#### Mode 4: `Sym` (grouped ASCII punctuation, symbols & special keys) +| Key | Symbols / keys | | :--- | :--- | | **`1`** | `.` `,` `!` `?` `:` `;` `-` `_` `1` | | **`2`** | `@` `#` `$` `%` `^` `&` `2` | @@ -186,13 +186,13 @@ You can switch between **Vertical (`splitv`, one under another)**, **Horizontal | **`0`** | `Space` (`SPC`) `0` `Tab` `Ent` (`Return`) `Esc` | | **`*`** | `*` `#` `+` `-` `=` `_` `/` `\` `\|` `~` `` ` `` `@` `$` `%` `^` `&` `(` `)` `[` `]` `{` `}` `<` `>` `'` `"` `.` `,` `!` `?` `:` `;` | -#### Mode 5: `Ctl` (Terminal Control Characters, Navigation & Function Keys) -- **Direct D-Pad Navigation** *(when no preedit candidate is active in `Ctl` mode)*: - - **D-Pad `Up` / `Down`**: Sends `Page_Up` (`PgUp`) / `Page_Down` (`PgDn`) immediately. - - **D-Pad `Left` / `Right`**: Sends `Home` / `End` immediately. -- **Keypad Multi-Tap**: +#### Mode 5: `Ctl` (terminal control characters, navigation & function keys) +- **Direct D-Pad navigation** *(when no preedit candidate is active in `Ctl` mode)*: + - **D-Pad `Up` / `Down`**: sends `Page_Up` (`PgUp`) / `Page_Down` (`PgDn`) immediately. + - **D-Pad `Left` / `Right`**: sends `Home` / `End` immediately. +- **Keypad multi-tap**: -| Key | Control Sequences / Special Keys | +| Key | Control sequences / special keys | | :--- | :--- | | **`1`** | `Esc` `Tab` `Del` `Ins` `Bksp` | | **`2`** | `^C` `^D` `^Z` `^X` `^\` | @@ -206,7 +206,7 @@ You can switch between **Vertical (`splitv`, one under another)**, **Horizontal | **`0`** | `Space` (`SPC`) `Tab` `Ent` (`Return`) `Esc` | | **`*`** | `Esc` `Tab` `^C` `^D` `^Z` `^X` `^L` `^R` `^W` | -#### Mode 6: `123` (Instant Numeric Entry) +#### Mode 6: `123` (instant numeric entry) | Key | Action | | :--- | :--- | | **`0`–`9`** | Commits digit `0`–`9` immediately on single tap | @@ -215,13 +215,13 @@ You can switch between **Vertical (`splitv`, one under another)**, **Horizontal --- -## 4. Default Credentials, USB SSH & Bantam AI Agent +## 4. Default credentials, USB SSH & Bantam AI agent - **Username**: `user` - **Password**: `147147` (`doas` and `sudo` enabled) -- **USB Networking SSH**: +- **USB networking SSH**: ```bash ssh user@172.16.42.1 ``` -- **Bantam AI Agent**: +- **Bantam AI agent**: Run `bantam` in the terminal (`Foot`) or over SSH. Configure your endpoint/API key via environment variables or `~/.bantam.cfg` when needed. diff --git a/README.md b/README.md index 4e81201..ec0fe70 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,7 @@ ![Bananarchy Banner](artwork/banner-800x240.png) -**Bananarchy** is a keypad-first Linux distribution hardforked from postmarketOS (`v26.06` / Alpine `edge` `armv7`), purpose-built for **Qualcomm MSM8905 (Snapdragon 205)** and **Qualcomm MSM8909 (Snapdragon -210)** smart feature phones with **240x320 QVGA non-touch displays** and **physical 12-key T9 keypads**. +**Bananarchy** is a keypad-first Linux distribution hardforked from postmarketOS (`v26.06` / Alpine `edge` `armv7`), purpose-built for **Qualcomm MSM8905 (Snapdragon 205)** and **Qualcomm MSM8909 (Snapdragon 210)** smart feature phones with **240x320 QVGA non-touch displays** and **physical 12-key T9 keypads**. See [The Bananarchy Manifesto](./MANIFESTO.md) for the rationale behind this entire project. @@ -13,9 +12,9 @@ The current Bananarchy version is `v0.0.1`. --- -## Supported MSM8909 / MSM8905 Devices +## Supported MSM8909 / MSM8905 devices -| Device | Codename | SoC | CPU / RAM | Display & Panel Firmware | Device Tree (`.dtb`) | +| Device | Codename | SoC | CPU / RAM | Display & panel firmware | Device tree (`.dtb`) | | :--- | :--- | :--- | :--- | :--- | :--- | | **Nokia 8110 4G** | `nokia-argon` | Qualcomm MSM8905 (SD205) | 2x Cortex-A7 @ 1.1 GHz, 512 MB | 2.4" 240x320 SPI (`nokia,argon-gc9305-v2-panel.bin`) | `qcom-msm8905-nokia-argon.dtb` | | **Nokia 2720 Flip** | `nokia-beatles` | Qualcomm MSM8905 (SD205) | 2x Cortex-A7 @ 1.1 GHz, 512 MB | 2.8" 240x320 SPI (`nokia,beatles-gc9305-panel.bin`) | `qcom-msm8905-nokia-beatles.dtb` | @@ -25,7 +24,7 @@ The current Bananarchy version is `v0.0.1`. --- -## Repository Structure +## Repository structure ```text bananarchy/ @@ -89,15 +88,15 @@ bananarchy/ --- -## Build & Customization Workflow +## Build & customization workflow -### 1. Regenerate Artwork Assets +### 1. Regenerate artwork assets Whenever `artwork/icon-large.png` is updated, regenerate all icons, `240x320` wallpapers, and boot splashes: ```bash ./scripts/generate-artwork.py ``` -### 2. Recompile Core Components (Optional — Prebuilts Included) +### 2. Recompile core components (optional — prebuilts included) All components are pre-compiled in `prebuilt/` and `overlay/rootfs/`, and can be rebuilt from source at any time using rootless Docker (`alpine:3.24`): ```bash # Rebuild multi-mode fcitx5-t9 input engine (src/fcitx5-t9 -> prebuilt/fcitx5-t9) @@ -110,7 +109,7 @@ All components are pre-compiled in `prebuilt/` and `overlay/rootfs/`, and can be ./scripts/build-kernel-audio.sh ``` -### 3. Customize Rootfs Packages or Configs +### 3. Customize rootfs packages or configs ```bash ./chroot-shell.sh # Inside the container shell: @@ -119,7 +118,7 @@ All components are pre-compiled in `prebuilt/` and `overlay/rootfs/`, and can be # pkg-search ``` -### 4. Build Flashable Device Images +### 4. Build flashable device images ```bash # Build for Nokia 8110 4G (default) ./rebuild-image.sh nokia-argon @@ -130,9 +129,9 @@ All components are pre-compiled in `prebuilt/` and `overlay/rootfs/`, and can be ./rebuild-image.sh nokia-sparkler --mkinitfs ``` Output images are written to `images/`: -- `images/bananarchy-.img` (Raw partitioned MBR image for EDL `userdata` or microSD card) +- `images/bananarchy-.img` (raw partitioned MBR image for EDL `userdata` or microSD card) - `images/bananarchy-.sparse.img` (Android sparse image for `fastboot flash userdata`) -- `images/boot-bananarchy-.img` (Kernel + initramfs + DTB boot image) +- `images/boot-bananarchy-.img` (kernel + initramfs + DTB boot image) --- @@ -141,7 +140,7 @@ Output images are written to `images/`: ```bash sudo ./flash-edl.sh nokia-argon ``` -See [MANUAL.md](MANUAL.md) for complete EDL, Fastboot, and microSD installation instructions, keypad navigation shortcuts, and the Multi-Mode T9 reference. +See [MANUAL.md](MANUAL.md) for complete EDL, Fastboot, and microSD installation instructions, keypad navigation shortcuts, and the multi-mode T9 reference. ## Credits