# hangul-overview-latin GNOME Shell extension. When the Activities Overview opens, it flips ibus-hangul's `InputMode` property to Latin so overview search accepts Latin text immediately. The input source stays `hangul` — only the mode changes, so nothing needs to be switched back afterwards. Private extension. Not published to extensions.gnome.org. ## Layout hangul-overview-latin@timothykim.net/ source (metadata.json, extension.js) *.shell-extension.zip packed build output plan.md design notes ## Installed as A symlink from the extensions directory into this repo: ~/.local/share/gnome-shell/extensions/hangul-overview-latin@timothykim.net -> /hangul-overview-latin@timothykim.net Editing the source therefore edits the installed extension. The catch: moving, renaming, or deleting this repo silently breaks the extension. To make the install independent of the repo, replace the symlink with a real copy: rm ~/.local/share/gnome-shell/extensions/hangul-overview-latin@timothykim.net gnome-extensions install --force hangul-overview-latin@timothykim.net.shell-extension.zip ## Install on another machine gnome-extensions install hangul-overview-latin@timothykim.net.shell-extension.zip gnome-extensions enable hangul-overview-latin@timothykim.net Then log out and back in. Wayland cannot restart GNOME Shell in place, so a new or changed extension only takes effect on the next login. ## Rebuild the zip after editing gnome-extensions pack hangul-overview-latin@timothykim.net/ --force ## Maintenance `metadata.json` declares `"shell-version": ["50"]`. On the next GNOME major upgrade the extension is flagged out of date and stops loading. Fix by adding the new version to that array, then logging out and back in: "shell-version": ["50", "51"] The APIs it uses (`Main.overview`, `getInputSourceManager()`, `getIBusManager().activateProperty()`) are internal Shell APIs and can change between releases, so re-test after a major upgrade rather than assuming the version bump alone is enough. ## Checking whether it is running gnome-extensions info hangul-overview-latin@timothykim.net This reports `State: INACTIVE` whenever the screen is locked, which is normal: the extension does not declare the `unlock-dialog` session mode, so GNOME suspends it on the lock screen and resumes it on unlock. Check it from an unlocked session, where it should read `ACTIVE`.