participant User
participant Ulauncher
participant Extension

User->Ulauncher: types in query
note over Ulauncher: extracts keyword\nand checks if any extension\ncan handle it
Ulauncher->Extension: sends KeywordQueryEvent
note over Extension: on_event method of \nKeywordQueryEventListener\nis triggered
note over Extension: handles event by preparing\na list of result items
Extension->Ulauncher: returns RenderResultListAction in on_event
note over Ulauncher: runs the action
Ulauncher->User: render a list of items\nsent by the extension
User->Ulauncher: selects an item
note over Ulauncher: item may have\non_enter or \non_alt_enter action
note over Ulauncher: runs the action
opt it's ExtensionCustomAction
Ulauncher->Extension: triggers ItemEnterEvent
note over Extension: handles the event
end