aboutsummaryrefslogtreecommitdiff
path: root/src/niri.rs
diff options
context:
space:
mode:
authorphuhl <git@ph-uhl.com>2024-03-03 20:36:13 +0100
committerIvan Molodetskikh <yalterz@gmail.com>2024-03-15 13:29:36 +0400
commit89dfaa6cac128887083c4e2fc195864c8de7d5fa (patch)
treec3f6d03d54870095ec42d2d5e5eed981d27d9cf9 /src/niri.rs
parentf6ffe8b3ab28ae572ed61d6ee2961ba7ef411179 (diff)
downloadniri-89dfaa6cac128887083c4e2fc195864c8de7d5fa.tar.gz
niri-89dfaa6cac128887083c4e2fc195864c8de7d5fa.tar.bz2
niri-89dfaa6cac128887083c4e2fc195864c8de7d5fa.zip
Adds support for wlr_gamma_control_unstable_v1 protocol
Diffstat (limited to 'src/niri.rs')
-rw-r--r--src/niri.rs12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/niri.rs b/src/niri.rs
index 01dc9eb5..1e5b5c16 100644
--- a/src/niri.rs
+++ b/src/niri.rs
@@ -101,6 +101,7 @@ use crate::input::{apply_libinput_settings, TabletData};
use crate::ipc::server::IpcServer;
use crate::layout::{Layout, MonitorRenderElement};
use crate::protocols::foreign_toplevel::{self, ForeignToplevelManagerState};
+use crate::protocols::gamma_control::GammaControlManagerState;
use crate::protocols::screencopy::{Screencopy, ScreencopyManagerState};
use crate::pw_utils::{Cast, PipeWire};
use crate::render_helpers::renderer::NiriRenderer;
@@ -187,6 +188,7 @@ pub struct Niri {
pub popup_grab: Option<PopupGrabState>,
pub presentation_state: PresentationState,
pub security_context_state: SecurityContextState,
+ pub gamma_control_manager_state: GammaControlManagerState,
pub seat: Seat<State>,
/// Scancodes of the keys to suppress.
@@ -929,6 +931,15 @@ impl Niri {
let viewporter_state = ViewporterState::new::<State>(&display_handle);
let xdg_foreign_state = XdgForeignState::new::<State>(&display_handle);
+ let gamma_control_manager_state = GammaControlManagerState::new::<State, _>(
+ &display_handle,
+ match backend {
+ Backend::Tty(_) => true,
+ _ => false,
+ },
+ |client| !client.get_data::<ClientState>().unwrap().restricted,
+ );
+
let mut seat: Seat<State> = seat_state.new_wl_seat(&display_handle, backend.seat_name());
seat.add_keyboard(
config_.input.keyboard.xkb.to_xkb_config(),
@@ -1082,6 +1093,7 @@ impl Niri {
suppressed_keys: HashSet::new(),
presentation_state,
security_context_state,
+ gamma_control_manager_state,
seat,
keyboard_focus: None,