Commit 5afb79551968

Vincent Demeester <vincent@sbr.pm>
2026-04-16 11:24:29
refactor: rename to hostnames and extract common android config
Renamed android/boox to android/osaka, extracted shared files (sp, ssh_config, generate-ssh-config.nix) to android/common/. Single make target for SSH config.
1 parent 2417b81
android/boox/bin/sp → android/common/bin/sp
File renamed without changes
android/boox/generate-ssh-config.nix → android/common/generate-ssh-config.nix
File renamed without changes
android/boox/ssh_config → android/common/ssh_config
File renamed without changes
android/boox/bootstrap.sh → android/osaka/bootstrap.sh
@@ -1,7 +1,7 @@
 #!/data/data/com.termux/files/usr/bin/bash
 # Boox Termux bootstrap script
 # Run once after fresh Termux install:
-#   curl -sL https://raw.githubusercontent.com/<your-repo>/main/android/boox/bootstrap.sh | bash
+#   curl -sL https://raw.githubusercontent.com/<your-repo>/main/android/osaka/bootstrap.sh | bash
 # Or copy via adb and run locally.
 set -euo pipefail
 
@@ -36,15 +36,15 @@ if [ ! -d "$REPO_DIR" ]; then
     echo "You need to add the SSH key first. Once added, run:"
     echo "  git clone git@github.com:<user>/home.git ~/src/home"
     echo ""
-    echo "Then run: ~/src/home/android/boox/sync.sh"
+    echo "Then run: ~/src/home/android/osaka/sync.sh"
 else
     echo "Repo already cloned."
 fi
 
 echo "==> Setting up Termux properties..."
 mkdir -p ~/.termux
-cp "$REPO_DIR/android/boox/termux.properties" ~/.termux/termux.properties 2>/dev/null || true
-cp "$REPO_DIR/android/boox/colors.properties" ~/.termux/colors.properties 2>/dev/null || true
+cp "$REPO_DIR/android/osaka/termux.properties" ~/.termux/termux.properties 2>/dev/null || true
+cp "$REPO_DIR/android/osaka/colors.properties" ~/.termux/colors.properties 2>/dev/null || true
 
 echo "==> Setting zsh as default shell..."
 chsh -s zsh 2>/dev/null || true
android/boox/colors.properties → android/osaka/colors.properties
File renamed without changes
android/boox/sync.sh → android/osaka/sync.sh
@@ -3,9 +3,10 @@
 # Run after cloning: ~/src/home/android/boox/sync.sh
 set -euo pipefail
 
-BOOX_DIR="$HOME/src/home/android/boox"
+DEVICE_DIR="$HOME/src/home/android/osaka"
+COMMON_DIR="$HOME/src/home/android/common"
 
-if [ ! -d "$BOOX_DIR" ]; then
+if [ ! -d "$DEVICE_DIR" ]; then
     echo "Error: home repo not found at ~/src/home"
     echo "Clone it first: git clone <repo> ~/src/home"
     exit 1
@@ -17,22 +18,22 @@ pkg install -y openssh git zsh curl wget rsync jq mosh python nmap age passage h
 echo "==> Syncing SSH config..."
 mkdir -p ~/.ssh
 chmod 700 ~/.ssh
-ln -snf "$BOOX_DIR/ssh_config" ~/.ssh/config
+ln -snf "$COMMON_DIR/ssh_config" ~/.ssh/config
 chmod 600 ~/.ssh/config 2>/dev/null || true
 
 echo "==> Syncing Termux config..."
 mkdir -p ~/.termux
-ln -snf "$BOOX_DIR/termux.properties" ~/.termux/termux.properties
-ln -snf "$BOOX_DIR/colors.properties" ~/.termux/colors.properties
+ln -snf "$DEVICE_DIR/termux.properties" ~/.termux/termux.properties
+ln -snf "$DEVICE_DIR/colors.properties" ~/.termux/colors.properties
 # Font (optional - uncomment if you add a font.ttf)
 # ln -snf "$BOOX_DIR/font.ttf" ~/.termux/font.ttf
 
 echo "==> Syncing shell config..."
-ln -snf "$BOOX_DIR/zshrc" ~/.zshrc
+ln -snf "$DEVICE_DIR/zshrc" ~/.zshrc
 
 echo "==> Syncing bin..."
 mkdir -p ~/bin
-for f in "$BOOX_DIR"/bin/*; do
+for f in "$COMMON_DIR"/bin/*; do
     ln -snf "$f" ~/bin/"$(basename "$f")"
 done
 
android/boox/termux.properties → android/osaka/termux.properties
File renamed without changes
android/boox/zshrc → android/osaka/zshrc
@@ -89,7 +89,7 @@ alias gl='git log --oneline -20'
 alias gp='git pull --ff-only'
 
 # Sync config from repo
-alias boox-sync='~/src/home/android/boox/sync.sh'
+alias osaka-sync='~/src/home/android/osaka/sync.sh'
 
 # Quick access
 alias home='cd ~/src/home'
android/suzu/bin/sp
@@ -1,41 +0,0 @@
-#!/data/data/com.termux/files/usr/bin/bash
-# sp - shpool session wrapper for Boox (uses mosh for resilience)
-# Usage: sp <host> [session]    — attach to shpool session via mosh
-#        sp -s <host> [session] — use plain SSH instead of mosh
-#        sp <host>              — attach to 'default' session
-#        sp                     — show usage
-set -euo pipefail
-
-USE_SSH=0
-if [ "${1:-}" = "-s" ]; then
-    USE_SSH=1
-    shift
-fi
-
-if [ $# -eq 0 ]; then
-    echo "Usage: sp [-s] <host> [session]"
-    echo ""
-    echo "Options:"
-    echo "  -s    Use SSH instead of mosh"
-    echo ""
-    echo "Examples:"
-    echo "  sp rhea          # mosh to 'default' session on rhea.vpn"
-    echo "  sp rhea dev      # mosh to 'dev' session on rhea.vpn"
-    echo "  sp -s rhea dev   # SSH to 'dev' session on rhea.vpn"
-    exit 0
-fi
-
-HOST="$1"
-SESSION="${2:-default}"
-
-# Append .vpn if not already qualified
-case "$HOST" in
-    *.vpn|*.home|*.sbr.pm) ;;
-    *) HOST="${HOST}.vpn" ;;
-esac
-
-if [ "$USE_SSH" -eq 1 ]; then
-    exec ssh -t "$HOST" "shpool-ssh-wrapper ${SESSION}"
-else
-    exec mosh "$HOST" -- shpool-ssh-wrapper "${SESSION}"
-fi
android/suzu/generate-ssh-config.nix
@@ -1,1 +0,0 @@
-../boox/generate-ssh-config.nix
\ No newline at end of file
android/suzu/ssh_config
@@ -1,218 +0,0 @@
-# Boox (osaka) SSH config — auto-generated from globals.nix
-# Do not edit manually! Regenerate with: make boox/ssh-config
-#
-# Generated entries: VPN, LAN, and .sbr.pm hosts
-
-Host *
-    ServerAliveInterval 60
-    AddKeysToAgent yes
-    IdentityFile ~/.ssh/id_ed25519
-    StrictHostKeyChecking accept-new
-
-# === Homelab ===
-
-Host aion.vpn
-    HostName 10.100.0.49
-    User vincent
-
-Host aion.sbr.pm
-    HostName aion.sbr.pm
-    User vincent
-
-Host aion.home
-    HostName 192.168.1.49
-    User vincent
-
-Host aix.vpn
-    HostName 10.100.0.89
-    User vincent
-
-Host aix.sbr.pm
-    HostName aix.sbr.pm
-    User vincent
-
-Host aomi.vpn
-    HostName 10.100.0.17
-    User vincent
-
-Host aomi.sbr.pm
-    HostName aomi.sbr.pm
-    User vincent
-
-Host aomi.home
-    HostName 192.168.1.23
-    User vincent
-
-Host athena.vpn
-    HostName 10.100.0.83
-    User vincent
-
-Host athena.sbr.pm
-    HostName athena.sbr.pm
-    User vincent
-
-Host athena.home
-    HostName 192.168.1.183
-    User vincent
-
-Host carthage.vpn
-    HostName 10.100.0.1
-    User vincent
-
-Host carthage.sbr.pm
-    HostName carthage.sbr.pm
-    User vincent
-
-Host demeter.vpn
-    HostName 10.100.0.82
-    User vincent
-
-Host demeter.sbr.pm
-    HostName demeter.sbr.pm
-    User vincent
-
-Host demeter.home
-    HostName 192.168.1.182
-    User vincent
-
-Host hass.vpn
-    HostName 10.100.0.81
-    User vincent
-
-Host hass.sbr.pm
-    HostName hass.sbr.pm
-    User vincent
-
-Host hass.home
-    HostName 192.168.1.181
-    User vincent
-
-Host hokkaido.vpn
-    HostName 10.100.0.5
-    User vincent
-
-Host hokkaido.sbr.pm
-    HostName hokkaido.sbr.pm
-    User vincent
-
-Host hokkaido.home
-    HostName 192.168.1.115
-    User vincent
-
-Host kerkouane.vpn
-    HostName 10.100.0.1
-    User vincent
-
-Host kerkouane.sbr.pm
-    HostName kerkouane.sbr.pm
-    User vincent
-
-Host kyushu.vpn
-    HostName 10.100.0.19
-    User vincent
-
-Host kyushu.sbr.pm
-    HostName kyushu.sbr.pm
-    User vincent
-
-Host kyushu.home
-    HostName 192.168.1.36
-    User vincent
-
-Host nagoya.vpn
-    HostName 10.100.0.80
-    User vincent
-
-Host nagoya.sbr.pm
-    HostName nagoya.sbr.pm
-    User vincent
-
-Host nagoya.home
-    HostName 192.168.1.80
-    User vincent
-
-Host okinawa.vpn
-    HostName 10.100.0.14
-    User vincent
-
-Host okinawa.sbr.pm
-    HostName okinawa.sbr.pm
-    User vincent
-
-Host okinawa.home
-    HostName 192.168.1.42
-    User vincent
-
-Host osaka.vpn
-    HostName 10.100.0.64
-    User vincent
-
-Host osaka.sbr.pm
-    HostName osaka.sbr.pm
-    User vincent
-
-Host rhea.vpn
-    HostName 10.100.0.50
-    User vincent
-
-Host rhea.sbr.pm
-    HostName rhea.sbr.pm
-    User vincent
-
-Host rhea.home
-    HostName 192.168.1.50
-    User vincent
-
-Host sakhalin.vpn
-    HostName 10.100.0.16
-    User vincent
-
-Host sakhalin.sbr.pm
-    HostName sakhalin.sbr.pm
-    User vincent
-
-Host sakhalin.home
-    HostName 192.168.1.70
-    User vincent
-
-Host shikoku.vpn
-    HostName 10.100.0.2
-    User vincent
-
-Host shikoku.sbr.pm
-    HostName shikoku.sbr.pm
-    User vincent
-
-Host shikoku.home
-    HostName 192.168.1.24
-    User vincent
-
-Host suzu.vpn
-    HostName 10.100.0.65
-    User vincent
-
-Host suzu.sbr.pm
-    HostName suzu.sbr.pm
-    User vincent
-
-Host wakasu.vpn
-    HostName 10.100.0.8
-    User vincent
-
-Host wakasu.sbr.pm
-    HostName wakasu.sbr.pm
-    User vincent
-
-# === Git forges ===
-
-Host github.com
-    User git
-    IdentityFile ~/.ssh/id_ed25519
-
-Host gitlab.com
-    User git
-    IdentityFile ~/.ssh/id_ed25519
-
-Host codeberg.org
-    User git
-    IdentityFile ~/.ssh/id_ed25519
android/suzu/sync.sh
@@ -3,9 +3,10 @@
 # Run after cloning: ~/src/home/android/suzu/sync.sh
 set -euo pipefail
 
-SUZU_DIR="$HOME/src/home/android/suzu"
+DEVICE_DIR="$HOME/src/home/android/suzu"
+COMMON_DIR="$HOME/src/home/android/common"
 
-if [ ! -d "$SUZU_DIR" ]; then
+if [ ! -d "$DEVICE_DIR" ]; then
     echo "Error: home repo not found at ~/src/home"
     echo "Clone it first: git clone <repo> ~/src/home"
     exit 1
@@ -17,20 +18,20 @@ pkg install -y openssh git zsh curl wget rsync jq mosh htop 2>/dev/null || true
 echo "==> Syncing SSH config..."
 mkdir -p ~/.ssh
 chmod 700 ~/.ssh
-ln -snf "$SUZU_DIR/ssh_config" ~/.ssh/config
+ln -snf "$COMMON_DIR/ssh_config" ~/.ssh/config
 chmod 600 ~/.ssh/config 2>/dev/null || true
 
 echo "==> Syncing Termux config..."
 mkdir -p ~/.termux
-ln -snf "$SUZU_DIR/termux.properties" ~/.termux/termux.properties
+ln -snf "$DEVICE_DIR/termux.properties" ~/.termux/termux.properties
 # Keep default dark colors — no colors.properties override
 
 echo "==> Syncing shell config..."
-ln -snf "$SUZU_DIR/zshrc" ~/.zshrc
+ln -snf "$DEVICE_DIR/zshrc" ~/.zshrc
 
 echo "==> Syncing bin..."
 mkdir -p ~/bin
-for f in "$SUZU_DIR"/bin/*; do
+for f in "$COMMON_DIR"/bin/*; do
     ln -snf "$f" ~/bin/"$(basename "$f")"
 done
 
Makefile
@@ -91,16 +91,10 @@ fmt: ## Format Nix files
 dots: ## Build dotfiles
 	@$(MAKE) -C dots
 
-.PHONY: boox/ssh-config suzu/ssh-config android/ssh-config
-boox/ssh-config: ## Generate Boox SSH config from globals.nix
-	nix eval --raw -f android/boox/generate-ssh-config.nix > android/boox/ssh_config
-	@echo "✅ android/boox/ssh_config regenerated"
-
-suzu/ssh-config: ## Generate Light Phone SSH config from globals.nix
-	nix eval --raw -f android/suzu/generate-ssh-config.nix > android/suzu/ssh_config
-	@echo "✅ android/suzu/ssh_config regenerated"
-
-android/ssh-config: boox/ssh-config suzu/ssh-config ## Regenerate all Android SSH configs
+.PHONY: android/ssh-config
+android/ssh-config: ## Generate Android SSH config from globals.nix
+	nix eval --raw -f android/common/generate-ssh-config.nix > android/common/ssh_config
+	@echo "✅ android/common/ssh_config regenerated"
 
 ##@ Keyboards