From 6a3138e099ccbf150d3c563156af165165246d40 Mon Sep 17 00:00:00 2001 From: DashieTM Date: Wed, 12 Jun 2024 22:12:42 +0200 Subject: [PATCH] keyboard: Add signal to kde --- keyboard_plugin/PKGBUILD | 2 +- keyboard_plugin/src/backend/kde.rs | 14 ++++++++++++++ monitors/src/backend/kde.rs | 4 ++-- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/keyboard_plugin/PKGBUILD b/keyboard_plugin/PKGBUILD index cc39f0a..eb633a8 100644 --- a/keyboard_plugin/PKGBUILD +++ b/keyboard_plugin/PKGBUILD @@ -6,7 +6,7 @@ pkgrel=0 arch=('x86_64') pkgdir="/usr/lib/${pkgname}" pkgdesc="A keyboard plugin for the ReSet settings application." -depends=('rust' 'gtk4' 'dbus') +depends=('gtk4' 'dbus' 'libadwaita') build() { mkdir -p pkg diff --git a/keyboard_plugin/src/backend/kde.rs b/keyboard_plugin/src/backend/kde.rs index 6625cd8..0ab0bfd 100644 --- a/keyboard_plugin/src/backend/kde.rs +++ b/keyboard_plugin/src/backend/kde.rs @@ -1,6 +1,14 @@ +use dbus::blocking::Connection; +use dbus::channel::Sender; +use dbus::{Error, Message}; +use re_set_lib::ERROR; +#[cfg(debug_assertions)] +use re_set_lib::{utils::macros::ErrorLevel, write_log_to_file}; + use crate::keyboard_layout::KeyboardLayout; use crate::utils::parse_setting; use std::process::Command; +use std::time::Duration; pub fn get_saved_layouts_kde(all_keyboards: &[KeyboardLayout]) -> Vec { let output = Command::new("kreadconfig6") @@ -72,4 +80,10 @@ pub fn write_to_config_kde(layouts: &[KeyboardLayout]) { .arg(variant_string) .output() .expect("Could not save variants"); + let conn = Connection::new_session().unwrap(); + let res = + conn.send(Message::new_signal("/Layouts", "org.kde.keyboard", "reloadConfig").unwrap()); + if res.is_err() { + ERROR!("Could not apply config", ErrorLevel::PartialBreakage); + } } diff --git a/monitors/src/backend/kde.rs b/monitors/src/backend/kde.rs index 552b8ec..3cde7d7 100644 --- a/monitors/src/backend/kde.rs +++ b/monitors/src/backend/kde.rs @@ -220,10 +220,10 @@ fn convert_modes( if let Some(hash_mode) = hash_modes.get_mut(&(mode.size.width, mode.size.height)) { hash_mode .0 - .insert((mode.refreshRate.round() as u32, mode.id.clone())); + .insert((mode.refreshRate.round() as u32, "".into())); } else { let mut refresh_rates = HashSet::new(); - refresh_rates.insert((mode.refreshRate.round() as u32, mode.id.clone())); + refresh_rates.insert((mode.refreshRate.round() as u32, "".into())); hash_modes.insert( (mode.size.width, mode.size.height), (refresh_rates, mode.id),