Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace task switcher with Catts (Calmer Alt-Tab Task Switcher) #1232

Closed
aral opened this issue Aug 28, 2021 · 19 comments
Closed

Replace task switcher with Catts (Calmer Alt-Tab Task Switcher) #1232

aral opened this issue Aug 28, 2021 · 19 comments

Comments

@aral
Copy link

aral commented Aug 28, 2021

Problem

Screen recording of the default elementary OS task switcher: windows animate in and out while switching between apps and the dock is repurposed as the task switcher view and morphs from the dock icons to the active app icons during the task switching process.

The current task switcher in elementary OS has excessive motion and gratuitous animation and overloads the dock. It also gets stuck sometimes.

  • Overloads the dock (the dock is transformed to include icons of windows and the icons there used to indicate which window you’re switching to). This breaks the physicality of the dock and overloads its meaning. That said, due to the amount of other animation going on, willing myself to concentrate on the dock is the only way I can use it at all.

  • Has excessive motion (animates windows backwards or forwards while dimming them in/out every time you press alt + tab). Imagine that happening with maximized or half-screen windows on a 24" monitor. I don’t normally have issues with motion and it makes me feel seasick after a few uses.

  • Gets stuck. Sometimes it will just get stuck in a state where no window is selected. Pressing alt + tab again gets you out of it.

alt + tab is meant to be a hidden, shortcut gesture for quickly switching between the various windows you have open.

The current implementation fails to address this need.

Proposal

Screenshot of Catts in action. The switcher contains three icons: Tasks, AppCenter, and Calculator. AppCenter is selected. The switcher is in dark mode. The wallpaper behind the switcher is an illustration of cats on a roof. One (pink) looks out into the distance, a tiny blue one is about to paw its tail playfully, and a green one watches the scene.

Replace it with Catts (Calmer Alt-Tab Task Switcher), an alternative task switcher for elementary OS 6 (Odin) that:

  • Is calm. It does not animate my windows. I don’t want cognitive complexity when I’m fast switching between apps. I want to select the app I want to switch to and switch to it. That’s it.

  • Uses icons. There is very little cognitive load to recognising an icon. There’s a reason we use icons of applications in menus, etc., instead of tiny thumbnails of them. The same principles apply here.

  • Enables you to tell apart different windows of the same app (simply, by displaying the window title in the switcher alongside the icon).

  • Uses the system colour scheme. Love Dark Mode? Catts does too.

Demo

Screen recording of the Catts task switcher for elementary OS. It resembles the task switchers found in other operating systems like macOS, Windows, and many other Linux flavours. The active apps are shown as a row of icons and an indicator shows which app will be active when you release the alt key. The window title of the selected app is also shown. Nothing animates.

Prior Art

Nearly every other major operating system implements a similar task switcher to Catts. This includes macOS, Windows, and nearly every flavour of Linux desktop.

This is not the reason to implement Catts as the default elementary OS task switcher. The first-principles reasons are outlined above.

Love and wallpapers

Please see the Catts repository for more details as well as a list of limitations in Catts that can hopefully be addressed after it is integrated into elementary OS.

Also, if you like the wallpaper in the screenshot, there are three versions that you can download and use, with love from Laura, Margo, and me at Small Technology Foundation.

Happy to answer any questions you might have and look forward to working with you to make this happen :)

💕

@aral aral changed the title Replace task switcher with Catts Replace task switcher with Catts (Calmer Alt-Tab Task Switcher) Aug 28, 2021
@danirabbit
Copy link
Member

Probably would be more appropriate to open a pull request 😉

@davidmhewitt
Copy link
Member

Here's another "pro" for your list of pros:

This would remove one of the things that's blocking us from making Gala Wayland compatible. The current window switcher depends on Plank, which is not Wayland compatible.

@jeremypw
Copy link

You make a cogent argument - the existing switcher is unnecessarily busy. Whether Catts is the solution is for the UX team to approve.

@aral
Copy link
Author

aral commented Aug 28, 2021

Probably would be more appropriate to open a pull request 😉

Thanks, Daniel, I didn’t want to presume :)

I’ll have a look at the Gala code tomorrow and see if I feel confident preparing one without screwing anything up :)

@aral
Copy link
Author

aral commented Aug 28, 2021

Here's another "pro" for your list of pros:

This would remove one of the things that's blocking us from making Gala Wayland compatible.

Oh, that’s good to hear. Thank you. Here’s hoping this will be useful :)

@krisives
Copy link

I really don't like the stock task switcher in elementaryOS. This is a giant improvement.

@clo4
Copy link

clo4 commented Aug 29, 2021

Seconded on the motion sickness. I love everything else about elementary but the app switcher makes me feel unwell and a little disoriented. Catts looks to be a nice solution!

@Blast-City
Copy link

Love it!!!

Two questions:

The background color seems to be a little bit lighter than the dock,the Terminal or the workspace overview background. Wouldn't it look a little bit better if the color matched the other dark backgrounds?

On the Demo Gif, the padding seems to be bigger than on the proposal. Is this because of scaling? Wouldn't it be possible to reduce the padding like on the Proposal?

Thanks.

@aral
Copy link
Author

aral commented Aug 29, 2021

@Blast-City Thanks :)

Regarding the questions:

  1. I’m not married to the background colour/opacity; they could definitely be tweaked for better consistency if necessary.

  2. The screenshot in the proposal section is art directed to put the focus on the switcher. I actually made a branch specifically to position it (it’s also displaying the icons at 256px). And you’re right, I didn’t tweak the padding for the screenshot version and so it will appear like its less. The actual implementation is the one you see in the animated gif of the screen capture.

@Zoldyako
Copy link

Can I suggest the Catts to display the windows as thumbnail + icon? this would be useful for when you have more than one window of the same app open, e.g two Firefox windows, I usually open more than one window of Firefox, and having just the icon can be a bit confusing.

I made an draft in Krita real quick, I don't know how much of this makes sense but it is a idea:
image

@ibrahimrahman
Copy link

This is wonderful! Thank you for this!

How complicated does making it workspace aware seem to be? Would it make sense to be able to cycle the view? For example, Alt+Tab shows apps in the current workspace; pressing Q or the up arrow key while holding Alt replaces the view with apps from the previous workspace and W/down arrow key for apps in the next workspace. This way you could achieve quick, organised navigation without adding clutter to the window

@AntonioBlaGra
Copy link

All my support!

@aral
Copy link
Author

aral commented Aug 30, 2021

@Zoldyako Hey José, thank you for sharing your sketch. And, good news, the feature you want already exists in elementary OS ;)

Hit + s (or use the icon in the dock) to access Multitasking View :)

multitasking-view

So if differentiating the contents of the windows is important, that’s what I’d use (especially since then you can see the window contents in a larger format that’s specifically designed for that purpose).

Catts serves a related but different need as a very quick productivity feature for switching between open windows. And, most of the time (80/20 rule – although for me, it’s closer to 100% in practical everyday use), you can still differentiate between different windows of the same app based on their window titles.

Of course, Catts is a hotkey-bound hidden gesture so the Multitasking View continues to serve an important and related but separate need not just by providing window previews but also by being explicit and easy to stumble onto by its prominent location in the dock. (So Catts is not a replacement for it.)

Thank you again for taking the time to create and share your sketch. It’s good to have independent validation for the need of the Multitasking View :)

@aral
Copy link
Author

aral commented Aug 30, 2021

@ibrahimrahman I’m not really sure. Please keep in mind that I am very new to the platform and what I did was basically stumble in the dark creatively to port Gala Alt-Tab Switcher to Odin, made it easier to install, and asked Margo to add a few cats to it (with the eventual goal of hopefully getting it added to elementary OS) :)

The real person to ask would be @davidmhewitt who has been improving the code base in the last two days in his draft pull request to incorporate Catts as the window switcher in Gala.

There is also an issue open for this very thing in Catts.

The way I’d like to see this implemented is to have apps from all workspaces display by default without any sort of hierarchy. When you’re task switching, you shouldn’t have to think about the spatial layout of your workspaces.

Compare the cognitive load of:

“I want to switch to my web browser.”

With:

“I want to switch to my web browser, which is three screens to the right of me.”

The reason not having workspace support currently in Catts is a limitation is because it imparts that requirement on you. (You must remember which workspace an app is in, switch to it, and then, if you want to, use the task switcher. At that point, the productivity gains of Catts are lost to, say, using the more explicit but slower Multitasking View.)

So a very strong “yes, please” to having apps from all workspaces display in Catts. And an equally strong suggestion to please keep Catts linear and a simple gesture without introducing a more complex mental model that requires keeping a spatial map of workspaces within your head while working :)

@Blast-City
Copy link

@Blast-City Thanks :)

Regarding the questions:

1. I’m not married to the background colour/opacity; they could definitely be tweaked for better consistency if necessary.

2. The screenshot in the proposal section is art directed to put the focus on the switcher. I actually made a branch specifically to position it (it’s also displaying the icons at 256px). And you’re right, I didn’t tweak the padding for the screenshot version and so it will appear like its less. The actual implementation is the one you see in the animated gif of the screen capture.

Thanks.

I think ti would look much better without the extra padding. This is how it looks on Gnome:

image

@JoseExposito
Copy link
Member

Nice work @aral, this task switcher looks really great! Looking forward to seeing it integrated upstream 😄

However, I agree with @Zoldyako , when multiple windows of the same app are open, the current task switcher allows to easily differentiate them.

I usually work with multiple instances of my IDE open, and having to read the title is not as simple as checking the thumbnail. Specially because the window title is not visible until you Alt+Tab to the icon, so you don't know at first look how many times you need to press the tab key.

For me this is a feature already present that will be lost and that'll impact my workflow.

I think that Windows 10 does a very good job in terms of functionality:

windowstask

Just by pressing Alt+Tab you can see the window titles, thumbnail and even close them with the mouse... The design though...

@mkellyxp
Copy link

I just wanted to add my huge thumbs up for this! As a heavy Alt+Tab user, this is my biggest deal breaker with Elementary. Having simple icons like catts would remove my biggest issue. How can I love this more? :)

@minhdanh
Copy link

I really love this. Been using alt tab a lot with Elementary OS, but whenever I have many GUI apps running, using the stock switcher really painful for me because it will be very slow then. The switcher also stucks too, very often.

@danirabbit
Copy link
Member

Alright, I'm gonna close this as fixed since we merged a version of this in, and if there are any further issues they should be new individual issue reports. Thanks everyone!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests