From a4377e7bf2f6919e6a928b30ce9f449212f309d9 Mon Sep 17 00:00:00 2001 From: mister-teddy Date: Sat, 31 Oct 2026 19:13:31 +0100 Subject: [PATCH] feat: the android keyboard on the phone's screen when a text field takes focus, with the desktop fitting above it --- README.md | 3 + docs/img/android-keyboard.jpg | Bin 0 -> 126860 bytes rootfs/packages.list | 4 + src/android/accessibility.rs | 4 + src/android/app/run.rs | 14 ++- src/android/backend/wayland/event_handler.rs | 71 +++++++----- src/android/backend/wayland/mod.rs | 4 +- src/android/dex/classes.dex | Bin 28808 -> 31176 bytes src/android/external_display.rs | 51 +++++++- .../java/app/polarbear/ExternalDisplay.java | 18 +++ .../java/app/polarbear/PhoneKeyboard.java | 109 ++++++++++++++++++ .../java/app/polarbear/TrackpadControls.java | 5 + src/android/proguard-rules.pro | 5 + src/android/proot/setup.rs | 84 ++++++++++++++ 14 files changed, 343 insertions(+), 29 deletions(-) create mode 100644 docs/img/android-keyboard.jpg create mode 100644 src/android/java/app/polarbear/PhoneKeyboard.java diff --git a/README.md b/README.md index c64576b..65ae739 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,9 @@ Wayland compositor in the Android NDK plus proot) and replaces what runs on it. ideally with a keyboard and mouse. It brings a desktop to Android; it does not turn the desktop into a phone UI. +Tap a text field and your phone's own keyboard comes up, with the desktop fitting above it. For +apps where it doesn't, open **On-screen keyboard** from the Applications menu. + On a phone, connect a monitor (USB-C to HDMI, a dock, or a wireless display): the desktop moves to it and the phone becomes a trackpad, with buttons to turn the screen and to type with the Android keyboard. diff --git a/docs/img/android-keyboard.jpg b/docs/img/android-keyboard.jpg new file mode 100644 index 0000000000000000000000000000000000000000..da7427f37639ce67df2c070a7912b9d0ad401db5 GIT binary patch literal 126860 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 for PolarBearApp { on_external_pointer(backend, event); } } + AppUserEvent::KeyboardRequested => { + if backend.window_visible() { + run_in_jvm( + external_display::show_keyboard, + self.frontend.android_app.clone(), + ); + } + } + AppUserEvent::KeyboardInset => { + set_keyboard_inset(backend, external_display::keyboard_inset()); + } _ => { for event in accessibility::drain_pending_events() { let event = centralize_injected_keyboard( diff --git a/src/android/backend/wayland/event_handler.rs b/src/android/backend/wayland/event_handler.rs index 35677e3..c2d938c 100644 --- a/src/android/backend/wayland/event_handler.rs +++ b/src/android/backend/wayland/event_handler.rs @@ -18,7 +18,7 @@ use smithay::backend::renderer::{Color32F, Frame, Renderer}; use smithay::input::keyboard::FilterResult; use smithay::input::pointer::{self, CursorImageStatus, CursorImageSurfaceData}; use smithay::reexports::wayland_server::protocol::wl_pointer::ButtonState as WlButtonState; -use smithay::utils::{Point, Rectangle, Transform, SERIAL_COUNTER}; +use smithay::utils::{Physical, Point, Rectangle, Size, Transform, SERIAL_COUNTER}; use smithay::wayland::compositor::with_states; use smithay::wayland::shell::xdg::ToplevelSurface; use smithay::{ @@ -430,34 +430,53 @@ pub fn handle(event: CentralizedEvent, backend: &mut WaylandBackend, event_loop: } // The desktop is on the external display, so the phone's own window doesn't size it. CentralizedEvent::Resized { .. } if backend.is_trackpad() => paint_trackpad(backend), - CentralizedEvent::Resized { - size, - guest_scale_factor, - } => { - backend.compositor.state.size = (size.w, size.h).into(); - - if let Some(output) = &backend.compositor.output { - output.change_current_state( - Some(Mode { - size: size.into(), - refresh: 60000, - }), - Some(Transform::Normal), - Some(Scale::Integer(1)), - Some((0, 0).into()), - ); - } + CentralizedEvent::Resized { size, .. } => resize_desktop(backend, size), + _ => (), + } +} - let guest_scale = - crate::core::config::guest_ui_scale(guest_scale_factor, size.w, size.h); - write_guest_output_state(size.w, size.h, guest_scale); +/// Size the desktop to the phone's window, less what the Android keyboard covers of it. +fn resize_desktop(backend: &mut WaylandBackend, window: Size) { + let size: Size = (window.w, (window.h - backend.keyboard_inset).max(1)).into(); + backend.compositor.state.size = (size.w, size.h).into(); + + if let Some(output) = &backend.compositor.output { + output.change_current_state( + Some(Mode { + size: size.into(), + refresh: 60000, + }), + Some(Transform::Normal), + Some(Scale::Integer(1)), + Some((0, 0).into()), + ); + } - if let Some(surface) = get_surface(&backend.compositor.state) { - surface.xdg_toplevel().configure(size.w, size.h, vec![]); - } - } - _ => (), + // From the whole window, so the UI keeps its size while the keyboard is up. + let guest_scale = + crate::core::config::guest_ui_scale(backend.guest_scale_factor, window.w, window.h); + write_guest_output_state(size.w, size.h, guest_scale); + + if let Some(surface) = get_surface(&backend.compositor.state) { + surface.xdg_toplevel().configure(size.w, size.h, vec![]); + } +} + +/// The Android keyboard on the phone's screen now covers its bottom `inset` pixels: fit the +/// desktop above it, as Android apps do, so the text field being typed into stays in sight. +pub fn set_keyboard_inset(backend: &mut WaylandBackend, inset: i32) { + if inset == backend.keyboard_inset { + return; } + backend.keyboard_inset = inset; + if backend.is_trackpad() { + return; + } + let window = match &backend.graphic_renderer { + Some(winit) => winit.window_size(), + None => return, + }; + resize_desktop(backend, window); } /// Show the phone's screen as a blank trackpad; `TrackpadControls` draws its outline on top. diff --git a/src/android/backend/wayland/mod.rs b/src/android/backend/wayland/mod.rs index d222933..bdb0db4 100644 --- a/src/android/backend/wayland/mod.rs +++ b/src/android/backend/wayland/mod.rs @@ -12,7 +12,7 @@ pub use output_state::write_guest_output_state; pub use compositor::{Compositor, State}; pub use event_centralizer::{centralize, centralize_injected_keyboard, CentralizedEvent}; -pub use event_handler::{handle, on_external_pointer, paint_trackpad}; +pub use event_handler::{handle, on_external_pointer, paint_trackpad, set_keyboard_inset}; pub use winit_backend::{bind, WinitGraphicsBackend}; use smithay::{ @@ -67,6 +67,8 @@ pub struct WaylandBackend { pub cursor_position: Point, /// Buttons held by a mouse on the external display (`MotionEvent.getButtonState()`). pub external_buttons: i32, + /// How much of the bottom of the phone's screen the Android keyboard covers, in pixels. + pub keyboard_inset: i32, } impl WaylandBackend { diff --git a/src/android/dex/classes.dex b/src/android/dex/classes.dex index 4a37509e34f57e37fa77dabff46c104cd50d5b4b..fcda5ff4e30bb59997297e53f7e7e601a20124b9 100644 GIT binary patch literal 31176 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 K>TP~d`Tqd9L7RvG literal 28808 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 diff --git a/src/android/external_display.rs b/src/android/external_display.rs index e4d9090..1f008b7 100644 --- a/src/android/external_display.rs +++ b/src/android/external_display.rs @@ -1,8 +1,10 @@ use std::{ collections::VecDeque, ffi::c_void, + fs, ptr::NonNull, sync::{Arc, Condvar, Mutex, OnceLock}, + thread, time::Duration, }; @@ -20,6 +22,7 @@ use winit::{ use crate::android::{ accessibility::{self, AppUserEvent}, backend::wayland::physicalkey_to_scancode, + utils::application_context::get_application_context, }; #[repr(C)] @@ -83,16 +86,40 @@ struct Bridge { /// The event loop holds an EGL surface on `surface`. in_use: bool, pointer_events: VecDeque, + /// How much of the phone's screen the Android keyboard covers, in pixels. + keyboard_inset: i32, } static BRIDGE: OnceLock<(Mutex, Condvar)> = OnceLock::new(); +/// The guest touches this when a text field takes focus (see `elementary-mobile-keyboard`). +const KEYBOARD_REQUEST: &str = "tmp/localdesktop-keyboard"; + fn bridge() -> &'static (Mutex, Condvar) { BRIDGE.get_or_init(Default::default) } pub fn register_event_loop_proxy(proxy: EventLoopProxy) { - bridge().0.lock().unwrap().proxy = Some(proxy); + bridge().0.lock().unwrap().proxy = Some(proxy.clone()); + watch_keyboard_requests(proxy); +} + +fn watch_keyboard_requests(proxy: EventLoopProxy) { + thread::spawn(move || { + let path = get_application_context().rootfs_dir.join(KEYBOARD_REQUEST); + let modified = || fs::metadata(&path).and_then(|it| it.modified()).ok(); + let mut last = modified(); + loop { + thread::sleep(Duration::from_millis(200)); + let now = modified(); + if now != last { + last = now; + if now.is_some() && proxy.send_event(AppUserEvent::KeyboardRequested).is_err() { + return; + } + } + } + }); } /// The external monitor's surface, if one is connected. @@ -109,6 +136,10 @@ pub fn set_in_use(in_use: bool) { } } +pub fn keyboard_inset() -> i32 { + bridge().0.lock().unwrap().keyboard_inset +} + pub fn drain_pointer_events() -> Vec { bridge() .0 @@ -166,6 +197,11 @@ pub fn start(env: &mut JNIEnv, android_app: &AndroidApp) { call_java(env, android_app, "start"); } +/// Open the Android keyboard, over the trackpad or on the phone's screen. +pub fn show_keyboard(env: &mut JNIEnv, android_app: &AndroidApp) { + call_java(env, android_app, "showKeyboard"); +} + /// Keep the desktop on the monitor while the app is in the background. pub fn background(env: &mut JNIEnv, android_app: &AndroidApp) { call_java(env, android_app, "background"); @@ -295,3 +331,16 @@ pub extern "system" fn Java_app_polarbear_TrackpadControls_nativeOnKey( }; accessibility::inject_key(scancode, state, event_time_ms.max(0) as u64); } + +#[no_mangle] +pub extern "system" fn Java_app_polarbear_PhoneKeyboard_nativeOnInset( + _env: JNIEnv, + _class: JClass, + bottom: jint, +) { + let mut bridge = bridge().0.lock().unwrap(); + if bridge.keyboard_inset != bottom { + bridge.keyboard_inset = bottom; + notify(&bridge, AppUserEvent::KeyboardInset); + } +} diff --git a/src/android/java/app/polarbear/ExternalDisplay.java b/src/android/java/app/polarbear/ExternalDisplay.java index 9990b7f..dcaa8d8 100644 --- a/src/android/java/app/polarbear/ExternalDisplay.java +++ b/src/android/java/app/polarbear/ExternalDisplay.java @@ -80,6 +80,23 @@ public void run() { }); } + /** + * A text field on the desktop took focus: type into it with the Android keyboard, over the + * trackpad or on the phone's own screen. + */ + public static void showKeyboard(final Activity activity) { + activity.runOnUiThread(new Runnable() { + @Override + public void run() { + if (controls != null) { + controls.showKeyboard(); + } else { + PhoneKeyboard.show(activity); + } + } + }); + } + public static void stop(Activity activity) { activity.runOnUiThread(new Runnable() { @Override @@ -113,6 +130,7 @@ private static void update() { presentation = null; return; } + PhoneKeyboard.hide(); controls = new TrackpadControls(activity); controls.show(); Toast.makeText(activity, "The desktop is on the external display. Use this screen as a trackpad.", diff --git a/src/android/java/app/polarbear/PhoneKeyboard.java b/src/android/java/app/polarbear/PhoneKeyboard.java new file mode 100644 index 0000000..ca5c549 --- /dev/null +++ b/src/android/java/app/polarbear/PhoneKeyboard.java @@ -0,0 +1,109 @@ +package app.polarbear; + +import android.app.Activity; +import android.content.Context; +import android.os.Build; +import android.text.InputType; +import android.view.KeyEvent; +import android.view.View; +import android.view.ViewGroup; +import android.view.WindowInsets; +import android.view.inputmethod.BaseInputConnection; +import android.view.inputmethod.EditorInfo; +import android.view.inputmethod.InputConnection; +import android.view.inputmethod.InputMethodManager; + +/** + * The Android keyboard on the phone's own screen, typing into the desktop shown there. While it + * is up, the desktop fits above it. + */ +final class PhoneKeyboard { + private static KeyInput input; + + private PhoneKeyboard() {} + + static void show(Activity activity) { + final KeyInput input = attach(activity); + input.setFocusableInTouchMode(true); + input.requestFocus(); + // After the input method has connected to the newly focused view. + input.post(new Runnable() { + @Override + public void run() { + InputMethodManager imm = (InputMethodManager) + input.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); + imm.showSoftInput(input, 0); + } + }); + } + + static void hide() { + if (input == null) { + return; + } + InputMethodManager imm = (InputMethodManager) + input.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); + imm.hideSoftInputFromWindow(input.getWindowToken(), 0); + input.setFocusableInTouchMode(false); + input.clearFocus(); + } + + private static KeyInput attach(Activity activity) { + if (input != null && input.getContext() == activity) { + return input; + } + input = new KeyInput(activity); + activity.addContentView(input, new ViewGroup.LayoutParams(1, 1)); + if (Build.VERSION.SDK_INT >= 30) { + input.setOnApplyWindowInsetsListener(new View.OnApplyWindowInsetsListener() { + @Override + public WindowInsets onApplyWindowInsets(View view, WindowInsets insets) { + int bottom = insets.isVisible(WindowInsets.Type.ime()) + ? insets.getInsets(WindowInsets.Type.ime()).bottom : 0; + nativeOnInset(bottom); + if (bottom == 0) { + // Put away with the back gesture: the next tap on a text field asks again. + view.setFocusableInTouchMode(false); + } + return insets; + } + }); + } + return input; + } + + /** Takes what the Android keyboard types and passes it on as key presses. */ + private static final class KeyInput extends View { + KeyInput(Context context) { + super(context); + } + + @Override + public boolean onCheckIsTextEditor() { + return true; + } + + @Override + public InputConnection onCreateInputConnection(EditorInfo outAttrs) { + // No suggestions, so each character arrives as soon as it is typed. + outAttrs.inputType = InputType.TYPE_CLASS_TEXT + | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD + | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS; + outAttrs.imeOptions = EditorInfo.IME_FLAG_NO_FULLSCREEN + | EditorInfo.IME_FLAG_NO_EXTRACT_UI + | EditorInfo.IME_ACTION_NONE; + return new BaseInputConnection(this, false) { + @Override + public boolean sendKeyEvent(KeyEvent event) { + // Straight to the desktop: the activity's own key events go to native code, + // which doesn't see keys the input method makes up. + TrackpadControls.forwardKey(event); + return true; + } + }; + } + } + + /** How much of the screen's bottom the keyboard covers, in pixels; 0 once it is gone. */ + private static native void nativeOnInset(int bottom); +} diff --git a/src/android/java/app/polarbear/TrackpadControls.java b/src/android/java/app/polarbear/TrackpadControls.java index 0d001d8..18caa5c 100644 --- a/src/android/java/app/polarbear/TrackpadControls.java +++ b/src/android/java/app/polarbear/TrackpadControls.java @@ -275,6 +275,11 @@ private boolean onMouse(MotionEvent event) { return true; } + /** A text field on the desktop took focus. */ + void showKeyboard() { + setKeyboardShown(true); + } + /** * Turns the whole screen a quarter clockwise, Android keyboard included, for a phone lying * sideways while auto-rotate keeps it upright. diff --git a/src/android/proguard-rules.pro b/src/android/proguard-rules.pro index 62d90cd..bc12428 100644 --- a/src/android/proguard-rules.pro +++ b/src/android/proguard-rules.pro @@ -5,6 +5,7 @@ -keep class app.polarbear.ExternalDisplay { public static void start(android.app.Activity); public static void background(android.app.Activity); + public static void showKeyboard(android.app.Activity); public static void stop(android.app.Activity); native ; } @@ -12,3 +13,7 @@ -keep class app.polarbear.TrackpadControls { native ; } + +-keep class app.polarbear.PhoneKeyboard { + native ; +} diff --git a/src/android/proot/setup.rs b/src/android/proot/setup.rs index a38257c..64f3ae3 100644 --- a/src/android/proot/setup.rs +++ b/src/android/proot/setup.rs @@ -364,6 +364,87 @@ fn replace_file(path: &Path, contents: &str) { } } +/// Apps report focused text fields over the accessibility bus (AT-SPI): the app opens the Android +/// keyboard when one takes focus. Every launch, so updates reach existing installs. +fn setup_keyboard(_: &SetupOptions) -> StageOutput { + let rootfs = get_application_context().rootfs_dir; + let script = rootfs.join("usr/local/bin/elementary-mobile-keyboard"); + replace_file( + &script, + r#"#!/usr/bin/python3 +# Ask the app for the Android keyboard (see external_display.rs) when a text field takes focus. +import os, pyatspi + +REQUEST = "/tmp/localdesktop-keyboard" + +def on_focus(event): + if not event.detail1: + return + try: + editable = event.source.getState().contains(pyatspi.STATE_EDITABLE) + # Its terminal widget doesn't report itself as one. + terminal = event.source.getApplication().name == "io.elementary.terminal" + except Exception: + return + if editable or terminal: + with open(REQUEST, "a"): + os.utime(REQUEST) + +pyatspi.Registry.registerEventListener(on_focus, "object:state-changed:focused") +pyatspi.Registry.start() +"#, + ); + let _ = fs::set_permissions(&script, fs::Permissions::from_mode(0o755)); + replace_file( + &rootfs.join("etc/elementary-mobile/xdg/autostart/elementary-mobile-keyboard.desktop"), + "[Desktop Entry]\nType=Application\nName=Android keyboard\nExec=/usr/local/bin/elementary-mobile-keyboard\nNoDisplay=true\n", + ); + // For text fields the listener misses. + let applications = rootfs.join("usr/local/share/applications"); + let _ = fs::create_dir_all(&applications); + replace_file( + &applications.join("elementary-mobile-keyboard.desktop"), + "[Desktop Entry]\nType=Application\nName=On-screen keyboard\nComment=Show the Android keyboard\nExec=touch /tmp/localdesktop-keyboard\nIcon=input-keyboard\nCategories=Utility;Accessibility;\n", + ); + None +} + +/// The accessibility bus for `setup_keyboard`, on an OS unpacked before it came with it. +fn setup_keyboard_packages(options: &SetupOptions) -> StageOutput { + let rootfs = get_application_context().rootfs_dir; + let installed = [ + "usr/libexec/at-spi-bus-launcher", + "usr/lib/python3/dist-packages/pyatspi", + ]; + if installed.iter().all(|path| rootfs.join(path).exists()) { + return None; + } + let mpsc_sender = options.mpsc_sender.clone(); + Some(thread::spawn(move || { + mpsc_sender + .send(SetupMessage::Progress( + "Installing the Android keyboard helper...".to_string(), + )) + .unwrap_or(()); + let packages = "at-spi2-core python3-pyatspi gir1.2-atspi-2.0"; + let output = GuestProcess { + command: format!( + "export DEBIAN_FRONTEND=noninteractive; apt-get install -y --no-install-recommends {packages} || {{ apt-get update && apt-get install -y --no-install-recommends {packages}; }}" + ), + user: None, + log: None, + } + .run(); + if !output.status.success() { + // Offline: the next launch tries again. + log::warn!( + "Failed to install {packages}: {}", + String::from_utf8_lossy(&output.stderr) + ); + } + })) +} + /// The DNS servers of Android's active network, as IP address strings. fn android_dns_servers(android_app: &AndroidApp) -> Vec { fn query(env: &mut jni::JNIEnv, app: &AndroidApp) -> Option> { @@ -490,6 +571,7 @@ pub fn build_wayland_backend(android_app: AndroidApp) -> WaylandBackend { touch_fingers: 0, cursor_position: (0.0, 0.0).into(), external_buttons: 0, + keyboard_inset: 0, android_app, } } @@ -543,6 +625,8 @@ pub fn setup(android_app: AndroidApp) -> PolarBearBackend { Box::new(setup_network_and_time), // Step 5. DNS servers and timezone from Android Box::new(setup_cpuinfo), // Step 6. /proc/cpuinfo that llvmpipe can trust Box::new(fix_xkb_symlink), // Step 7. Fix xkb symlink + Box::new(setup_keyboard), // Step 8. Android keyboard for focused text fields + Box::new(setup_keyboard_packages), // Step 8b. Its accessibility bus on older installs ]; let handle_stage_error = |e: Box, sender: &Sender| {