diff --git a/README.md b/README.md index a1fc588..cba750f 100644 --- a/README.md +++ b/README.md @@ -17,8 +17,7 @@ pip install sv-ttk ## Usage [![Documentation](https://img.shields.io/badge/-documentation-%23c368c4)](https://github.com/rdbende/Sun-Valley-ttk-theme/wiki/Usage-with-Python) -> **Note:** -> +> [!NOTE] > The theme will only be applied to themable (`tkinter.ttk`) widgets, and not with the regular Tkinter widgets, they only benefit from the colorscheme. For detailed documentation, visit the [wiki page](https://github.com/rdbende/Sun-Valley-ttk-theme/wiki/Usage-with-Python). @@ -41,6 +40,67 @@ root.mainloop() ``` +## Tips and tricks +Our intention is to keep the `sv-ttk` package as simple as possible, while making it easy to integrate with other libraries. + +### Set the theme to the system theme +You can use the [darkdetect](https://github.com/albertosottile/darkdetect) package to detect the system color scheme. Here's an example: + +```python +import darkdetect + +sv_ttk.set_theme(darkdetect.theme()) +``` + +It's only a matter of an extra import and passing the result of `darkdetect.theme()` to `sv_ttk.set_theme()`. It's that easy! + + +### Dark mode title bar on Windows +The Sun Valley theme doesn't change the title bar color on Windows when the theme is set to dark. You can use [pywinstyles](https://github.com/Akascape/py-window-styles) to achieve this. Here's an example: + +```python +import pywinstyles, sys + +def apply_theme_to_titlebar(root): + version = sys.getwindowsversion() + + if version.major == 10 and version.build >= 22000: + # Set the title bar color to the background color on Windows 11 for better appearance + pywinstyles.change_header_color(root, "#1c1c1c" if sv_ttk.get_theme() == "dark" else "#fafafa") + elif version.major == 10: + pywinstyles.apply_style(root, "dark" sv_ttk.get_theme() == "dark" else "normal") + + # A hacky way to update the title bar's color on Windows 10 (it doesn't update instantly like on Windows 11) + root.wm_attributes("-alpha", 0.99) + root.wm_attributes("-alpha", 1) + +# Example usage (replace `root` with the reference to your main/Toplevel window) +apply_theme_to_titlebar(root) +``` + +Note that on Windows 10, due to its limitations, you can only set the title bar's color to black for dark mode and white for light mode. On Windows 11 the title bar can be set to any color. + + +> [!WARNING] +> The `apply_theme_to_titlebar` works on Windows only, so you should check whether the platform is Windows before calling this function. + + +Here's how the windows look after calling `set_title_bar_color()`: + +
+ Screenshots +

+ Windows 10 +
+ +

+ Windows 11 +
+ +

+
+ + ## Wanna see more? Check out my other ttk themes! - The [Azure ttk theme](https://github.com/rdbende/Azure-ttk-theme) diff --git a/assets/win10.png b/assets/win10.png new file mode 100644 index 0000000..d60c895 Binary files /dev/null and b/assets/win10.png differ diff --git a/assets/win11.png b/assets/win11.png new file mode 100644 index 0000000..527f8b9 Binary files /dev/null and b/assets/win11.png differ