summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/Main.hs19
-rw-r--r--app/foobar.cabal1
-rw-r--r--flake.nix1
-rw-r--r--lib/dbus/meson.build37
-rw-r--r--lib/meson.build40
-rw-r--r--lib/res/icons/README.md (renamed from res/icons/README.md)0
-rw-r--r--lib/res/icons/fluent-battery-0-symbolic.svg (renamed from res/icons/fluent-battery-0-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-battery-1-symbolic.svg (renamed from res/icons/fluent-battery-1-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-battery-10-symbolic.svg (renamed from res/icons/fluent-battery-10-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-battery-2-symbolic.svg (renamed from res/icons/fluent-battery-2-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-battery-3-symbolic.svg (renamed from res/icons/fluent-battery-3-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-battery-4-symbolic.svg (renamed from res/icons/fluent-battery-4-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-battery-5-symbolic.svg (renamed from res/icons/fluent-battery-5-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-battery-6-symbolic.svg (renamed from res/icons/fluent-battery-6-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-battery-7-symbolic.svg (renamed from res/icons/fluent-battery-7-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-battery-8-symbolic.svg (renamed from res/icons/fluent-battery-8-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-battery-9-symbolic.svg (renamed from res/icons/fluent-battery-9-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-battery-charge-symbolic.svg (renamed from res/icons/fluent-battery-charge-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-bluetooth-connected-symbolic.svg (renamed from res/icons/fluent-bluetooth-connected-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-bluetooth-off-symbolic.svg (renamed from res/icons/fluent-bluetooth-off-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-bluetooth-symbolic.svg (renamed from res/icons/fluent-bluetooth-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-brightness-high-symbolic.svg (renamed from res/icons/fluent-brightness-high-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-brightness-low-symbolic.svg (renamed from res/icons/fluent-brightness-low-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-calculator-symbolic.svg (renamed from res/icons/fluent-calculator-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-checkmark-circle-symbolic.svg (renamed from res/icons/fluent-checkmark-circle-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-checkmark-symbolic.svg (renamed from res/icons/fluent-checkmark-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-chevron-right-symbolic.svg (renamed from res/icons/fluent-chevron-right-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-dismiss-symbolic.svg (renamed from res/icons/fluent-dismiss-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-grid-dots-symbolic.svg (renamed from res/icons/fluent-grid-dots-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-microphone-symbolic.svg (renamed from res/icons/fluent-microphone-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-more-circle-symbolic.svg (renamed from res/icons/fluent-more-circle-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-number-circle-1-symbolic.svg (renamed from res/icons/fluent-number-circle-1-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-number-circle-2-symbolic.svg (renamed from res/icons/fluent-number-circle-2-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-number-circle-3-symbolic.svg (renamed from res/icons/fluent-number-circle-3-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-number-circle-4-symbolic.svg (renamed from res/icons/fluent-number-circle-4-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-number-circle-5-symbolic.svg (renamed from res/icons/fluent-number-circle-5-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-number-circle-6-symbolic.svg (renamed from res/icons/fluent-number-circle-6-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-number-circle-7-symbolic.svg (renamed from res/icons/fluent-number-circle-7-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-number-circle-8-symbolic.svg (renamed from res/icons/fluent-number-circle-8-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-number-circle-9-symbolic.svg (renamed from res/icons/fluent-number-circle-9-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-plug-connected-symbolic.svg (renamed from res/icons/fluent-plug-connected-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-search-symbolic.svg (renamed from res/icons/fluent-search-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-speaker-0-symbolic.svg (renamed from res/icons/fluent-speaker-0-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-speaker-1-symbolic.svg (renamed from res/icons/fluent-speaker-1-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-speaker-2-symbolic.svg (renamed from res/icons/fluent-speaker-2-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-speaker-mute-symbolic.svg (renamed from res/icons/fluent-speaker-mute-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-speaker-off-symbolic.svg (renamed from res/icons/fluent-speaker-off-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-virtual-network-symbolic.svg (renamed from res/icons/fluent-virtual-network-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-wifi-1-symbolic.svg (renamed from res/icons/fluent-wifi-1-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-wifi-2-symbolic.svg (renamed from res/icons/fluent-wifi-2-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-wifi-3-symbolic.svg (renamed from res/icons/fluent-wifi-3-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-wifi-4-symbolic.svg (renamed from res/icons/fluent-wifi-4-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-wifi-off-symbolic.svg (renamed from res/icons/fluent-wifi-off-symbolic.svg)0
-rw-r--r--lib/res/icons/fluent-wifi-warning-symbolic.svg (renamed from res/icons/fluent-wifi-warning-symbolic.svg)0
-rw-r--r--lib/res/icons/icons.gresource.xml (renamed from res/icons/icons.gresource.xml)0
-rw-r--r--lib/res/icons/meson.build (renamed from res/icons/meson.build)3
-rw-r--r--lib/res/meson.build4
-rw-r--r--lib/res/styles/_common.scss (renamed from res/styles/_common.scss)0
-rw-r--r--lib/res/styles/default.scss (renamed from res/styles/default.scss)0
-rw-r--r--lib/res/styles/meson.build (renamed from res/styles/meson.build)3
-rw-r--r--lib/res/styles/monokai-pro.scss (renamed from res/styles/monokai-pro.scss)0
-rw-r--r--lib/res/styles/partials/_base.scss (renamed from res/styles/partials/_base.scss)0
-rw-r--r--lib/res/styles/partials/_control-center.scss (renamed from res/styles/partials/_control-center.scss)0
-rw-r--r--lib/res/styles/partials/_launcher.scss (renamed from res/styles/partials/_launcher.scss)0
-rw-r--r--lib/res/styles/partials/_notification.scss (renamed from res/styles/partials/_notification.scss)0
-rw-r--r--lib/res/styles/partials/_panel.scss (renamed from res/styles/partials/_panel.scss)0
-rw-r--r--lib/res/styles/styles.gresource.xml (renamed from res/styles/styles.gresource.xml)0
-rw-r--r--lib/res/styles/teatime.scss (renamed from res/styles/teatime.scss)0
-rw-r--r--res/meson.build2
69 files changed, 67 insertions, 43 deletions
diff --git a/app/Main.hs b/app/Main.hs
index 609b53d..25ad7d4 100644
--- a/app/Main.hs
+++ b/app/Main.hs
@@ -4,13 +4,23 @@
{-# LANGUAGE ImplicitParams #-}
import Control.Monad (void)
+import Control.Exception (bracket_)
+import Data.Maybe (fromJust)
import Data.GI.Base
+
import qualified GI.Gtk as Gtk
+import qualified GI.Gdk as Gdk
import qualified GI.Gio as Gio
import qualified GI.Foobar as FB
activate :: Gtk.Application -> IO ()
activate app = do
+ provider <- new Gtk.CssProvider []
+ provider.loadFromResource "/foobar/styles/default.css"
+ disp <- Gdk.displayGetDefault
+ Gtk.styleContextAddProviderForDisplay (fromJust disp)
+ provider
+ (fromIntegral Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
button <- new Gtk.Button [ #label := "Hello, world!" ]
window <- new Gtk.ApplicationWindow [ #application := app
, #title := "Test"
@@ -24,6 +34,9 @@ activate app = do
main :: IO ()
main = do
- app <- new Gtk.Application [ #applicationId := "com.github.hannesschulze.foobar-hs"
- , On #activate (activate ?self) ]
- void $ app.run Nothing
+ bracket_
+ (do FB.stylesRegisterResource; FB.iconsRegisterResource)
+ (do FB.stylesUnregisterResource; FB.iconsUnregisterResource) $
+ do app <- new Gtk.Application [ #applicationId := "com.github.hannesschulze.foobar-hs"
+ , On #activate (activate ?self) ]
+ void $ app.run Nothing
diff --git a/app/foobar.cabal b/app/foobar.cabal
index 7dcebc6..bee0858 100644
--- a/app/foobar.cabal
+++ b/app/foobar.cabal
@@ -15,5 +15,6 @@ executable foobar
haskell-gi-base,
gi-gio,
gi-gtk4,
+ gi-gdk4,
gi-foobar
default-language: Haskell2010
diff --git a/flake.nix b/flake.nix
index d9686c0..7825306 100644
--- a/flake.nix
+++ b/flake.nix
@@ -26,6 +26,7 @@
pkgs.meson
pkgs.ninja
pkgs.gobject-introspection
+ pkgs.sassc
];
hardeningDisable = [ "fortify" ];
};
diff --git a/lib/dbus/meson.build b/lib/dbus/meson.build
new file mode 100644
index 0000000..d199e7f
--- /dev/null
+++ b/lib/dbus/meson.build
@@ -0,0 +1,37 @@
+sources += gnome.gdbus_codegen(
+ 'server',
+ 'com.github.hannesschulze.foobar.xml',
+ namespace: 'Foobar',
+ annotations: [
+ ['com.github.hannesschulze.foobar.Server', 'org.gtk.GDBus.C.Name', 'Server'],
+ ],
+)
+
+sources += gnome.gdbus_codegen(
+ 'notifications',
+ 'org.freedesktop.Notifications.xml',
+ namespace: 'Foobar',
+ annotations: [
+ ['org.freedesktop.Notifications', 'org.gtk.GDBus.C.Name', 'Notifications'],
+ ],
+)
+
+sources += gnome.gdbus_codegen(
+ 'upower',
+ 'org.freedesktop.UPower.xml',
+ namespace: 'Foobar',
+ annotations: [
+ ['org.freedesktop.UPower.Device', 'org.gtk.GDBus.C.Name', 'UPowerDevice'],
+ ],
+)
+
+sources += gnome.gdbus_codegen(
+ 'bluez',
+ 'org.bluez.xml',
+ namespace: 'Foobar',
+ annotations: [
+ ['org.bluez.Adapter1', 'org.gtk.GDBus.C.Name', 'BluezAdapter'],
+ ['org.bluez.Device1', 'org.gtk.GDBus.C.Name', 'BluezDevice'],
+ ['org.bluez.AgentManager1', 'org.gtk.GDBus.C.Name', 'BluezAgentManager'],
+ ],
+)
diff --git a/lib/meson.build b/lib/meson.build
index 473ac62..ca07434 100644
--- a/lib/meson.build
+++ b/lib/meson.build
@@ -10,44 +10,8 @@ deps = [
]
sources = []
-
-sources += gnome.gdbus_codegen(
- 'server',
- 'dbus/com.github.hannesschulze.foobar.xml',
- namespace: 'Foobar',
- annotations: [
- ['com.github.hannesschulze.foobar.Server', 'org.gtk.GDBus.C.Name', 'Server'],
- ],
-)
-
-sources += gnome.gdbus_codegen(
- 'notifications',
- 'dbus/org.freedesktop.Notifications.xml',
- namespace: 'Foobar',
- annotations: [
- ['org.freedesktop.Notifications', 'org.gtk.GDBus.C.Name', 'Notifications'],
- ],
-)
-
-sources += gnome.gdbus_codegen(
- 'upower',
- 'dbus/org.freedesktop.UPower.xml',
- namespace: 'Foobar',
- annotations: [
- ['org.freedesktop.UPower.Device', 'org.gtk.GDBus.C.Name', 'UPowerDevice'],
- ],
-)
-
-sources += gnome.gdbus_codegen(
- 'bluez',
- 'dbus/org.bluez.xml',
- namespace: 'Foobar',
- annotations: [
- ['org.bluez.Adapter1', 'org.gtk.GDBus.C.Name', 'BluezAdapter'],
- ['org.bluez.Device1', 'org.gtk.GDBus.C.Name', 'BluezDevice'],
- ['org.bluez.AgentManager1', 'org.gtk.GDBus.C.Name', 'BluezAgentManager'],
- ],
-)
+subdir('dbus')
+subdir('res')
c_args = [
'-Wall',
diff --git a/res/icons/README.md b/lib/res/icons/README.md
index 72defae..72defae 100644
--- a/res/icons/README.md
+++ b/lib/res/icons/README.md
diff --git a/res/icons/fluent-battery-0-symbolic.svg b/lib/res/icons/fluent-battery-0-symbolic.svg
index 9bd2b77..9bd2b77 100644
--- a/res/icons/fluent-battery-0-symbolic.svg
+++ b/lib/res/icons/fluent-battery-0-symbolic.svg
diff --git a/res/icons/fluent-battery-1-symbolic.svg b/lib/res/icons/fluent-battery-1-symbolic.svg
index 46974a1..46974a1 100644
--- a/res/icons/fluent-battery-1-symbolic.svg
+++ b/lib/res/icons/fluent-battery-1-symbolic.svg
diff --git a/res/icons/fluent-battery-10-symbolic.svg b/lib/res/icons/fluent-battery-10-symbolic.svg
index 23bad06..23bad06 100644
--- a/res/icons/fluent-battery-10-symbolic.svg
+++ b/lib/res/icons/fluent-battery-10-symbolic.svg
diff --git a/res/icons/fluent-battery-2-symbolic.svg b/lib/res/icons/fluent-battery-2-symbolic.svg
index 194bebb..194bebb 100644
--- a/res/icons/fluent-battery-2-symbolic.svg
+++ b/lib/res/icons/fluent-battery-2-symbolic.svg
diff --git a/res/icons/fluent-battery-3-symbolic.svg b/lib/res/icons/fluent-battery-3-symbolic.svg
index e56f649..e56f649 100644
--- a/res/icons/fluent-battery-3-symbolic.svg
+++ b/lib/res/icons/fluent-battery-3-symbolic.svg
diff --git a/res/icons/fluent-battery-4-symbolic.svg b/lib/res/icons/fluent-battery-4-symbolic.svg
index 5ad3df5..5ad3df5 100644
--- a/res/icons/fluent-battery-4-symbolic.svg
+++ b/lib/res/icons/fluent-battery-4-symbolic.svg
diff --git a/res/icons/fluent-battery-5-symbolic.svg b/lib/res/icons/fluent-battery-5-symbolic.svg
index a0fb733..a0fb733 100644
--- a/res/icons/fluent-battery-5-symbolic.svg
+++ b/lib/res/icons/fluent-battery-5-symbolic.svg
diff --git a/res/icons/fluent-battery-6-symbolic.svg b/lib/res/icons/fluent-battery-6-symbolic.svg
index bb340c8..bb340c8 100644
--- a/res/icons/fluent-battery-6-symbolic.svg
+++ b/lib/res/icons/fluent-battery-6-symbolic.svg
diff --git a/res/icons/fluent-battery-7-symbolic.svg b/lib/res/icons/fluent-battery-7-symbolic.svg
index 60742ad..60742ad 100644
--- a/res/icons/fluent-battery-7-symbolic.svg
+++ b/lib/res/icons/fluent-battery-7-symbolic.svg
diff --git a/res/icons/fluent-battery-8-symbolic.svg b/lib/res/icons/fluent-battery-8-symbolic.svg
index e1c07dc..e1c07dc 100644
--- a/res/icons/fluent-battery-8-symbolic.svg
+++ b/lib/res/icons/fluent-battery-8-symbolic.svg
diff --git a/res/icons/fluent-battery-9-symbolic.svg b/lib/res/icons/fluent-battery-9-symbolic.svg
index a9ac134..a9ac134 100644
--- a/res/icons/fluent-battery-9-symbolic.svg
+++ b/lib/res/icons/fluent-battery-9-symbolic.svg
diff --git a/res/icons/fluent-battery-charge-symbolic.svg b/lib/res/icons/fluent-battery-charge-symbolic.svg
index ce3b731..ce3b731 100644
--- a/res/icons/fluent-battery-charge-symbolic.svg
+++ b/lib/res/icons/fluent-battery-charge-symbolic.svg
diff --git a/res/icons/fluent-bluetooth-connected-symbolic.svg b/lib/res/icons/fluent-bluetooth-connected-symbolic.svg
index 92c7b78..92c7b78 100644
--- a/res/icons/fluent-bluetooth-connected-symbolic.svg
+++ b/lib/res/icons/fluent-bluetooth-connected-symbolic.svg
diff --git a/res/icons/fluent-bluetooth-off-symbolic.svg b/lib/res/icons/fluent-bluetooth-off-symbolic.svg
index e70f964..e70f964 100644
--- a/res/icons/fluent-bluetooth-off-symbolic.svg
+++ b/lib/res/icons/fluent-bluetooth-off-symbolic.svg
diff --git a/res/icons/fluent-bluetooth-symbolic.svg b/lib/res/icons/fluent-bluetooth-symbolic.svg
index b802169..b802169 100644
--- a/res/icons/fluent-bluetooth-symbolic.svg
+++ b/lib/res/icons/fluent-bluetooth-symbolic.svg
diff --git a/res/icons/fluent-brightness-high-symbolic.svg b/lib/res/icons/fluent-brightness-high-symbolic.svg
index 9f1a403..9f1a403 100644
--- a/res/icons/fluent-brightness-high-symbolic.svg
+++ b/lib/res/icons/fluent-brightness-high-symbolic.svg
diff --git a/res/icons/fluent-brightness-low-symbolic.svg b/lib/res/icons/fluent-brightness-low-symbolic.svg
index 28d5cf9..28d5cf9 100644
--- a/res/icons/fluent-brightness-low-symbolic.svg
+++ b/lib/res/icons/fluent-brightness-low-symbolic.svg
diff --git a/res/icons/fluent-calculator-symbolic.svg b/lib/res/icons/fluent-calculator-symbolic.svg
index 21b9799..21b9799 100644
--- a/res/icons/fluent-calculator-symbolic.svg
+++ b/lib/res/icons/fluent-calculator-symbolic.svg
diff --git a/res/icons/fluent-checkmark-circle-symbolic.svg b/lib/res/icons/fluent-checkmark-circle-symbolic.svg
index 37e387a..37e387a 100644
--- a/res/icons/fluent-checkmark-circle-symbolic.svg
+++ b/lib/res/icons/fluent-checkmark-circle-symbolic.svg
diff --git a/res/icons/fluent-checkmark-symbolic.svg b/lib/res/icons/fluent-checkmark-symbolic.svg
index 3947755..3947755 100644
--- a/res/icons/fluent-checkmark-symbolic.svg
+++ b/lib/res/icons/fluent-checkmark-symbolic.svg
diff --git a/res/icons/fluent-chevron-right-symbolic.svg b/lib/res/icons/fluent-chevron-right-symbolic.svg
index 2267806..2267806 100644
--- a/res/icons/fluent-chevron-right-symbolic.svg
+++ b/lib/res/icons/fluent-chevron-right-symbolic.svg
diff --git a/res/icons/fluent-dismiss-symbolic.svg b/lib/res/icons/fluent-dismiss-symbolic.svg
index ea67891..ea67891 100644
--- a/res/icons/fluent-dismiss-symbolic.svg
+++ b/lib/res/icons/fluent-dismiss-symbolic.svg
diff --git a/res/icons/fluent-grid-dots-symbolic.svg b/lib/res/icons/fluent-grid-dots-symbolic.svg
index 9f49947..9f49947 100644
--- a/res/icons/fluent-grid-dots-symbolic.svg
+++ b/lib/res/icons/fluent-grid-dots-symbolic.svg
diff --git a/res/icons/fluent-microphone-symbolic.svg b/lib/res/icons/fluent-microphone-symbolic.svg
index 97ea44a..97ea44a 100644
--- a/res/icons/fluent-microphone-symbolic.svg
+++ b/lib/res/icons/fluent-microphone-symbolic.svg
diff --git a/res/icons/fluent-more-circle-symbolic.svg b/lib/res/icons/fluent-more-circle-symbolic.svg
index 682b8a5..682b8a5 100644
--- a/res/icons/fluent-more-circle-symbolic.svg
+++ b/lib/res/icons/fluent-more-circle-symbolic.svg
diff --git a/res/icons/fluent-number-circle-1-symbolic.svg b/lib/res/icons/fluent-number-circle-1-symbolic.svg
index 880e506..880e506 100644
--- a/res/icons/fluent-number-circle-1-symbolic.svg
+++ b/lib/res/icons/fluent-number-circle-1-symbolic.svg
diff --git a/res/icons/fluent-number-circle-2-symbolic.svg b/lib/res/icons/fluent-number-circle-2-symbolic.svg
index 510a060..510a060 100644
--- a/res/icons/fluent-number-circle-2-symbolic.svg
+++ b/lib/res/icons/fluent-number-circle-2-symbolic.svg
diff --git a/res/icons/fluent-number-circle-3-symbolic.svg b/lib/res/icons/fluent-number-circle-3-symbolic.svg
index 7b72c32..7b72c32 100644
--- a/res/icons/fluent-number-circle-3-symbolic.svg
+++ b/lib/res/icons/fluent-number-circle-3-symbolic.svg
diff --git a/res/icons/fluent-number-circle-4-symbolic.svg b/lib/res/icons/fluent-number-circle-4-symbolic.svg
index 6c4e8a1..6c4e8a1 100644
--- a/res/icons/fluent-number-circle-4-symbolic.svg
+++ b/lib/res/icons/fluent-number-circle-4-symbolic.svg
diff --git a/res/icons/fluent-number-circle-5-symbolic.svg b/lib/res/icons/fluent-number-circle-5-symbolic.svg
index e279e23..e279e23 100644
--- a/res/icons/fluent-number-circle-5-symbolic.svg
+++ b/lib/res/icons/fluent-number-circle-5-symbolic.svg
diff --git a/res/icons/fluent-number-circle-6-symbolic.svg b/lib/res/icons/fluent-number-circle-6-symbolic.svg
index c5ede0d..c5ede0d 100644
--- a/res/icons/fluent-number-circle-6-symbolic.svg
+++ b/lib/res/icons/fluent-number-circle-6-symbolic.svg
diff --git a/res/icons/fluent-number-circle-7-symbolic.svg b/lib/res/icons/fluent-number-circle-7-symbolic.svg
index 7ccb41a..7ccb41a 100644
--- a/res/icons/fluent-number-circle-7-symbolic.svg
+++ b/lib/res/icons/fluent-number-circle-7-symbolic.svg
diff --git a/res/icons/fluent-number-circle-8-symbolic.svg b/lib/res/icons/fluent-number-circle-8-symbolic.svg
index 5b4d3f4..5b4d3f4 100644
--- a/res/icons/fluent-number-circle-8-symbolic.svg
+++ b/lib/res/icons/fluent-number-circle-8-symbolic.svg
diff --git a/res/icons/fluent-number-circle-9-symbolic.svg b/lib/res/icons/fluent-number-circle-9-symbolic.svg
index 225e7d9..225e7d9 100644
--- a/res/icons/fluent-number-circle-9-symbolic.svg
+++ b/lib/res/icons/fluent-number-circle-9-symbolic.svg
diff --git a/res/icons/fluent-plug-connected-symbolic.svg b/lib/res/icons/fluent-plug-connected-symbolic.svg
index cfdc4a0..cfdc4a0 100644
--- a/res/icons/fluent-plug-connected-symbolic.svg
+++ b/lib/res/icons/fluent-plug-connected-symbolic.svg
diff --git a/res/icons/fluent-search-symbolic.svg b/lib/res/icons/fluent-search-symbolic.svg
index fee42f8..fee42f8 100644
--- a/res/icons/fluent-search-symbolic.svg
+++ b/lib/res/icons/fluent-search-symbolic.svg
diff --git a/res/icons/fluent-speaker-0-symbolic.svg b/lib/res/icons/fluent-speaker-0-symbolic.svg
index 55a8ae4..55a8ae4 100644
--- a/res/icons/fluent-speaker-0-symbolic.svg
+++ b/lib/res/icons/fluent-speaker-0-symbolic.svg
diff --git a/res/icons/fluent-speaker-1-symbolic.svg b/lib/res/icons/fluent-speaker-1-symbolic.svg
index 5761170..5761170 100644
--- a/res/icons/fluent-speaker-1-symbolic.svg
+++ b/lib/res/icons/fluent-speaker-1-symbolic.svg
diff --git a/res/icons/fluent-speaker-2-symbolic.svg b/lib/res/icons/fluent-speaker-2-symbolic.svg
index af1adde..af1adde 100644
--- a/res/icons/fluent-speaker-2-symbolic.svg
+++ b/lib/res/icons/fluent-speaker-2-symbolic.svg
diff --git a/res/icons/fluent-speaker-mute-symbolic.svg b/lib/res/icons/fluent-speaker-mute-symbolic.svg
index d8ae177..d8ae177 100644
--- a/res/icons/fluent-speaker-mute-symbolic.svg
+++ b/lib/res/icons/fluent-speaker-mute-symbolic.svg
diff --git a/res/icons/fluent-speaker-off-symbolic.svg b/lib/res/icons/fluent-speaker-off-symbolic.svg
index 04d0435..04d0435 100644
--- a/res/icons/fluent-speaker-off-symbolic.svg
+++ b/lib/res/icons/fluent-speaker-off-symbolic.svg
diff --git a/res/icons/fluent-virtual-network-symbolic.svg b/lib/res/icons/fluent-virtual-network-symbolic.svg
index 8e29745..8e29745 100644
--- a/res/icons/fluent-virtual-network-symbolic.svg
+++ b/lib/res/icons/fluent-virtual-network-symbolic.svg
diff --git a/res/icons/fluent-wifi-1-symbolic.svg b/lib/res/icons/fluent-wifi-1-symbolic.svg
index f5301a1..f5301a1 100644
--- a/res/icons/fluent-wifi-1-symbolic.svg
+++ b/lib/res/icons/fluent-wifi-1-symbolic.svg
diff --git a/res/icons/fluent-wifi-2-symbolic.svg b/lib/res/icons/fluent-wifi-2-symbolic.svg
index 57c5d66..57c5d66 100644
--- a/res/icons/fluent-wifi-2-symbolic.svg
+++ b/lib/res/icons/fluent-wifi-2-symbolic.svg
diff --git a/res/icons/fluent-wifi-3-symbolic.svg b/lib/res/icons/fluent-wifi-3-symbolic.svg
index 4fa133c..4fa133c 100644
--- a/res/icons/fluent-wifi-3-symbolic.svg
+++ b/lib/res/icons/fluent-wifi-3-symbolic.svg
diff --git a/res/icons/fluent-wifi-4-symbolic.svg b/lib/res/icons/fluent-wifi-4-symbolic.svg
index c87d102..c87d102 100644
--- a/res/icons/fluent-wifi-4-symbolic.svg
+++ b/lib/res/icons/fluent-wifi-4-symbolic.svg
diff --git a/res/icons/fluent-wifi-off-symbolic.svg b/lib/res/icons/fluent-wifi-off-symbolic.svg
index ac8fe81..ac8fe81 100644
--- a/res/icons/fluent-wifi-off-symbolic.svg
+++ b/lib/res/icons/fluent-wifi-off-symbolic.svg
diff --git a/res/icons/fluent-wifi-warning-symbolic.svg b/lib/res/icons/fluent-wifi-warning-symbolic.svg
index 2d5e5cd..2d5e5cd 100644
--- a/res/icons/fluent-wifi-warning-symbolic.svg
+++ b/lib/res/icons/fluent-wifi-warning-symbolic.svg
diff --git a/res/icons/icons.gresource.xml b/lib/res/icons/icons.gresource.xml
index a5061ca..a5061ca 100644
--- a/res/icons/icons.gresource.xml
+++ b/lib/res/icons/icons.gresource.xml
diff --git a/res/icons/meson.build b/lib/res/icons/meson.build
index 554b9f5..2ae17e8 100644
--- a/res/icons/meson.build
+++ b/lib/res/icons/meson.build
@@ -6,4 +6,7 @@ icons_resource = gnome.compile_resources(
meson.current_source_dir(),
],
dependencies: style_targets,
+ c_name: 'foobar_icons',
+ export: true,
+ extra_args: [ '--manual-register' ],
)
diff --git a/lib/res/meson.build b/lib/res/meson.build
new file mode 100644
index 0000000..955542d
--- /dev/null
+++ b/lib/res/meson.build
@@ -0,0 +1,4 @@
+subdir('styles')
+subdir('icons')
+
+sources += [styles_resource, icons_resource]
diff --git a/res/styles/_common.scss b/lib/res/styles/_common.scss
index e9c3c93..e9c3c93 100644
--- a/res/styles/_common.scss
+++ b/lib/res/styles/_common.scss
diff --git a/res/styles/default.scss b/lib/res/styles/default.scss
index 5252cd1..5252cd1 100644
--- a/res/styles/default.scss
+++ b/lib/res/styles/default.scss
diff --git a/res/styles/meson.build b/lib/res/styles/meson.build
index fbc904c..ea1fb2f 100644
--- a/res/styles/meson.build
+++ b/lib/res/styles/meson.build
@@ -29,4 +29,7 @@ styles_resource = gnome.compile_resources(
meson.current_source_dir(),
],
dependencies: style_targets,
+ c_name: 'foobar_styles',
+ export: true,
+ extra_args: [ '--manual-register' ],
)
diff --git a/res/styles/monokai-pro.scss b/lib/res/styles/monokai-pro.scss
index 5cf35b8..5cf35b8 100644
--- a/res/styles/monokai-pro.scss
+++ b/lib/res/styles/monokai-pro.scss
diff --git a/res/styles/partials/_base.scss b/lib/res/styles/partials/_base.scss
index b64c475..b64c475 100644
--- a/res/styles/partials/_base.scss
+++ b/lib/res/styles/partials/_base.scss
diff --git a/res/styles/partials/_control-center.scss b/lib/res/styles/partials/_control-center.scss
index e91a105..e91a105 100644
--- a/res/styles/partials/_control-center.scss
+++ b/lib/res/styles/partials/_control-center.scss
diff --git a/res/styles/partials/_launcher.scss b/lib/res/styles/partials/_launcher.scss
index 55d6bd0..55d6bd0 100644
--- a/res/styles/partials/_launcher.scss
+++ b/lib/res/styles/partials/_launcher.scss
diff --git a/res/styles/partials/_notification.scss b/lib/res/styles/partials/_notification.scss
index a531b87..a531b87 100644
--- a/res/styles/partials/_notification.scss
+++ b/lib/res/styles/partials/_notification.scss
diff --git a/res/styles/partials/_panel.scss b/lib/res/styles/partials/_panel.scss
index ae9ffdf..ae9ffdf 100644
--- a/res/styles/partials/_panel.scss
+++ b/lib/res/styles/partials/_panel.scss
diff --git a/res/styles/styles.gresource.xml b/lib/res/styles/styles.gresource.xml
index e708a1d..e708a1d 100644
--- a/res/styles/styles.gresource.xml
+++ b/lib/res/styles/styles.gresource.xml
diff --git a/res/styles/teatime.scss b/lib/res/styles/teatime.scss
index 6889f9b..6889f9b 100644
--- a/res/styles/teatime.scss
+++ b/lib/res/styles/teatime.scss
diff --git a/res/meson.build b/res/meson.build
deleted file mode 100644
index d14a3a2..0000000
--- a/res/meson.build
+++ /dev/null
@@ -1,2 +0,0 @@
-subdir('styles')
-subdir('icons')