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

Switch from Faenza to Win11 icon theme for Windows/Mac #2283

Closed
wants to merge 2 commits into from

Conversation

mikedld
Copy link
Member

@mikedld mikedld commented Dec 8, 2021

Faenza doesn't seem to be actively worked on for the past few years, and starts missing some icons (like view-statistics). It also looks a bit outdated (not that it didn't before...)

This also fixes missing icons after #2200 got merged.

@GaryElshaw
Copy link
Contributor

Does this require any additional work i can help with, Mike? @mikedld

@ckerr
Copy link
Member

ckerr commented Jul 4, 2022

Does this require any additional work i can help with, Mike? @mikedld

Can we please table this until after 4.0.0. I feel overwhelmed by all the recent icon PRs.

@Pentaphon
Copy link

Pentaphon commented Sep 7, 2022

Can we please table this until after 4.0.0. I feel overwhelmed by all the recent icon PRs.

@ckerr since 4.0.0 beta is very close to coming out, do you think you could merge this for 4.0.0 beta so it has a "fresh coat of paint" and feels more like a fresh start for the Windows/Mac builds? I understand if you're not into it right now but it does feel like the best time to debut the new icons.

@Coeur Coeur added this to the 5.0.0-beta.1 milestone Nov 20, 2022
@Pentaphon
Copy link

Pentaphon commented Dec 10, 2022

Are we sure this icon theme should be delayed until 5.0.0-beta 1? This PR is already a year old and seems like it could take the better part of a decade if we end up having several 4.0.x or 4.1.x point changes in between. There will likely be a Windows 12 by the time 5.0.0 begins beta...

4.0.0-beta 3 seems like the right time to debut new icons for Windows 11 and Mac.

@ckerr
Copy link
Member

ckerr commented Dec 10, 2022

@mikedld wdyt?

Faenza doesn't seem to be actively worked on for the past few years, and
starts missing some icons (like view-statistics). It also looks a bit
outdated (not that it didn't before...)
@ckerr ckerr force-pushed the feature/qt-win11-icon-theme branch from 7210e08 to cfb879d Compare December 10, 2022 16:17
@mikedld
Copy link
Member Author

mikedld commented Dec 10, 2022

This is a draft PR, setting any milestone on it makes little sense. That said, the change is non-functional and could go into any release, provided that it's finalized and tested. If someone wants to pick this up (including choosing a completely different icon theme that suits Windows builds better), be my guest.

@Pentaphon
Copy link

Pentaphon commented Dec 10, 2022

If someone wants to pick this up (including choosing a completely different icon theme that suits Windows builds better), be my guest.

I sure hope so because the timing of 4.0.0's release would coincide perfectly with the availability of Win11 and any modern set of icons would look far better than the current outdated icons in 4.0.0-beta2. I see that @GaryElshaw offered to help so maybe he can still help get this PR merged. Thanks to whoever finally gives this client a fresh coat of new paint!

@GaryElshaw
Copy link
Contributor

Having a look now.

@GaryElshaw
Copy link
Contributor

GaryElshaw commented Dec 13, 2022

I'm going to break this down into technical and design. And an additional couple of notes i'm including that may or may not be issues that need filing. They're things i think are flaws - and things i'm noticing that also may have nothing to do with this icon set.

Technical

Up and running on macOS Ventura using Homebrew's qt@5. I haven't been able to get this working with my Manjaro or Ubuntu installs, i think, because of something i have previously installed that required Faenza; and possibly something else within the Transmission code is still selecting Faenza as the default icon set?

The behaviour of launching transmission-qt has somehow changed between the last time i was regularly building the qt version and now. I don't know whether that's code changes on the Transmission side or changes that are specific to Ventura, or changes i've made to my setup. Once upon a time, i could launch the qt version without the terminal being an intrinsic part of using it by making an alias of the binary.

Here's the terminal output while running it:

garyelshaw@Garys-MacBook-Air ~ % transmission-qt dbus[7557]: Dynamic session lookup supported but failed: launchd did not provide a socket path, verify that org.freedesktop.dbus-session.plist is loaded! qt.qpa.fonts: Populating font family aliases took 230 ms. Replace uses of missing font family ".AppleSystemUIFont" with one that exists to avoid this cost. zsh: bus error transmission-qt garyelshaw@Garys-MacBook-Air ~ %

A heads-up issue. Aside from the 230 ms of my life i'm not getting back :-), Preferences/settings are not being saved between sessions.

Design

Aesthetically, this is a no-brainer and should be merged. It's much more in keeping with the changes made to the web client for 4.0, AND, design-wise, the icon set feels less Windows 11, than an icon set that fits neatly with the simple monochromatic minimalism already happening in the web and macOS clients (something i was trying to do with the qt client on macOS with #3351).

Some minor flaws

At some point, it would be great if the project maintainers and contributors spent some time focusing on how the various clients behave with platform-specific Dark and Light modes. I've noticed this with the GTK and QT clients on Linux and macOS.

Here's the new theme in Dark mode on macOS.

SCR-20221212-kna

Yes, everything is actually still there, you are not 'the blind man, in the dark room, looking for the black cat, that isn't there'.

And in Light mode.

SCR-20221212-ko9

Yes, text contrast with the background is an ongoing issue.

I have zero idea what is going on with that blue line at the top or why the title of the top torrent is cut-off.

The padding in the search bar area is also an issue. Why the bar is shoved hard-right like that is a mystery.

SCR-20221212-ktg

The good news. Look how fresh and light the preferences/settings and torrent properties now look.

SCR-20221212-ksn

SCR-20221212-kqc

I'll follow up a little later on some other thoughts.

@Pentaphon
Copy link

At some point, it would be great if the project maintainers and contributors spent some time focusing on how the various clients behave with platform-specific Dark and Light modes. I've noticed this with the GTK and QT clients on Linux and macOS.

Question: Windows 11 has light and dark modes, so is there a "Windows 11 dark-mode" icon set to go with this set for light mode?

@mikedld perhaps this issue could be solved by going back to the original source of these icons and seeing if there's a dark mode set to go with this one.

As qBittorrent recently showed with their latest 4.5.0 version: there needs to be 2 sets of icons for both dark and light mode instead of depending on 1 set for both modes as they did, which is why they are rolling back their new theme in their next version. We should be aware of that error they made and avoid it.

@GaryElshaw
Copy link
Contributor

Question: Windows 11 has light and dark modes, so is there a "Windows 11 dark-mode" icon set to go with this set for light mode?

Unfortunately, no. https://github.com/yeyushengfan258/Win11-icon-theme

@GaryElshaw
Copy link
Contributor

GaryElshaw commented Dec 13, 2022

Some suggested changes i'd like some Transmission-user feedback on. The opportunity to sort out the blankness of those folder icons has always bothered me, because it's confusing to me, which is which. Is it a magnet or a torrent file i'm trying to open, and without the tooltip, i wouldn't have a clue.

I've been messing around with some of the icon options by amalgamating different icons.

Opening a magnet could be:

Untitled2

Opening a torrent file could be:

Untitled

Removing a torrent:

Untitled3

Or

Untitled5

@Pentaphon
Copy link

Pentaphon commented Dec 13, 2022

Unfortunately, no. https://github.com/yeyushengfan258/Win11-icon-theme

I've requested dark mode over there since he's doing it for Linux desktops and all the major ones have dark mode anyway. Maybe he will be able to provide a dark mode set before 4.0.0 comes out. I'm going to look for new themes in the meantime...

We could go with Adwaita icons since they are up to date and have both dark and light modes and we have a lot of Linux users who would love to see them on the Windows Qt app. Plus, they would probably look at home on the Mac app, too.

https://gitlab.gnome.org/GNOME/adwaita-icon-theme

Some suggested changes i'd like some Transmission-user feedback on. The opportunity to sort out the blankness of those folder icons has always bothered me, because it's confusing to me, which is which. Is it a magnet or a torrent file i'm trying to open, and without the tooltip, i wouldn't have a clue.

Maybe the problem is having the folder in the first place. It looks like one big empty box. So we just need to forget the box.

  1. The open magnet button could just be a simple magnet icon.

  2. The open torrent could just be a that up-down arrow icon without the folder around it.

@GaryElshaw
Copy link
Contributor

GaryElshaw commented Dec 13, 2022

Maybe the problem is having the folder in the first place. It looks like one big empty box. So we just need to forget the box.

I did versions of those too :-)

The only reason i'm kinda opposed to Adwaita is purely because it is so tied with Linux. I like the minimalism of the proposed theme. I'm also assuming the light/dark issues are something that will need to be addressed in code as well as icons. The good news is that because we're using a subset, inverting the colours shouldn't be too hard or time-consuming.

@Pentaphon
Copy link

Pentaphon commented Dec 13, 2022

The only reason i'm kinda opposed to Adwaita is purely because it is so tied with Linux. I like the minimalism of the proposed theme. I'm also assuming the light/dark issues are something that will need to be addressed in code as well as icons. The good news is that because we're using a subset, inverting the colours shouldn't be too hard or time-consuming.

You're probably right. I was just keeping that on the table since we do have many Linux users and it's feature-complete.

Just came across this new icon set with dark and light icons! It was just released a few months ago so it's even newer than the ones originally proposed so it may be even more useful.

https://github.com/kuroehanako/Eleven-icon-theme

@Pentaphon
Copy link

@GaryElshaw the dev for the original Win11 icon theme says his icons have both light and dark mode.

yeyushengfan258/Win11-icon-theme#74 (comment)

@GaryElshaw
Copy link
Contributor

That appears to be a subset of the icons being used, and also being used on Windows (which may make a difference too).

@Pentaphon
Copy link

That appears to be a subset of the icons being used, and also being used on Windows (which may make a difference too).

Are either of the Win11 icon repos viable enough to complete a dark and light theme for Mac and Windows?

@GaryElshaw
Copy link
Contributor

I think so, but i'm also trying to keep in mind that having a dark themed icon base is futile if there is no will to code the application to use it.

@GaryElshaw
Copy link
Contributor

GaryElshaw commented Dec 15, 2022

A little help please @ckerr or @mikedld? It feels like i've almost got this into shape for a pr, but are stuck with getting MainWindow.cc to play ball. Here's what i have so far (on macOS w/ qt using qt@5).

SCR-20221215-no8

The icon on the far left is to open a torrent file. The current code duplicates the same icon across both opening a torrent file and adding a magnet, so what you can see with the second icon is the torrent icon badged with a magnet icon. I'd like to untangle that and have completely separate icons for torrent and magnet.

Here's the current code.

    // icons
    [snip]
    QIcon const icon_open = icons.getThemeIcon(QStringLiteral("document-open"), QStyle::SP_DialogOpenButton);
    ui_.action_OpenFile->setIcon(icon_open);
    ui_.action_AddURL->setIcon(
        addEmblem(icon_open, QStringList() << QStringLiteral("emblem-web") << QStringLiteral("applications-internet")));
    ui_.action_New->setIcon(icons.getThemeIcon(QStringLiteral("document-new"),

If i change that to the following, will that work?

    QIcon const icon_open = icons.getThemeIcon(QStringLiteral("document-open"), QStyle::SP_DialogOpenButton);
    QIcon const icon_open = icons.getThemeIcon(QStringLiteral("emblem-web"), QStyle::SP_DialogOpenButton);
    ui_.action_OpenFile->setIcon(icon_open);
    ui_.action_AddURL->setIcon(;

@mikedld
Copy link
Member Author

mikedld commented Dec 15, 2022

Per #814 (comment), I'd try insert-link or some other icon that doesn't require any type of manual overlaying.

@GaryElshaw
Copy link
Contributor

GaryElshaw commented Dec 15, 2022

    QIcon const icon_open = icons.getThemeIcon(QStringLiteral("insert-link"), QStyle::SP_DialogOpenButton);
    ui_.action_OpenFile->setIcon(icon_open);
    ui_.action_AddURL->setIcon(;

Unfortunately produces:

[ 70%] Building CXX object qt/CMakeFiles/transmission-qt.dir/MainWindow.cc.o
/Users/garyelshaw/Documents/GitHub/transmission-primary/qt/MainWindow.cc:152:17: error: redefinition of 'icon_open'
    QIcon const icon_open = icons.getThemeIcon(QStringLiteral("insert-link"), QStyle::SP_DialogOpenButton);
                ^
/Users/garyelshaw/Documents/GitHub/transmission-primary/qt/MainWindow.cc:151:17: note: previous definition is here
    QIcon const icon_open = icons.getThemeIcon(QStringLiteral("document-open"), QStyle::SP_DialogOpenButton);
                ^
/Users/garyelshaw/Documents/GitHub/transmission-primary/qt/MainWindow.cc:154:32: error: expected expression
    ui_.action_AddURL->setIcon(;
                               ^
2 errors generated.
make[2]: *** [qt/CMakeFiles/transmission-qt.dir/MainWindow.cc.o] Error 1
make[1]: *** [qt/CMakeFiles/transmission-qt.dir/all] Error 2
make: *** [all] Error 2

@GaryElshaw
Copy link
Contributor

GaryElshaw commented Dec 15, 2022

I'm still struggling to figure out what icon set is being used here on Manjaro and Ubuntu after altering the Application.cc and CMakeLists files.

Screenshot from 2022-12-15 19-57-32

It's not catching anything for the bottom of the main window either.

Screenshot from 2022-12-15 20-09-18

@Pentaphon
Copy link

I think so, but i'm also trying to keep in mind that having a dark themed icon base is futile if there is no will to code the application to use it.

As long as you have a new and improved iconset to debut with 4.0.0 and a set of dark themed icons ready to go when somebody finally makes dark mode happen on Windows (and Mac?) then it's totally worth it. Thanks for taking this PR on, Gary. I think the project really needed this theme refresh.

@GaryElshaw
Copy link
Contributor

After much gnashing of teeth... this works.

QIcon const icon_open = icons.getThemeIcon(QStringLiteral("document-open"), QStyle::SP_DialogOpenButton); ui_.action_OpenFile->setIcon(icon_open); ui_.action_AddURL->setIcon(icons.getThemeIcon(QStringLiteral("insert-link"),

A little progress. Now to fix that torrent icon and pr...

SCR-20221216-lxr

@Pentaphon
Copy link

Pentaphon commented Dec 16, 2022

A little progress. Now to fix that torrent icon and pr...

Besides the torrent icon being too small, the potential issues I see from just that tiny screenshot are: (bear in mind I am not looking at the same thing you are on a real display so I may be wrong)

  1. The magnet icon is a lot darker than the other icons, which look "inactive" or too faded by comparison.
  2. The red "remove" icon is so thin as to be somewhat hard to see compared to the other icons. I would tweak that icon so the lines are thicker or go with another "remove" icon that stands out more. (this could just be screenshot compression, though)
  3. I can see some users complaining about the current torrent icon taking up too little space compared to the rest of the icons. It needs to be encircled like in that earlier screenshot where you had it inside a folder. That would give it more a button feel and make it more spatially consistent with the other icons. I can also see people being confused by the icon itself since its not a "+" icon of some kind to show you are "adding a torrent" but that's a lesser potential issue.

Other than that, I like it. We just need to make sure we get as many eyes on it as possible before it goes to production and you will probably make Transmission look better than it ever has!

Were you able to give Transmission even more icons than it has on 3.0?

3.0 is missing icons for the following menus:

Edit: Deselect All, Change Session
Torrent: Queue, Set Location, Verify Local Data, Copy Magnet Link to Keyboard
View: Compact View,
Help: Statistics, Donate

@GaryElshaw
Copy link
Contributor

  1. The magnet icon is a lot darker than the other icons, which look "inactive" or too faded by comparison.

Yep, that's because there is nothing selected. When a torrent is selected...

SCR-20221216-om9

I'll see if i can amend or replace the 'remove' icon.

@GaryElshaw
Copy link
Contributor

Betterer? @Pentaphon

SCR-20221216-p8b

@Pentaphon
Copy link

Pentaphon commented Dec 16, 2022

Betterer? @Pentaphon

Yeah that's better, except that it needs to be adjusted to the same height as all the other icons. I did like that splash of red on the last remove icon but it would probably not work well with dark and light themes, especially considering how thin the lines are.

I also like how you made the "add torrent" icon bigger and more distinct.

This already looks way cleaner than the current theme. Nice work.

@GaryElshaw
Copy link
Contributor

it needs to be adjusted to the same height as all the other icons

Strangely, the measurement of that icon is supposed to be the same as the others. I agree about the former red one, but i'm liking the simple monochrome of this look, and if it ever needs to be changed for a dark theme, reversing to white on black should be easier.

@Pentaphon
Copy link

Pentaphon commented Dec 16, 2022

Strangely, the measurement of that icon is supposed to be the same as the others.

Probably just an oversight by the original theme author because even a couple of roughly positioned 0.00 angle red lines shows it is much too big relative to the other icons. I'm sure you can resize it. I don't think it has to be absolutely perfect, but just not glaringly obviously bigger like it is now.

line

Also, perhaps the magnet, start, pause and properties icons could be a little bigger to fit within the red lines? They just all need to be matched up in terms of vertical size.

@ckerr ckerr added type:feat A new feature and removed enhancement labels Feb 12, 2023
@ckerr
Copy link
Member

ckerr commented Mar 10, 2023

@mikedld looks like Faenza was added in 81c3eeb back in 2015 with the commit message:

Use Faenza (1.3.1) as fallback on systems which do not support icon themes

In 2023 are there still "systems which do not support icon themes" in the wild? Could we just ... remove the fallback icon theme altogether?

@mikedld
Copy link
Member Author

mikedld commented Mar 10, 2023

Windows is one such system, macOS is another.

@ckerr
Copy link
Member

ckerr commented Mar 10, 2023

Windows is one such system, macOS is another.

Well, I guess if we want to support Windows and macOS 🤪

I must be ignorant on this & it seems like a pretty important concept, so I'm just going to take the looking-like-an-idiot hit to try & learn about this. It seems impossible to me that people could even ship Qt apps without having the OS provide some icon set. How can they possibly look like native applications if they don't plug into the native icons?

@Pentaphon
Copy link

Pentaphon commented Jun 16, 2023

Windows is one such system, macOS is another.

Isn't this commit supposed to replace Faenza for all 3 platforms, which is pretty outdated at this point?

@GaryElshaw
Copy link
Contributor

@Pentaphon I just picked up where Mike left off #4376.

@ckerr
Copy link
Member

ckerr commented Nov 4, 2023

Looks like this is superceded by #4376

@ckerr ckerr closed this Nov 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging this pull request may close these issues.

None yet

5 participants