Wayland Input Methods

Total Page:16

File Type:pdf, Size:1020Kb

Wayland Input Methods Wayland Input Methods Michael Hasselmann Wayland Input Methods Wayland? wayland.freedesktop.org Wayland Input Methods Input methods? Wayland Input Methods Input methods? (first time presenting in front of target audience!) Wayland Input Methods Input methods → text input traditional use-cases mobile & embedded from desktop use-cases (mouse + hwkb) (touch display) Wayland Input Methods Input methods → text input maliit.org Wayland Input Methods MeeGo Harmattan Nokia N9 ships Development starts Feb. 2010 Feb. 2011 June Oct. Feb. 2012 Code made available on gitorious Maliit 0.80 Dedicated infrastructure Wayland Input Methods Maliit 0.90 Maliit added to (unstable) OpenEmbedded's meta layer Jolla demos Canonical contributes Plasma Active SailfishOS, 250+ patches to chooses Maliit uses Maliit Maliit Keyboard Mar. 2012 May 2012 Aug. 2012 Nov. 2012 Mar. 2013 Apr. 2012 Jul. 2012 Oct. 2012 Feb. 2013 Apr. 2013 OLPC chooses Wayland input Canonical uses Maliit Maliit methods work starts, for its MWC demos based on Maliit API Maliit 0.99 “Road to 1.0”: (unstable) Maliit to target Qt5/QtQuick2 Wayland Input Methods GNOME joins the Wayland party! (Still) focused on desktop → good environment to test completeness live.gnome.org/Wayland/Gaps Wayland Input Methods Wayland 1.0: No input methods (planned for inclusion in Wayland 1.2) Wayland Input Methods One protocol, three interfaces Input methods protocol/input_method.xml interfaces: input_method_context, input_method, input_panel, input_panel_surface requests: commit_string, preedit_string, preedit_styling, keysym … events: surrounding_text, reset, content_type, invoke_action, commit, … Wayland Input Methods One protocol, three interfaces Weston Input methods protocol/input_method.xml examples: interfaces: clients/keyboard.c input_method_context, clients/editor.c input_method, input_panel, clients/weston-simple-im.c input_panel_surface API (generated from XML): requests: input-method-client- commit_string, protocol.h preedit_string, input-method-server- preedit_styling, keysym … protocol.h text-client-protocol.h events: text-server-protocol.h surrounding_text, reset, content_type, invoke_action, commit, … Wayland Input Methods One protocol, three interfaces UI toolkits Weston Input methods protocol/text.xml protocol/input_method.xml interfaces: examples: interfaces: text_model, clients/keyboard.c input_method_context, text_model_factory clients/editor.c input_method, input_panel, clients/weston-simple-im.c input_panel_surface requests: set_surrounding_text, API (generated from XML): requests: activate, deactivate, input-method-client- commit_string, set_content_type, … protocol.h preedit_string, input-method-server- preedit_styling, keysym … events: protocol.h commit_string, text-client-protocol.h events: preedit_string, text-server-protocol.h surrounding_text, reset, preedit_styling, keysm, … content_type, invoke_action, commit, … Wayland Input Methods Architecture Overview Application (Qt) Application (EFL) Wayland & Wayland & Application (GTK+) Wayland text Wayland text Interface Interface (text_model) (text_model) Weston Input Method Wayland & Wayland input method Interfaces (input_method_context, input_panel_surface) wiki.maliit.org/Wayland_Input_Method_System_Proposal Wayland Input Methods Weston Keyboard & EFL Wayland Input Methods Maliit Keybord & EFL Wayland Input Methods IPC with sync calls application compositor input method Wayland Input Methods IPC + sequence numbers application requests: input method requests: activate(n) set_surrounding_text(n) (idle) set_cursor_position(n) commit(n) preedit_string(n) reset(n+1) commit_string(n) reset(n+1) commit_string(n+1) Wayland Input Methods Videos & more details @ blog.jpetersen.org (unmerged) code @ github.com/openismus Wayland Input Methods ? Wayland Input Methods.
Recommended publications
  • Sailfish OS How to Contribute? Who Am I?
    Sailfish OS How to contribute? Who am I? ● Marko “Sage” Saukko – Chief Engineer at Jolla and responsible of Hardware Adaptation team, ODM discussions, factory process, hardware adaptation architecture, ... – Worked for Jolla since March 2012 – Before Jolla worked with MeeGo project 2009- 2012. Part of team responsible of keeping the ARM port of MeeGo functional (Nokia N900 :)) Jolla & Sailfish OS ● Jolla Ltd. is Finnish technology company developing Sailfish OS ● In 2011 MeeGo was discontinued and the passionate team behind part of MeeGo wanted to continue that effort. Sailfish OS ● https://sailfishos.org/ ● Still very young operating system (~5 years) ● Mobile operating system based on Linux ● Lots of familiar open source components – rpm, systemd, dbus, wayland, pulseaudio, bluez, connman, ofono, … – Using wayland instead of X11 compared to many desktop Linux operating systems Some Sailfish OS milestones ● 2012 Announed Sailfish OS UI/SDK ● 2013 Jolla Phone with Sailfish OS 1.0 Beta ● 2014 Sailfish OS 1.0 and Hardware Adaptation Development Kit ● 2015 Sailfish OS 2.0 and Jolla Tablet ● 2016 Sailfish OS with Multi-SIM support ● 2016 Sailfish Community Device Program Where can I find Sailfish OS? ● Products using Sailfish OS – Jolla 1 – Jolla Tablet – Intex Aqua Fish – Jolla C – Turing Phone ● 40+ Community ports Sailfish OS some key things ● UI written in Qt and QML ● Mostly C/C++ in the middleware ● Android support, you can run android apps without any modifications ● Compatible with hardware running Android ● Multitasking, application covers can have functionality when apps are minimized ● Gestures based operations, less buttons to press ● Easier one handed use, e.g., pull menu Gestures ● https://sailfishos.org/wiki/User_Interface_Development ● Tap, Double tap, Edge swipe, pull menu, sub page, long-press, ..
    [Show full text]
  • Curriculum Vitae
    Murray Cumming Name: Murray Cumming Email: [email protected] Address: Baumstrasse 11, Munich 80469, Germany Web: murrayc.com Date of Birth: 11th May 1973 OpenHUB, GitHub Languages: English (native), German (fluent) Nationality: United Kingdom, Germany Experienced C++, Java, and Go developer, usually on Linux, working on systems programming, desktop, mobile, backend, and web. Focused on software quality and end user goals. Always learning and up to date. Successful in technical, management, and customer-facing roles. Active open-source developer. Currently leading a team developing both the user interface client (C++, Qt) and backend services (Go, Java, Scala, Kubernetes, gRPC, REST, PubSub) for a successful consumer device. Skills C++: GTK+, gtkmm, Qt, git, automake, autoconf, CMake. Modern C++ Java: Android, GWT, Eclipse, Android Studio Go: gRPC, Datastore, OpenCensus Databases: PostgreSQL, MySQL Employment 2017 - eGym GmbH, Munich, Germany Team Lead present I lead a team working on a variety of codebases, including the user interface for electronic exercise machines (C++, Qt, CMake, Docker) and their backend services (Go, Java, Scala, Kubernetes, OpenCensus, Stackdriver). I drove a process of discovery, documentation, and refactoring. This created a stable well-understood platform on which we build new features while ensuring reliability for our many active users. I maintain a culture of quality, respect, and purpose, ensuring that developers feel supported by each other to create lasting work that they can be proud of. 2006 - Openismus GmbH, Munich, Germany Founder , Managing Director, and Developer 2017 Management I built a team of highly skilled Linux C++ and Java developers around a culture of communication and responsibility, working with customers such as Nokia, Intel, OLPC, and Canonical.
    [Show full text]
  • Computer Engineering Subject
    DIRECTORATE OF TECHNICAL EDUCATION, CHENNAI-25 DIPLOMA EXAMINATIONS-APRIL-2019 DEPT : COMPUTER ENGINEERING SUBJECT : MOBILE COMPUTING QCODE/SUB CODE : 915/35262 PART -A 1. Define LAN.[ 2 marks] A local-area network (LAN) is a computer network that spans a relatively small area. Most often, LAN is confined to a single room, building or group of buildings, however, one LAN can be connected to other LANs over any distance via telephone lines and radio waves. 2. What is meant by Adhoc? [ 2 marks] An ad hoc network is a network that is composed of individual devices communicating with each other directly. The term implies spontaneous or impromptu construction because these networks often bypass the gatekeeping hardware or central access point such as a router 3. What is GSM network? [ 2 marks] GSM stands for Global System for Mobile Communication. GSM is the most widely accepted standard in telecommunications and it is implemented globally. It is a digital cellular technology used for transmitting mobile voice and data services. 4. Write the limitation of GPRS. [ 2 marks] Although GPRS will provide better data rates than is currently available, there are some limitations. • Speeds of 177.2kbps would require a user to use all eight timeslots without any error protection - which simply won't happen. Initial terminals are likely to use only 1-3 timeslots anyway, limiting the available bandwidth to a GPRS user. • When GPRS packets are sent to a destination they are sent in all different directions - allowing for the potential for one or some of those packets to be corrupted or even lost altogether during the data transmission over the radio link.
    [Show full text]
  • Meego Job Interview Questions and Answers
    MeeGo Job Interview Questions And Answers Interview Questions Answers https://interviewquestionsanswers.org/ About Interview Questions Answers Interview Questions Answers . ORG is an interview preparation guide of thousands of Job Interview Questions And Answers, Job Interviews are always stressful even for job seekers who have gone on countless interviews. The best way to reduce the stress is to be prepared for your job interview. Take the time to review the standard interview questions you will most likely be asked. These interview questions and answers on MeeGo will help you strengthen your technical skills, prepare for the interviews and quickly revise the concepts. If you find any question or answer is incorrect or incomplete then you can submit your question or answer directly with out any registration or login at our website. You just need to visit MeeGo Interview Questions And Answers to add your answer click on the Submit Your Answer links on the website; with each question to post your answer, if you want to ask any question then you will have a link Submit Your Question; that's will add your question in MeeGo category. To ensure quality, each submission is checked by our team, before it becomes live. This MeeGo Interview preparation PDF was generated at Saturday 6th February, 2021 You can follow us on FaceBook for latest Jobs, Updates and other interviews material. www.facebook.com/InterviewQuestionsAnswers.Org Follow us on Twitter for latest Jobs and interview preparation guides. https://twitter.com/InterviewQA If you need any further assistance or have queries regarding this document or its material or any of other inquiry, please do not hesitate to contact us.
    [Show full text]
  • Jolla Developer Story
    Jolla Developer Story Qt Developer Days 2012 Vesa-Matti Hartikainen [email protected] Twitter: @veskuh "We develop Sailfish OS together with alliance, friends and community, license the OS and make our own Jolla devices" - Jolla Jolla UX Components Input Methods Homescreen Settings Applications UX Nemo tracker maliit lipstick mcompositor grilo contextkit qml-plugins MW Mer gstreamer connman Qt Mobility Qt Ofono X11 PulseAudio Core OS HW Adaptations x86 Armv7hl Armv7l ... Sailfish SDK structure Sailfish SDK image QtCreator IDE 1.0 x86 target 1.0 armv7hl target VirtualBox 2.0 armv7hl target Device ... Sailfish SDK ● Sailfish SDK will be used for developing applications to Jolla devices ● Qt Creator IDE ● Complete target Sailfish OS environment ● Linux, Windows, and Mac OS X ● Features – Compile, package, deploy to device or virtual machine – Management capabilities are built in; Upgrades, New Targets, New architectures – Tools in the SDK are can be used to develop all parts of Sailfish ● Technology preview soon available at http://sailfishos.org Sailfish, Jolla & Open Source ● Sailfish is based on Mer – “Mer is an open, mobile-optimised, core distribution aimed at device manufacturers; powered by Qt/QML and HTML5 - openly developed, inclusive, and meritocratically governed.” - merproject.org ● Sailfish utilizes parts of Nemo Mobile – “Nemo Mobile is a Linux distribution for mobile devices. Nemo uses Mer as core and the UX is based on MeeGo Handset UX. The Nemo Mobile project continues the work started in the MeeGo Community Edition to create open community driven OS and apps.” - Nemo wiki ● Both Mer and Nemo are developed in the open – Contributions are more than welcome ● Jolla contributes heavily to both and the related upstream projects.
    [Show full text]
  • Tech and Tools Mobile Application Development Using Qt Mobile Application Development Using Qt Agenda
    TECH AND TOOLS MOBILE APPLICATION DEVELOPMENT USING QT MOBILE APPLICATION DEVELOPMENT USING QT AGENDA 1. Mobile OS for users and developers 2. Technologies overview 3. Introducing Qt 4. Tools 5. General project structure and qmake MOBILE APPLICATION DEVELOPMENT USING QT MOBILE DEVICE FOR USERS …? Market: 1.5 billion devices per year MOBILE APPLICATION DEVELOPMENT USING QT MOBILE DEVICE FOR USERS Communication: phone, messages Multimedia capture and playing Browser Date/time: watch, alarm clocks, reminders, calendar Personal digital assistant Games Toy for geeks The need to constantly take care of charge level and signal strength Market: 1.5 billion devices per year MOBILE APPLICATION DEVELOPMENT USING QT MOBILE OS FOR USERS …? MOBILE APPLICATION DEVELOPMENT USING QT MOBILE OS FOR USERS iOS / Apple www.apple.com/ios Focus on UX, marketing and services Software that controls Nice looking UI and expensive devices the device Android / Google www.android.com Firmware The most widespread mobile OS (> 80%) Toolbox for Huge number of apps and a lot of advertising device management Sailfish OS / Jolla sailfishos.org Joy for geeks Gesture oriented UX, full multitasking User community Respect for the data privacy Sailfish Mobile OS RUS omprussia.ru ● B2B and B2G, MDM features and Russian GOSTs MOBILE APPLICATION DEVELOPMENT USING QT IOS HISTORY 1988 — NeXTSTEP beta 2001 — OS X 10.0 2007, January 9 — iPhone 2G presentation at Macworld Conference & Expo 2007, June — iPhone 2G release with iPhone OS 2007, September — iPod touch announce 2008, July 10 — iOS App Store opening with 500 applications 2010, January 12 — iPad announce 2010, June — iPhone OS rebranding as iOS MOBILE APPLICATION DEVELOPMENT USING QT ANDROID HISTORY 2003, October — Android Inc.
    [Show full text]
  • Srovnání Souˇcasných Vývojových Platforem Pro Mobilní Zarízení
    MASARYKOVA UNIVERZITA F}w¡¢£¤¥¦§¨ AKULTA INFORMATIKY !"#$%&'()+,-./012345<yA| Srovnání souˇcasných vývojových platforem pro mobilní zaˇrízenízaložená na OS Linux DIPLOMOVÁ PRÁCE Martin Kolman Brno, jaro 2013 Prohlášení Prohlašuji, že tato diplomová práce je mým p ˚uvodnímautorským dílem, které jsem vypracoval samostatnˇe.Všechny zdroje, prameny a literaturu, které jsem pˇrivypracování používal nebo z nich ˇcerpal,v práci ˇrádnˇecituji s uvedením úplného odkazu na pˇríslušnýzdroj. Martin Kolman Vedoucí práce: doc. RNDr. Aleš Horák, Ph.D. ii Podˇekování V prvé ˇradˇebych chtˇelpodˇekovatvedoucímu mé diplomové práce doc. RNDr. Aleši Horákovi, Ph.D., za vstˇrícnost,pˇripomínkya všechny poskyt- nuté zdroje. Bez nˇejby tato práce nemohla vzniknout. Chtˇelbych také po- dˇekovatvšem ˇclen˚umkomunity otevˇrenýchmobilních platforem za jejich rady a zpˇetnouvazbu. iii Shrnutí Práce se zabývá srovnáním souˇcasných(pˇrevážnˇelinuxových) mobilních platforem a popisuje základní odlišností mobilních a „stolních“ platforem. Dále jsou formulovány zásady pro tvorbu multiplatformní mobilní apli- kace. Tyto zásady jsou pak demonstrovány v podobˇemultiplatformního navigaˇcníhosystému modRana. V závˇeru práce jsou popsány praktické vý- sledky tohoto projektu a další smˇerymožného pokraˇcovánívývoje v návaz- nosti na výsledky této diplomové práce. iv Klíˇcováslova mobilní platformy, multiplatformní aplikace, Linux, Python, GTK, modRana, pydroid, Android, BlackBerry 10, Sailfish, Maemo, svobodný software v Obsah 1 Úvod ................................... 1 2 Srovnání mobilních linuxových platforem ............. 2 2.1 Kritéria pro srovnávání ...................... 2 2.1.1 Architektura . 2 2.1.2 Otevˇrenost. 3 Zdrojové kódy a možnost modifikace . 3 Transparentnost vývoje platformy . 3 Otevˇrenostplatformy pro aplikace tˇretíchstran . 4 2.1.3 Grafický systém . 5 2.1.4 Multimédia . 5 2.1.5 Balíˇckování . 6 2.1.6 Vývojové prostˇredí . 7 2.1.7 Hardware . 7 2.2 MeeGo ..............................
    [Show full text]
  • Printable Schedule
    FOSDEM 2012 – Saturday 2012-02-04 Main tracks Lightning Virt Embedded Cross-Distro X-Desktop LibreOffice XMPP HW Crypto Room Janson K.1.105 Ferrer Chavanne Lameere H.1301 H.1302 H.1308 H.1309 H.2213 H.2214 10:30 10:30 10:30 10:30 welcome welcome 11:00 11:00 11:00 Welcome! Accessibility in LO Welcome 11:00 Free Software:a OpenStack news Embracing non- Open Security viable model for Coping with wide- technical users Hardware LO Development commercial NanoBSD impact changes in 11:30 11:30 Hacking on 11:30 Directions XMPP 101 / Stump the 11:30 success a distribution How to replace a GStreamer 1.0 OpenStack legacy tool with Experts Compute (Nova) 100k installations CESecore and the Import filters for LO commoin criteria 12:00 12:00 Application 12:00 WebApps: building a certification of 12:00 A new OSI for a scheduling on webchat? DON'T DO new decade open source OpenStack IIO, a new Widget Layout WHAT I DID! software subsystem for I/O 12:30 12:30 devices 12:30 CMake WebApps: Interwidget 12:30 libguestfs Re-thinking system Easy Hacks communication with and distro XMPP development 13:00 FOSDEM Staff Q&A 13:00 Cloud high 13:00 WebApps: webinos, 13:00 availability with tying web technology Overview and a pacemaker-cloud demo of Dogtag Linux (SoC) power Multiarch – why it's to everything greenlight for girls LibreOffice QA Certificate System 13:30 13:30 management Univention important 13:30 13:30 OpenNebula Corporate Server Hacking in the real project WebApps: Plastique world Why Java for Linux 14:00 Multipath TCP 14:00 14:00 applications? Improving
    [Show full text]
  • Open Mobile Text Input
    MaliitMaliit –– openopen mobilemobile texttext inputinput Jon Nordby Openismus GmbH February 3rd, 2012 FOSDEM, Brussels BriefBrief historyhistory MeeGo Harmattan Nokia N9 ships Development starts Feb. 2010 Feb. 2011 June Oct. Feb. 2012 Code made available on gitorious Maliit 0.80 Dedicated infrastructure Jon Nordby, FOSDEM 2012 2/9 WhatWhat isis mobilemobile texttext inputinput ● Input method ● Text manipulation ● Mobile devices Jon Nordby, FOSDEM 2012 3/9 TheThe importanceimportance ofof mobilemobile texttext inputinput "… The on-screen keyboard is particularly good, offering both portrait and landscape variants and supporting a sharp haptic buzz that does a great job of feeling localized to your fingertip. Audio feedback is another option. Word correction and auto-complete are each supported, and while the N9 doesn’t have as large a screen as, say, some of the more recent Android devices, we still had no issues with accurate text-entry on it. …” Nokia N9 review, Slashgear Jon Nordby, FOSDEM 2012 4/9 WhatWhat MaliitMaliit providesprovides ● Software: input method framework and plugins ● Goal: complete reference solution ● Not an application toolkit! ● A knowledge hub or collaboration point Jon Nordby, FOSDEM 2012 5/9 Using,Using, workingworking withwith andand contributingcontributing toto MaliitMaliit ● Packages: build.opensuse.org/M17N:Maliit & launchpad.net/maliit ● Automated testing: buildbot.maliit.org ● Reviews: gitorious.org/maliit ● Wiki: wiki.maliit.org Jon Nordby, FOSDEM 2012 6/9 CurrentCurrent developmentsdevelopments ● Qt
    [Show full text]
  • Meego Interview Questions and Answers Guide
    MeeGo Interview Questions And Answers Guide. Global Guideline. https://www.globalguideline.com/ MeeGo Interview Questions And Answers Global Guideline . COM MeeGo Job Interview Preparation Guide. Question # 1 What is MeeGo? Answer:- MeeGo is a Linux kernel-based free mobile operating system project resulting from the fusion of Intel's Moblin and Nokia's Maemo operating systems. Primarily targeted at mobile devices and information appliances in the consumer electronics market, MeeGo was designed to act as an operating system for hardware platforms such as netbooks, entry-level desktops, nettops, tablet computers, mobile computing and communications devices, in-vehicle infotainment devices, SmartTV / ConnectedTV, IPTV-boxes, smart phones, and other embedded systems. Read More Answers. Question # 2 Tell me which is best os ios or windowsphone or android or meego? Answer:- Meego doesn't stand a chance because of it's limited availability, and the fact that it's just overly simplistic. If you want simplicity, go for Windows Phone or iOS. It doesn't even deserve to be on the list. Windows Phone is my second choice out of all the phone operating systems. Its's very simple and elegant (even more than iOS), and is extremely stable. You will also be able to link it with Windows 8 when it comes out, and there's a possibility you could eventually run the full Windows 8 on it if it's fast enough. The only downside is that the app store is a bit small, and only has the basics currently. Read More Answers. Question # 3 What is system requirements for MeeG? Answer:- MeeGo provides support for both ARM and Intel x86 processors with SSSE3 enabled and uses btrfs as the default file system.
    [Show full text]
  • Porting Nemo Mobile and Mer Project to New Hardware
    Porting Nemo Mobile and Mer Project to new Hardware Marko Saukko [email protected] Twitter: @markosaukko Twitter hashtags: #nemomobile and #merproject Outline ● Generic notes ● Mer Platform SDK ● Adaptation points – Kernel, Graphics, Xorg, Sensors, Audio, usb, etc. ● How to build image for your adaptation – Packaging, patterns, kickstarts, image building.. General notes .. ● After this presentation listener should know what are the adaptation points needed and where to start the new adaptation for Mer and Nemo ● As Nemo is build on top of Mer, Mer dependencies/requirements also apply to Nemo ● Mer and Nemo contain as few hw adaptation bits in the main repos as possible – Exception, e.g., mesa llvmpipe Nemo Mobile – Report problems to bugzilla ● https://bugs.merproject.org/ Mer Core ● https://bugs.nemomobile.org HW Adaptation .. continue ● When building hardware adaptation one should not need to (re)compile any of the components that are located in Mer or Nemo repositories ● Usually normal Nemo image contains around 500 packages from which 5-20 are from the hardware adaptation ● This presentation does not go through all of the details of certain components, but aims to give the general overview of points where adaptation is needed Mer Platform SDK ● NOTE: Platform SDK, not Application SDK ● All the tools that you need – Scractchbox 2, mic, osc, mer-kickstarter, ... ● Works on any typical Linux distribution, with kernel >= 2.6.37 ● Very easy to install see tl;dr; guide in wiki ● https://wiki.merproject.org/wiki/Platform_SDK Mer Hardware Requirements ● There are no real minimum requirements ● Can work on pretty much anything, e.g., – N900, N950, N9 – Nexus 7 – Pandaboard – Snowball – Rasperry Pi – ExoPC, Lenovo Ideapad S10-3t, ..
    [Show full text]