diff --git a/bread-theme/src/gtk.rs b/bread-theme/src/gtk.rs
index e4ffeda..007f140 100644
--- a/bread-theme/src/gtk.rs
+++ b/bread-theme/src/gtk.rs
@@ -1,12 +1,14 @@
use gtk4::gdk::prelude::*;
use gtk4::gio;
+use gtk4::glib;
use gtk4::glib::object::ObjectType;
use gtk4::prelude::*;
use gtk4::CssProvider;
-use std::cell::RefCell;
+use std::cell::{Cell, RefCell};
use std::collections::{HashMap, HashSet};
use std::path::Path;
use std::rc::Rc;
+use std::thread::LocalKey;
use crate::Palette;
@@ -21,12 +23,58 @@ const BIND_PRIORITY: u32 = gtk4::STYLE_PROVIDER_PRIORITY_USER - 10;
thread_local! {
static SHARED_PROVIDER: RefCell