Skip to content

OS Integration Server - Better handling of operating system specific issues #128

@sancarn

Description

@sancarn

At the moment in LM we have seperate systems for handling OS specific issues:

  • A system that splits focus management / window visibility
  • A system that splits default window settings
  • A system that splits key execution
  • A system that splits key retrieval (though that ofc is in its own package)

It is forseeable that in the future we will have more of these systems which will create mroe operating system specific implementations. It would be useful to bundle all operating specific behaviour into its own package which implements some interface.

const MacLibrary: IOperatingSystemLibrary = {
  appShow(...){
    //specific implementation for showing the application
  },
  appHide(...){
    //specific implementation for hiding the application
  },
  keySend(...){
    //specific implementation for sending keys
  },
  getDefaultKeyBinding(){
    //gets the default key bindings of things like copy/paste/cut/undo/redo etc.
  }
  //...
}

Benefits

  • Supporting new operating systems becomes easier (i.e. just have to implement this interface)
  • Main package code becomes easier to use

Concerns

  • Standardisation leads to a little more effort in implementing OS specific behaviour
  • multiple different packages (e.g. window-manager-applet, core) will rely on OS Specific bundle packages, so you get slightly harder coupling.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions