diff --git a/Cargo.toml b/Cargo.toml
index 618ecea50cc35afad827751ca44823091849a813..c777faeadb6e4489427842db0b6fded17b56f5ca 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -10,6 +10,9 @@ keywords = ["bevy"]
 
 exclude = ["assets/*"]
 
+[features]
+multicam = []
+
 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
 
 # Enable max optimizations for dependencies, but not for our code:
diff --git a/src/cursor.rs b/src/cursor.rs
index 037d88f04d689deefc9b168c999aa16c284318b0..e0485b48e3c43edb3f805a4e00837c17044fbf5f 100644
--- a/src/cursor.rs
+++ b/src/cursor.rs
@@ -2,6 +2,9 @@ use bevy::{input::mouse::MouseMotion, prelude::*, window::PrimaryWindow};
 
 use crate::{CosmicEditor, CosmicTextChanged};
 
+#[cfg(feature = "multicam")]
+use crate::CosmicPrimaryCamera;
+
 /// For use with custom cursor control; Event is emitted when cursor enters a text widget
 #[derive(Event)]
 pub struct TextHoverIn;
@@ -33,10 +36,17 @@ pub fn change_cursor(
     }
 }
 
+#[cfg(feature = "multicam")]
+type CameraQuery<'a, 'b, 'c, 'd> =
+    Query<'a, 'b, (&'c Camera, &'d GlobalTransform), With<CosmicPrimaryCamera>>;
+
+#[cfg(not(feature = "multicam"))]
+type CameraQuery<'a, 'b, 'c, 'd> = Query<'a, 'b, (&'c Camera, &'d GlobalTransform)>;
+
 pub fn hover_sprites(
     windows: Query<&Window, With<PrimaryWindow>>,
     mut cosmic_edit_query: Query<(&mut Sprite, &GlobalTransform), With<CosmicEditor>>,
-    camera_q: Query<(&Camera, &GlobalTransform)>,
+    camera_q: CameraQuery,
     mut hovered: Local<bool>,
     mut last_hovered: Local<bool>,
     mut evw_hover_in: EventWriter<TextHoverIn>,
diff --git a/src/lib.rs b/src/lib.rs
index da8bd57348abec06b85e9dc2736d8242ba467e8b..20c7fe4d8d13dddea0e05b22432188ccd31131e8 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -26,6 +26,10 @@ use render::{
     on_scale_factor_change, CursorBlinkTimer, CursorVisibility, SwashCacheState,
 };
 
+#[cfg(feature = "multicam")]
+#[derive(Component)]
+pub struct CosmicPrimaryCamera;
+
 #[derive(Clone, Component, PartialEq, Debug)]
 pub enum CosmicText {
     OneStyle(String),