Skip to content

Commit 52b2f97

Browse files
use separate seat for the digitizer
1 parent a592024 commit 52b2f97

2 files changed

Lines changed: 12 additions & 6 deletions

File tree

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
SUBSYSTEM=="input", ATTR{name}=="MacBookPro17,1 Touch Bar", ENV{ID_SEAT}="seat-touchbar"
2+
SUBSYSTEM=="input", ATTR{name}=="Mac14,7 Touch Bar", ENV{ID_SEAT}="seat-touchbar"

src/main.rs

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -365,9 +365,12 @@ fn main() {
365365
let mut needs_redraw = true;
366366
let mut drm = open_card().unwrap();
367367
let bl_path = find_backlight().unwrap();
368-
let mut input = Libinput::new_with_udev(Interface);
369-
input.udev_assign_seat("seat0").unwrap();
370-
let pollfd = PollFd::new(input.as_raw_fd(), PollFlags::POLLIN);
368+
let mut input_tb = Libinput::new_with_udev(Interface);
369+
let mut input_main = Libinput::new_with_udev(Interface);
370+
input_tb.udev_assign_seat("seat-touchbar").unwrap();
371+
input_main.udev_assign_seat("seat0").unwrap();
372+
let pollfd_tb = PollFd::new(input_tb.as_raw_fd(), PollFlags::POLLIN);
373+
let pollfd_main = PollFd::new(input_main.as_raw_fd(), PollFlags::POLLIN);
371374
let mut uinput = UInputHandle::new(OpenOptions::new().write(true).open("/dev/uinput").unwrap());
372375
uinput.set_evbit(EventKind::Key).unwrap();
373376
for button in &layer.buttons {
@@ -406,9 +409,10 @@ fn main() {
406409
map.as_mut()[..data.len()].copy_from_slice(&data);
407410
drm.card.dirty_framebuffer(drm.fb, &[ClipRect{x1: 0, y1: 0, x2: DFR_HEIGHT as u16, y2: DFR_WIDTH as u16}]).unwrap();
408411
}
409-
poll(&mut [pollfd], TIMEOUT_MS).unwrap();
410-
input.dispatch().unwrap();
411-
for event in &mut input {
412+
poll(&mut [pollfd_tb, pollfd_main], TIMEOUT_MS).unwrap();
413+
input_tb.dispatch().unwrap();
414+
input_main.dispatch().unwrap();
415+
for event in &mut input_tb.clone().chain(input_main.clone()) {
412416
match event {
413417
Event::Device(DeviceEvent::Added(evt)) => {
414418
let dev = evt.device();

0 commit comments

Comments
 (0)