Git Product home page Git Product logo

android-keyboard's People

Contributors

2nd-half avatar abb128 avatar adrianroos avatar alanv avatar bbadour avatar chih-hung avatar chiro avatar danalbert avatar danw avatar delphij avatar dsandler avatar dtor avatar enh-google avatar freak97 avatar jmtrivi avatar jsharkey avatar kep-google avatar kruton avatar ksk9687 avatar mihnita avatar narayank avatar nickkral avatar onoratoj avatar paulduffin avatar roubert avatar satok16 avatar sganov avatar tgtakaoka avatar ukirazci avatar yukawa avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

android-keyboard's Issues

Bigger symbol hints

Hello, I find the symbol hints rather small and often struggle to tell them apart in less than ideal lighting. Bit bigger would be nice.

Cheers.

Improved visibility for keyboard size settings

While phone's are getting bigger the displayed keyboard is also getting bigger but not everyone needs a half screen keyboard on a 7 inch screen
(Or even a 2.5 inch on a 5 inch screen)

Adjustable keyboard height or extra small, small,medium, large, options error be nice

voice input crash

{"REPORT_ID":"7c50cb3a-c699-4ede-9500-2fa445da2e4f","APP_VERSION_CODE":10804,"APP_VERSION_NAME":"0.1.22","PACKAGE_NAME":"org.futo.inputmethod.latin","FILE_PATH":"\/data\/user\/0\/org.futo.inputmethod.latin\/files","PHONE_MODEL":"Redmi Note 9 Pro","BRAND":"Redmi","PRODUCT":"lineage_miatoll","ANDROID_VERSION":"13","BUILD":{"BOARD":"atoll","BOOTLOADER":"unknown","BRAND":"Redmi","CPU_ABI":"arm64-v8a","CPU_ABI2":"","DEVICE":"joyeuse","DISPLAY":"TQ3A.230901.001","FINGERPRINT":"Redmi\/joyeuse_global\/joyeuse:12\/RKQ1.211019.001\/V14.0.3.0.SJZMIXM:user\/release-keys","HARDWARE":"qcom","HOST":"android-build","ID":"TQ3A.230901.001","IS_DEBUGGABLE":false,"IS_EMULATOR":false,"MANUFACTURER":"Xiaomi","MODEL":"Redmi Note 9 Pro","ODM_SKU":"nfc","PERMISSIONS_REVIEW_REQUIRED":true,"PRODUCT":"lineage_miatoll","RADIO":"unknown","SKU":"unknown","SOC_MANUFACTURER":"QTI","SOC_MODEL":"SM7125","SUPPORTED_32_BIT_ABIS":["armeabi-v7a","armeabi"],"SUPPORTED_64_BIT_ABIS":["arm64-v8a"],"SUPPORTED_ABIS":["arm64-v8a","armeabi-v7a","armeabi"],"TAGS":"release-keys","TIME":1697302097000,"TYPE":"user","UNKNOWN":"unknown","USER":"nobody","VERSION":{"ACTIVE_CODENAMES":[],"BASE_OS":"","CODENAME":"REL","INCREMENTAL":"94","KNOWN_CODENAMES":"{HoneycombMr1, HoneycombMr2, Lollipop, Kitkat, Tiramisu, Gingerbread, Cupcake, IceCreamSandwichMr1, JellyBean, IceCreamSandwich, LollipopMr1, M, N, O, P, Q, R, S, Sv2, Base, NMr1, OMr1, JellyBeanMr1, JellyBeanMr2, Donut, Froyo, GingerbreadMr1, EclairMr1, Honeycomb, Eclair01, KitkatWatch, Base11, Eclair}","MEDIA_PERFORMANCE_CLASS":0,"PREVIEW_SDK_FINGERPRINT":"REL","PREVIEW_SDK_INT":0,"RELEASE":"13","RELEASE_OR_CODENAME":"13","RELEASE_OR_PREVIEW_DISPLAY":"13","SDK":"33","SDK_INT":33,"SECURITY_PATCH":"2023-10-06"}},"TOTAL_MEM_SIZE":112419729408,"AVAILABLE_MEM_SIZE":45787176960,"BUILD_CONFIG":"N\/A","CUSTOM_DATA":{"defer_manual_update_until":"1720723809616","dismissedMigrateFdroidObtainiumNotice":"true","resource_VoiceInput_it_IT":"voiceinput_it_IT.bin","last_used_emoji":"πŸ˜‚<|>πŸ˜‚<|>πŸ˜‚<|>πŸ€·πŸ»β€β™‚οΈ<|>πŸ€¦πŸ»β€β™‚οΈ<|>πŸ™‚<|>πŸ™‚<|>πŸ˜‚<|>πŸ€·πŸ»β€β™‚οΈ<|>πŸ€¦πŸ»β€β™‚οΈ<|>πŸ€¦πŸ»β€β™‚οΈ<|>πŸ€·πŸ»β€β™‚οΈ<|>🀣<|>🀣<|>πŸ€¦πŸ»β€β™‚οΈ<|>πŸ€¦πŸ»β€β™‚οΈ<|>😁<|>🀣<|>🀣<|>πŸ€¦πŸ»β€β™‚οΈ<|>🀣<|>🀣<|>🀣<|>🀣<|>🀣<|>🀣<|>πŸ€·πŸ»β€β™‚οΈ<|>πŸ€¦πŸ»β€β™‚οΈ<|>πŸ€·πŸ»β€β™‚οΈ<|>🀣<|>🀣<|>🀣<|>🀣<|>🀣<|>🀣<|>πŸ˜…<|>😍<|>😍<|>πŸ€·πŸ»β€β™‚οΈ<|>","subtypes":"[it_IT:KeyboardLayoutSet=qwerty:]","last_update_check_failed":"true","last_version":"10804","prefer_bluetooth_recording":"false","activeThemeOption":"DynamicSystem","activeSubtype":"it_IT:KeyboardLayoutSet=qwerty:","keyHints":"true","verbose_progress":"true","keyboardHeightMultiplier":"0.9"},"IS_SILENT":false,"STACK_TRACE":"java.lang.IllegalArgumentException: The Whisper model could not be loaded from the given buffer\n\tat org.futo.voiceinput.shared.ggml.WhisperGGML.<init>(SourceFile:30)\n\tat org.futo.voiceinput.shared.types.ModelFileFile.loadGGML(SourceFile:40)\n\tat org.futo.voiceinput.shared.whisper.ModelManager.obtainModel(SourceFile:16)\n\tat org.futo.voiceinput.shared.whisper.MultiModelRunner$preload$2$1.invokeSuspend(SourceFile:14)\n\tat kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(SourceFile:9)\n\tat kotlinx.coroutines.DispatchedTask.run(SourceFile:115)\n\tat kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(SourceFile:92)\n\tSuppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@f553ec7, Dispatchers.Main.immediate]\n","INITIAL_CONFIGURATION":{"colorMode":5,"densityDpi":396,"fontScale":1,"fontWeightAdjustment":0,"hardKeyboardHidden":"HARDKEYBOARDHIDDEN_YES","keyboard":"KEYBOARD_NOKEYS","keyboardHidden":"KEYBOARDHIDDEN_NO","locale":"it_IT","mcc":222,"mnc":10,"navigation":"NAVIGATION_NONAV","navigationHidden":"NAVIGATIONHIDDEN_YES","orientation":"ORIENTATION_PORTRAIT","screenHeightDp":880,"screenLayout":"SCREENLAYOUT_SIZE_NORMAL+SCREENLAYOUT_LONG_YES+SCREENLAYOUT_LAYOUTDIR_LTR+SCREENLAYOUT_ROUND_NO","screenWidthDp":436,"seq":3015,"smallestScreenWidthDp":436,"touchscreen":"TOUCHSCREEN_FINGER","uiMode":"UI_MODE_TYPE_NORMAL+UI_MODE_NIGHT_NO","userSetLocale":false},"CRASH_CONFIGURATION":{"colorMode":5,"densityDpi":396,"fontScale":1,"fontWeightAdjustment":0,"hardKeyboardHidden":"HARDKEYBOARDHIDDEN_YES","keyboard":"KEYBOARD_NOKEYS","keyboardHidden":"KEYBOARDHIDDEN_NO","locale":"it_IT","mcc":222,"mnc":10,"navigation":"NAVIGATION_NONAV","navigationHidden":"NAVIGATIONHIDDEN_YES","orientation":"ORIENTATION_PORTRAIT","screenHeightDp":880,"screenLayout":"SCREENLAYOUT_SIZE_NORMAL+SCREENLAYOUT_LONG_YES+SCREENLAYOUT_LAYOUTDIR_LTR+SCREENLAYOUT_ROUND_NO","screenWidthDp":436,"seq":3015,"smallestScreenWidthDp":436,"touchscreen":"TOUCHSCREEN_FINGER","uiMode":"UI_MODE_TYPE_NORMAL+UI_MODE_NIGHT_NO","userSetLocale":false},"DISPLAY":{"0":{"currentSizeRange":{"smallest":[1080,1011],"largest":[2179,2179]},"flags":"FLAG_SUPPORTS_PROTECTED_BUFFERS+FLAG_SECURE","metrics":{"density":2.4750001430511475,"densityDpi":396,"scaledDensity":"x2.4750001","widthPixels":1080,"heightPixels":2179,"xdpi":397.56500244140625,"ydpi":395.843994140625},"realMetrics":{"density":2.4750001430511475,"densityDpi":396,"scaledDensity":"x2.4750001","widthPixels":1080,"heightPixels":2400,"xdpi":397.56500244140625,"ydpi":395.843994140625},"name":"Schermo incorporato","realSize":[1080,2400],"rectSize":[0,0,1080,2179],"size":[1080,2179],"rotation":"ROTATION_0","isValid":true,"orientation":0,"refreshRate":60.000003814697266,"height":2179,"width":1080,"pixelFormat":1}},"USER_COMMENT":"","USER_EMAIL":"","USER_APP_START_DATE":"2024-06-27T20:50:14.952+02:00","USER_CRASH_DATE":"2024-06-27T20:50:20.945+02:00","DUMPSYS_MEMINFO":"","LOGCAT":"06-27 20:50:13.736 V\/GraphicsEnvironment( 2614): Neither updatable production driver nor prerelease driver is supported.\n06-27 20:50:13.791 W\/Parcel ( 2614): Expecting binder but got null!\n06-27 20:50:13.816 W\/Parcel ( 2614): Expecting binder but got null!\n06-27 20:50:13.841 I\/AdrenoGLES-0( 2614): QUALCOMM build : 83a0eede45, If3f4a1ab82\n06-27 20:50:13.841 I\/AdrenoGLES-0( 2614): Build Date : 11\/18\/21\n06-27 20:50:13.841 I\/AdrenoGLES-0( 2614): OpenGL ES Shader Compiler Version: EV031.32.02.15\n06-27 20:50:13.841 I\/AdrenoGLES-0( 2614): Local Branch : \n06-27 20:50:13.841 I\/AdrenoGLES-0( 2614): Remote Branch : refs\/tags\/AU_LINUX_ANDROID_LA.UM.9.1.R1.11.00.00.604.070\n06-27 20:50:13.841 I\/AdrenoGLES-0( 2614): Remote Branch : NONE\n06-27 20:50:13.841 I\/AdrenoGLES-0( 2614): Reconstruct Branch : NOTHING\n06-27 20:50:13.841 I\/AdrenoGLES-0( 2614): Build Config : S P 10.0.6 AArch64\n06-27 20:50:13.841 I\/AdrenoGLES-0( 2614): Driver Path : \/vendor\/lib64\/egl\/libGLESv2_adreno.so\n06-27 20:50:13.846 I\/AdrenoGLES-0( 2614): PFP: 0x016ee190, ME: 0x00000000\n06-27 20:50:13.859 E\/OpenGLRenderer( 2614): Unable to match the desired swap behavior.\n06-27 20:50:13.866 I\/Gralloc4( 2614): Adding additional valid usage bits: 0x8202000\n06-27 20:50:13.912 E\/OpenGLRenderer( 2614): Unable to match the desired swap behavior.\n06-27 20:50:14.841 E\/putmethod.latin( 2651): Not starting debugger since process cannot load the jdwp agent.\n06-27 20:50:14.936 V\/GraphicsEnvironment( 2651): ANGLE Developer option for 'org.futo.inputmethod.latin' set to: 'default'\n06-27 20:50:14.937 V\/GraphicsEnvironment( 2651): ANGLE GameManagerService for org.futo.inputmethod.latin: false\n06-27 20:50:14.937 V\/GraphicsEnvironment( 2651): Neither updatable production driver nor prerelease driver is supported.\n06-27 20:50:14.947 I\/ACRA ( 2651): ACRA is enabled for org.futo.inputmethod.latin, initializing...\n06-27 20:50:14.957 D\/WM-WrkMgrInitializer( 2651): Initializing WorkManager with default configuration.\n06-27 20:50:14.960 D\/WM-PackageManagerHelper( 2651): Skipping component enablement for androidx.work.impl.background.systemjob.SystemJobService\n06-27 20:50:14.961 D\/WM-Schedulers( 2651): Created SystemJobScheduler and enabled SystemJobService\n06-27 20:50:14.970 I\/LatinIMELegacy( 2651): Hardware accelerated drawing: true\n06-27 20:50:15.016 W\/InputAttributes( 2651): No editor info for this field. Bug?\n06-27 20:50:15.021 I\/LatinIME:LogUtils( 2651): Dictionary info: dictionary = UserHistoryDictionary.it_IT ; version = 1718305385 ; date = 1719506799\n06-27 20:50:15.021 I\/LatinIME:LogUtils( 2651): Dictionary info: dictionary = userunigram.it_IT ; version = 1718301061 ; date = 1718301061\n06-27 20:50:15.022 D\/LanguageModelFacilitator( 2651): Starting processor\n06-27 20:50:15.025 I\/LatinIME:LogUtils( 2651): Dictionary info: dictionary = main:it ; version = 54 ; date = 1414726258\n06-27 20:50:15.028 I\/UpdateChecking( 2651): Job already scheduled, no need to do anything\n06-27 20:50:15.032 W\/InputAttributes( 2651): No editor info for this field. Bug?\n06-27 20:50:15.050 W\/Parcel ( 2651): Expecting binder but got null!\n06-27 20:50:17.043 I\/LatinIMELegacy( 2651): Timeout waiting for dictionary load\n06-27 20:50:19.294 D\/OpenGLRenderer( 2614): endAllActiveAnimators on 0xb4000070360fdf00 (RippleDrawable) with handle 0xb400006fce4df840\n06-27 20:50:19.366 I\/AdrenoGLES-0( 2651): QUALCOMM build : 83a0eede45, If3f4a1ab82\n06-27 20:50:19.366 I\/AdrenoGLES-0( 2651): Build Date : 11\/18\/21\n06-27 20:50:19.366 I\/AdrenoGLES-0( 2651): OpenGL ES Shader Compiler Version: EV031.32.02.15\n06-27 20:50:19.366 I\/AdrenoGLES-0( 2651): Local Branch : \n06-27 20:50:19.366 I\/AdrenoGLES-0( 2651): Remote Branch : refs\/tags\/AU_LINUX_ANDROID_LA.UM.9.1.R1.11.00.00.604.070\n06-27 20:50:19.366 I\/AdrenoGLES-0( 2651): Remote Branch : NONE\n06-27 20:50:19.366 I\/AdrenoGLES-0( 2651): Reconstruct Branch : NOTHING\n06-27 20:50:19.366 I\/AdrenoGLES-0( 2651): Build Config : S P 10.0.6 AArch64\n06-27 20:50:19.367 I\/AdrenoGLES-0( 2651): Driver Path : \/vendor\/lib64\/egl\/libGLESv2_adreno.so\n06-27 20:50:19.372 I\/AdrenoGLES-0( 2651): PFP: 0x016ee190, ME: 0x00000000\n06-27 20:50:19.389 E\/OpenGLRenderer( 2651): Unable to match the desired swap behavior.\n06-27 20:50:19.393 I\/Gralloc4( 2651): Adding additional valid usage bits: 0x8202000\n06-27 20:50:19.422 W\/LatinIME( 2651): Create input view\n06-27 20:50:19.483 I\/LatinIMELegacy( 2651): Starting input. Cursor position = 0,0\n06-27 20:50:19.603 D\/LanguageModelFacilitator( 2651): Calling closeInternalLocked on model due to seeming locale change\n06-27 20:50:19.604 D\/LanguageModelFacilitator( 2651): no model for it\n06-27 20:50:20.273 D\/ProfileInstaller( 2651): Skipping profile installation for org.futo.inputmethod.latin\n06-27 20:50:20.571 D\/MediaCodecList( 2651): codecHandlesFormat: no format, so no extra checks\n06-27 20:50:20.571 D\/MediaCodecList( 2651): codecHandlesFormat: no format, so no extra checks\n06-27 20:50:20.571 D\/MediaCodecList( 2651): codecHandlesFormat: no format, so no extra checks\n06-27 20:50:20.572 D\/MediaCodecList( 2651): codecHandlesFormat: no format, so no extra checks\n06-27 20:50:20.574 I\/OMXClient( 2651): IOmx service obtained\n06-27 20:50:20.577 D\/MediaCodec( 2651): flushMediametrics\n06-27 20:50:20.592 I\/OMXClient( 2651): IOmx service obtained\n06-27 20:50:20.595 D\/MediaCodec( 2651): flushMediametrics\n06-27 20:50:20.602 D\/MediaCodec( 2651): flushMediametrics\n06-27 20:50:20.614 D\/MediaCodec( 2651): flushMediametrics\n06-27 20:50:20.706 D\/LOG_TAG ( 2651): WebRtcVad success\n06-27 20:50:20.706 I\/System.out( 2651): Resulting handle is -5476376666984957184\n06-27 20:50:20.737 I\/LatinIME: ( 2651): Attempting to load model from buffer...\n06-27 20:50:20.738 I\/LatinIME: ( 2651): whisper_init_from_buffer_with_params_no_state: loading model from buffer\n06-27 20:50:20.738 I\/LatinIME: ( 2651): whisper_model_load: loading model\n06-27 20:50:20.739 I\/LatinIME: ( 2651): whisper_model_load: n_vocab = 51865\n06-27 20:50:20.739 I\/LatinIME: ( 2651): whisper_model_load: n_audio_ctx = 1500\n06-27 20:50:20.740 I\/LatinIME: ( 2651): whisper_model_load: n_audio_state = 768\n06-27 20:50:20.740 I\/LatinIME: ( 2651): whisper_model_load: n_audio_head = 12\n06-27 20:50:20.740 I\/LatinIME: ( 2651): whisper_model_load: n_audio_layer = 12\n06-27 20:50:20.740 I\/LatinIME: ( 2651): whisper_model_load: n_text_ctx = 448\n06-27 20:50:20.740 I\/LatinIME: ( 2651): whisper_model_load: n_text_state = 768\n06-27 20:50:20.741 I\/LatinIME: ( 2651): whisper_model_load: n_text_head = 12\n06-27 20:50:20.741 I\/LatinIME: ( 2651): whisper_model_load: n_text_layer = 12\n06-27 20:50:20.741 I\/LatinIME: ( 2651): whisper_model_load: n_mels = 80\n06-27 20:50:20.741 I\/LatinIME: ( 2651): whisper_model_load: ftype = 7\n06-27 20:50:20.741 I\/LatinIME: ( 2651): whisper_model_load: qntvr = 2\n06-27 20:50:20.742 I\/LatinIME: ( 2651): whisper_model_load: type = 3 (small)\n06-27 20:50:20.809 I\/LatinIME: ( 2651): whisper_model_load: adding 1607 extra tokens\n06-27 20:50:20.810 I\/LatinIME: ( 2651): whisper_model_load: n_langs = 99\n06-27 20:50:20.811 I\/LatinIME: ( 2651): whisper_model_load: CPU buffer size = 277.87 MB\n06-27 20:50:20.875 I\/LatinIME: ( 2651): whisper_model_load: model size = 105.46 MB\n06-27 20:50:20.875 E\/LatinIME: ( 2651): whisper_model_load: ERROR not all tensors loaded from model file - expected 479, got 167\n06-27 20:50:20.876 E\/LatinIME: ( 2651): whisper_init_with_params_no_state: failed to load model\n06-27 20:50:20.898 E\/LatinIME: ( 2651): whisper_init_from_buffer_with_params: received null context\n06-27 20:50:20.898 E\/LatinIME: ( 2651): Failed to initialize whisper_context from direct buffer\n06-27 20:50:20.902 E\/ACRA ( 2651): ACRA caught a IllegalArgumentException for org.futo.inputmethod.latin\n06-27 20:50:20.902 E\/ACRA ( 2651): java.lang.IllegalArgumentException: The Whisper model could not be loaded from the given buffer\n06-27 20:50:20.902 E\/ACRA ( 2651): \tat org.futo.voiceinput.shared.ggml.WhisperGGML.<init>(SourceFile:30)\n06-27 20:50:20.902 E\/ACRA ( 2651): \tat org.futo.voiceinput.shared.types.ModelFileFile.loadGGML(SourceFile:40)\n06-27 20:50:20.902 E\/ACRA ( 2651): \tat org.futo.voiceinput.shared.whisper.ModelManager.obtainModel(SourceFile:16)\n06-27 20:50:20.902 E\/ACRA ( 2651): \tat org.futo.voiceinput.shared.whisper.MultiModelRunner$preload$2$1.invokeSuspend(SourceFile:14)\n06-27 20:50:20.902 E\/ACRA ( 2651): \tat kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(SourceFile:9)\n06-27 20:50:20.902 E\/ACRA ( 2651): \tat kotlinx.coroutines.DispatchedTask.run(SourceFile:115)\n06-27 20:50:20.902 E\/ACRA ( 2651): \tat kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(SourceFile:92)\n06-27 20:50:20.902 E\/ACRA ( 2651): \tSuppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@f553ec7, Dispatchers.Main.immediate]\n06-27 20:50:20.891 W\/logcat ( 2916): type=1400 audit(0.0:16887): avc: denied { read } for name=\"audio.primary.atoll.so\" dev=\"dm-1\" ino=842 scontext=u:r:untrusted_app:s0:c159,c258,c512,c768 tcontext=u:object_r:vendor_file:s0 tclass=file permissive=0 app=org.futo.inputmethod.latin\n","INSTALLATION_ID":"9b042c11-6c31-49e6-9093-1db11b542b02","DEVICE_FEATURES":{"android.hardware.sensor.proximity":true,"android.software.adoptable_storage":true,"android.hardware.sensor.accelerometer":true,"android.software.controls":true,"android.hardware.faketouch":true,"android.software.telecom":true,"android.hardware.telephony.subscription":true,"android.hardware.usb.accessory":true,"android.hardware.telephony.cdma":true,"android.hardware.telephony.data":true,"android.software.backup":true,"android.hardware.touchscreen":true,"android.hardware.touchscreen.multitouch":true,"android.software.print":true,"android.hardware.consumerir":true,"android.software.activities_on_secondary_displays":true,"android.hardware.wifi.rtt":true,"com.google.android.feature.PIXEL_2017_EXPERIENCE":true,"android.software.voice_recognizers":true,"android.software.picture_in_picture":true,"android.hardware.fingerprint":true,"android.hardware.sensor.gyroscope":true,"android.hardware.audio.low_latency":true,"android.software.vulkan.deqp.level":true,"android.software.cant_save_state":true,"com.google.android.feature.PIXEL_2018_EXPERIENCE":true,"android.hardware.security.model.compatible":true,"android.hardware.telephony.messaging":true,"android.hardware.telephony.calling":true,"android.hardware.opengles.aep":true,"org.lineageos.livedisplay":true,"org.lineageos.profiles":true,"android.hardware.bluetooth":true,"android.software.window_magnification":true,"android.hardware.telephony.radio.access":true,"android.hardware.camera.autofocus":true,"com.google.android.feature.GOOGLE_BUILD":true,"android.hardware.telephony.gsm":true,"android.hardware.telephony.ims":true,"android.software.incremental_delivery":true,"android.software.sip.voip":true,"android.hardware.se.omapi.ese":true,"android.software.opengles.deqp.level":true,"com.google.android.apps.photos.NEXUS_PRELOAD":true,"android.hardware.usb.host":true,"android.hardware.audio.output":true,"android.software.verified_boot":true,"android.hardware.camera.flash":true,"android.hardware.camera.front":true,"android.hardware.se.omapi.uicc":true,"android.hardware.screen.portrait":true,"android.hardware.nfc":true,"com.google.android.feature.TURBO_PRELOAD":true,"com.nxp.mifare":true,"android.hardware.sensor.stepdetector":true,"android.software.home_screen":true,"android.hardware.microphone":true,"android.software.autofill":true,"org.lineageos.hardware":true,"org.lineageos.globalactions":true,"android.software.securely_removes_users":true,"com.google.android.feature.PIXEL_EXPERIENCE":true,"android.hardware.bluetooth_le":true,"android.hardware.sensor.compass":true,"android.hardware.touchscreen.multitouch.jazzhand":true,"android.software.app_widgets":true,"android.software.input_methods":true,"android.hardware.sensor.light":true,"android.hardware.vulkan.version":true,"android.software.companion_device_setup":true,"android.software.device_admin":true,"com.google.android.feature.WELLBEING":true,"android.hardware.wifi.passpoint":true,"android.hardware.camera":true,"com.google.android.feature.ZERO_TOUCH":true,"org.lineageos.trust":true,"android.hardware.screen.landscape":true,"android.software.device_id_attestation":true,"android.hardware.ram.normal":true,"org.lineageos.health":true,"com.google.android.apps.photos.nexus_preload":true,"org.lineageos.android":true,"android.software.managed_users":true,"android.software.webview":true,"android.hardware.sensor.stepcounter":true,"android.hardware.camera.capability.manual_post_processing":true,"android.hardware.camera.any":true,"android.hardware.camera.capability.raw":true,"android.hardware.vulkan.compute":true,"android.hardware.touchscreen.multitouch.distinct":true,"android.hardware.location.network":true,"android.software.cts":true,"android.software.sip":true,"android.hardware.camera.capability.manual_sensor":true,"android.software.app_enumeration":true,"com.google.android.apps.dialer.SUPPORTED":true,"android.hardware.camera.level.full":true,"android.hardware.wifi.direct":true,"android.software.live_wallpaper":true,"com.google.android.feature.GOOGLE_EXPERIENCE":true,"android.software.ipsec_tunnels":true,"com.google.android.feature.EXCHANGE_6_2":true,"org.lineageos.settings":true,"android.hardware.audio.pro":true,"android.hardware.nfc.hcef":true,"android.hardware.nfc.uicc":true,"android.hardware.location.gps":true,"android.sofware.nfc.beam":true,"android.software.midi":true,"android.hardware.nfc.any":true,"android.hardware.nfc.hce":true,"android.hardware.wifi":true,"android.hardware.location":true,"android.hardware.vulkan.level":true,"android.hardware.wifi.aware":true,"android.software.secure_lock_screen":true,"android.hardware.biometrics.face":true,"android.hardware.telephony":true,"android.software.file_based_encryption":true,"glEsVersion":"3.2"},"ENVIRONMENT":null,"SHARED_PREFERENCES":{"default":{"vibrate_on":false,"pref_vibration_duration_settings":-1,"pref_enable_number_row":false}}}

Option to disable the select language button on the space bar

Right now, if you press hold on the space bar, it will pop up an option to change keyboard language. The issue is that, more often than not, when trying to use the "cursor scroll on spacebar swipe" feature, it pops up the keyboard switch dialog instead.

Being able to scroll back and forth by swiping on the keyboard is a key feature found in FUTO and also other keyboards, however with the dialogue poping up half the time it is very annoying to use.

A simple option to not have the language switcher on the spacebar would be great to allow swipe to scroll to work correctly.

Feature Request: Capitalize word with cursor at the end of the word

Coming from Swiftkey, I'm finding a huge usability miss when trying to upper/lowercase a word

If I type a word and the cursor is at the end of that word, I would like if the shift button (capitalize button?) uppercased the word, and inversely if the word is already uppercased, lowercase it

[Featue Request] replace emoji key (with language switcher)

I'd like to replace the emoji key with a one tap language switcher that rotates through all languages. I have a similar use case like #38. But I think this is much easier to solve so this would be particularly useful to me until the multi language is implemented.

License change?

Sorry to clutter the Issues page with a question, but I guess you could call the current license an "issue" that has so far prevented me from paying...

Are there any plans to adopt FUTO's newly-released GrayJay Core License?

Long-press keys should default to language accents instead of symbols

Currently (ver. 0.1.21), in the long press menus for wowels the first options are symbols (as shown in the pictures). This is a bit annoying, as Hungarian uses a lot of wowels with accent marks, and greatly reduces productivity. It would improve the experience for Hungarian massively, if the following changes would be implemented:
Instead of the symbols, these wowels should be first in the long press menu:
E -> Γ‰
U -> Ú, Ü, Ű
I -> Í
O -> Γ“, Γ–, Ő
A -> Á

Basically the same as in the keyboards of Google and Samsung.

Screenshot_20240613_125427_Firefox
Screenshot_20240613_125424_Firefox
Screenshot_20240613_125422_Firefox
Screenshot_20240613_125415_Firefox
Screenshot_20240613_125409_Firefox

Backspace long press vibrate inconsistency

The backspace vibrates for each character when long pressing it from the text editor menu, but not from the main view of the keyboard.

It'll be better to have a toggle for this since I people may want one or the other.

[FEATURE REQUEST] Allow Multi language input without changing layout.

I write in spanish and english frequently. In Gboard and florisboard you can use the same keyboard layout (spanish for example) to write in multiple languages and get corrections and suggestions for both or more languages. Currently in FUTO keyboard if I want to write something in english while on the spanish layout it will auto-correct the words to spanish.
I imagine that this could be fixed adding a function to reference multiple language dictionaries at the same time. Not necessarily linked to the current layout.
This is probably possible through the dictionary override feature, but it would be better if I could choose to add another of the existing language dictionaries directly from within the app.
Cheers!

Feature Request cursor control

I threw this into Antropic Claude 3 Haiku to better explain the feature.

"trackpad" or "cursor control" feature on smartphones. This allows you to use the keyboard as a mini trackpad to precisely position the cursor when typing.

On iPhones, this feature is called "Cursor Control" and it works by long-pressing on the spacebar to activate the trackpad mode. You can then slide your finger around the keyboard area to move the cursor.

Many Android smartphones also have a similar feature, often referred to as "Keyboard Trackpad" or "Cursor Control." The exact implementation may vary by device, but the general functionality is the same - long-pressing the spacebar activates a mini trackpad on the keyboard for precise cursor positioning.

This feature is very handy for editing text, moving the cursor to a specific spot, or making corrections without having to tap directly on the screen. It's a useful productivity enhancement for mobile typing.

Urdu Language Missing

Man I loved the new update bit there is no Urdu language kind of bummer
But keep up the good work, I hope you guys can add Urdu as soon as possible

Thank you for creating this amazing product.

Text suggestions issue with cursor control

If you tap a text suggestion while the cursor is being moved by the space bar or backspace cursor control it fails to replace the word with the suggestion, also if you use backspace cursor control but don't actually delete anything it fails to replace it.
The video below contains 3 instances of the bug.
[

1000019501.1.mp4

](url)

Keyboard crash on open

Hi,

I just installed the 0.1.18 version from the playstore.
Everything was fine until I changed the default keyboard to futo's.
Every time I try to open the keyboard, it crashes with no explanation.

I am on android 11, I tried to select both the english and french versions in the keyboard list with the same result.
Also the "keyboard button on navigation bar" is enabled in my android settings, if that can be relevant.

Do you have an idea about what could be causing this crash or where I can find the logs?

Redesign the emoji panel

To improve the user experience, please redesign the emoji panel To this design:

SVID_20240619_070639_1.mp4

As this design makes it easier for the user to reach the buttons, especially if the person uses one hand

One-handed mode

Keyboard is really promising testing it out rn, would be really nice to have adjustable width setting to make one hand mode since most phones are really big for one hand , iOS iPhone app would be great too! Thanks for the app , app seems quite stable for an alpha looking forward for more features and development.

Feature request: Select all text

It'll be nice to have a select all text button on the action bar to make deleting large amounts of text easier than having to swipe on the delete button multiple times or going into text editor mode and holding down the left key after selecting the highlight and jump by word buttons.

FlorisBoard is an example keyboard with this feature

[feature req.] CTRL, ALT, TAB, ESC keys addition

These keys are very useful, especially for Emacs users, and would be great to have them as a long press key, dedicated, or even also like now we have the arrows, redo/undo, copy/paste.. in a dedicated row. In such case, I would prefer it not as big as it currently is.. maybe just the height of a letters row ^^

Attached 1 screenshot with the example of Unexpected Keyboard, where you slide to one angle, and you get 'Alt', 'Esc' and 'Tab', while the 'Ctrl' is a dedicated button.

FUTO-ctrl-alt-tab-esc-Unexpected

Deletion Issues

When deleting text that was misspelled sometimes the keyboard removes the space between the previous two words. For example, if I were writing "and I went to the perk" and needed to change the 'e' in 'perk' to an 'a' for 'park' it would so this as I'm deleting. "And I went to theprk" after I delete the 'e'.

Symbol popup under my finger

When holding a key to get a special character the popup is not one line above but right under my finger. And when i move my finger of the popup it starts swiping.
Screenshot_20240508-161401

[Feature request] favorite utility

Add a drop down menu in the settings to select what function will appear in the top right corner of the keyboard (the default being voice to text)
Screenshot_20240618-195448-950

Symbol hints dont match (german)

The symbol hints doesn't match what will pop up or the ?123 Layout
Example german
A hint is @
A popup is Γ€
A ?123 is @
D hint is $
D popup is $
D ?123 is €

[Feature request] Feature parity with FlorisBoard & FUTO voice input compatibility

There are two huge issues with Base AOSP keyboard, which is used as a base for FUTO keyboard:

  1. It is lackluster on features and options
  2. It is really sluggish and slow (to respond on gestures especially).

I dont know how you can deal with general sluggishness without rewriting big chunks keyboard codebase. The fact that smartphones that are able to render PS3 level games an 3D graphics are not snappy as hell when typing and lag on keyboard gestures is kinda embarrasing. FlorisBoard is a goog example to compare you keyboard to. FlBd is not an AOSP fork and it is considerably snappier, more responsive and silky smooth on gestures most of the time.

As for the features - if you are aiming to become β„–1 FOSS/Source first keyboard, you should reach feature-parity with FlorisBoard. Aside from swipe-input and and intellectual suggestions, Floris board is β„–1 Android keyboard when it comes to speed and feature-compleetness. I think there is no point at listing all FlorisBoard features here (many of which are already suggested in othe feature-requests), so i'll just provide a link to a project web-site

https://florisboard.org/

P.S. Can you List FlorisBoard as a compatible option for FUTO voice input if possible. FlorisBoard is a superb and megapopular keyboard on f-droid and it is compatible with your voice input.

Feature Request: Clipboard UI

It would be great to be able to access (and modify) the system clipboard instead of only the most recently copied item.

Backspace swipe: erase words, not letters (add option)

This is usable:

  • when using swipe typing, because you usually get the whole word wrong.
  • When editing pre-existing text, such as personal notes

Also, this is the way that GBboard works by default, plus the spacebar swipe cursor move acts this way.

Additional idea: keep erasing by character for the first word, then, when the first word is entirely erased, start erasing by word. Or some kind of "accelerated sensitivity" - the more you've already erased, the more you'll erase with each additional millimeter of finger movement.

In the Arabic layout , the size of the backspace button is small

In the Arabic layout, the size of the backspace button is small, please enlarge its size

futo keyboard :

Screenshot_20240619_084811

Even after changing the height of the keyboard, the backspace button is equal in size to other buttons, the backspace button is supposed to be the largest of the other buttons and not equal to their size :
Screenshot_20240619_091118

While in the HeliBoard keyboard, the backspace button is large in size and is not equal to the size of the other buttons

Screenshot_20240619_091332

[Bug] List of languages shows extra text relating to locale settings

Phone: Pixel 6 Pro
OS: Graphene OS (build 2024062700)
FUTO Keyboard version: 0.1.22 (versionCode 10804)

Screenshot of bug

bug
bug2

It seems that the list of languages which is automatically added (presumably based on the list of languages configured on the device) shows unnecessary locale related codes at the end.

On my device I had the following selected under System Settings -> System -> Languages:

  • System Languages:
    • English (United Kingdon)
    • 繁體中文 οΌˆθ‡Ίη£οΌ‰
    • Deutsch (Deutschland)
  • Regional preferences:
    • Temperature: Celsius (Β°C)
    • First day of the week: Monday

My timezone is set to automatic (GMT+1) but I doubt it's that.

Please note that the extra text is not shown if I manually add a language in the FUTO keyboard settings, it only shows for language automatically added after a fresh install, and it shows as the default value in the dropdown to pick your language.

Feature Request: Dvorak keyboard layout

My one critical feature usecase to migrate to this key card provider is Dvorak keyboard layouts. I love what Futo is developing and look forward to this being supported.

If it helps with "why":

  • match my daily keyboard layout, desktop and mobile
  • enable touch typing (don't have to stare an the phone's keyboard)
  • improved use of both thumbs; reduced risk of pain from typing

Priorities in my case: US English, Spanish, German.

[Feature request] Vietnamese Telex

I understand that FUTO keyboard already have QWERTY keyboard in Vietnamese language.
I don't want to hold letters to open the extra character in the keyboard.

Most if not all Vietnamese use Telex or VNI on PC.

Telex Vietnamese is easier to use on a virtual keyboard.

Conflicting Gestures

screen-20240511-211453.3.mp4

When swiping from the symbols button or the caps button, if you touch a button that uses cursor control it breaks and gets stuck

Solution idea:
Disable cursor control gestures for space bar and backspace when any other gesture is active

Backspace in reddit app

When typing in the Android reddit app. If you mistype and have to backspace to erase your mistake, futo keyboard also deletes the space before the word even when your nowhere near that space.

Using other keysboard in the same app doesn't do this so this. So does appear to be a bug in the futo keyboard.

Emoji search support

I'd love to see emoji search support. Right now I have to scroll through all the emojis to find what I'm looking for if it's not my recents.

[BUG] CAPS on from time to time

On the Spanish keyboard layout I am experiencing from time to time a bug which makes it start writing with CAPS on. This happens when I switch between apps or minimize the keyboard and then start writing again. The bug does not occur always but rather frequently.

The remedy is to either press shift twice to exit CAPS or backspace deleting everything and start writing again, after which the keyboard correctly capitalizes only the first letter.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.