Tag / Weston

  • November 3, 2016 - Bryce Harrington

    Compose Key Support in Weston

    I recently added support to Weston for compose sequences via the configured compose key. This is now available in all of the Weston clients. What are “compose sequences”? Let’s say I need to write to someone named Zoë, but I don’t have an “ë” key on my keyboard. I can create the letter using separate key strokes:

    The first key, RAlt (the Alt key on the right side of the keyboard), is the compose key (also called the Multi-key). It signals that a compose sequence is beginning. The next key is double-quote, constructed by holding one of the Shift keys while pressing the single-quote key. Third we type the letter e. This completes the sequence. Or, more correctly, the system finds a match for this sequence in a table of available sequences, and thus considers it finished. The entry in the table indicates that the ‘ë’ symbol should be […]

    Read More
  • October 27, 2016 - Bryce Harrington

    The Basics of Input Methods in Weston

    Wayland provides an optional protocol, zwp_input_method, for defining alternate ways of sending keystrokes and mouse activity to clients. This could be things such as an onscreen keyboard or a popup for building Korean characters. The design of the protocol allows for different kinds of input methods to be made available via modular plugins, allowing them to be coded as discrete client applications, separate from the compositor’s core. The Wayland project maintains a reference compositor named Weston that provides implementations of the various protocols for demonstrative purposes, including two implementations of the zwp_input_method protocol. One input method, weston-keyboard, manages an on-screen keyboard that pops up at the bottom of the screen, similar to on-screen keyboards typically seen on touch-based mobile devices. The other input method, weston-simple-im, enables a compose key functionality. The user can configure which input method to use via their weston.ini file. No more than one input method can […]

    Read More
  • September 20, 2016 - Bryce Harrington

    What’s New in Wayland and Weston 1.12?

    The 1.12 release of the Wayland core protocol and its reference compositor Weston will be later today; this post will give an overview of the major changes since the last release. New Features and Improvements to Wayland The Wayland core protocol documentation has received numerous refinements to improve its clarity and consistency. Along with this, many blank areas of the protocol documentation have been fleshed out. A new wl_display_add_protocol logger API provides a new, interactive way to debug requests; along with this are new APIs for examining clients and their resources. This is analogous to using WAYLAND_DEBUG=1, but more powerful since it allows run time review of log data such as through a UI view. There have been improvements to how the protocol XML scanner handles version identification in protocol headers. This enables better detection and fallback handling when compositors and clients support differt versions of their protocols. New Features […]

    Read More
  • September 6, 2016 - Reynaldo Verdejo

    Wayland Uninstalled, the Easy Way

    I recently had to start looking at some GStreamer & Wayland integration issues and, as everyone would, commenced by trying to setup a Wayland development environment. Before getting my feet wet though, I decided to have a chat about this with Derek Foreman: our resident Wayland expert. This isn’t surprising because on our team, pretty much every task starts by having a conversation (virtual or not) with one of the field specialists in the group. The idea is to save time, as you might have guessed. This time around I was looking for a fairly trivial piece of info: Me – “Hey Derek, I have Wayland installed on my distro for some reason – I don’t really want to take a look at now – and I would like to setup an upstream (development) Wayland environment without messing it up. Do you have some script like GStreamer’s gst-uninstalled so I can perform […]

    Read More
  • July 6, 2016 - Bryce Harrington

    Wayland’s Upcoming Idle Behavior Inhibition

    The Inhibited Wayland Desktop – Part 2 This article is part two of a two part series on screen inhibition in Wayland. Part 1 can be read here. In the first part of this blog series, I drilled into how screensaving, screen power management, and locking are designed to work in the Wayland protocol and how Weston implements the functionality. Now it’s time to take a look at the newly-proposed idle behavior inhibition. Idle inhibition enables client applications to disable the idle behavior from being triggered while the application is running. For compositors that support this protocol extension, clients can make an API call to create an ‘inhibitor object’ associated with one of their surfaces. The inhibition request lasts for this object’s lifetime, so if the client exits, crashes, deletes the inhibit object or the surface, or otherwise becomes invalid, the screensaver will be restored to its normal state. The […]

    Read More
  • June 23, 2016 - Bryce Harrington

    Introducing Wayland Screen Inhibition

    The Inhibited Wayland Desktop – Part 1 This article is part one of a two part series on screen inhibition in Wayland. Picture this: you’re giving a presentation where you’re digging deep into some fascinating detail, when suddenly, your screensaver pops on.  Quickly, you rush back to your laptop to tap the keyboard or wave the mouse to hide the pictures of your cat and bring your presentation back. Now, where were you?  You’ve lost your train of thought, to the audience’s bemusement and to the detriment of your presentation. Or, imagine this: you’re watching a movie on your cell phone or tablet while on battery power, and you’re constantly frustrated when the screen dims or goes black every 5 minutes. I’m sure many of you have had problems just like these, and the generally accepted solution for these issues is to temporarily inhibit power saving mode as well as […]

    Read More
  • June 8, 2016 - Bryce Harrington

    What’s New in Wayland and Weston 1.11

    June brings us a fresh new release of the Wayland display protocol and it’s reference implementation named Weston. This post will take a look at some of the biggest new features and improvements in the 1.11 release. Wayland It’s been five and a half years since Wayland was declared stable with its 1.0 release. Specifically, this meant that the core of Wayland transitioned to a policy of “no backwards incompatible protocol changes”, and it was ready for developers to use it in production systems. The years since have seen all three major Linux desktop environments create successful implementations of Wayland in addition to a few mobile platforms and innumerable embedded systems. With the protocol being stable, most of Wayland’s core changes are bugfixes and copy edits. But lately, it seems the needs cropping up from production deployments have led to more significant changes being proposed and introduced. The 1.11 release […]

    Read More
  • February 12, 2016 - Bryce Harrington

    What’s New in Wayland 1.10

    Wayland 1.10 introduces a larger range of new functionality than what’s been typical in recent Wayland releases; this is partly due to the longer development period because of the holidays and other end of the year activities. More importantly, Wayland support is being actively refined for many desktop environments, applications, and devices and we’ve seen better engagement from the wider community as more people have shared their ideas and development efforts. We’re beginning to see the fruits of these collaborations. The release date for Wayland 1.10 is set for February 16, 2016, and I’d like to use this article to describe some of the new features and changes. Wayland Changes in 1.10 First, let’s take a look at some of the new functionality in Wayland 1.10: The Wayland API can now use Drag and drop actions to facilitate negotiation of content type when dragging between a source and destination. Additionally, […]

    Read More
  • February 9, 2016 - Derek Foreman

    WOW, Wayland Over Wire!

    A common complaint about Wayland is that it isn’t network transparent. X allows you to run an application on one computer and display its output on a different computer as long as the application doesn’t depend on certain “modern” features (such as the shared memory extension). Applications are forwarded individually and are indistinguishable from apps on the local desktop (network performance considerations aside). This is different than remote desktop protocols like VNC or RDP which provide control of an entire operating system. The Hurdles to Wayland Network Transparency Obviously, if we intend to make Wayland a replacement for X, we need to duplicate this functionality. However, some Wayland design decisions make it difficult to implement this kind of network transparency: File descriptor passing is used extensively in the protocol. For example, keymaps are passed from the compositor to the client as file descriptors; the client is supposed to mmap() the file […]

    Read More
  • February 3, 2016 - Bryce Harrington

    An Introduction to the Wayland Build Tools

    Most people’s first encounter with Wayland will be when their regular Linux distribution has migrated to it. Indeed, Wayland is really just a protocol, so chances are you’ll soon be using it through your normal desktop environment (Enlightenment/Gnome/etc.) without any particular action on your part, aside from a normal upgrade. But perhaps you’re one of the few, proud, hardcore Wayland hackers that already have the various repos checked out, and know all the intricacies of configuring Mesa and installing Xwayland and so on. So, if you don’t care about any of the details, or if you care a whole lot about ALL THE DETAILS, well, you’re probably already set. Kick Wayland’s Tires with the Wayland Build Tools If, on the other hand, you’re somewhere in between – you’re interested in playing with raw Wayland and Weston, but want to get the latest bits up and running quickly and don’t want to risk system […]

    Read More