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

Improve DOSBox Staging application icons #3157

Merged
merged 19 commits into from Dec 2, 2023
Merged

Improve DOSBox Staging application icons #3157

merged 19 commits into from Dec 2, 2023

Conversation

johnnovak
Copy link
Member

@johnnovak johnnovak commented Nov 28, 2023

Description

Continuation of #2232. Thanks to @ThomasEricB for the idea 🎉

This is about removing the not-so-good-looking circle from the icons and creating separate icons per OS that adhere to the platform's UI/UX guidelines.

I also took the opportunity to simplify the icon Makefile. Previously, it was a bit overengineered for no good reason, and full of "clever" stuff. I want build scripts to be simple and stupid, so I made it so, also removing extra fluff in the process and stripping it down to bare essentials.

The approach to re-generating the icons has changed too: the derived smaller PNG files and all other derived icon files are now also checked into the repo. The make targets should only be used going forward when we need to re-generate these checked-in assets. The exception is the install target for Linux, which I left alone.

These small binary files almost never change, and they're minuscule... The whole "don't check binaries into Git" thing doesn't apply here, of course... That's for big and/or frequently updated files.

Manual testing

macOS

Tested the macOS DMG file built by CI—all looks fine (see #3157 (comment)).

Windows

Tested on Win 10 (see #3157 (comment) and #3157 (comment))

Linux

Partially done.

Checklist

Please tick the items as you have addressed them. Don't remove items; leave the ones that are not applicable unchecked.

I have:

  • followed the project's contributing guidelines and code of conduct.
  • performed a self-review of my code.
  • commented on the particularly hard-to-understand areas of my code.
  • split my work into well-defined, bisectable commits, and I named my commits well.
  • applied the appropriate labels (bug, enhancement, refactoring, documentation, etc.)
  • checked that all my commits can be built.
  • confirmed that my code does not cause performance regressions (e.g., by running the Quake benchmark).
  • added unit tests where applicable to prove the correctness of my code and to avoid future regressions.
  • made corresponding changes to the documentation or the website according to the documentation guidelines.
  • locally verified my website or documentation changes.

@johnnovak johnnovak added the packaging Issues about packaging DOSBox Staging for various OSes label Nov 28, 2023
@johnnovak johnnovak self-assigned this Nov 28, 2023
@Grounded0 Grounded0 linked an issue Nov 28, 2023 that may be closed by this pull request
1 task
@johnnovak
Copy link
Member Author

johnnovak commented Nov 28, 2023

@Grounded0 Hold your horses, it's a work in progress 😄 But it will be finished in a day or two.

@ThomasEricB
Copy link
Contributor

I wish you kept some of my work (since it was satisfactory before), but oh well

@johnnovak
Copy link
Member Author

johnnovak commented Nov 29, 2023

@Burrito78 @kklobe @kcgen @Grounded0

The macOS icons are now done and are pixel-perfect. I've been fooling around with some alignment issues because my first attempt was slightly off-center by a few pixels and that triggered my OCD badly 😅

You can download "dosbox-staging-macOS-universal " from the bottom of this page to test:

https://github.com/dosbox-staging/dosbox-staging/actions/runs/7028615905?pr=3157

Now on to the rest! (Windows & Linux)

Installer

image

Small-size legibility

This is how it looks in my Applications folder:

image

App switcher

image

@Grounded0
Copy link
Collaborator

Looking good. Windows and Linux icons next.

@Burrito78
Copy link
Collaborator

Burrito78 commented Nov 29, 2023

The icon works fine on macOS with the light color scheme but there is an issue when using the dark color scheme.

Maybe adding an outline like on the old icon could be a fix there?
Bildschirmfoto 2023-11-29 um 13 00 42

Bildschirmfoto 2023-11-29 um 13 03 21
Bildschirmfoto 2023-11-29 um 13 04 13

@Grounded0
Copy link
Collaborator

Grounded0 commented Nov 29, 2023

We could avoid colour bleeding issues against dark backgrounds by actually having a deep black outline like in the DOS prompt. Instead of going for CMYK Key black, going for deep black would be beneficial here. The kind of black you get when you print something on a colour laser printer with all CMYK component colours producing a deeper black than Key black. Close to RGB #000000.

@johnnovak
Copy link
Member Author

johnnovak commented Nov 29, 2023

IMO, a light outline would look pretty shit. None of these dark icons on your example have such a thing and they're fine. Also, they're all over the place, meaning we can do anything we like, there's no "uniformity" anyway.

image

I like best how the Mission Control app looks, so make it basically "true 100% black" aka #000000, as @Grounded0 suggested. Currently, the rounded rectangle is only about 70% black, not 100% black.

Second best would be maybe the Sprachmemo style, or the Quicktime background... as a last resort. But those look too much like 90s/early 2000s to me. Too gradenty. I like the flat 100% black best.

@Grounded0
Copy link
Collaborator

Grounded0 commented Nov 29, 2023

Yeah we'll go with a design inspired by Mission Control.app.

@Grounded0
Copy link
Collaborator

Grounded0 commented Nov 30, 2023

Can we see that deep black outline soonish so work can progress to Windows/Linux icon. Screenshots against macOS dark mode grey so its easier to wave through.

@johnnovak
Copy link
Member Author

johnnovak commented Nov 30, 2023

Can we see that deep black outline soonish so work can progress to Windows/Linux icon. Screenshots against macOS dark mode grey so its easier to wave through.

Later today man. I'm not working on this 24/7 😄

@johnnovak
Copy link
Member Author

Behold! Black as night! 😎

Get it from here, fresh from the oven 🤘🏻
https://github.com/dosbox-staging/dosbox-staging/actions/runs/7043758252?pr=3157

image image image

image


Still looks nice with the light theme, of course:

image

@Grounded0
Copy link
Collaborator

Looks good to me on all backgrounds. On to Windows/Linux icon.

Pinging to @Burrito78 for final approval.

Lets not pontificate this too much since its much better than what is replaced.

Copy link
Collaborator

@Burrito78 Burrito78 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

macOS icon looks good, in can't check Windows/Linux so I'm reviewing this now.

@johnnovak
Copy link
Member Author

johnnovak commented Nov 30, 2023

macOS icon looks good, in can't check Windows/Linux so I'm reviewing this now.

Win/Linux not ready yet. I'll tell you when it's ready for testing.

@Grounded0
Copy link
Collaborator

Grounded0 commented Nov 30, 2023

I'll test it on Wine so its at least better than no testing.

Do we have a Windows user here to ping?

@johnnovak
Copy link
Member Author

I'll test it on Wine so its at least better than no testing.

Do we have a Windows user here to ping?

I use Windows, so I'll test it on Win 10, of course.

What we need is some Linux user (when it's done).

@johnnovak johnnovak force-pushed the jn/icons branch 2 times, most recently from 2e5ce7a to 4562999 Compare December 2, 2023 12:34
@johnnovak
Copy link
Member Author

johnnovak commented Dec 2, 2023

Once my last commit turns green, I'm merging this good thing. Then refining the Linux situation is a job for later if @weirddan455 or someone who likes Linux is up for it.

johnnovak and others added 19 commits December 2, 2023 22:39
The generated Low-res bitmap icons now live in `bitmap`
It was quite overcomplicated before for not much benefit. As all the
build targets can be fully re-generated in about a second, there is no
need to complicate things with creating assets lazily on demand.

We're also changing the general approach to icon generation: the derived
smaller icons and the OS specific final icons are now also checked in
(see the next few commits), so the Makefile should only be used to
re-generate the derived icons after making changes to the master image
files.

The `favicons` target is also gone as its redundant; people should
simply just grab the small derived PNG icons for that purpose.
@johnnovak johnnovak merged commit 731b14d into main Dec 2, 2023
49 checks passed
@johnnovak johnnovak added macOS Issues related to macOS Windows Issues related to Windows Linux Issues related to GNU/Linux and removed Linux Issues related to GNU/Linux labels Dec 2, 2023
@kcgen kcgen deleted the jn/icons branch December 4, 2023 23:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Linux Issues related to GNU/Linux macOS Issues related to macOS packaging Issues about packaging DOSBox Staging for various OSes Windows Issues related to Windows
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

200 USD bounty for deploying PR #3157
8 participants