Inconsistent behaviour of Num Lock

Bug #1588237 reported by Jonas on 2016-06-02
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Canonical System Image
Stephen M. Webb
Fix Released
Andreas Pokorny
mir (Ubuntu)
Andreas Pokorny

Bug Description

How to reproduce:
M10 with external Keyboard and Screen, after restart on OTA11.
To use numbers in the unlock screen, the num key has to be active.
After unlocking, use a search field in the homescope or any other scope.

Expected behaviour:
The numblock should work, as the num key is still active.

Actual behaviour:
The numblock only works, when you deactivate the num key.

This is the same for the browserbar or the telegram chat.
After some time, the behaviour changes, so the numblock behaviour seems to be inconsistent.

Related branches

Changed in canonical-devices-system-image:
assignee: nobody → Stephen M. Webb (bregma)
status: New → Confirmed

The described behavior matches the way keyboard mapping is handled within mir right now. Unity8 configures keymaps for each client surface. Each client surface then has its own independent key state. Key state here means the set of active modifier keys, including toggles like Caps Lock, Num Lock. So it depends on which client sees

Mir 0.24 will change this behavior. It will default to have a per keyboard device key state tracked and updated inside a mir server like Unity8. Thus Num Lock will stay active after you switch between surfaces. BUT: For that to work Unity8 need to configure its own server side per device keymaps (they only default to us). Additionally we still allow client side per surface keymaps. As of now the solution inside of lp:mir and the presumptive 0.24 would not be capable of transfering the current toggle state of Caps Lock or Num Lock when switching to an application with a client side keymap. We already identified that problem, and I plan to address that soon. But it might not make it into 0.24

As a short term fix I suggest to switch unity8 to only use server side keymaps with 0.24, until this last problem is also addressed.

Changed in mir (Ubuntu):
status: New → Confirmed
assignee: nobody → Andreas Pokorny (andreas-pokorny)
Changed in mir (Ubuntu):
status: Confirmed → In Progress
Changed in mir:
assignee: nobody → Andreas Pokorny (andreas-pokorny)
milestone: none → 0.25.0
status: New → In Progress
Changed in mir (Ubuntu):
status: In Progress → Triaged
summary: - inconsistent behaviour of the numblock
+ Inconsistent behaviour of Num Lock
Changed in mir:
importance: Undecided → Medium
Changed in mir (Ubuntu):
importance: Undecided → Medium
Changed in mir:
milestone: 0.25.0 → 0.26.0
Changed in mir:
milestone: 0.26.0 → 1.0.0
Mir CI Bot (mir-ci-bot) wrote :

Fix committed into lp:mir at revision None, scheduled for release in mir, milestone 1.0.0

Changed in mir:
status: In Progress → Fix Committed
Launchpad Janitor (janitor) wrote :
Download full text (8.3 KiB)

This bug was fixed in the package mir - 0.27.0+17.10.20170630-0ubuntu1

mir (0.27.0+17.10.20170630-0ubuntu1) artful; urgency=medium

  [ Daniel van Vugt ]
  * New upstream release 0.27.0 (
    - ABI summary:
      . mirclient ABI unchanged at 9
      . mirserver ABI bumped to 44
      . mircommon ABI unchanged at 7
      . mirplatform ABI bumped to 61
      . mirprotobuf ABI unchanged at 3
      . mirplatformgraphics ABI bumped to 13
      . mirclientplatform ABI unchanged at 5
      . mirinputplatform ABI bumped to 7
      . mircore ABI unchanged at 1
    - Enhancements:
      . Mostly groundwork required to support major enhancements coming in
        future Mir versions.
      . Removed android-input and eliminated the entire "3rd_party/" subtree.
        Now the Mir source tree contains original code only.
      . Added mir_prompt_session_new_fds_for_prompt_providers_sync API.
      . mirout: Added load and save options for keeping display configs
        on disk.
      . mirout: Added "--" support for applying configuration changes under
      . Fixed failure of DRM hardware cursor {hide(); show(image);}
      . Added server option: "--cursor software" (MIR_SERVER_CURSOR=software)
      . Added letterboxing/black bars support to the GL renderer in preparation
        for generic output cloning.
      . Added client API for getting the logical size of an output.
      . Migrated MirCookie to use SHA-256.
      . Ensure RealKMSOutputConfiguration stays in sync with actual hardware
      . Added support for drag-and-drop.
      . Lots of other client API enhancements.
      . Minor clean-ups, optimizations and dead code removal.
      . Added support for building on Ubuntu 17.10 artful.
      . Update example code to use undeprecated API.
      . mesa-kms: Support hardware cursors in hybrid setups.
      . Rework and publish the graphics platform APIs
    - Bugs fixed:
      . [enhancement] Make able to get version information from client /
        server APIs (LP: #1195540)
      . Touch screen coordinates don't rotate with the screen (LP: #1349660)
      . Subpixel order not included in Mir display information (LP: #1393578)
      . [enhancement] Missing client API for relative surface movement (e.g.
        dragging client-decorated windows) (LP: #1420334) . Mir does not reset
        key states when paused or resumed (modifiers get stuck after VT
        switching) (LP: #1536279)
      . NBS never uses mc::MultiMonitorMode::single_monitor_fast, even when
        only a single monitor is plugged in (LP: #1561418)
      . Inconsistent behaviour of Num Lock (LP: #1588237)
      . A scaled (not panned or clipped) mirror/clone mode is desired
        (LP: #1639226)
      . Rotating an output left or right without restarting the
        compositor distorts the image (LP: #1643488)
      . support display scaling slider in unity8 (LP: #1645372)
      . [ FAILED ] NestedInputWithMouse.mouse_pointer_coordinates_in_nested_
        server_are_accumulated (LP: #1646375)
      . [ FAILED ] NestedInputWithMouse.mouse_pointer_position_is_in_sync_with_


Changed in mir (Ubuntu):
status: Triaged → Fix Released
Changed in mir:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers