Dark Mode - maforget/ComicRackCE GitHub Wiki

Dark Mode

How to enable it?

There are currently 2 way to enable dark mode. In the future it may be added to the Preferences.

Caution

Only use 1 methods, using both can invalidate the first.


ComicRack.ini

Edit the ComicRack.ini file and locate the following line:

; EXPERIMENTAL: Uncomment to run with a dark UI. This is untested, incomplete and will void your non-existent warranty. (Same as -dark)
; UseDarkMode = true

Remove the ; in front of the UseDarkMode and then save the file.

Tip

See usages about the ComicRack.ini file and how to persist the changes between updates at the top of said file and in the wiki


Editing the Shortcut

Locate the ComicRack Community Edition shortcut and right-click → Properties. At the end of the shortcut add -dark and click Ok/Apply.

Caution

If you've also modified the ComicRack.ini file, using both will invalidate each other. Setting are first set from the ComicRack.ini first and upon parsing the command line switches it just inverses the value so turning it back off.

Warning

Updating the program will probably replace the shortcut created on your desktop, so if you want a permanent solution you should go with the above option.

Note

Contrary to the above CAUTION, setting the shortcut this way doesn't inverse the value like using the switch.

Plugin support

Plugins have support for theming. To apply them all you need to do is call ComicRack.Theme.ApplyTheme(control) passing either the control to be themed or the form itself in place of the control parameter. You can ensure that theming is supported by checking that the ComicRack version is at least 0.9.182. You can refer to built-in scripts for an example: Autonumber.py, NewComics.py & SearchAndReplace.py.

Example:

# Used inside the form itself
def ThemeMe(self):
    if ComicRack.App.ProductVersion >= '0.9.182':
            ComicRack.Theme.ApplyTheme(self)

# Usage
self.ThemeMe()

Alternative:

def ThemeMe(control):
    if ComicRack.App.ProductVersion >= '0.9.182':
            ComicRack.Theme.ApplyTheme(control)

# Usage
ThemeMe(control)

You can also provide dark mode icons and they will be used if available when in dark mode. This only applies to command icons (the ones you can define using #@Image). All you need to do is name that alternative icon the same as your regular, but prefixing it with Dark. They will be automatically picked up and don't require modifying your scripts. See the Scripts folder for the Renumber.png/DarkRenumber.png icons as an example.

Note

Theming is done via different way including calls to Windows API, hooking up paint events and applying custom color themes for various types of controls. Normally unmodified plugins should still remain in light mode until modified. But some OS calls for ComicRack itself seems to bleed though to the plugins. For now the only known instance is Library Organizer 2.1.13. That will have a dark button when dark mode is enabled in ComicRack.

Known Issue - Library Organizer

Screenshots

Thumbnail View Tiles View Info Panel Stacks Detail View Pages Reader Info Dialog Plugin Support - Amazon Plugin Support - Bedetheque Plugin Support - Library Organizer
⚠️ **GitHub.com Fallback** ⚠️