Enhances window switching for multi-monitor setups: shows only windows from the current monitor in Alt+Tab, allows switching to windows on other monitors with a modifier key, prevents focus from jumping between monitors when switching workspaces and more.
Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.
1. Please don't store any instance of objects in a property in the default class you are exporting (line 7 `prefs.js`) that won't allow the garbage collector to do its job after window close: [EGO Review Guidelines: Destroy](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#destroy-all-objects) We recommend to attach that to the `window` instead: [GNOME Shell Extensions Guide: Preferences](https://gjs.guide/extensions/development/preferences.html#prefs-js) 2. Please use white space between functions. If you need any help with your extension you can ask us on: - [GNOME Extensions Matrix Channel](https://matrix.to/#/#extensions:gnome.org) - IRC Bridge: irc://irc.gimpnet.org/shell-extensions
1. It seems the TypeScript and LSP documentation might be outdated—for example: [https://gjs.guide/extensions/development/typescript.html#prefs-ts](https://gjs.guide/extensions/development/typescript.html#prefs-ts). Additionally, accessing `window._settings` in TypeScript breaks type checking since `_settings` isn't defined as a member, so I had to use `// @ts-ignore` as a workaround. 2. The formatting issue isn't something I can easily control—it's the default behavior of `tsc` when transpiling TypeScript to JavaScript. The submitted files are the build artifacts generated by `tsc`. If you'd like to see the original TypeScript source, it's available in the repository here: [https://github.com/esauvisky/alt-tab-current-monitor](https://github.com/esauvisky/alt-tab-current-monitor). That said, maybe I’m missing something about how TypeScript projects are expected to be packaged for publishing on extensions.gnome.org? Any guidance would be appreciated.
You can also clean up like this: ```js window.connect('close-request', () => { // clean up here }); ```