core: config: add config option to enable the wayland input method

Having multiple input methods at once causes behaviour defined by the
Wayland compositor. In a recent update by Phoc, the most recently
started input method would take priority to demonstrate the instability.
Add a configuration option so the Wayland input method can be disabled
to accommodate a second input method.

Also update the README with the new option.
This commit is contained in:
Richard Acayan 2024-09-27 21:54:21 -04:00
parent 57265544ab
commit 4cd29eec3b
2 changed files with 16 additions and 0 deletions

View file

@ -110,3 +110,4 @@ Configuration example:
wayland: wayland:
height: 185 height: 185
input-method: true

View file

@ -16,6 +16,7 @@ pub struct Configuration {
repeat: u64, repeat: u64,
layout: String, layout: String,
wayland_height: i32, wayland_height: i32,
wayland_im_enable: bool,
} }
impl Configuration { impl Configuration {
@ -30,6 +31,13 @@ impl Configuration {
let height = height.expect("Wayland height should be a 32-bit signed integer"); let height = height.expect("Wayland height should be a 32-bit signed integer");
self.wayland_height = height; self.wayland_height = height;
} }
let im_enable = yaml.get(&Yaml::String(String::from("input-method")));
if let Some(im_enable) = im_enable {
let im_enable = im_enable.as_bool();
let im_enable = im_enable.expect("Wayland height should be a 32-bit signed integer");
self.wayland_im_enable = im_enable;
}
} }
pub fn load() -> Result<Self, LoadError> pub fn load() -> Result<Self, LoadError>
@ -39,6 +47,7 @@ impl Configuration {
repeat: 25, repeat: 25,
layout: String::from("latn_qwerty_us.xml"), layout: String::from("latn_qwerty_us.xml"),
wayland_height: 185, wayland_height: 185,
wayland_im_enable: true,
}; };
if let Ok(file) = File::open("/etc/unfettered-keyboard.yaml") { if let Ok(file) = File::open("/etc/unfettered-keyboard.yaml") {
@ -106,4 +115,10 @@ impl Configuration {
{ {
self.wayland_height self.wayland_height
} }
#[inline(always)]
pub fn wayland_im_enable(&self) -> bool
{
self.wayland_im_enable
}
} }