From 54a1cd5069cd2f4eb302862fae115b742fbf32a4 Mon Sep 17 00:00:00 2001 From: peelz Date: Wed, 22 Jan 2025 00:00:35 -0500 Subject: Add clipboard disable-primary setting --- src/niri.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/niri.rs') diff --git a/src/niri.rs b/src/niri.rs index dbbc9ff2..fdc915a7 100644 --- a/src/niri.rs +++ b/src/niri.rs @@ -1810,7 +1810,13 @@ impl Niri { let idle_notifier_state = IdleNotifierState::new(&display_handle, event_loop.clone()); let idle_inhibit_manager_state = IdleInhibitManagerState::new::(&display_handle); let data_device_state = DataDeviceState::new::(&display_handle); - let primary_selection_state = PrimarySelectionState::new::(&display_handle); + let primary_selection_state = + PrimarySelectionState::new_with_filter::(&display_handle, |client| { + !client + .get_data::() + .unwrap() + .primary_selection_disabled + }); let data_control_state = DataControlState::new::( &display_handle, Some(&primary_selection_state), @@ -1930,6 +1936,7 @@ impl Niri { let data = Arc::new(ClientState { compositor_state: Default::default(), can_view_decoration_globals: config.prefer_no_csd, + primary_selection_disabled: config.clipboard.disable_primary, restricted: false, credentials_unknown: false, }); @@ -5167,6 +5174,7 @@ impl Niri { pub struct ClientState { pub compositor_state: CompositorClientState, pub can_view_decoration_globals: bool, + pub primary_selection_disabled: bool, /// Whether this client is denied from the restricted protocols such as security-context. pub restricted: bool, /// We cannot retrieve this client's socket credentials. -- cgit