def on_event(self, event: PreferencesUpdateEvent, extension: Extension): """Update extension preferences when the user saves new ones from the UI. Args: event (PreferencesUpdateEvent): The PreferencesUpdateEvent triggered when the user clicks SAVE in the Extension preference's page (docs.ulauncher.io/en/latest/extensions/events.html?highlight=PreferencesUpdateEvent#preferencesupdateevent). extension (Extension): The extension. """ if event.id in NUMERIC_PREFERENCES: if float(event.new_value).is_integer(): # Don't do the typical try/catch cause 4.2 (not "4.2") would be truncated to 4 and silently change the value to 4, instead of throwing an error. extension.preferences[event.id] = int(event.new_value) logger.info( f"{event.id} changed from {event.old_value} to {event.new_value}." ) else: extension.preferences[event.id] = int(event.old_value) logger.info( f"{event.id} failed to change. Reverting to previous value of {event.old_value}. Given: {event.new_value}. Try an integer." ) elif event.id == "reset_to_default" and event.new_value == "Reset": for id_, val in DEFAULT_PREFERENCES.items(): old_val = extension.preferences[id_] extension.preferences[id_] = val logger.info( f"{id_} was reset from {old_val} to its default value of {val}." ) else: extension.preferences[event.id] = event.new_value logger.info( f"{event.id} changed from {event.old_value} to {event.new_value}." )
def on_event(self, event: PreferencesEvent, extension: Extension): """Set this session's preferences to those of the last session, except for the reset toggle, which is reset to the default. Args: event (PreferencesEvent): The PreferencesEvent triggered once when the application starts (docs.ulauncher.io/en/latest/extensions/events.html?highlight=PreferencesEvent#preferencesevent). extension (Extension): The Extension. """ extension.preferences.update(event.preferences) extension.preferences["reset_to_default"] = "-"
def get_extensions(self): extensions = [] for dir in os.listdir(EXT_DIR): manifest_dir = EXT_DIR + dir + "/manifest.json" with open(manifest_dir) as manifest: data = json.load(manifest) for pref in data["preferences"]: if pref["type"] == "keyword" and pref["id"] != "exlist": extensions.append( Extension(pref["name"], data["description"], pref["default_value"] + " ", EXT_DIR + dir + "/" + data["icon"])) return extensions
def on_event(self, event: KeywordQueryEvent, extension: Extension) -> RenderResultListAction: """Handle the user calling the extension via ulauncher. Args: event (KeywordQueryEvent): The KeywordQueryEvent generated by the user (docs.ulauncher.io/en/latest/extensions/events.html?highlight=KeywordQueryEvent). extension (Extension): The Extension. Returns: RenderResultListAction: Results ready to be displayed by ulauncher. """ word = event.get_argument() logger.info(f"word={word}") if not RAE.need_online_check(word): logger.info(f"{word=} doesn't need online check.") items = extension.handle_offline(word) else: logger.info(f"{word=} needs online check.") items = extension.handle_online(word) return RenderResultListAction(items)
packages[pkg_num].append(description) packages[pkg_num].append(repo) pkg_num += 1 i += 2 del packages[len(packages) - 1] items = [] for q in packages: if always_use_helper == true or q[2] == "aur": items.append( ExtensionResultItem( icon='icon.png', name=q[0] + " (" + q[2] + ")", description=q[1], on_enter=CopyToClipboardAction("yay -S " + q[0]))) else: items.append( ExtensionResultItem( icon='icon.png', name=q[0] + " (" + q[2] + ")", description=q[1], on_enter=CopyToClipboardAction("sudo pacman -S " + q[0]))) return RenderResultListAction(items) if __name__ == '__main__': Extension().run()
def on_event(self, event: KeywordQueryEvent, extension: Extension): """ Handles the event """ query = event.get_argument() or "" return extension.get_projects(query)
def extension(self): return Extension()
def extension(self, client): return Extension()