-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Labels
enhancementNew feature or requestNew feature or request
Description
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
Labels
enhancementNew feature or requestNew feature or request