diff --git a/swhkd/src/uinput.rs b/swhkd/src/uinput.rs index f0684ae..1aabd20 100644 --- a/swhkd/src/uinput.rs +++ b/swhkd/src/uinput.rs @@ -3,12 +3,6 @@ use evdev::{ AttributeSet, Key, RelativeAxisType, SwitchType, }; -use nix::ioctl_none; -use std::fs::File; -use std::os::unix::io::AsRawFd; - -ioctl_none!(rfkill_noinput, b'R', 1); - pub fn create_uinput_device() -> Result> { let keys: AttributeSet = get_all_keys().iter().copied().collect(); @@ -26,20 +20,6 @@ pub fn create_uinput_device() -> Result Result> { let switches: AttributeSet = get_all_switches().iter().copied().collect(); - // We have to disable rfkill-input to avoid blocking all radio devices. When - // a new device (virtual or physical) with the SW_RFKILL_ALL capability bit - // set appears, rfkill reacts immediately depending on the value bit. This - // value bit defaults to unset, which causes rfkill to use its default mode - // (which is eop - emergency power off). The uinput API does not give any - // way to set the corresponding value bit before creating the device, and we - // have no way to avoid rfkill acting upon the device creation or to change - // its default mode. Thus, we disable rfkill-input temporarily, hopefully - // fast enough that it won't impact anyone. rfkill-input will be enabled - // again when the file gets closed. - let rfkill_file = File::open("/dev/rfkill")?; - unsafe { - rfkill_noinput(rfkill_file.as_raw_fd())?; - } let device = VirtualDeviceBuilder::new()? .name("swhkd switches virtual output") .with_switches(&switches)? @@ -622,7 +602,6 @@ pub fn get_all_switches() -> &'static [SwitchType] { SwitchType::SW_LID, SwitchType::SW_TABLET_MODE, SwitchType::SW_HEADPHONE_INSERT, - SwitchType::SW_RFKILL_ALL, SwitchType::SW_MICROPHONE_INSERT, SwitchType::SW_DOCK, SwitchType::SW_LINEOUT_INSERT,