feat(system): configure nano (-FEDSMAGic/max%_T2) as EDITOR, less -RXF as PAGER, add ed/rlwrap/less, and remove vim

This commit is contained in:
Luxferre
2026-10-20 23:56:20 +03:00
parent 673ee72dbc
commit 9cddcc1d08
19 changed files with 220 additions and 42 deletions
+1 -1
View File
@@ -46,7 +46,7 @@ This manual covers flashing, operating, and customizing **Bananarchy Linux** (`v
6. **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`.
7. **Preinstalled on-device development & scripting stack**:
- **C / C++ toolchain & build tools**: `gcc`, `g++`, `musl-dev`, `make`, `git`, `nano`
- **C / C++ toolchain & CLI utilities**: `gcc`, `g++`, `musl-dev`, `make`, `git`, GNU `coreutils`, `nano` (default `$EDITOR`, configured system-wide via `/etc/nanorc` equivalent to `nano -FEDSMAGic/max%_T2`), `ed`, GNU `less` (default `$PAGER="less -RXF"`), `rlwrap`
- **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`)
+1 -1
View File
@@ -18,7 +18,7 @@ Bananarchy targets an ultra-lightweight **Sxmo X11 (`sxmo-de-dwm`)** environment
- **Full Qualcomm QDSP6/Q6Voice audio & modem routing**: loudspeaker, earpiece speaker, and internal/headset microphones with PM8909 WCD analog codec 2.8V micbias, +6 dB EAR PA gain, and GSM/WCDMA/LTE voice routing (`ModemManager` + `q6voiced`).
- **Rear 2MP camera support**: `msm8905-cam` V4L2 driver for GalaxyCore `GC2395` + MSM8909 `CAMSS` on `/dev/video0` and the `bananarchy-photo` CLI/Sxmo app.
- **Pre-integrated Bantam AI agent**: cross-compiled from `https://code.luxferre.top/luxferre/bantam-cpp`.
- **Complete on-device development & scripting stack**: `git`, `gcc`/`g++`, `make`, `nano`, `janet` + `jpm`, `perl` + `IO::Socket::SSL`, `tcl` + `tcllib`/`tcl-tls`/`sqlite-tcl`, `sqlite`, `i2c-tools`, and `v4l-utils`.
- **Complete on-device development & scripting stack**: `git`, `gcc`/`g++`, `make`, GNU `coreutils`, `nano` (`$EDITOR`, pre-configured in `/etc/nanorc` with `-FEDSMAGic/max%_T2`), `ed`, `less` (`$PAGER="less -RXF"`), `rlwrap`, `janet` + `jpm`, `perl` + `IO::Socket::SSL`, `tcl` + `tcllib`/`tcl-tls`/`sqlite-tcl`, `sqlite`, `i2c-tools`, and `v4l-utils`.
The current Bananarchy version is `v0.0.1`.
BIN
View File
Binary file not shown.
+50
View File
@@ -0,0 +1,50 @@
# Bananarchy Linux system-wide nano configuration
# Equivalent to: nano -FEDSMAGic/max%_T2
set newbuffer
set tabstospaces
set boldtext
set softwrap
set trimblanks
set smarthome
set locking
set autoindent
set constantshow
set mouse
set atblanks
set nohelp
set stateflags
set minibar
set tabsize 2
# Modern keybindings (-/ / --modernbindings)
bind ^X cut main
bind ^C copy main
bind ^V paste all
bind ^Q exit all
bind ^S savefile main
bind ^W writeout main
bind ^O insert main
bind ^H help all
bind ^H exit help
bind ^F whereis all
bind ^G findnext all
bind ^B wherewas all
bind ^D findprevious all
bind ^R replace main
unbind ^U all
unbind ^N main
unbind ^Y all
unbind M-J main
unbind M-T main
bind ^A mark main
bind ^P location main
bind ^T gotoline main
bind ^T gotodir browser
bind ^T cutrestoffile execute
bind ^L linter execute
bind ^E execute main
bind ^K "{mark}{end}{zap}" main
bind ^U "{mark}{home}{zap}" main
bind ^Z undo main
bind ^Y redo main
+27
View File
@@ -0,0 +1,27 @@
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
export EDITOR=nano
export VISUAL=nano
export PAGER="less -RXF"
export LESS="-RXF"
umask 022
# use nicer PS1 for bash and busybox ash
if [ -n "$BASH_VERSION" -o "$BB_ASH_VERSION" ]; then
PS1='\h:\w\$ '
# use nicer PS1 for zsh
elif [ -n "$ZSH_VERSION" ]; then
PS1='%m:%~%# '
# set up fallback default PS1
else
: "${HOSTNAME:=$(hostname)}"
PS1='${HOSTNAME%%.*}:$PWD'
[ "$(id -u)" -eq 0 ] && PS1="${PS1}# " || PS1="${PS1}\$ "
fi
for script in /etc/profile.d/*.sh ; do
if [ -r "$script" ] ; then
. "$script"
fi
done
unset script
+4 -1
View File
@@ -105,7 +105,10 @@ _sxmo_load_environments() {
export BEMENU_OPTS="${BEMENU_OPTS:---fn "Fira Code 9" -H 22 -B 2 --hp 4 -s --no-overlap --fixed-height --scrollbar none --cw 2 --bdr "#005577" --tb "#383838" --tf "#aaaaaa" --fb "#383838" --ff "#ffffff" --cb "#ffffff" --cf "#383838" --nb "#1c1c1c" --nf "#ffffff" --ab "#1c1c1c" --af "#ffffff" --hb "#005577" --hf "#ffffff" -w -i}"
export EDITOR="${EDITOR:-vim}"
export EDITOR="${EDITOR:-nano}"
export VISUAL="${VISUAL:-nano}"
export PAGER="less -RXF"
export LESS="-RXF"
export BROWSER="${BROWSER:-firefox}"
export SHELL="${SHELL:-/bin/sh}"
+5 -1
View File
@@ -71,11 +71,15 @@ export SXMO_RINGNUMBER=10
export SXMO_DEFAULT_DRAFT="Enter new message here."
export PATH="$HOME/.local/bin:$PATH"
export EDITOR="nano"
export VISUAL="nano"
export PAGER="less -RXF"
export LESS="-RXF"
export SXMO_WM="dwm"
export SXMO_MENU="dmenu"
export SXMO_TERMINAL="st"
export DMENU_WRAP_AROUND=1
export SXMO_DMENU_PORTRAIT_LINES=12
export SXMO_DMENU_PORTRAIT_LINES=9
export SXMO_DMENU_LANDSCAPE_LINES=8
export SXMO_DISABLE_LEDS=1
export SXMO_NO_VIRTUAL_KEYBOARD=1
+50
View File
@@ -0,0 +1,50 @@
# Bananarchy Linux system-wide nano configuration
# Equivalent to: nano -FEDSMAGic/max%_T2
set newbuffer
set tabstospaces
set boldtext
set softwrap
set trimblanks
set smarthome
set locking
set autoindent
set constantshow
set mouse
set atblanks
set nohelp
set stateflags
set minibar
set tabsize 2
# Modern keybindings (-/ / --modernbindings)
bind ^X cut main
bind ^C copy main
bind ^V paste all
bind ^Q exit all
bind ^S savefile main
bind ^W writeout main
bind ^O insert main
bind ^H help all
bind ^H exit help
bind ^F whereis all
bind ^G findnext all
bind ^B wherewas all
bind ^D findprevious all
bind ^R replace main
unbind ^U all
unbind ^N main
unbind ^Y all
unbind M-J main
unbind M-T main
bind ^A mark main
bind ^P location main
bind ^T gotoline main
bind ^T gotodir browser
bind ^T cutrestoffile execute
bind ^L linter execute
bind ^E execute main
bind ^K "{mark}{end}{zap}" main
bind ^U "{mark}{home}{zap}" main
bind ^Z undo main
bind ^Y redo main
+5 -1
View File
@@ -1,10 +1,14 @@
export PATH="$HOME/.local/bin:$PATH"
export EDITOR=nano
export VISUAL=nano
export PAGER="less -RXF"
export LESS="-RXF"
export SXMO_WM=dwm
export SXMO_MENU=dmenu
export SXMO_TERMINAL=st
export DMENU_WRAP_AROUND=1
export SXMO_DMENU_PORTRAIT_LINES=12
export SXMO_DMENU_PORTRAIT_LINES=9
export SXMO_DMENU_LANDSCAPE_LINES=8
export SXMO_DISABLE_LEDS=1
export SXMO_NO_VIRTUAL_KEYBOARD=1
@@ -71,11 +71,15 @@ export SXMO_RINGNUMBER=10
export SXMO_DEFAULT_DRAFT="Enter new message here."
export PATH="$HOME/.local/bin:$PATH"
export EDITOR="nano"
export VISUAL="nano"
export PAGER="less -RXF"
export LESS="-RXF"
export SXMO_WM="dwm"
export SXMO_MENU="dmenu"
export SXMO_TERMINAL="st"
export DMENU_WRAP_AROUND=1
export SXMO_DMENU_PORTRAIT_LINES=12
export SXMO_DMENU_PORTRAIT_LINES=9
export SXMO_DMENU_LANDSCAPE_LINES=8
export SXMO_DISABLE_LEDS=1
export SXMO_NO_VIRTUAL_KEYBOARD=1
+50
View File
@@ -0,0 +1,50 @@
# Bananarchy Linux system-wide nano configuration
# Equivalent to: nano -FEDSMAGic/max%_T2
set newbuffer
set tabstospaces
set boldtext
set softwrap
set trimblanks
set smarthome
set locking
set autoindent
set constantshow
set mouse
set atblanks
set nohelp
set stateflags
set minibar
set tabsize 2
# Modern keybindings (-/ / --modernbindings)
bind ^X cut main
bind ^C copy main
bind ^V paste all
bind ^Q exit all
bind ^S savefile main
bind ^W writeout main
bind ^O insert main
bind ^H help all
bind ^H exit help
bind ^F whereis all
bind ^G findnext all
bind ^B wherewas all
bind ^D findprevious all
bind ^R replace main
unbind ^U all
unbind ^N main
unbind ^Y all
unbind M-J main
unbind M-T main
bind ^A mark main
bind ^P location main
bind ^T gotoline main
bind ^T gotodir browser
bind ^T cutrestoffile execute
bind ^L linter execute
bind ^E execute main
bind ^K "{mark}{end}{zap}" main
bind ^U "{mark}{home}{zap}" main
bind ^Z undo main
bind ^Y redo main
+5 -1
View File
@@ -1,10 +1,14 @@
export PATH="$HOME/.local/bin:$PATH"
export EDITOR=nano
export VISUAL=nano
export PAGER="less -RXF"
export LESS="-RXF"
export SXMO_WM=dwm
export SXMO_MENU=dmenu
export SXMO_TERMINAL=st
export DMENU_WRAP_AROUND=1
export SXMO_DMENU_PORTRAIT_LINES=12
export SXMO_DMENU_PORTRAIT_LINES=9
export SXMO_DMENU_LANDSCAPE_LINES=8
export SXMO_DISABLE_LEDS=1
export SXMO_NO_VIRTUAL_KEYBOARD=1
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
@@ -71,11 +71,15 @@ export SXMO_RINGNUMBER=10
export SXMO_DEFAULT_DRAFT="Enter new message here."
export PATH="$HOME/.local/bin:$PATH"
export EDITOR="nano"
export VISUAL="nano"
export PAGER="less -RXF"
export LESS="-RXF"
export SXMO_WM="dwm"
export SXMO_MENU="dmenu"
export SXMO_TERMINAL="st"
export DMENU_WRAP_AROUND=1
export SXMO_DMENU_PORTRAIT_LINES=12
export SXMO_DMENU_PORTRAIT_LINES=9
export SXMO_DMENU_LANDSCAPE_LINES=8
export SXMO_DISABLE_LEDS=1
export SXMO_NO_VIRTUAL_KEYBOARD=1
@@ -225,10 +225,6 @@ write_line_app waydroid "$icon_and Waydroid" "waydroid show-full-ui"
write_line_app weechat "$icon_msg Weechat" "sxmo_terminal.sh weechat"
write_line_app wike "$icon_bok Wike" "wike"
write_line_app w3m "$icon_glb W3m" "sxmo_terminal.sh w3m duck.com"
write_line_app vim "$icon_vim Vim" "sxmo_terminal.sh vim"
write_line_app vimb "$icon_glb Vimb" "vimb"
write_line_app vimb "$icon_glb Vimb (Incognito)" "vimb -i"
write_line_app vis "$icon_vim Vis" "sxmo_terminal.sh vis"
write_line_app vlc "$icon_vlc Vlc" "vlc"
write_line_app vte-2.91 "$icon_trm VTE 3" "vte-2.91"
write_line_app vte-2.91-gtk4 "$icon_trm VTE 3 (GTK-4)" "vte-2.91-gtk4"
+2
View File
@@ -107,6 +107,8 @@ rm -rf \
"$TARGET_ROOTFS/usr/lib/fcitx5/libwaylandim.so" \
"$TARGET_ROOTFS/usr/share/fcitx5/addon/wayland.conf" \
"$TARGET_ROOTFS/usr/share/fcitx5/addon/waylandim.conf" \
"$TARGET_ROOTFS/usr/bin/vim"* \
"$TARGET_ROOTFS/usr/share/vim" \
"$TARGET_ROOTFS/home/user/.config/fcitx5/conf/waylandim.conf" \
"$TARGET_ROOTFS/etc/skel/.config/fcitx5/conf/waylandim.conf" \
"$TARGET_ROOTFS/home/user/.config/wob" \
+10 -30
View File
@@ -63,6 +63,10 @@ configure_common_rootfs() {
g++ \
musl-dev \
make \
coreutils \
ed \
rlwrap \
less \
nano \
janet \
janet-dev \
@@ -683,44 +687,20 @@ PYEOF
for target_home in "$ROOTFS/etc/skel" "$ROOTFS/home/user"; do
mkdir -p \
"$target_home/.config/sxmo/hooks" \
"$target_home/.config/wofi" \
"$target_home/.config/foot" \
"$target_home/.config/wob" \
"$target_home/.config/fontconfig/conf.d"
cp "$ROOTFS/usr/share/sxmo/appcfg/profile_template" "$target_home/.config/sxmo/profile"
if ! grep -q "SXMO_MENU=wofi" "$target_home/.config/sxmo/profile"; then
cat >> "$target_home/.config/sxmo/profile" <<'EOF'
export PATH="$HOME/.local/bin:$PATH"
export WLR_RENDERER=pixman
export WLR_NO_HARDWARE_CURSORS=1
export SXMO_DISABLE_LEDS=1
export SXMO_NO_VIRTUAL_KEYBOARD=1
export NO_AT_BRIDGE=1
export GTK_A11Y=none
export GTK_USE_PORTAL=0
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export SXMO_MENU=wofi
export SXMO_BEMENU_PORTRAIT_LINES=11
export SXMO_BEMENU_LANDSCAPE_LINES=8
export BEMENU_OPTS='--fn "Sxmo 11.5" -H 24 -B 2 --hp 4 -s --no-overlap --fixed-height --scrollbar none --cw 2 --bdr "#005577" --tb "#383838" --tf "#aaaaaa" --fb "#383838" --ff "#ffffff" --cb "#ffffff" --cf "#383838" --nb "#1c1c1c" --nf "#ffffff" --ab "#1c1c1c" --af "#ffffff" --hb "#005577" --hf "#ffffff" -w -i'
EOF
fi
cp "$ROOTFS/usr/share/sxmo/appcfg/sway_template" "$target_home/.config/sxmo/sway"
cp "$ROOTFS/usr/share/sxmo/appcfg/xinit_template" "$target_home/.config/sxmo/xinit"
cp "$ROOTFS/usr/share/sxmo/appcfg/conky.conf" "$target_home/.config/sxmo/conky.conf"
cp "$ROOTFS/usr/share/sxmo/appcfg/wofi.config" "$target_home/.config/wofi/config"
cp "$ROOTFS/usr/share/sxmo/appcfg/wofi.css" "$target_home/.config/wofi/style.css"
cp "$ROOTFS/usr/share/sxmo/appcfg/foot.ini" "$target_home/.config/foot/foot.ini"
cp "$ROOTFS/usr/share/sxmo/appcfg/wob.ini" "$target_home/.config/wob/wob.ini"
cp "$ROOTFS/usr/share/sxmo/appcfg/bonsai_tree.json" "$target_home/.config/sxmo/bonsai_tree.json"
cp "$ROOTFS/usr/share/sxmo/appcfg/Xresources" "$target_home/.Xresources"
cp "$ROOTFS/usr/share/sxmo/appcfg/fontconfig.conf" "$target_home/.config/fontconfig/conf.d/50-sxmo.conf"
cp "$ROOTFS/usr/share/sxmo/default_hooks/sxmo_hook_inputhandler.sh" "$target_home/.config/sxmo/hooks/sxmo_hook_inputhandler.sh"
chmod 755 "$target_home/.config/sxmo/hooks/sxmo_hook_inputhandler.sh"
chmod 755 "$target_home/.config/sxmo/hooks/sxmo_hook_inputhandler.sh" "$target_home/.config/sxmo/xinit" "$target_home/.config/sxmo/profile"
done
fi
sed -i "/^P:sxmo-utils-common$/,/^$/ s/ vim//" "$ROOTFS/lib/apk/db/installed" 2>/dev/null || true
apk --root "$ROOTFS" --arch armv7 del --no-scripts vim vim-common nftables-vim protobuf-vim 2>/dev/null || true
if [ -x /bananarchy/scripts/apply-bananarchy-overlay.sh ]; then
/bananarchy/scripts/apply-bananarchy-overlay.sh "$ROOTFS" nokia-argon
depmod -b "$ROOTFS" 6.12.1-msm8916