config: allow configuring the simple IM
This commit is contained in:
parent
58b9830aaa
commit
2f22a61710
15 changed files with 367 additions and 7 deletions
|
|
@ -1026,6 +1026,20 @@ impl ConfigClient {
|
|||
self.send(&ClientMessage::SeatCopyMark { seat, src, dst });
|
||||
}
|
||||
|
||||
pub fn seat_set_simple_im_enabled(&self, seat: Seat, enabled: bool) {
|
||||
self.send(&ClientMessage::SeatSetSimpleImEnabled { seat, enabled });
|
||||
}
|
||||
|
||||
pub fn seat_get_simple_im_enabled(&self, seat: Seat) -> bool {
|
||||
let res = self.send_with_response(&ClientMessage::SeatGetSimpleImEnabled { seat });
|
||||
get_response!(res, false, SeatGetSimpleImEnabled { enabled });
|
||||
enabled
|
||||
}
|
||||
|
||||
pub fn seat_reload_simple_im(&self, seat: Seat) {
|
||||
self.send(&ClientMessage::SeatReloadSimpleIm { seat });
|
||||
}
|
||||
|
||||
pub fn set_show_float_pin_icon(&self, show: bool) {
|
||||
self.send(&ClientMessage::SetShowFloatPinIcon { show });
|
||||
}
|
||||
|
|
|
|||
|
|
@ -788,6 +788,16 @@ pub enum ClientMessage<'a> {
|
|||
workspace: Workspace,
|
||||
connector: Connector,
|
||||
},
|
||||
SeatSetSimpleImEnabled {
|
||||
seat: Seat,
|
||||
enabled: bool,
|
||||
},
|
||||
SeatGetSimpleImEnabled {
|
||||
seat: Seat,
|
||||
},
|
||||
SeatReloadSimpleIm {
|
||||
seat: Seat,
|
||||
},
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug)]
|
||||
|
|
@ -1020,6 +1030,9 @@ pub enum Response {
|
|||
GetShowBar {
|
||||
show: bool,
|
||||
},
|
||||
SeatGetSimpleImEnabled {
|
||||
enabled: bool,
|
||||
},
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug)]
|
||||
|
|
|
|||
|
|
@ -603,6 +603,34 @@ impl Seat {
|
|||
pub fn copy_mark(self, src: u32, dst: u32) {
|
||||
get!().seat_copy_mark(self, src, dst);
|
||||
}
|
||||
|
||||
/// Sets whether the simple, XCompose based input method is enabled.
|
||||
///
|
||||
/// Regardless of this setting, this input method is not used if an external input
|
||||
/// method is running.
|
||||
///
|
||||
/// The default is `true`.
|
||||
pub fn set_simple_im_enabled(self, enabled: bool) {
|
||||
get!().seat_set_simple_im_enabled(self, enabled);
|
||||
}
|
||||
|
||||
/// Returns whether the simple, XCompose based input method is enabled.
|
||||
pub fn simple_im_enabled(self) -> bool {
|
||||
get!(true).seat_get_simple_im_enabled(self)
|
||||
}
|
||||
|
||||
/// Toggles whether the simple, XCompose based input method is enabled.
|
||||
pub fn toggle_simple_im_enabled(self) {
|
||||
let get = get!();
|
||||
get.seat_set_simple_im_enabled(self, !get.seat_get_simple_im_enabled(self));
|
||||
}
|
||||
|
||||
/// Reloads the simple, XCompose based input method.
|
||||
///
|
||||
/// This is useful if you change the XCompose files after starting the compositor.
|
||||
pub fn reload_simple_im(self) {
|
||||
get!().seat_reload_simple_im(self);
|
||||
}
|
||||
}
|
||||
|
||||
/// A focus-follows-mouse mode.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue