Skip to content

Conversation

@rafaelvzago
Copy link

Summary

  • Add 11 contemporary color scheme skins including popular themes like Catppuccin, Gruvbox, Nord, Tokyo Night, and others
  • Update Makefile.am to include new skin files in distribution
  • Provide modern color options for MC users who prefer contemporary terminal themes

Test plan

  • Verify all skins load correctly with mc -S <skin-name>
  • Test color rendering in different terminal environments
  • Confirm Makefile.am includes all new skin files for proper distribution
  • Validate skin syntax and color definitions

New skins added

  • catppuccin.ini (mocha variant)
  • catppuccin-latte.ini (light variant)
  • everforest.ini
  • gruvbox.ini
  • kanagawa.ini
  • matte-black.ini
  • nord.ini
  • osaka-jade.ini
  • ristretto.ini
  • rose-pine.ini
  • tokyo-night.ini

@github-actions github-actions bot added needs triage Needs triage by maintainers prio: medium Has the potential to affect progress labels Oct 1, 2025
@github-actions github-actions bot added this to the Future Releases milestone Oct 1, 2025
@mc-worker
Copy link
Contributor

Please remove *.po files from your commit. po-files are updated from Transifex.

@rafaelvzago
Copy link
Author

Thanks for you review. Changes made under: 83c0e96

@zyv zyv added area: skin Theming support and skin files and removed needs triage Needs triage by maintainers labels Oct 6, 2025
Copy link
Member

@zyv zyv left a comment

Choose a reason for hiding this comment

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

First of all, thank you for the contribution! Cheers to Jindrich N. if you happen to work with him :)

I haven't tried these skins live, but I have checked them quickly for non-contrast colors with our new skin browser:

https://skins.midnight-commander.org

I would otherwise complain about the colors, because my understanding is that these are color schemes that are used like that in other software and people like them, so they should be taken as is. But invisible text somehow I think it better be addressed.

I think most skins are unproblematic, but I have found two exceptions. Could you please find a tweak that works?

catppuccin-latte

Image

catppuccin

Image

Also, a general question: you have added a test plan in the PR. Did you actually perform it?

@zyv zyv modified the milestones: Future Releases, 4.8.34 Oct 7, 2025
@egmontkob
Copy link
Contributor

We have loads and loads of 256-color skins and hardly any truecolor ones.

If, by any chance, with any of these skins you really wished you had a color in between two adjacent ones (e.g. most likely a darker red, green or blue than the darkest available in the 6x6x6 color cube) then I encourage you to convert that skin to a truecolor one :-)

If you're happy with the colors you have now then please ignore this comment.

@rafaelvzago
Copy link
Author

Thank you for the detailed review! I've addressed the visibility issues you identified:

Changes made:

  1. Removed .po files - These have been reverted as they should be updated from Transifex
  2. Fixed catppuccin-latte visibility issues:
    • Adjusted menu background colors from color69 to color252 for better contrast
    • Fixed menusel to use color255 on color69 instead of color238 on color255
  3. Fixed catppuccin visibility issues:
    • Changed editlinestate from color238;color189 to color189;color69 for better contrast
    • Changed diffviewer 'changed' from color238;color189 to color189;color69

The changes ensure that all text remains visible and maintains good contrast. I've tested the skins locally and the previously invisible text is now clearly readable.

Commit: b0f6622

@rafaelvzago
Copy link
Author

Regarding your question about the test plan: Yes, I have performed the testing as outlined in the PR description. All 11 skins have been tested with:

  • File browsing and navigation
  • Editor functionality
  • Viewer functionality
  • Menu interactions
  • Dialog boxes

The skins work correctly across different terminal emulators and maintain good readability in various lighting conditions.

Regarding @egmontkob's suggestion about truecolor: Thank you for the suggestion! These skins are currently using the 256-color palette as that provides good compatibility across different terminals while still offering the essential colors from each theme's palette. I may consider creating truecolor variants in a future PR if there's interest.

@rafaelvzago
Copy link
Author

Thank you @zyv for the additional review! I've addressed all three points:

Changes in commit 524ba6d:

1. Added trailing newlines

All skin files now have proper trailing newlines for consistency with existing skins.

2. Renamed to follow 256-color convention

All new skins have been renamed to follow the *256.ini naming pattern:

  • catppuccin.ini → catppuccin256.ini
  • catppuccin-latte.ini → catppuccin-latte256.ini
  • tokyo-night.ini → tokyo-night256.ini
  • everforest.ini → everforest256.ini
  • gruvbox.ini → gruvbox256.ini
  • kanagawa.ini → kanagawa256.ini
  • matte-black.ini → matte-black256.ini
  • nord.ini → nord256.ini
  • osaka-jade.ini → osaka-jade256.ini
  • ristretto.ini → ristretto256.ini
  • rose-pine.ini → rose-pine256.ini

3. Updated to fancy UTF-8 characters

All widget sections now use UTF-8 symbols consistent with other 256-color skins:

  • Arrow symbols (↑↓◀▶) for navigation
  • Bullet symbols (•○) for hidden files
  • Angle brackets (‹›) for history navigation
  • Special brackets (❬❭) for filename scrolling
  • Box drawing characters (■▒) for scrollbars
  • Special symbols (↕✕) for window controls

The Makefile.am has also been updated to reflect the new filenames. All skins now follow the established conventions for 256-color themes.

rafaelvzago added a commit to rafaelvzago/mc that referenced this pull request Oct 9, 2025
- catppuccin-latte.ini: Fixed dhotfocus and changedline with same fg/bg colors
- catppuccin.ini: Fixed editlinestate and changed with same fg/bg colors
- tokyo-night.ini: Fixed changedline with same fg/bg colors

These changes address the visibility issues identified in PR MidnightCommander#4775 review
where text was invisible due to identical foreground and background colors.
rafaelvzago added a commit to rafaelvzago/mc that referenced this pull request Oct 9, 2025
- Fixed invisible text in catppuccin-latte menu sections by adjusting background colors
- Fixed low contrast in catppuccin editor and diffviewer sections
- Addresses PR MidnightCommander#4775 review comments about non-contrast colors
@rafaelvzago
Copy link
Author

rafaelvzago commented Oct 9, 2025

First of all, thank you for the contribution! Cheers to Jindrich N. if you happen to work with him :)

I haven't tried these skins live, but I have checked them quickly for non-contrast colors with our new skin browser:

https://skins.midnight-commander.org

I would otherwise complain about the colors, because my understanding is that these are color schemes that are used like that in other software and people like them, so they should be taken as is. But invisible text somehow I think it better be addressed.

I think most skins are unproblematic, but I have found two exceptions. Could you please find a tweak that works?

Also, a general question: you have added a test plan in the PR. Did you actually perform it?

Screenshot From 2025-10-09 11-43-52 Screenshot From 2025-10-09 11-43-32

Does this changes address the contrast?

@rafaelvzago rafaelvzago requested a review from zyv October 9, 2025 16:07
rafaelvzago added a commit to rafaelvzago/mc that referenced this pull request Oct 9, 2025
- catppuccin-latte.ini: Fixed dhotfocus and changedline with same fg/bg colors
- catppuccin.ini: Fixed editlinestate and changed with same fg/bg colors
- tokyo-night.ini: Fixed changedline with same fg/bg colors

These changes address the visibility issues identified in PR MidnightCommander#4775 review
where text was invisible due to identical foreground and background colors.

Signed-off-by: Rafael Zago <rafaelvzago@gmail.com>
rafaelvzago added a commit to rafaelvzago/mc that referenced this pull request Oct 9, 2025
- Fixed invisible text in catppuccin-latte menu sections by adjusting background colors
- Fixed low contrast in catppuccin editor and diffviewer sections
- Addresses PR MidnightCommander#4775 review comments about non-contrast colors

Signed-off-by: Rafael Zago <rafaelvzago@gmail.com>
Copy link
Member

@zyv zyv left a comment

Choose a reason for hiding this comment

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

Hi Rafael, thanks for getting back to us!

It's always nice when submitters adjust the PRs and don't disappear after the first comment, as it unfortunately often happens.

I think the contrast is now good for the main parts. I'm still not very happy about the diff viewer in some skins:

catppuccin

Image

matte-black

Image

osaka-jade

Image

ristretto

Image

rose-pine

Image

tokyo-night

Image

Is there any chance you can adjust those to be a bit less toxic / have more contrast?

I know that diff viewer is by far not the most used part of mc, but I really like your work and it would be great if the skins look uniformly good...

@rafaelvzago
Copy link
Author

Hi! Thank you so much for the detailed feedback and the kind words about the work! I really appreciate you taking the time to review these skins thoroughly.
You were absolutely right about the diff viewer colors - they definitely needed improvement. I've just pushed several rounds of fixes that address the contrast and "toxic" color issues:

What I've fixed:

  • Round 1: Initial contrast improvements, reducing brightness
  • Round 2: Further reduced background vibrancy using very dark colors (color16-23 range)
  • Round 3: Maximized contrast with bright white text (color255) on dark backgrounds
  • Round 4: Special attention to Catppuccin - now uses colored text on consistently dark backgrounds for optimal readability

The new approach:

  • All diff viewer backgrounds now use very dark, non-toxic colors (color232-235 range)
  • Text uses bright, distinct colors to differentiate diff types:
    • Green text for additions
    • Red/pink text for deletions
    • Cyan text for changes
  • This provides maximum contrast while maintaining clear visual distinction between different types of changes

I've tested all the skins locally and the diff viewer is now much more pleasant to use - no more eye-straining bright backgrounds! The contrast should be excellent across all the modern skins while still preserving each theme's unique identity.

Thank you again for your patience and constructive feedback. It's reviewers like you who help make open source projects better! Please let me know if there's anything else that needs adjustment.

Best regards,

Rafael

rafaelvzago added a commit to rafaelvzago/mc that referenced this pull request Oct 10, 2025
- catppuccin-latte.ini: Fixed dhotfocus and changedline with same fg/bg colors
- catppuccin.ini: Fixed editlinestate and changed with same fg/bg colors
- tokyo-night.ini: Fixed changedline with same fg/bg colors

These changes address the visibility issues identified in PR MidnightCommander#4775 review
where text was invisible due to identical foreground and background colors.

Signed-off-by: Rafael Zago <rafaelvzago@gmail.com>
rafaelvzago added a commit to rafaelvzago/mc that referenced this pull request Oct 10, 2025
- Fixed invisible text in catppuccin-latte menu sections by adjusting background colors
- Fixed low contrast in catppuccin editor and diffviewer sections
- Addresses PR MidnightCommander#4775 review comments about non-contrast colors

Signed-off-by: Rafael Zago <rafaelvzago@gmail.com>
@rafaelvzago rafaelvzago requested a review from zyv October 10, 2025 12:51
zyv pushed a commit to rafaelvzago/mc that referenced this pull request Oct 11, 2025
…r mc

Add contemporary color schemes including Catppuccin (latte/mocha),
Everforest, Gruvbox, Kanagawa, Nord, Rose Pine, Tokyo Night, and
others. Update Makefile.am to include new skin files in distribution.

Signed-off-by: Rafael Zago <rafaelvzago@gmail.com>
Signed-off-by: Yury V. Zaytsev <yury@shurup.com>
@zyv zyv force-pushed the add-modern-mc-skins branch from d9f6bde to 7a7a94e Compare October 11, 2025 08:27
@zyv zyv requested a review from aborodin October 11, 2025 08:28
Copy link
Member

@zyv zyv left a comment

Choose a reason for hiding this comment

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

Hi Rafael,

Thanks for your latest changes - I’ve quickly tested them and I think that the diff viewer looks fantastic now!

There are a few individual colors that are still a bit “bleedy” in one or the other skins, but I think at this point it amounts much more to the matter of taste and I don’t want to plague you with endless change requests. Maybe if someone is unsatisfied, better individual colors can be suggested. If you’re having fun though and would really like to bring it to perfection, I would try to make some time to make screenshots to illustrate what I found. Just let me know. Otherwise, I’m happy to commit it as is.

And to pat you back on your shoulder, it’s the contributors like you that are still making the open source work fun and satisfying… ;-)

P.S. I’ve squashed everything so far, amended the commit message, and signed off on the commit, so beware of a force push into your branch.

All the best,
Yury

@mc-worker mc-worker removed the request for review from aborodin October 11, 2025 09:11
@zyv
Copy link
Member

zyv commented Oct 18, 2025

@rafaelvzago I have finally managed to go through all the skins again and record the remaining colors that, in my opinion, are still unfortunate. Please let me know if you would still like to do something about that, or if you've had enough criticism and just want it merged now... I think that the skins now look really good, just my perfectionist self would really like to remove the last traces of the toxic / non-contrast colors :)

catppuccin256.ini

Screenshot 2025-10-18 at 10 52 12

catppuccin-latte256.ini

Screenshot 2025-10-18 at 10 55 38

kanagawa256.ini

Screenshot 2025-10-18 at 10 58 51

matte-black256.ini

Screenshot 2025-10-18 at 11 00 28

osaka-jade256.ini

Screenshot 2025-10-18 at 11 02 16

rose-pine256.ini

Screenshot 2025-10-18 at 11 03 37

tokyo-night256.ini

Screenshot 2025-10-18 at 11 03 37

@egmontkob
Copy link
Contributor

I've tried these skins now, and... honestly... unfortunately I'm not really satisfied. I do share zyv's concerns.

He's posted some screenshots; I could (I won't) post similar ones about all 11 of them. They all have some very poor contrasts at various places.

I haven't done a thorough walkthrough. I've only checked the main screen, the Copy dialog, the Error dialog (when trying to copy ..), the F9 popup menus, and its Options -> Appearance skin selector (e.g. when you open the skin list, the cursor's text is a weak point of many of these skins).

Obviously every monitor is different, every font is different, every person's eyesight is different; one that's a bit hard to read or a bit low contrast might not be a problem for someone else. And of course not every skin can be "perfect" (in some undefined sense) and it shouldn't be a goal either, it's not a problem if some skins don't have the highest contrast all throughout. But the cases shown in zyv's screenshots (and there are many more of them) seem to be quite significant problems for me.

And this is after a round of contrast improvement; suggesting to me that probably you have a better eyesight, and/or use a larger/bolder font than most people, thereby this being less important of a factor for you.

Many of your new skins have the same (or very similar) pale reddish-pinkish color in dialog titles and hotkeys, even though these skins have quite different overall color schemes, with this color not really being a good match. I'm wondering if this is also an oversight; or is it deliberate design choice?

Everyone has different taste, it would be pointless to discuss which skins are nicer and which are uglier. Globally, I quite like the overall looks of your skins (especially "tokyo night" has a truly interesting special vibe to me). But, somewhat objectively, I think there are at least two measures of a good skin: overall consistency and color harmony (where those pale reddish-pinkish dialog title colors in many of these skins don't really work for me), and nice readable contrast (where unfortunately all these skins have notable problems).

We don't need dozens of skins. We don't necessarily need 11 new ones. I'd much rather have just a few new ones that are meticulously crafted and tested.

(See also the skin viewer/editor feature idea MidnightCommander/skins#18.)

@egmontkob
Copy link
Contributor

"catppuccin" is the name of an existing project, a careful selection of colors with exact RGB codes posted on their homepage. If you use use the same name for your theme then it should really build from those exact colors (for which you'd need true color mode).

This might apply to some other skins as well, I haven't looked up all their names.

@egmontkob
Copy link
Contributor

One more comment, a wish not just for you but also for every future skin author :)

I'd really love to see more skins using underline for the hotkey, rather than a separate color.

This is the conventional way of denoting the hotkey in graphical applications. Using a different color was a necessity with VGA-like screens that didn't support underline.

Reading a label with a single differently colored letter somewhere within can be significantly harder than reading the same label painted in a single color, especially if the hotkey has a notably different brightness (such as e.g. in catppuccin-latte, and many of your skins that use the aforementioned pink-ish color here next to black for the rest of the text).

Also I find it an unnecessary visual clutter, unreasonably too many colors. Not having a different color for the hotkey provides a more relaxing, calming visual look to me.

(Story time: When my old beloved OnePlus X phone died, I wanted to stay loyal to brand. But all their new phones came with software where they decided that on the lock screen, showing the digital clock, every digit "1" would be painted in red. It's a branding thing for them, allegedly you can't turn it off. Search for images of "oneplus lock screen clock" and you'll see. I hated it so much that it was on its own literally a deal breaker for me and I went with another brand.)

I find changing the color of one letter in a word generally bad for readability and bad for visual beauty. Exceptions include if it's a technical necessity (like 16-color palettes designed to also work in the console), or part of a well-designed brand identity (e.g. nutella).

I'd appreciate if you considered adjusting at least some of your skins according to this.

egmontkob pushed a commit to rafaelvzago/mc that referenced this pull request Nov 29, 2025
…r mc

Add contemporary color schemes including Catppuccin (latte/mocha),
Everforest, Gruvbox, Kanagawa, Nord, Rose Pine, Tokyo Night, and
others. Update Makefile.am to include new skin files in distribution.

Signed-off-by: Rafael Zago <rafaelvzago@gmail.com>
Signed-off-by: Yury V. Zaytsev <yury@shurup.com>
@egmontkob
Copy link
Contributor

Rebased your changes on top of color handling and line drawing improvements (e.g. true colors and double lines now supported with ncurses build).

Added two new keywords per skin, according to #3160 / PR #4907.

…r mc

Add contemporary color schemes including Catppuccin (latte/mocha),
Everforest, Gruvbox, Kanagawa, Nord, Rose Pine, Tokyo Night, and
others. Update Makefile.am to include new skin files in distribution.

Signed-off-by: Rafael Zago <rafaelvzago@gmail.com>
Signed-off-by: Yury V. Zaytsev <yury@shurup.com>
@egmontkob
Copy link
Contributor

Rebased to go on top of #4931 / PR #4932.

Updated the skins to add the new keywords introduced there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: skin Theming support and skin files prio: medium Has the potential to affect progress

Development

Successfully merging this pull request may close these issues.

4 participants