default swipe to type config to false

This commit is contained in:
Diamond White 2026-03-15 14:19:39 +00:00
parent 55756e6e51
commit 5891c4b5b6
4 changed files with 40 additions and 11 deletions

View File

@ -507,7 +507,6 @@ pub(super) fn create_keyboard_panel(
predictions_root,
StyleSetRequest::Display(Display::Flex),
));
}
}
}

View File

@ -2,7 +2,6 @@ use std::{collections::HashMap, str::FromStr, sync::LazyLock};
use regex::Regex;
use serde::{Deserialize, Serialize};
use smithay::reexports::wayland_protocols::wp::pointer_gestures::zv1::server::zwp_pointer_gesture_swipe_v1::ZwpPointerGestureSwipeV1;
use crate::{
config::{ConfigType, load_known_yaml},
subsystem::hid::{

View File

@ -29,11 +29,15 @@ use crate::{
use anyhow::Context;
use glam::{Affine3A, Quat, Vec3, vec3, Vec2};
use regex::Regex;
use slotmap::{SlotMap, new_key_type};
use slotmap::{SlotMap, new_key_type, Key};
use wgui::{
drawing,
event::{InternalStateChangeEvent, MouseButtonEvent, MouseButtonIndex},
};
use wgui::event::StyleSetRequest;
use wgui::layout::{Layout, LayoutTask};
use wgui::parser::Fetchable;
use wgui::taffy::Display;
use wlx_common::windowing::{OverlayWindowState, Positioning};
use wlx_common::{
config::AltModifier,
@ -124,7 +128,7 @@ pub fn create_keyboard(app: &mut AppState, wayland: bool) -> anyhow::Result<Over
..OverlayWindowConfig::from_backend(Box::new(backend))
})
}
pub fn init_swipe_type_manager(state: &mut KeyboardState) {
pub(self) fn init_swipe_type_manager(state: &mut KeyboardState) {
match SwipeTypingManager::new() {
Ok((engine, receiver)) => {
state.swipe_typing_manager = Some(engine);
@ -135,6 +139,18 @@ pub fn init_swipe_type_manager(state: &mut KeyboardState) {
}
};
}
pub(self) fn hide_swipe_type_manager(panel: &mut GuiPanel<KeyboardState>) {
let predictions_root = panel.parser_state
.get_widget_id("swipe_predictions_root")
.unwrap_or_default();
if !predictions_root.is_null() {
panel.layout.tasks.push(LayoutTask::SetWidgetStyle(
predictions_root,
StyleSetRequest::Display(Display::None),
));
}
}
fn alt_modifier_to_key(m: AltModifier) -> KeyModifier {
match m {
AltModifier::Shift => SHIFT,
@ -168,12 +184,18 @@ impl KeyboardBackend {
) -> anyhow::Result<KeyboardPanelKey> {
let mut state = self.default_state.take();
init_swipe_type_manager(&mut state);
if app.session.config.keyboard_swipe_to_type_enabled {
init_swipe_type_manager(&mut state);
}
log::info!("swipe engine created");
let panel =
let mut panel =
create_keyboard_panel(app, keymap, state, &self.wlx_layout)?;
if !app.session.config.keyboard_swipe_to_type_enabled {
hide_swipe_type_manager(&mut panel);
}
let id = self.layout_panels.insert(panel);
if let Some(layout_name) = keymap.and_then(|k| k.get_name()) {
self.layout_ids.insert(layout_name.into(), id);
@ -198,17 +220,17 @@ impl KeyboardBackend {
if self.active_layout.eq(new_key) {
return Ok(false);
}
self.internal_switch_keymap(*new_key, keymap);
self.internal_switch_keymap(*new_key, app);
} else {
let new_key = self.add_new_keymap(Some(keymap), app)?;
self.internal_switch_keymap(new_key, keymap);
self.internal_switch_keymap(new_key, app);
}
app.tasks
.enqueue(TaskType::Overlay(OverlayTask::KeyboardChanged));
Ok(true)
}
fn internal_switch_keymap(&mut self, new_key: KeyboardPanelKey, keymap: &XkbKeymap) {
fn internal_switch_keymap(&mut self, new_key: KeyboardPanelKey, app: &AppState) {
let mut state_from = self
.layout_panels
.get_mut(self.active_layout)
@ -216,7 +238,9 @@ impl KeyboardBackend {
.state
.take();
init_swipe_type_manager(&mut state_from);
if app.session.config.keyboard_swipe_to_type_enabled {
init_swipe_type_manager(&mut state_from);
}
self.active_layout = new_key;
@ -224,6 +248,13 @@ impl KeyboardBackend {
.get_mut(self.active_layout)
.unwrap()
.state = state_from;
if !app.session.config.keyboard_swipe_to_type_enabled {
hide_swipe_type_manager(self.layout_panels
.get_mut(self.active_layout)
.unwrap()
)
}
}
fn get_effective_keymap(&mut self) -> anyhow::Result<XkbKeymap> {

View File

@ -328,6 +328,6 @@ pub struct GeneralConfig {
#[serde(default = "def_one")]
pub grid_opacity: f32,
#[serde(default = "def_true")]
#[serde(default = "def_false")]
pub keyboard_swipe_to_type_enabled: bool,
}