Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • S Solaar
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 10
    • Issues 10
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 2
    • Merge requests 2
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • pwr-Solaar
  • Solaar
  • Issues
  • #1020
Closed
Open
Issue created Nov 29, 2020 by Administrator@rootContributor

Improve Solaar rules in Wayland

Created by: intelfx

Information

  • Solaar version: 1.0.4.r54.g0427e56
  • Distribution: Arch GNU/Linux
  • Kernel version: 5.8.x, 5.9.x
  • Output of solaar show:
  1: Craft Advanced Keyboard
     Device path  : /dev/hidraw1
     WPID         : 4066
     Codename     : Craft
     Kind         : keyboard
     Protocol     : HID++ 4.5
     Polling rate : 8 ms (125Hz)
     Serial number: 02AFBAD2
     Model ID:      B35040660000
     Unit ID:       78CEC42D
        Bootloader: BOT 41.01.B0015
          Firmware: MPK 07.01.B0015
             Other:
             Other:
     The power switch is located on the edge of top right corner.
     Supports 39 HID++ 2.0 features:
         0: ROOT                   {0000}
         1: FEATURE SET            {0001}
         2: DEVICE FW VERSION      {0003}
            Firmware: Bootloader BOT 41.01.B0015 0000B6A2C54601
            Firmware: Firmware MPK 07.01.B0015 4066B6A2C54601
            Firmware: Other
            Firmware: Other
            Unit ID: 78CEC42D  Model ID: B35040660000  Transport IDs: {'btleid': 'B350', 'wpid': '4066'}
         3: DEVICE NAME            {0005}
            Name: Craft Advanced Keyboard
            Kind: keyboard
         4: WIRELESS DEVICE STATUS {1D4B}
         5: RESET                  {0020}
         6: DEVICE FRIENDLY NAME   {0007}
         7: BATTERY STATUS         {1000}
            Battery: 50%, discharging, next level 20%.
         8: CHANGE HOST            {1814}
            Change Host: 1:able
         9: HOSTS INFO             {1815}
            Host 0 (paired):
            Host 1 (paired): ARCADIA
            Host 2 (paired): whitepad
        10: BACKLIGHT2             {1982}
            Backlight: True
        11: REPROG CONTROLS V4     {1B04}
            Key/Button Diversion: {'209': 0, '210': 0, '211': 0, '199': 0, '200': 0, '224': 0, '225': 0, '110': 0, '226': 0, '227': 0, '228': 0, '229': 0, '230': 0, '231': 0, '232': 0, '233': 0, '10': 0, '191': 0, '234': 0, '111': 0, '236': 0, '235': 0}
        12: PERSISTENT REMAPPABLE ACTION {1C00}
        13: K375S FN INVERSION     {40A3}
            Swap Fx function: False
        14: ENCRYPTION             {4100}
        15: LOCK KEY STATE         {4220}
        16: KEYBOARD DISABLE KEYS  {4521}
            Disable keys: {'1': False, '2': False, '4': False, '8': False, '16': False}
        17: MULTIPLATFORM          {4531}
            Set OS: Windows
        18: CROWN                  {4600}
            Divert crown events: False
        19: DFUCONTROL SIGNED      {00C2}
        20: unknown:1803           {1803}   internal, hidden
        21: CONFIG DEVICE PROPS    {1806}   internal, hidden
        22: unknown:1813           {1813}   internal, hidden
        23: OOBSTATE               {1805}   internal, hidden
        24: unknown:1830           {1830}   internal, hidden
        25: unknown:1890           {1890}   internal, hidden
        26: unknown:1891           {1891}   internal, hidden
        27: unknown:1801           {1801}   internal, hidden
        28: unknown:18A1           {18A1}   internal, hidden
        29: unknown:9280           {9280}   internal, hidden
        30: unknown:1A20           {1A20}   internal, hidden
        31: unknown:1DF3           {1DF3}   internal, hidden
        32: unknown:1E00           {1E00}   hidden
        33: unknown:1EB0           {1EB0}   internal, hidden
        34: unknown:1861           {1861}   internal, hidden
        35: unknown:18B0           {18B0}   internal, hidden
        36: unknown:92C0           {92C0}   internal, hidden
        37: unknown:9203           {9203}   internal, hidden
        38: unknown:3615           {3615}   internal, hidden
     Has 24 reprogrammable keys:
         0: Host Switch Channel 1     , default: HostSwitch Channel 1        => HostSwitch Channel 1
             nonstandard, divertable, persistently divertable, pos:0, group:0, group mask:empty
             reporting: default
         1: Host Switch Channel 2     , default: HostSwitch Channel 2        => HostSwitch Channel 2
             nonstandard, divertable, persistently divertable, pos:0, group:0, group mask:empty
             reporting: default
         2: Host Switch Channel 3     , default: HostSwitch Channel 3        => HostSwitch Channel 3
             nonstandard, divertable, persistently divertable, pos:0, group:0, group mask:empty
             reporting: default
         3: Brightness Down           , default: Brightness Down             => Brightness Down
             is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:1, group:0, group mask:empty
             reporting: default
         4: Brightness Up             , default: Brightness Up               => Brightness Up
             is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:2, group:0, group mask:empty
             reporting: default
         5: Mission Control/Task View , default: Mission Control/Task View   => Mission Control/Task View
             is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:3, group:0, group mask:empty
             reporting: default
         6: Dashboard Launchpad/Action Center, default: Dashboard Launchpad/Action Center => Dashboard Launchpad/Action Center
             is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:4, group:0, group mask:empty
             reporting: default
         7: Show Desktop              , default: Show Desktop                => Show Desktop
             is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:5, group:0, group mask:empty
             reporting: default
         8: Backlight Down            , default: Backlight Down              => Backlight Down
             is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:6, group:0, group mask:empty
             reporting: default
         9: Backlight Up              , default: Backlight Up                => Backlight Up
             is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:7, group:0, group mask:empty
             reporting: default
        10: Previous Fn               , default: Previous                    => Previous
             is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:8, group:0, group mask:empty
             reporting: default
        11: Play/Pause Fn             , default: Play/Pause                  => Play/Pause
             is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:9, group:0, group mask:empty
             reporting: default
        12: Next Fn                   , default: Next                        => Next
             is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:10, group:0, group mask:empty
             reporting: default
        13: Mute Fn                   , default: Mute                        => Mute
             is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:11, group:0, group mask:empty
             reporting: default
        14: Volume Down Fn            , default: Volume Down                 => Volume Down
             is FN, FN sensitive, reprogrammable, divertable, persistently divertable, pos:12, group:0, group mask:empty
             reporting: default
        15: Volume Up Fn              , default: Volume Up                   => Volume Up
             nonstandard, reprogrammable, divertable, persistently divertable, pos:0, group:0, group mask:empty
             reporting: default
        16: Calculator                , default: Calculator                  => Calculator
             nonstandard, reprogrammable, divertable, persistently divertable, pos:0, group:0, group mask:empty
             reporting: default
        17: Screen Capture/Print Screen, default: Screen Capture              => Screen Capture
             nonstandard, reprogrammable, divertable, persistently divertable, pos:0, group:0, group mask:empty
             reporting: default
        18: App Contextual Menu/Right Click, default: Right Click/App Contextual Menu => Right Click/App Contextual Menu
             nonstandard, reprogrammable, divertable, persistently divertable, pos:0, group:0, group mask:empty
             reporting: default
        19: Lock PC                   , default: WindowsLock                 => WindowsLock
             nonstandard, reprogrammable, divertable, persistently divertable, pos:0, group:0, group mask:empty
             reporting: default
        20: Left Arrow                , default: Keyboard Left Arrow         => Keyboard Left Arrow
             nonstandard, divertable, persistently divertable, pos:0, group:0, group mask:empty
             reporting: default
        21: Right Arrow               , default: Keyboard Right Arrow        => Keyboard Right Arrow
             nonstandard, divertable, persistently divertable, pos:0, group:0, group mask:empty
             reporting: default
        22: F Lock                    , default: Do Nothing One              => Do Nothing One
             is FN, pos:0, group:0, group mask:empty
             reporting: default
        23: unknown:0034              , default: Do Nothing One              => Do Nothing One
             nonstandard, pos:0, group:0, group mask:empty
             reporting: default
     Battery: 50%, discharging, next level 20%.
**Is your feature request related to a problem? Please describe.**

The newly introduced rule-based crown handling (#987 (closed), #988) does not appear to work in Wayland environments. As I understand, this is not a bug but a deliberately missing feature.

Describe the solution you'd like

It would be nice to have this working in Wayland environments.

Describe alternatives you've considered

I don't know, use X11 maybe.

Additional context

As I understand, input injection can happen via non-X11-dependent mechanisms, like pynput's uinput backend. What else does solaar need from the window system?

Assignee
Assign to
Time tracking