diff --git a/.gitmodules b/.gitmodules
index 367f7f22..fdaf8abe 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -2,3 +2,6 @@
path = iced
url = https://github.com/pop-os/iced.git
branch = master
+[submodule "icon-theme"]
+ path = cosmic-icons
+ url = https://github.com/pop-os/cosmic-icons
diff --git a/Cargo.toml b/Cargo.toml
index 430af23d..4d742126 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -107,6 +107,8 @@ cctk = { git = "https://github.com/pop-os/cosmic-protocols", package = "cosmic-c
chrono = "0.4.42"
cosmic-config = { path = "cosmic-config" }
cosmic-settings-config = { git = "https://github.com/pop-os/cosmic-settings-daemon", optional = true }
+# Compile-time generation of code
+crabtime = "1.1.4"
# Internationalization
i18n-embed = { version = "0.16.0", features = [
"fluent-system",
@@ -152,6 +154,10 @@ freedesktop-icons = { package = "cosmic-freedesktop-icons", git = "https://githu
freedesktop-desktop-entry = { version = "0.7.14", optional = true }
shlex = { version = "1.3.0", optional = true }
+[target.'cfg(not(unix))'.dependencies]
+# Used to embed bundled icons for non-unix platforms.
+phf = { version = "0.13.1", features = ["macros"] }
+
[dependencies.cosmic-theme]
path = "cosmic-theme"
@@ -222,4 +228,3 @@ dirs = "6.0.0"
[dev-dependencies]
tempfile = "3.13.0"
-
diff --git a/cosmic-icons b/cosmic-icons
new file mode 160000
index 00000000..70b07582
--- /dev/null
+++ b/cosmic-icons
@@ -0,0 +1 @@
+Subproject commit 70b07582e24ec2114672256b9657ca80670bca8a
diff --git a/res/icons/close-menu-symbolic.svg b/res/icons/close-menu-symbolic.svg
deleted file mode 100644
index caf00d31..00000000
--- a/res/icons/close-menu-symbolic.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/res/icons/go-next-symbolic.svg b/res/icons/go-next-symbolic.svg
deleted file mode 100644
index 3aed3717..00000000
--- a/res/icons/go-next-symbolic.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/res/icons/go-previous-symbolic.svg b/res/icons/go-previous-symbolic.svg
deleted file mode 100644
index 4957cffd..00000000
--- a/res/icons/go-previous-symbolic.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/res/icons/list-add-symbolic.svg b/res/icons/list-add-symbolic.svg
deleted file mode 100644
index 59b2fb03..00000000
--- a/res/icons/list-add-symbolic.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/res/icons/list-remove-symbolic.svg b/res/icons/list-remove-symbolic.svg
deleted file mode 100644
index 5b9ded7c..00000000
--- a/res/icons/list-remove-symbolic.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/res/icons/navbar-closed-symbolic.svg b/res/icons/navbar-closed-symbolic.svg
deleted file mode 100644
index 46f35e16..00000000
--- a/res/icons/navbar-closed-symbolic.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
diff --git a/res/icons/navbar-open-symbolic.svg b/res/icons/navbar-open-symbolic.svg
deleted file mode 100644
index c1f32161..00000000
--- a/res/icons/navbar-open-symbolic.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
diff --git a/res/icons/open-menu-symbolic.svg b/res/icons/open-menu-symbolic.svg
deleted file mode 100644
index efae2a2f..00000000
--- a/res/icons/open-menu-symbolic.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/res/icons/window-close-symbolic.svg b/res/icons/window-close-symbolic.svg
deleted file mode 100644
index 25336395..00000000
--- a/res/icons/window-close-symbolic.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/res/icons/window-maximize-symbolic.svg b/res/icons/window-maximize-symbolic.svg
deleted file mode 100644
index ef66334e..00000000
--- a/res/icons/window-maximize-symbolic.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/res/icons/window-minimize-symbolic.svg b/res/icons/window-minimize-symbolic.svg
deleted file mode 100644
index fdcf99b4..00000000
--- a/res/icons/window-minimize-symbolic.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/res/icons/window-restore-symbolic.svg b/res/icons/window-restore-symbolic.svg
deleted file mode 100644
index bcb506f5..00000000
--- a/res/icons/window-restore-symbolic.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/widget/button/icon.rs b/src/widget/button/icon.rs
index 0bb3c84d..754bc433 100644
--- a/src/widget/button/icon.rs
+++ b/src/widget/button/icon.rs
@@ -132,10 +132,6 @@ impl<'a, Message: Clone + 'static> From