Classic App Switcher is a 🖱️ Mouse friendly application switcher for GNOME inspired by the classic Mac OS. The minimal design blends discreetly into the GNOME UI, providing a familiar workflow for users transitioning from macOS while respecting GNOME's design principles. **Key Features:** - Panel button shows the currently focused application and opens a menu with window management functions - Lists running applications on the current workspace - Easily hide an app and retrieve all of its open windows - Hide all other apps/windows allowing you to focus on the active window - Window count showing visible and hidden (or minimized) windows and apps - Workspace-isolated behaviour for fluid multi-workspace workflows - New in v2.0: Panel Button Scroll - Scroll DOWN to toggle between focused application and most recent below. Scroll UP to cycle through open application stack in reverse order (back-to-front - requires at least 3x open apps!) - New in v2.0: Optional Mac Style keyboard shortcut support! - Complements native GNOME features (Activities, Dash, Dynamic Workspaces)
Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.
| Version | Status |
|---|---|
| 2.1 (10) | Active |
| 2.1 (9) | Active |
| 2.0 (8) | Active |
| 2.0 (7) | Rejected |
| 2.0 (6) | Rejected |
| 1.0 (5) | Active |
| 1.0 (4) | Rejected |
| 1.0 (3) | Rejected |
| 1.0 (2) | Rejected |
| 1.0 (1) | Rejected |
As mentioned before, please remove unnecessary try-catch wrappers. Only use try-catch wrapper for something that throws.
Hi, No idea which one you are referring to here, pretty sure I meticulously removed all those mentioned previously so unless I somehow managed to revert one I am not sure how this happened. I assue everything else is satisfactory given the number of changes so perhaps you would be so kind as to tell me which line number you are talking about? Thanks
Please remove all try-catch blocks from `extension.js`.
Btw, if something happens in the future you should be able to catch that without those try-catch wrappers. For future GNOME Shell updates, you have version check, so you should avoid using try catch for that: https://gjs.guide/extensions/upgrading/gnome-shell-40.html#checking-gnome-shell-version
All of them? fair enough but given you did not make this clear previously I assumed the others were acceptable I though it was perhaps the one in 'quit' (not sure how this snuck back in! lol). I am more than happy to remove them but this was not particularly clear from the guidelines. BTW I just received your second email while typing this - not sure what you mean here, the only version checking is happening in prefs.js and there are no try/catch used here?!
For version check, I mean in future updates, when something is available, for example, in 49 but not in 50: ```js if (shellVersion <= 49) { // do the old way } else { // do the new way } ``` That way, you won't need to use try-catch to make sure a feature is available or not.
I am still not clear what you mean here, I am not using try/catch to check version?! - I am using a check for libadwaita [ // Check libadwaita version for Adw support & icon fallback const adwVersion = Adw.get_major_version() * 100 + Adw.get_minor_version(); const isModernVersion = adwVersion >= 108; // GNOME 49+ const useDimmedClass = adwVersion >= 107; // GNOME 48+] do you mean this is the wrong way and I do not need this and simply have to use [if (shellVersion <= 49)] ??? Thanks
I understand. I'm talking about the try-catch wrappers used in `extension.js` to make sure catching the errors if some function or property go away in the future GNOME Shell are not needed. Just removing all the try-catch wrappers from `extension.js` is enough. Don't worry about the `prefs.js`.
Sure, but having checked my notes 'quit' was not listed for removal - I knew I had been thorough here! I am happy to remove all try/catch but perhaps the guidelines could be clearer on this as the previous review gave the impression SOME are acceptable but we should use them sparingly so as not to spam the system log. Likewise, it is all very well telling me to 'not worry' about prefs but given this is new for me and I am learning I would appreciate clarification on this - your code sample is obviously something that was not clear hence me landing on the Adw version check as a solution. If the preferred method is to use [if (shellVersion <= 49)] then I may as well resolve this now so it is correct right! I will now have to redo my POT file yet again to resync line-numbers and would rather not find myself having to do this again! I have no plans to add any new features to this extension and my aim is it does the one job well, I would not even need these version checks if this stuff was backported to older versions, not exactly complex stuff is it! 🙄 Regards
You can either check the`Adw` version or shell version. Any of them is fine in`prefs.js`. What's the issue with `.pot` file numbers? Aren't you doing that with `xgettext` command? You can use my script if you want: https://gitlab.gnome.org/jrahmatzadeh/just-perfection/-/blob/main/scripts/update-pot.sh?ref_type=heads