1
0
Fork 0
forked from wry/wry
wry/default-config/src/lib.rs
2022-02-15 23:15:00 +01:00

52 lines
1.6 KiB
Rust

use i4config::keyboard::mods::{Modifiers, ALT, CTRL, SHIFT};
use i4config::keyboard::syms::{SYM_Super_L, SYM_h, SYM_j, SYM_k, SYM_l, SYM_r, SYM_t, SYM_x, SYM_y};
use i4config::Direction::{Down, Left, Right, Up};
use i4config::{config, create_seat, input_devices, on_new_input_device, Seat, Command};
const MOD: Modifiers = ALT;
fn configure_seat(s: Seat) {
log::info!("Configuring seat {:?}", s);
let change_rate = move |delta| {
let (rate, delay) = s.repeat_rate();
let new_rate = rate - delta;
let new_delay = delay + 10 * delta;
s.set_repeat_rate(new_rate, new_delay);
};
s.bind(CTRL | SHIFT | SYM_l, move || change_rate(-1));
s.bind(CTRL | SHIFT | SYM_r, move || change_rate(1));
s.bind(CTRL | SYM_h, move || s.focus(Left));
s.bind(CTRL | SYM_j, move || s.focus(Down));
s.bind(CTRL | SYM_k, move || s.focus(Up));
s.bind(CTRL | SYM_l, move || s.focus(Right));
s.bind(CTRL | SYM_t, move || {
s.set_split(s.split().other());
});
s.bind(MOD | SHIFT | SYM_h, move || s.move_(Left));
s.bind(MOD | SHIFT | SYM_j, move || s.move_(Down));
s.bind(MOD | SHIFT | SYM_k, move || s.move_(Up));
s.bind(MOD | SHIFT | SYM_l, move || s.move_(Right));
s.bind(SYM_x, || {
Command::new("alacritty").spawn()
});
s.bind(SYM_y, || {
Command::new("sleep").arg("100").spawn()
});
}
pub fn configure() {
let seat = create_seat("default");
configure_seat(seat);
for device in input_devices() {
device.set_seat(seat);
}
on_new_input_device(move |device| device.set_seat(seat));
}
config!(configure);